php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #20546 compile with gcc 3.2 fails due to parser errors
Submitted: 2002-11-21 09:49 UTC Modified: 2002-12-13 08:28 UTC
Votes:1
Avg. Score:5.0 ± 0.0
Reproduced:0 of 0 (0.0%)
From: ben at thelocust dot org Assigned:
Status: Not a bug Package: Compile Failure
PHP Version: 4.3.0-dev OS: RedHat Linux 8.0
Private report: No CVE-ID: None
 [2002-11-21 09:49 UTC] ben at thelocust dot org
Apache 2.0.40

configure string:

./configure  --with-pgsql --with-gd --with-apxs2=/usr/local/apache2/bin/apxs --enable-track-vars --enable-force-cgi-redirect --with-gettext --with-gd --with-dom --with-zlib-dir=/usr/lib --enable-cli

error:

In file included from /home/ben/src/php4-200211211430/Zend/zend.h:202,
                 from /home/ben/src/php4-200211211430/main/php.h:34,
                 from /home/ben/src/php4-200211211430/ext/zlib/zlib.c:28:
/home/ben/src/php4-200211211430/Zend/zend_hash.h:119: parse error before "va_list"

the parse errors repeat many times.

Patches

Pull Requests

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2002-11-21 09:52 UTC] ben at thelocust dot org
the latest snapshot (php4-200211211430) also fails for me with the same errors.
 [2002-11-22 16:03 UTC] iliaa@php.net
This is a fairly serious problem that should definately be resolved before 4.3.0 is released.
The following configuration options
/configure  --with-gd --enable-track-vars --enable-force-cgi-redirect --with-gettext --with-dom --with-zlib-dir=/usr/lib --enable-cli
Result in the compilation error that occured immidiately at the start of the compile process.
gcc  -Iext/zlib/ -I/home/rei/php4/ext/zlib/ -DPHP_ATOM_INC -I/home/rei/php4/include -I/home/rei/php4/main -I/home/rei/php4 -I/home/rei/php4/Zend -I/usr/local/include/libxml2 -I/home/rei/php4/ext/xml/expat  -I/home/rei/php4/TSRM  -g -O2  -c /home/rei/php4/ext/zlib/zlib.c -o ext/zlib/zlib.o  && echo > ext/zlib/zlib.lo
In file included from /usr/include/errno.h:36,
                 from /home/rei/php4/Zend/zend_operators.h:24,
                 from /home/rei/php4/Zend/zend_execute_globals.h:27,
                 from /home/rei/php4/Zend/zend_globals.h:34,
                 from /home/rei/php4/Zend/zend_list.h:25,
                 from /home/rei/php4/Zend/zend_API.h:26,
                 from /home/rei/php4/main/php.h:38,
                 from /home/rei/php4/ext/zlib/zlib.c:28:
/usr/include/bits/errno.h:25:26: linux/errno.h: Permission denied
In file included from /home/rei/php4/Zend/zend_execute_globals.h:27,
                 from /home/rei/php4/Zend/zend_globals.h:34,
                 from /home/rei/php4/Zend/zend_list.h:25,
                 from /home/rei/php4/Zend/zend_API.h:26,
                 from /home/rei/php4/main/php.h:38,
                 from /home/rei/php4/ext/zlib/zlib.c:28:
/home/rei/php4/Zend/zend_operators.h: In function `is_numeric_string':
/home/rei/php4/Zend/zend_operators.h:78: `ERANGE' undeclared (first use in this function)
/home/rei/php4/Zend/zend_operators.h:78: (Each undeclared identifier is reported only once
/home/rei/php4/Zend/zend_operators.h:78: for each function it appears in.)
In file included from /usr/include/bits/posix1_lim.h:126,
                 from /usr/include/limits.h:144,
                 from /usr/lib/gcc-lib/i686-pc-linux-gnu/3.2/include/limits.h:132,
                 from /usr/lib/gcc-lib/i686-pc-linux-gnu/3.2/include/syslimits.h:7,
                 from /usr/lib/gcc-lib/i686-pc-linux-gnu/3.2/include/limits.h:11,
                 from /usr/include/sys/param.h:22,
                 from /home/rei/php4/main/php.h:205,
                 from /home/rei/php4/ext/zlib/zlib.c:28:
/usr/include/bits/local_lim.h:36:26: linux/limits.h: Permission denied
In file included from /home/rei/php4/main/php.h:205,
                 from /home/rei/php4/ext/zlib/zlib.c:28:
