[devel] Как пролезли undefined symbol?

Alexey Tourbin at на altlinux.ru
Сб Май 16 12:43:13 MSD 2009


On Sat, May 16, 2009 at 12:32:14PM +0400, Boris Savelev wrote:
> а что означает "bad_elf_symbols"?
> http://git.altlinux.org/tasks/6284/task/log

bad_elf_symbols означает глобальную проверку одновременно для всех
имеющихся бинариков в репозитарии.  Она сбрабатывает только тогда,
когда какого-то символа вообще нигде нет.  А если для undefined symbol
в одном бинарике имеется определение в каком-то другом бинарике, то
считается что всё нормально.  То есть связи между бинариками она вообще
не анализирует.

Эта проверка работает так:
1) Составляет полный список определенных символов (def) для всех
бинариков в репозитарии.
2) Составляет полный список неопределенных/ссылочных символов (ref) для
всех бинариков в репозитарии.
3) Из ref вычитает def, результат называется bad_elf_symbols.

Наличие bad_elf_symbols обычно означает, что в бинарике содержатся
вызовы несуществующих функций.  В момент вызова несуществующей функции
всё упадёт (а с LD_BIND_NOW=1 упадёт сразу же).
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя     : отсутствует
Тип     : application/pgp-signature
Размер  : 197 байтов
Описание: отсутствует
Url     : <http://lists.altlinux.org/pipermail/devel/attachments/20090516/ce66a4f2/attachment.bin>


Подробная информация о списке рассылки Devel