[sisyphus] nut-2.4.3

Алексей Шенцев ashen на nsrz.ru
Сб Июн 12 10:36:14 UTC 2010


On 12.06.2010 13:49, Evgeny Sinelnikov wrote:
> Вопрос поставлен некорректно. Без детального разбора configure.in и
> очередного велосипеда m4/nut_check_libnetsnmp.m4, в этом проекте,
> что-то вразумительное сказать сложно.
>
> Как минимум, требовалось показать вывод ./configure --with-snmp:
> ....
> checking for Net-SNMP version via net-snmp-config... 5.4.2.1 found
> checking for Net-SNMP cflags... -pipe -Wall -O2 -march=i586
> -mtune=i686 -Ulinux -Dlinux=linux -I/usr/include/rpm -D_REENTRANT
> -D_GNU_SOURCE -DTHREADS_HAVE_PIDS -fno-strict-aliasing -pipe
> -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I/usr/include/gdbm
> -I/usr/lib/perl5/i386-linux/CORE -I. -I/usr/include
> checking for Net-SNMP libs... -lcrypto -lnetsnmp
> checking for net-snmp/net-snmp-config.h... yes
> checking for init_snmp... no
> ...
>
> А также config.log:
> ...
> configure:7937: checking for init_snmp
> configure:7937: gcc -o conftest -pipe -Wall -O2 -march=i586
> -mtune=i686 -Ulinux -Dlinux=linux -I/usr/include/rpm -D_REENTRANT
> -D_GNU_SOURCE -DTHREADS_HAVE_PIDS -fno-strict-aliasing -
> pipe -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I/usr/include/gdbm
> -I/usr/lib/perl5/i386-linux/CORE -I. -I/usr/include  -lcrypto
> -lnetsnmp conftest.c  >&5
> /home/sin/tmp/cc1QhzbR.o: In function `main':
> conftest.c:(.text+0x7): undefined reference to `init_snmp'
> collect2: ld returned 1 exit status
> configure:7937: $? = 1
> ...
>
> Проверяем. Копируем в файлик тестовый код из config.log (файлик прилагаю):
> ....
> char init_snmp ();
>
> int
> main ()
> {
> return init_snmp ();
>   ;
>   return 0;
> }
>
> Пробуем собрать:
> $ gcc -o conftest -pipe -Wall -O2 -march=i586 -mtune=i686 -Ulinux
> -Dlinux=linux -I/usr/include/rpm -D_REENTRANT -D_GNU_SOURCE
> -DTHREADS_HAVE_PIDS -fno-strict-aliasing -pipe -D_LARGEFILE_SOURCE
> -D_FILE_OFFSET_BITS=64 -I/usr/include/gdbm
> -I/usr/lib/perl5/i386-linux/CORE -I. -I/usr/include  -lcrypto
> -lnetsnmp init_snmp.c
> /home/sin/tmp/cc1kacWf.o: In function `main':
> init_snmp.c:(.text+0x7): undefined reference to `init_snmp'
> collect2: ld returned 1 exit status
>
> Пробуем собрать правильно:
> $ gcc -o conftest -pipe -Wall -O2 -march=i586 -mtune=i686 -Ulinux
> -Dlinux=linux -I/usr/include/rpm -D_REENTRANT -D_GNU_SOURCE
> -DTHREADS_HAVE_PIDS -fno-strict-aliasing -pipe -D_LARGEFILE_SOURCE
> -D_FILE_OFFSET_BITS=64 -I/usr/include/gdbm
> -I/usr/lib/perl5/i386-linux/CORE -I. -I/usr/include init_snmp.c
> -lcrypto -lnetsnmp
>
> Сработало...
>
>   
угу ...

> И вот теперь самый главный вопрос, с которого стоило начинать. Почему
> проверка вида:
>  AC_CHECK_FUNCS(init_snmp, [], [nut_have_libnetsnmp=no])
> в файле m4/nut_check_libnetsnmp.m4 ставит $LDFLAGS в строке сборки
> перед компилируемым файлом, а не после?
>   
Хороший вопрос ...

> С другой стороны, может быть так оно всегда и было? Может это так
> гайки в gcc у нас закручены?
>
> Насколько мне известно гайки у нас уже давно закручены. И, начиная с
> этого момента, мне уже не совсем понятно что нужно чинить. Сам nut или
> какие-то детали autotools.
>   
Хороший вопрос. В своё время я тупо пересобрал nut-2.2.2, взяв его у
amike@ - до сих пор на боевом серваке пашет. И пашет хорошо. Потом им
решил заняться solo@, но так дальше его гита дело не пошло. На сколько
мне известно ldv@ nut'ом больше не занимается. Мне надо рабочий nut, а
не та тухлятина 2.0.5, тчо у нас в сизифе - пересобраться,
пересобирается. но не стартует и работаьь отказывается.


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