Problen with flex?
Michael A. Peters
mpeters at mac.com
Mon Apr 28 12:45:22 PDT 2003
I don't know anything about flex (I guess this means I get to learn...
But at anyrate - when compiling ttmkfdir 3.0.9 on LFS the build would
fail with the following error:
parser.cpp: At global scope:
parser.cpp:1531: declaration of `int isatty(int)' throws different
/usr/include/unistd.h:686: than previous declaration `int isatty(int)
parser.cpp:1310: warning: `void yyunput(int, char*)' defined but not
make: *** [parser.o] Error 1
parser.cpp is generated my the Makefile with flex.
The problem is that it generates the following line:
extern int isatty YY_PROTO(( int ));
which conflicts with unistd.h line 686 (glibc 2.3.2):
extern int isatty (int __fd) __THROW;
Interestingly enough - this problem doesn't occur on RH8 with the same
version of flex installed. I'm not sure why they produce different
parser.cpp files - but they do. Does anyone know more about why?
I can build ttmkfdir 3.0.9 on LFS if I use the parser.cpp file generated
in RH8 and comment out the creation of that file in the Makefile -
flex -i -8 -o$@ $<
but I would like to figure out or know what the _real_ issue is (could
it be a bug in the encoding.l file and not with flex?) and if it is with
something on my lfs system, what needs to be patched ...
Michael A. Peters <mpeters at mac.com>
Unsubscribe: send email to listar at linuxfromscratch.org
and put 'unsubscribe lfs-dev' in the subject header of the message
More information about the lfs-dev