В сообщении от 1143815873 секунд после начала Эпохи daks написал(а):
> /home/gb/rpm/BUILD/tcp_wrappers_7.6/hosts_access.c:298: undefined reference
to
> `yp_get_default_domain'
> collect2: ld returned 1 exit status
> make[1]: *** [master] Ошибка 1
> make[1]: Leaving directory `/usr/src/RPM/BUILD/cyrus-imapd-2.2.12/master'
> make: *** [all] Ошибка 1
> ошибка: Неверный код возврата из /var/tmp/rpm-tmp.2638 (%build)
>
> Печенкой чую, шо дело в необъявленной функции (процедуре)
> yp_get_default_domain() и tcp_wrappers, но шо с этим делать - не знаю - не
> программер наверно :). Кто подскажет??
Во первых
# rpmbuild --rebuild cyrus-imapd-2.2.12-19mdk.src.rpm
Замечалось что в мандриве `rpm --rebuild' работает не корректно (в
нормальных дистрибутивах оно вообще не работает, что сразу наставляет
на правильный путь - `rpmbuild --rebuild').
Если не поможет, то
$ objdump -T /lib/libnsl.so.* |grep yp_get_def
? Если выдаст что-то вроде
4c4520b8 g DF .text 000000b7 GLIBC_2.0 yp_get_default_domain
то в spec-файл в раздел build перед configure нужно добавить
export LD_FLAGS="-L/lib -lnsl"
> И шо за разные знаки (differ in
> signedness), как эти ворнинги убрать??
Это можно проигнорировать.
>
> P.s. Содержимое 298-й строке в файле
> /home/gb/rpm/BUILD/tcp_wrappers_7.6/hosts_access.c не найдено - нет такой
> директории (да и юзера тоже) - /home/gb. Откуда он это взял???
Видимо подгрузил отладочную информацию. Она была сохранена во время
сборки tcp_wrappers.
> Ее вызов есть
> в
> ./configure
>
> ---------cat> /* We use char because int might match the return type of a gcc2
> builtin and then its argument prototype would still apply. */
> char yp_get_default_domain ();
> int
> main ()
> {
> yp_get_default_domain ();
> ;
> return 0;
> }
> ---------cat> Убиранием "char" дело не решилось (была такая идея) :(
Очевидно configure проверяет наличие этой функции.