[devel] продолжение сборки quagga. сборка в hasher, а , так же , %set_verify_elf_method unresolved

Sergey Vlasov =?iso-8859-1?q?vsu_=CE=C1_altlinux=2Eru?=
Чт Мар 9 18:52:17 MSK 2006


On Thu, Mar 09, 2006 at 07:22:30PM +0400, Sergey Y. Afonin wrote:
> При сборке всё еще имеют место две проблемы.
> 
> Первая: 
> 
> при --enable-snmp вылезает вот такой набор ошибок:
> 
> gcc -pipe -Wall -O2 -march=i686 -rdynamic -o .libs/zebra zserv.o main.o interface.o connected.o zebra_rib.o redistribute.o debug.o rtadv.o zebra_snmp.o zebra_vty.o irdp_main.o irdp_interface.o irdp_packet.o router-id.o ioctl.o ipforward_proc.o if_netlink.o rt_netlink.o rtread_netlink.o  ../lib/.libs/libzebra.so -lm -lcrypt -lnetsnmp -lcrypto
> /usr/bin/../lib/libnetsnmp.so.9: undefined reference to `EVP_DigestInit'
> /usr/bin/../lib/libnetsnmp.so.9: undefined reference to `EVP_DigestFinal'
> /usr/bin/../lib/libnetsnmp.so.9: undefined reference to `EVP_DigestFinal_ex'
> /usr/bin/../lib/libnetsnmp.so.9: undefined reference to `AES_set_encrypt_key'
> /usr/bin/../lib/libnetsnmp.so.9: undefined reference to `EVP_md5'
> /usr/bin/../lib/libnetsnmp.so.9: undefined reference to `HMAC'
> 
> или -lm должно быть еще и после -l* ? Но при сборке без hasher на
> текущем Сизифе не воспроизводится...

ldd -r /usr/lib/libnetsnmp.so.9 показывает, что эта библиотека собрана
криво (при сборке пропущено -lcrypto).  Нужно лечить пакет net-snmp (ну
или пока собирать без --enable-snmp).

> Вторая:
> 
> Adjusting library links in /usr/src/tmp/quagga-buildroot
> ./var/lib:
> ./usr/lib:
>         libospfapiclient.so.0 -> libospfapiclient.so.0.0.0
>         libospf.so.0 -> libospf.so.0.0.0
>         libzebra.so.0 -> libzebra.so.0.0.0
> Verifying ELF objects in /usr/src/tmp/quagga-buildroot (arch=normal,fhs=relaxed,rpath=normal,textrel=normal,unresolved=relaxed)
> verify-elf: WARNING: ./usr/lib/libzebra.so.0.0.0: undefined symbol: master
> verify-elf: WARNING: ./usr/lib/libospf.so.0.0.0: undefined symbol: no_interface_desc_cmd
> verify-elf: WARNING: ./usr/lib/libospf.so.0.0.0: undefined symbol: no_interface_cmd
> verify-elf: WARNING: ./usr/lib/libospf.so.0.0.0: undefined symbol: recent_time
> <и т.д.>
> 
> %set_verify_elf_method unresolved=relaxed
> ситуацию спасает, оно, потом, работает. Ввиду малого современного
> программистского опыта готов выслушать, куда попытаться посмотреть.

Нужно посмотреть, где на самом деле определены недостающие символы (nm -D,
findsym).  Если в других библиотеках - необходимо указать их при сборке.
Впрочем, ELF допускает и вариант, когда библиотека использует символы,
предоставляющиеся исполняемым файлом - в таком случае остаётся либо
проигнорировать проблему, либо разбираться, зачем это было нужно, и искать
другой способ реализации, не требующий подобных ссылок.
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя     : =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Тип     : application/pgp-signature
Размер  : 189 байтов
Описание: =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Url     : <http://lists.altlinux.org/pipermail/devel/attachments/20060309/49a12aaa/attachment-0001.bin>


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