URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 57672
[ Назад ]

Исходное сообщение
"Не компилируется perl из портов."

Отправлено serg_tv , 24-Июн-05 14:10 
Система FreeBSD 4.10.
Захотел поставить новый spamassasin из портов, он потребовал perl5.8.
Перл новый стянулся, но компилироваться не хочет.
Выдает ошибки при компиляции:

===>  Building for perl-5.8.6_2
LD_LIBRARY_PATH=/usr/ports/lang/perl5.8/work/perl-5.8.6 cc -Wl,-E -L/usr/local/lib -o miniperl  miniperlmai
n.o opmini.o -L. -lperl -lm -lcrypt -lutil
miniperlmain.o: In function `main':
miniperlmain.o(.text+0x1d): undefined reference to `PL_use_safe_putenv'
>>skiped
Потом идут ошибки:
opmini.o: In function `S_gv_ename':
opmini.o(.text+0x3f): undefined reference to `Perl_sv_2pv_flags'
>>skiped

Пробовал компилить старый перл тот что в usr/ports/lang/perl5 результат тотже.

Спамассасин не из портов поставился без проблем, но все таки может кто то скажет в чем причина того что перл не хочет ставиться?


Содержание

Сообщения в этом обсуждении
"Не компилируется perl из портов."
Отправлено Skif , 24-Июн-05 14:46 
perl -v в студию /etc/make.conf туда же


"Не компилируется perl из портов."
Отправлено serg_tv , 24-Июн-05 15:55 
>perl -v в студию /etc/make.conf туда же

[13:10:31]serg@soft(/)# perl -v

This is perl, version 5.005_03 built for i386-freebsd

в /etc/make.conf пусто


"Не компилируется perl из портов."
Отправлено Skif , 24-Июн-05 16:18 
обнови порты, а - ИМХО - лучше вообще систему обновить польностью.
После этого поставь из портов новый

"Не компилируется perl из портов."
Отправлено serg_tv , 24-Июн-05 17:30 
>обнови порты, а - ИМХО - лучше вообще систему обновить польностью.
>После этого поставь из портов новый


Да порты и сорцы постоянно обновляются.
А вот то build world никак руки не доходят.
Может в этом и проблемы..


"Не компилируется perl из портов."
Отправлено serg_tv , 08-Июл-05 17:32 
Решение проблемы было найдено после длительных поисков в инете.
Нужно в каталоге где находятся распакованные исходники (works) выполнить make clean, rm config.sh.
Затем сделать вручную ./Configure -Dusenm -d и потом make, make install.
Все ставится нормально.
Другими словами надо указать чотбы компилятор использовал nm.

Языком оригинала:
If linking miniperl

        cc -o miniperl ... miniperlmain.o opmini.o perl.o ... -lm -lc ...

       causes error like this

        ld: 0711-317 ERROR: Undefined symbol: .aintl
        ld: 0711-317 ERROR: Undefined symbol: .copysignl
        ld: 0711-317 ERROR: Undefined symbol: .syscall
        ld: 0711-317 ERROR: Undefined symbol: .eaccess
        ld: 0711-317 ERROR: Undefined symbol: .setresuid
        ld: 0711-317 ERROR: Undefined symbol: .setresgid
        ld: 0711-317 ERROR: Undefined symbol: .setproctitle
        ld: 0711-345 Use the -bloadmap or -bnoquiet option to obtain more information.

       you could retry with

        make realclean
        rm config.sh
        ./Configure -Dusenm ...

       which makes Configure to use the "nm" tool when scanning for library
       symbols, which usually is not done in AIX.

       Related to this, you probably should not use the "-r" option of Config-
       ure in AIX, because that affects of how the "nm" tool is used.


Конечно FreeBSD это не AIX но судя по всему порблемы у них юывают общие. И решения поболем тоже.