/usr/include/sys/param.h:23:26: linux/limits.h: Permission denied
/usr/include/sys/param.h:24:25: linux/param.h: Permission denied
In file included from /home/rei/php4/main/php.h:354,
                 from /home/rei/php4/ext/zlib/zlib.c:28:
/home/rei/php4/main/php_streams.h: At top level:
/home/rei/php4/main/php_streams.h:116: `PATH_MAX' undeclared here (not in a function)
/home/rei/php4/main/php_streams.h:117: confused by earlier errors, bailing out
make: *** [ext/zlib/zlib.lo] Error 1
 [2002-11-22 16:40 UTC] iliaa@php.net
It appears the problem is NOT gcc but rather the buildtools, the snapshot avaliable from http://snaps.php.net/ compiles fine. However, if I use:
autoconf version 2.54, automake version 1.7.1 and libtool version 1.4.3 to generate the PHP's configuration files from the CVS checkout the compilation fails.
 [2002-12-03 10:12 UTC] ben at thelocust dot org
Hmm... I have updated to the latest of RedHats build tools, autoconf 2.53-8, automake 1.6.3-1, libtool 1.4.2-12, and I still cannot compile, and receive the same errors as above (with the latest snap, php4-STABLE-200212031430).  What version of the buildtools are used to successfully compile this?
 [2002-12-03 11:53 UTC] derick@php.net
Recommended is:
autoconf 2.13
automake 1.5
libtool 1.4.2

(snapshots are generated with those too IIRC)

Derick
 [2002-12-03 13:14 UTC] ben at thelocust dot org
i have downgraded to the suggested (or nearest suggested) versions of autoconf,automake, and libtool.  my versions are now: autoconf 2.13-5, automake 1.4p5-4, libtool 1.4.2-14.

my gcc version is still gcc 3.2-7 (redhat 8.0)

with the latest snapshot (php4-STABLE-200212031430), after a successful make distclean/configure, i run 'make', and receive this: 

** BEGIN OUTPUT **
/bin/sh libtool --silent --mode=compile gcc  -Iext/zlib/ -I/home/ben/src/php4-ST
ABLE-200212031430/ext/zlib/ -DPHP_ATOM_INC -I/home/ben/src/php4-STABLE-200212031
430/include -I/home/ben/src/php4-STABLE-200212031430/main -I/home/ben/src/php4-S
TABLE-200212031430 -I/usr/local/apache2/include -I/home/ben/src/php4-STABLE-2002
12031430/Zend -I/usr/include/libxml2 -I/home/ben/src/php4-STABLE-200212031430/ex
t/xml/expat  -I/home/ben/src/php4-STABLE-200212031430/TSRM  -g  -prefer-pic -c /
home/ben/src/php4-STABLE-200212031430/ext/zlib/zlib.c -o ext/zlib/zlib.lo
In file included from /home/ben/src/php4-STABLE-200212031430/Zend/zend.h:202,
                 from /home/ben/src/php4-STABLE-200212031430/main/php.h:34,
                 from /home/ben/src/php4-STABLE-200212031430/ext/zlib/zlib.c:28:
/home/ben/src/php4-STABLE-200212031430/Zend/zend_hash.h:119: parse error before
"va_list"
In file included from /home/ben/src/php4-STABLE-200212031430/Zend/zend.h:203,
                 from /home/ben/src/php4-STABLE-200212031430/main/php.h:34,
                 from /home/ben/src/php4-STABLE-200212031430/ext/zlib/zlib.c:28:
/home/ben/src/php4-STABLE-200212031430/Zend/zend_llist.h:34: parse error before
"va_list"
In file included from /home/ben/src/php4-STABLE-200212031430/main/php.h:34,
                 from /home/ben/src/php4-STABLE-200212031430/ext/zlib/zlib.c:28:
/home/ben/src/php4-STABLE-200212031430/Zend/zend.h:285: parse error before "va_l
ist"
/home/ben/src/php4-STABLE-200212031430/Zend/zend.h:423: parse error before "va_l
ist"
In file included from /home/ben/src/php4-STABLE-200212031430/main/php.h:224,
                 from /home/ben/src/php4-STABLE-200212031430/ext/zlib/zlib.c:28:
/home/ben/src/php4-STABLE-200212031430/main/spprintf.h:40: parse error before "v
a_list"
In file included from /home/ben/src/php4-STABLE-200212031430/ext/zlib/zlib.c:28:
/home/ben/src/php4-STABLE-200212031430/main/php.h:277: parse error before "va_li
st"
In file included from /home/ben/src/php4-STABLE-200212031430/main/php.h:360,
                 from /home/ben/src/php4-STABLE-200212031430/ext/zlib/zlib.c:28:
/home/ben/src/php4-STABLE-200212031430/TSRM/tsrm_virtual_cwd.h:159: warning: `st
ruct utimbuf' declared inside parameter list
/home/ben/src/php4-STABLE-200212031430/TSRM/tsrm_virtual_cwd.h:159: warning: its
 scope is only this definition or declaration, which is probably not what you wa
