[sisyphus] nut-2.4.3

Evgeny Sinelnikov sin на altlinux.ru
Сб Июн 12 09:49:15 UTC 2010


Привет.

11 июня 2010 г. 23:10 пользователь Алексей Шенцев <ashen на nsrz.ru> написал:
> Всем привет!
> Пытаюсь собрать nut-2.4.3. Обламываюсь на ./configure с такой руганью:
> checking whether to build serial drivers... yes
> configure: error: "Net-SNMP libraries not found, required for SNMP drivers"
>
> установлены:
> rpm -qa | grep snmp | sort
> libnet-snmp2-5.5-alt3
> libnet-snmp-5.4.2.1-alt5
> libnet-snmp-devel-5.5-alt3
> libnet-snmp-devel-static-5.5-alt3
> libucd-snmp2-5.5-alt3
> libucd-snmp-5.4.2.1-alt5
> libucd-snmp-devel-5.5-alt3
> libucd-snmp-devel-static-5.5-alt3
> net-snmp-5.5-alt3
> тet-snmp-utils-5.5-alt3
> snmp-mibs-std-0.3-alt1
>
> Каких пакетов не хватает?
>

Вопрос поставлен некорректно. Без детального разбора 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.


-- 
Sin (Sinelnikov Evgeny)
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя     : init_snmp.c
Тип     : text/x-csrc
Размер  : 2480 байтов
Описание: отсутствует
Url     : <http://lists.altlinux.org/pipermail/sisyphus/attachments/20100612/a6304c18/attachment.bin>


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