php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #65571 Compiling fails with - missing binary operator before token "extern"
Submitted: 2013-08-28 09:37 UTC Modified: 2013-10-01 16:33 UTC
Votes:2
Avg. Score:4.0 ± 1.0
Reproduced:2 of 2 (100.0%)
Same Version:1 (50.0%)
Same OS:0 (0.0%)
From: tony dot ar dot wright at bt dot com Assigned:
Status: Not a bug Package: Compile Failure
PHP Version: 5.5.3 OS: SuSE 9
Private report: No CVE-ID: None
 [2013-08-28 09:37 UTC] tony dot ar dot wright at bt dot com
Description:
------------
I installed 5.5.2 ok but when I tried to install 5.5.3 I get the error message:

In file included from Zend/zend_language_scanner.l:40:
Zend/zend_language_parser.h:40:1: missing binary operator before token "extern"
make: *** [Zend/zend_language_scanner.lo] Error 1


Configure options used:

'./configure' '--with-apxs2=/usr/local/apache2/bin/apxs' '--enable-ftp' '--witho
ut-ldap' '--enable-sockets' '--with-gd' '--with-freetype-dir' '--without-mcrypt'
 '--with-zlib-dir' '--with-png-dir' '--with-oci8=/export/oracle/product/10.2.0/d
b_1' '--with-openssl'



Patches

Add a Patch

Pull Requests

Add a Pull Request

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2013-09-09 12:33 UTC] pascal at nobus dot be
I had the same problem on php-5.4.19
This on a slackware-10.1

Tried the snapshot (php5.4-201309091030), and it seems to be fixed there?

However I have no idea with what change the bug is fixed.
 [2013-10-01 14:36 UTC] mike@php.net
-Status: Open +Status: Feedback
 [2013-10-01 14:36 UTC] mike@php.net
What are your flex/bison versions?
 [2013-10-01 15:05 UTC] pascal at nobus dot be
For the slackware-OS: (also php-5.4.20 has this problem)

# flex -V
flex 2.5.33

# bison -V
bison (GNU Bison) 2.3
 [2013-10-01 15:21 UTC] mike@php.net
-Status: Feedback +Status: Suspended
 [2013-10-01 15:21 UTC] mike@php.net
Looks like you have to use bison2.4 - 2.7 to build from a source checkout.
 [2013-10-01 15:29 UTC] pascal at nobus dot be
apologies for my previous post, I was on the wrong server

# flex -V
flex version 2.5.4

# bison -V
bison (GNU Bison) 1.35


I'll try to get a later bison-version
 [2013-10-01 15:35 UTC] mike@php.net
If you build release tarballs, the bison version should not matter, though.
 [2013-10-01 15:47 UTC] pascal at nobus dot be
I updated to bison-1.875 (compiled from source), but this didn't matter indeed.
The problem appeared in php-5.4.19 and was not there in php-5.4.18.
I could build it just fine from complete source tarball.
 [2013-10-01 15:54 UTC] mike@php.net
-Status: Suspended +Status: Not a bug
 [2013-10-01 15:54 UTC] mike@php.net
Sorry for my ignorance, but (for me) 1.875 does not lie between 2.4 and 2.7
 [2013-10-01 16:27 UTC] pascal at nobus dot be
I couldn't compile 2.7, so tried first the latest from the 1-version.
Now I tried 2.4.1, which I could compile.
However the problem stays the same.

/bin/sh /usr/local/src/php-5.4.20/libtool --silent --preserve-dup-deps --
mode=compile cc  -IZend/ -I/usr/local/src/php-5.4.20/Zend/ -DPHP_ATOM_INC -
I/usr/local/src/php-5.4.20/include -I/usr/local/src/php-5.4.20/main -
I/usr/local/src/php-5.4.20 -I/usr/local/src/php-5.4.20/ext/date/lib -
I/usr/local/src/php-5.4.20/ext/ereg/regex -I/usr/include/libxml2 -
I/usr/local/include -I/usr/local/include/freetype2 -I/usr/local/src/php-
5.4.20/ext/sqlite3/libsqlite -I/usr/local/src/php-5.4.20/TSRM -
I/usr/local/src/php-5.4.20/Zend    -I/usr/include -g -O2  -c /usr/local/src/php-
5.4.20/Zend/zend_language_scanner.c -o Zend/zend_language_scanner.lo 
In file included from Zend/zend_language_scanner.l:40:
Zend/zend_language_parser.h:40:1: missing binary operator before token "extern"
make: *** [Zend/zend_language_scanner.lo] Error 1

# bison -V
bison (GNU Bison) 2.4.1
 [2013-10-01 16:33 UTC] nikic@php.net
@pascal: Could you try to do a `touch Zend/zend_language_parser.y` and then run `make` again? Likely the parser is not being regenerated, because it didn't change in the meantime.
 [2013-10-01 17:09 UTC] pascal at nobus dot be
That worked!
Build complete.

I've also tried your trick with the old bison (1.35), and that works also.
 [2014-01-08 15:49 UTC] akirchner dot hal at gmail dot com
Hi, i get the same error, but i use the version PHP 5.3.28:

PHP_Install/php-5.3.28/ext/date/lib -I/PHP_Install/php-5.3.28/ext/ereg/regex -I/usr/include/libxml2 -I/usr/include/mysql -I/PHP_Install/php-5.3.28/ext/sqlite3/libsqlite -I/PHP_Install/php-5.3.28/TSRM -I/PHP_Install/php-5.3.28/Zend    -I/usr/include -g -O2  -c /PHP_Install/php-5.3.28/Zend/zend_language_scanner.c -o Zend/zend_language_scanner.lo
In file included from Zend/zend_language_scanner.l:37:
Zend/zend_language_parser.h:40:1: missing binary operator before token "extern"
make: *** [Zend/zend_language_scanner.lo] Error 1

I use this option:

./configure --with-mysql=/usr/bin/ --with-libdir=lib64


i try to solve it with "Could you try to do a `touch Zend/zend_language_parser.y` and then run `make` again" 

But the same error

Thank you for help
 
PHP Copyright © 2001-2024 The PHP Group
All rights reserved.
Last updated: Wed May 01 00:01:30 2024 UTC