[devel] Как пролезли undefined symbol?
Alexey Tourbin
at на altlinux.ru
Сб Май 16 12:23:39 MSD 2009
On Sat, May 16, 2009 at 11:56:21AM +0400, Max Ivanov wrote:
> Добрый день! Как такое могло получиться: /usr/lib/mlt/libmltcore.so:
> undefined symbol: pow
> столько закручивали гайки, а оно всё равно вот такое пропускает.
>
> Пофиксил, отправил, вина моя и посыпаю голову пеплом. Но всё же, может
> есть какой макрос, что б проверяло на эти самые undefined и не
> пропускало?
В "плагинах" в общем случае нельзя требовать чтобы все символы были
непосредственно разрешены.
$ ldd -r /usr/lib64/zsh/zpty.so |& head
undefined symbol: mypid (/usr/lib64/zsh/zpty.so)
undefined symbol: lines (/usr/lib64/zsh/zpty.so)
undefined symbol: errflag (/usr/lib64/zsh/zpty.so)
undefined symbol: scriptname (/usr/lib64/zsh/zpty.so)
undefined symbol: coprocin (/usr/lib64/zsh/zpty.so)
undefined symbol: columns (/usr/lib64/zsh/zpty.so)
undefined symbol: contflag (/usr/lib64/zsh/zpty.so)
undefined symbol: retflag (/usr/lib64/zsh/zpty.so)
undefined symbol: breaks (/usr/lib64/zsh/zpty.so)
undefined symbol: lastval (/usr/lib64/zsh/zpty.so)
$
Эти символы определны в /bin/zsh. Для этого /bin/zsh линкуется
с флагом -rdynamic. Это такая легальная схема, почему в elf shared
object могут допускаться undefined symbols.
Макрос называется
%set_verify_elf_method strict
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя : отсутствует
Тип : application/pgp-signature
Размер : 197 байтов
Описание: отсутствует
Url : <http://lists.altlinux.org/pipermail/devel/attachments/20090516/ae411ef3/attachment.bin>
Подробная информация о списке рассылки Devel