ID: 14958
User updated by: [EMAIL PROTECTED]
Reported By: [EMAIL PROTECTED]
Old Status: Feedback
Status: Open
Bug Type: Compile Failure
Operating System: linux debian unstable
PHP Version: 4.0CVS-2002-01-09
New Comment:
yep, it works with this additional line.
Previous Comments:
------------------------------------------------------------------------
[2002-01-09 21:00:27] [EMAIL PROTECTED]
>From the error message I'ld say you just need to include <errno.h> in
zend_ini_scanner.l (like in zend_language_scanner.l), can you verify
this?
------------------------------------------------------------------------
[2002-01-09 19:57:14] [EMAIL PROTECTED]
it seems, that since my debian unstable upgraded from flex 2.5.4a-14 to
2.5.4a-15, I can't compile the Zend Engine anymore. It throws an error
in zend_ini_parser.c and if I compare a zend_ini_parser.c genearated
with the -14 version and one from -15 version, there are indeed
differences where the error occurs.
here's the error-mesage from make:
/bin/sh ../libtool --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I../main
-DLINUX=22 -DUSE_HSREGEX -I../TSRM -g -Wall -prefer-pic -c
zend_ini_scanner.c
gcc -DHAVE_CONFIG_H -I. -I. -I../main -DLINUX=22 -DUSE_HSREGEX -I../TSRM
-g -Wall -c zend_ini_scanner.c -fPIC -DPIC -o zend_ini_scanner.lo
zend_ini_scanner.c: In function `ini_lex':
zend_ini_scanner.c:826: warning: label `find_rule' defined but not
used
zend_ini_scanner.c: In function `yy_get_next_buffer':
zend_ini_scanner.c:1243: `errno' undeclared (first use in this
function)
zend_ini_scanner.c:1243: (Each undeclared identifier is reported only
once
zend_ini_scanner.c:1243: for each function it appears in.)
zend_ini_scanner.c:1243: `EINTR' undeclared (first use in this
function)
./zend_ini_scanner.l: At top level:
zend_ini_scanner.c:1900: warning: `yy_flex_realloc' defined but not
used
zend_ini_scanner.c:1350: warning: `yyunput' defined but not used
make[1]: *** [zend_ini_scanner.lo] Error 1
make[1]: Leaving directory `/opt/cvs/php4/Zend'
make: *** [all-recursive] Error 1
and here the diff between the both zend_ini_scanner.c versions:
--- Z/zend_ini_scanner.c Thu Jan 10 01:28:37 2002
+++ Zend/zend_ini_scanner.c Thu Jan 10 01:52:57 2002
@@ -698,9 +698,17 @@
YY_FATAL_ERROR( "input in flex scanner failed"
); \
result = n; \
} \
- else if ( ((result = fread( buf, 1, max_size, yyin )) == 0) \
- && ferror( yyin ) ) \
- YY_FATAL_ERROR( "input in flex scanner failed" );
+ errno=0; \
+ while ( (result = fread(buf, 1, max_size, yyin))==0 &&
ferror(yyin)) \
+ { \
+ if( errno != EINTR) \
+ { \
+ YY_FATAL_ERROR( "input in flex scanner failed"
); \
+ break; \
+ } \
+ errno=0; \
+ clearerr(yyin); \
+ }
#endif
and here the relevant part from the debian-changelog:
flex (2.5.4a-15) unstable; urgency=low
* if a signal is delivered while the parser is in the read routine
(coded by flex), the result is flex reports and YY_FATAL_ERROR
causing
plan to exit. The race condition appears much more frequently
than
one might expect because plan spends a good deal of time in read
routine while gcc is preparing the input. I cleaned up another
problem
case beyond what is given in the patch. closes:
Bug#125611
I have no idea about this flex stuff, so maybe someone else out there
can fix that :)
------------------------------------------------------------------------
Edit this bug report at http://bugs.php.net/?id=14958&edit=1
--
PHP Development Mailing List <http://www.php.net/>
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]