On 7/16/20 7:10 AM, Zack Weinberg wrote:
I propose to make the following additional changes, instead of reverting
the patch:
- Change the conftest.l used by _AC_PROG_LEX_YYTEXT_DECL so that it
defines yywrap itself (it already defines main). Thus, LEXLIB will
only be set to -ll or -lfl if there's something in there *besides*
yywrap and main that the generated scanner needs. Document this.
- Add a new macro, tentatively AC_FUNC_YYWRAP([action-if-not-found]),
that tries to find a definition of yywrap in libl and libfl, sets
LEXLIB accordingly, and failing that executes action-if-not-found,
which defaults to AC_LIBOBJ([yywrap]).
What do you think?
Unfortunately I read this email *after* looking at the bug reports on Savannah.
(I *hate* having multiple streams of bug reports! Can't we standardize on just
one? If it were up to me I'd stop using Savannah and stick with just
bug-autoconf like the Autoconf manual says - but I digress.)
The patch I installed was simpler and more conservative than what you proposed.
It gives up on 'flex' and sets LEX back to ":" if any of the
_AC_PROG_LEX_YYTEXT_DECL tests fail.
I had not considered the fact that -lfl is basically useless. I like your first
suggestion, as I expect it'll make AC_PROG_LEX more useful and will encourage
people to stop linking with -lfl which is a good thing. I'm not sure that the
AC_FUNC_YYWRAP macro would be worth the trouble.