[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