nt
In file included from /home/ben/src/php4-STABLE-200212031430/ext/standard/php_st
andard.h:23,
                 from /home/ben/src/php4-STABLE-200212031430/ext/zlib/zlib.c:48:
/home/ben/src/php4-STABLE-200212031430/ext/standard/php_string.h: In function `p
hp_memnstr':
/home/ben/src/php4-STABLE-200212031430/ext/standard/php_string.h:142: warning: a
ssignment makes pointer from integer without a cast
In file included from /home/ben/src/php4-STABLE-200212031430/ext/standard/fsock.
h:38,
                 from /home/ben/src/php4-STABLE-200212031430/ext/standard/php_st
andard.h:44,
                 from /home/ben/src/php4-STABLE-200212031430/ext/zlib/zlib.c:48:
/home/ben/src/php4-STABLE-200212031430/main/php_network.h: At top level:
/home/ben/src/php4-STABLE-200212031430/main/php_network.h:113: warning: `struct
sockaddr' declared inside parameter list
In file included from /home/ben/src/php4-STABLE-200212031430/ext/standard/php_st
andard.h:44,
                 from /home/ben/src/php4-STABLE-200212031430/ext/zlib/zlib.c:48:
/home/ben/src/php4-STABLE-200212031430/ext/standard/fsock.h:43: warning: `struct
 in_addr' declared inside parameter list
make: *** [ext/zlib/zlib.lo] Error 1

** END OUTPUT **

Which is the same as my previous error postings.
 [2002-12-03 13:19 UTC] derick@php.net
Please rebuild configure like this:

rm configure
./buildconf

otherwise the wrong configure (generated with the old tools) is used.

Derick
 [2002-12-03 13:42 UTC] ben at thelocust dot org
Thanks for the heads-up on rebuilding the configure, but alas I just tried your rm configure; ./buildconf suggestion, and the very same build errors occurred.
 [2002-12-11 10:59 UTC] ben at thelocust dot org
php4-STABLE-200212111430
red hat 8.0 
gcc version 3.2.1
autoconf version 2.13-5 (downgraded from more-current 2.56-1)
automake version 1.6.3-1
libtool version 1.4.3-2
zlib version 1.1.4-4

./configure  --with-pgsql --with-gd --with-apxs2=/usr/local/apache2/bin/apxs --enable-track-vars --enable-force-cgi-redirect --with-gettext --with-gd --with-dom --with-zlib-dir=/usr/lib --enable-cli


i tried this configure/make with autoconf 2.56-1 first (on a freshly un-tarred php4-stable snap) and it failed as it had before.  then after downgrading to the recommended autoconf 2.13 and doing a 'make distclean; ./buildconf', i was still receiving make errors as previously stated in this bug report.

is this a gcc issue?  i have tried the recommended build tools, but have not tried (nor wanted) to downgrade my gcc to get PHP to build.

here is my make output with autoconf 2.13

[root@thelocust php4-STABLE-200212111430]# make
/bin/sh libtool --silent --mode=compile gcc  -Iext/zlib/ -I/home/ben/src/php4-STABLE-200212111430/ext/zlib/ -DPHP_ATOM_INC -I/home/ben/src/php4-STABLE-200212111430/include -I/home/ben/src/php4-STABLE-200212111430/main -I/home/ben/src/php4-STABLE-200212111430 -I/usr/local/apache2/include -I/home/ben/src/php4-STABLE-200212111430/Zend -I/usr/include/libxml2 -I/home/ben/src/php4-STABLE-200212111430/ext/xml/expat  -I/home/ben/src/php4-STABLE-200212111430/TSRM  -g  -prefer-pic -c /home/ben/src/php4-STABLE-200212111430/ext/zlib/zlib.c -o ext/zlib/zlib.lo
In file included from /home/ben/src/php4-STABLE-200212111430/Zend/zend.h:202,
                 from /home/ben/src/php4-STABLE-200212111430/main/php.h:34,
                 from /home/ben/src/php4-STABLE-200212111430/ext/zlib/zlib.c:28:
/home/ben/src/php4-STABLE-200212111430/Zend/zend_hash.h:119: parse error before "va_list"
In file included from /home/ben/src/php4-STABLE-200212111430/Zend/zend.h:203,
                 from /home/ben/src/php4-STABLE-200212111430/main/php.h:34,
                 from /home/ben/src/php4-STABLE-200212111430/ext/zlib/zlib.c:28:
/home/ben/src/php4-STABLE-200212111430/Zend/zend_llist.h:34: parse error before "va_list"
In file included from /home/ben/src/php4-STABLE-200212111430/main/php.h:34,
                 from /home/ben/src/php4-STABLE-200212111430/ext/zlib/zlib.c:28:
/home/ben/src/php4-STABLE-200212111430/Zend/zend.h:285: parse error before "va_list"
/home/ben/src/php4-STABLE-200212111430/Zend/zend.h:423: parse error before "va_list"
In file included from /home/ben/src/php4-STABLE-200212111430/main/php.h:224,
                 from /home/ben/src/php4-STABLE-200212111430/ext/zlib/zlib.c:28:
/home/ben/src/php4-STABLE-200212111430/main/spprintf.h:40: parse error before "va_list"
In file included from /home/ben/src/php4-STABLE-200212111430/ext/zlib/zlib.c:28:
/home/ben/src/php4-STABLE-200212111430/main/php.h:277: parse error before "va_list"
In file included from /home/ben/src/php4-STABLE-200212111430/main/php.h:360,
                 from /home/ben/src/php4-STABLE-200212111430/ext/zlib/zlib.c:28:
/home/ben/src/php4-STABLE-200212111430/TSRM/tsrm_virtual_cwd.h:159: warning: `struct utimbuf' declared inside parameter list
/home/ben/src/php4-STABLE-200212111430/TSRM/tsrm_virtual_cwd.h:159: warning: its scope is only this definition or declaration, which is probably not what you want
In file included from /home/ben/src/php4-STABLE-200212111430/ext/standard/php_standard.h:23,
                 from /home/ben/src/php4-STABLE-200212111430/ext/zlib/zlib.c:48:
