[devel] NEW bad_elf_symbols detected
Vitaly Lipatov
lav на altlinux.ru
Сб Ноя 6 22:19:29 MSK 2021
Dmitry V. Levin писал 4.11.21 11:43:
> On Wed, Nov 03, 2021 at 10:12:49PM +0300, Vitaly Lipatov wrote:
>> Dmitry V. Levin писал 18.5.12 2:21:
>> > On Fri, May 18, 2012 at 12:05:02AM +0300, Michael Shigorin wrote:
>> >> On Thu, May 17, 2012 at 10:18:18PM +0400, Girar Builder robot wrote:
>> >> > http://git.altlinux.org/tasks/71711/logs/events.1.1.log
>> >> >
>> >> > 2012-May-17 22:06:25 :: task #71711 for sisyphus started by mike:
>> >> > #100 build 0.4.1-alt3 from /people/mike/packages/razor-qt.git
>> >> > i586: NEW bad_elf_symbols detected:
>> >> > razor-qt-panel-0.4.1-alt3.i586.rpm /usr/lib/razor-panel/libclock.so U _ZN10RazorClock19confWindowDestroyedEv
>> >> [...]
>> >> > x86_64: NEW bad_elf_symbols detected:
>> >> > razor-qt-panel-0.4.1-alt3.x86_64.rpm /usr/lib64/razor-panel/libclock.so U _ZN10RazorClock19confWindowDestroyedEv
>> >>
>> >> Гм, а с каких пор %_libdir/*/*.so вообще интересуют проверку?
>> >
>> > Это одна из т.н. глобальных проверок репозитория, наравне проверок на
>> > анметы. Она выявляет символы, которые используются, но при этом
>> > не экспортируются ни одним из пакетов. Это ошибки, которые надо
>> > исправлять.
>> >
>> ...
>> > В файле /usr/lib/razor-panel/libclock.so используется нигде не
>> > определенный метод RazorClock::confWindowDestroyed().
>>
>> Подскажите, пожалуйста, как можно обойти проверку. Тут не совсем
>> библиотека и символ WinMain никем предоставляться не будет.
>> i586: NEW bad_elf_symbols detected:
>> wine-6.17.1-alt4.i586.rpm
>> /usr/lib/wine/i386-unix/winevdm.exe.so U WinMain
>
> Уточните, пожалуйста, чем на самом деле является эта "не совсем
> библиотека", зачем ей символ WinMain в такой форме, почему он "никем
> предоставляться не будет", и как это вообще работает.
Это вообще не библиотека, это исполняемый файл Windows-программы, просто
он в формате ELF, поскольку обычный gcc другие не умеет. Символ WinMain
должен был быть в нём самом, поскольку программа собиралась как
графическая, и для них принята функция WinMain() вместо main(). Но это и
было ошибкой, потому что программа не графическая. Всю магию по загрузке
таких модулей делает wine.
Из писем ранее я понял, что простые смертные обойти проверку не могут.
Параллельно выяснил, что требование этого символа это ошибка, которая
(будет) исправлена.
Спасибо за проверку, которая помогла найти багу сборки!
--
С уважением,
Виталий Липатов,
ALT Linux Team
Подробная информация о списке рассылки Devel