[devel] Битые символы при сборке virtualbox.git=6.1.14-alt1
Alexey V. Vissarionov
gremlin на altlinux.org
Чт Сен 24 14:23:18 MSK 2020
On 2020-09-24 11:34:18 +0400, Ivan A. Melnikov wrote:
>> Проблема возникает при проверке модуля VMMR0.r0, который
>> динамически загружает другие модули, но явно с ними не
>> слинкован. На работоспособность это не влияет, но сборочница
>> не пропускает.
> Тут дело не в недолинковке. Проверка bad_elf_symbols означает,
> что таких символов в репозитории вообще нет, то есть бинарник их
> требует, но нет ни одного elf-файла, который бы их предоставлял.
> Однако, как я понимаю, VMMR0.r0 -- это не какая-нибудь
> разделяемая библиотека, а часть гипервизора, и эти символы
> ей предоставляются ядром, а точнее модулем virtualbox.ko из
> kernel-modules-virtualbox.
Проверка производится коряво, по причине чего ее нужно либо чинить,
либо делать отключаемой. Я с этим сталкивался при сборке EFI-модулей
syslinux, которые по уму вообще должны находиться в noarch-пакете -
там нет бинарников, которые запускаются системным вызовом execve()
>> Какие варианты решения можете предложить?
> В сборке из #257606:
> $ file usr/lib64/virtualbox/VMMR0.r0
> usr/lib64/virtualbox/VMMR0.r0: ELF 64-bit LSB shared object,
> x86-64, version 1 (SYSV), dynamically linked, stripped
> Это shared object, и он попадает под проверку bad_elf_symbols.
> Сейчас в Сизифе:
> $ file usr/lib64/virtualbox/VMMR0.r0
> usr/lib64/virtualbox/VMMR0.r0: ELF 64-bit LSB relocatable,
> x86-64, version 1 (SYSV), not stripped
> Это не shared object, и проверка его игнорирует.
Неудачный критерий... нужна возможность отключать эту проверку
в том чисте и для shared objects - например, когда они собраны
для другой системы (см. syslinux-efi) или даже архитектуры (см.
firmware).
> Таковы, кстати, модули ядра [...] Я бы копнул в эту сторону.
А я бы рекомендовал проверять только GNU/Linux бинарники, а не
абстрактные SYSV - желающие могут сравнить вышепроцитированное
с выводом, например, `file /lib64/libc-2.30.so`:
/lib64/libc-2.30.so: ELF 64-bit LSB shared object, x86-64,
version 1 (GNU/Linux), dynamically linked (uses shared libs),
for GNU/Linux 3.2.0, stripped
--
Alexey V. Vissarionov
gremlin ПРИ altlinux ТЧК org; +vii-cmiii-ccxxix-lxxix-xlii
GPG: 0D92F19E1C0DC36E27F61A29CD17E2B43D879005 @ hkp://keys.gnupg.net
Подробная информация о списке рассылки Devel