php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #8658 Php DSO complains of missing structure member
Submitted: 2001-01-11 13:17 UTC Modified: 2001-05-04 10:55 UTC
From: tmuller at yahoo dot com Assigned:
Status: Closed Package: OCI8 related
PHP Version: 4.0.4 OS: Solaris 2.6
Private report: No CVE-ID: None
 [2001-01-11 13:17 UTC] tmuller at yahoo dot com
Solaris 2.6 + Dec 13th recommended
Apache 1.3.14+mod_perl
mod_jserv DSO
php DSO (trying)


After configuring with the following:

./configure \
--with-apxs=/usr/local/apache/bin/apxs \
--enable-versioning \
--with-oci8=/u01/app/oracle/product/8.1.7 \
--enable-track-vars \
--with-mm=/usr/local/mm-1.1.3


I get this after running a make:

make[3]: Entering directory `/camaro/u/newbuild/php-4.0.4/ext/oci8'
/bin/sh /camaro/u/newbuild/php-4.0.4/libtool --silent --mode=compile gcc  -I. -I/camaro/u/newbuild/php-4.0.4/ext/oci8 -I/camaro/u/newbuild/php-4.0.4/main -I/camaro/u/newbuild/php-4.0.4 -I/usr/local/apache/include -I/camaro/u/newbuild/php-4.0.4/Zend -I/camaro/u/newbuild/php-4.0.4/ext/mysql/libmysql -I/u01/app/oracle/product/8.1
.7/rdbms/public -I/u01/app/oracle/product/8.1.7/rdbms/demo -I/usr/local/include -I/camaro/u/newbuild/php-4.0.4/ext/xml/expat/xmltok -I/camaro/u/newbuild/php-4.0.4/e
xt/xml/expat/xmlparse -I/camaro/u/newbuild/php-4.0.4/TSRM  -D_POSIX_PTHREAD_SEMANTICS -DSOLARIS2=260 -DMOD_PERL -DUSE_PERL_SSI -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -DUSE_EXPAT -DXML_BYTE_ORDER=21 -g -O2  -c oci8.c
oci8.c: In function `oci_get_conn':
oci8.c:829: structure has no member named `open64'
oci8.c: In function `oci_get_stmt':
oci8.c:845: structure has no member named `open64'
oci8.c: In function `oci_execute':
oci8.c:1203: structure has no member named `open64'
oci8.c:1204: structure has no member named `open64'
oci8.c:1205: structure has no member named `open64'
oci8.c: In function `_oci_open_session':
oci8.c:1855: structure has no member named `open64'
oci8.c:1968: structure has no member named `open64'
oci8.c: In function `_oci_close_session':
oci8.c:2001: structure has no member named `open64'
oci8.c: In function `_oci_open_server':
oci8.c:2093: structure has no member named `open64'
oci8.c:2137: structure has no member named `open64'
oci8.c: In function `_oci_session_cleanup':
oci8.c:2180: structure has no member named `open64'
oci8.c: In function `_oci_close_server':
oci8.c:2195: structure has no member named `open64'
oci8.c:2196: structure has no member named `open64'
oci8.c:2200: structure has no member named `open64'
oci8.c:2206: structure has no member named `open64'
oci8.c: In function `oci_do_connect':
oci8.c:2357: structure has no member named `open64'
make[3]: *** [oci8.lo] Error 1
make[3]: Leaving directory `/camaro/u/newbuild/php-4.0.4/ext/oci8'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/camaro/u/newbuild/php-4.0.4/ext/oci8'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/camaro/u/newbuild/php-4.0.4/ext'
make: *** [all-recursive] Error 1




Patches

Add a Patch

Pull Requests

Add a Pull Request

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2001-01-18 20:34 UTC] tmuller at yahoo dot com
Well, another fun solaris include bug....more macros.  

It seems after consulting a more knowledgable person, that solaris is #defining open to open64 in #include <fcntl.h>.

I think this points to a bigger problem.  The problem being the use of RESERVED words in a structure declaration.  The word open is such a word (for some OS's and would work quite well on others if the parameter was called "phpopen" for example.  

The best fix would be to re-define these functions to have non-RESERVED word usage, but the quick hack is to NOT include <fcntl.h> and put the appropriate #defines in the file as well.  Email me if you'd like the hack to get it working.
 [2001-02-24 15:54 UTC] sas@php.net
Thanks for your report. The structure member `open' of the sctructs in php_oci8.h should be prefixed in order to distinguish it from the system call which gets redirected to open64 in an LFS environment.
 [2001-05-04 10:55 UTC] thies@php.net
fixed in CVS
 
PHP Copyright © 2001-2024 The PHP Group
All rights reserved.
Last updated: Tue Apr 16 14:01:29 2024 UTC