This is a follow-up to commit
v1.11-2128-g7f2bc63 of 09-04-2012,
"tests: avoid spurious failures with non-flex 'lex' programs and
C++". It is required to avoid a couple of spurious failures on
Solaris and NetBSD systems (at least). See also automake bug#11185.
* t/lex-clean-cxx.sh (parsefoo.lxx): Do not declared the provided
dummy 'isatty' function as 'static', since that might conflict with
a declaration of it as 'extern' pulled in through other system
* t/lex-depend-cxx.sh (joe.ll): Likewise.
* t/README: Update advice, to avoid similar issues in the future.
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
%}
to accommodate non-ANSI systems, since GNU flex generates code that
includes unistd.h otherwise. Also add:
- static int isatty (int fd) { return 0; }
+ int isatty (int fd) { return 0; }
to the definitions section if the generated code is to be compiled
by a C++ compiler, for similar reasons (i.e., the isatty(3) function
from that same unistd.h header would be required otherwise).
cat > parsefoo.lxx << 'END'
%{
#define YY_NO_UNISTD_H 1
-static int isatty (int fd) { return 0; }
+int isatty (int fd) { return 0; }
%}
%%
"GOOD" return EOF;
cat > joe.ll << 'END'
%{
#define YY_NO_UNISTD_H 1
-static int isatty (int fd) { return 0; }
+int isatty (int fd) { return 0; }
%}
%%
"foo" return EOF;