/home/ben/src/php4-STABLE-200212111430/ext/standard/php_string.h: In function `php_memnstr':
/home/ben/src/php4-STABLE-200212111430/ext/standard/php_string.h:142: warning: assignment makes pointer from integer without a cast
In file included from /home/ben/src/php4-STABLE-200212111430/ext/standard/fsock.h:38,
                 from /home/ben/src/php4-STABLE-200212111430/ext/standard/php_standard.h:44,
                 from /home/ben/src/php4-STABLE-200212111430/ext/zlib/zlib.c:48:
/home/ben/src/php4-STABLE-200212111430/main/php_network.h: At top level:
/home/ben/src/php4-STABLE-200212111430/main/php_network.h:113: warning: `struct sockaddr' declared inside parameter list
In file included from /home/ben/src/php4-STABLE-200212111430/ext/standard/php_standard.h:44,
                 from /home/ben/src/php4-STABLE-200212111430/ext/zlib/zlib.c:48:
/home/ben/src/php4-STABLE-200212111430/ext/standard/fsock.h:43: warning: `struct in_addr' declared inside parameter list
make: *** [ext/zlib/zlib.lo] Error 1
 [2002-12-11 12:21 UTC] ben at thelocust dot org
I added the patch to zend_hash.h as specified in this bug: http://bugs.php.net/bug.php?id=15217, (adding #include <stdargs.h> to zend_hash.h), and the seemed to rectify my initial problems, however, now I am getting the following warnings: 

/home/ben/src/php4-STABLE-200212111430/TSRM/tsrm_virtual_cwd.h:159: warning: `struct utimbuf' declared inside parameter list
/home/ben/src/php4-STABLE-200212111430/TSRM/tsrm_virtual_cwd.h:159: warning: its scope is only this definition or declaration, which is probably not what you want

from a number of different files.
 [2002-12-13 08:13 UTC] ben at thelocust dot org
i finally found out what was wrong -- i was missing 'cpp0', which apparently was not required by the Redhat Rawhide gcc packages as it should have been.  without it, the configure script assumed that i wasn't using GNU gcc, and was failing left and right.

sorry for the trouble!
 
PHP Copyright © 2001-2024 The PHP Group
All rights reserved.
Last updated: Thu Oct 17 21:01:27 2024 UTC