ID: 14958
Updated by: mfischer
Reported By: [EMAIL PROTECTED]
Old Status: Open
Status: Feedback
Bug Type: Compile Failure
Operating System: linux debian unstable
PHP Version: 4.0CVS-2002-01-09
New Comment:

>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?


Previous Comments:
------------------------------------------------------------------------

[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]

Reply via email to