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
Welcome back! If you're the original bug submitter, here's where you can edit the bug or add additional notes.
If you forgot your password, you can retrieve your password here.
Password:
Status:
Package:
Bug Type:
Summary:
From: tmuller at yahoo dot com
New email:
PHP Version: OS:

 

 [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

Pull Requests

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: Fri Dec 27 16:01:29 2024 UTC