В моей программе используется документированный макрос автоконфигурации AM_PROG_LEX
. Он строит штраф на RHEL 6.5
и других дистрибутивах, но не работает на RHEL 6.6
и позже.AM_PROG_LEX и undefined yywrap
Сценарий configure не может скомпилировать свои тесты. Когда он пытается GCC с -ll
, -lfl
, сшивание терпит неудачу с:
/usr/bin/ld: cannot find -lfl
Когда он пытается GCC без дополнительных библиотек, сшивание терпит неудачу с:
undefined reference to `yywrap'
libfl.a
или libfl.so
отсутствует из официальных РЕПО этих систем , На RHEL 6.5 это часть пакета flex
.
RHEL 6.5
configure:5334: checking whether yytext is a pointer
configure:5351: gcc -o conftest -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -O0 conftest.c -lfl >&5
configure:5351: $? = 0
configure:5359: result: yes
RHEL 6.8
configure:5196: checking whether yytext is a pointer
configure:5217: gcc -o conftest -g -O2 conftest.c >&5
/tmp/ccNJtVgv.o: In function `input':
/home/git/rpmbuild/BUILD/snacc-1.3.1_16_g23ba7a6/lex.yy.c:1168: undefined reference to `yywrap'
/tmp/ccNJtVgv.o: In function `yylex':
/home/git/rpmbuild/BUILD/snacc-1.3.1_16_g23ba7a6/lex.yy.c:867: undefined reference to `yywrap'
/tmp/ccNJtVgv.o: In function `main':
/home/git/rpmbuild/BUILD/snacc-1.3.1_16_g23ba7a6/conftest.l:17: undefined reference to `yywrap'
collect2: ld returned 1 exit status
configure:5224: $? = 1
configure: failed program was:
...
configure:5246: result: no
не будет '--noyywrap' прерывать программы, которые обеспечивают их собственную реализацию yywrap? – basin
@basin: да, я бы не предложил форсировать этот вариант во всем мире. Но вы можете использовать его в программах тестирования autoconf. – rici