php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #38960 OCI8 failure...
Submitted: 2006-09-26 12:18 UTC Modified: 2006-09-27 22:26 UTC
Votes:1
Avg. Score:5.0 ± 0.0
Reproduced:1 of 1 (100.0%)
Same Version:0 (0.0%)
Same OS:0 (0.0%)
From: sn4265 at att dot com Assigned:
Status: Wont fix Package: Compile Failure
PHP Version: 5.1.6 OS: HPUX 11.11
Private report: No CVE-ID: None
Have you experienced this issue?
Rate the importance of this bug to you:

 [2006-09-26 12:18 UTC] sn4265 at att dot com
Description:
------------
I am attempting to build a working version of Apache 2.0.59 with PHP 5.1.6.  I am doing this under HPUX 11.11, and have sucessfully built Apache, and PHP without OCI8 support.  The problem is when I attempt to include OCI8 support either in the PHP build directly or by attempting to build the oci8-1.2.2 package after the fact.

Here is the attempt buildint OCI8 after the fact.  The error is identical when attempting to build PHP with OCI8 support too.

Reproduce code:
---------------
root@hostname:/www/tmp/oci8-1.2.2> phpize
Configuring for:
PHP Api Version:         20041225
Zend Module Api No:      20050922
Zend Extension Api No:   220051025
root@hostname:/www/tmp/oci8-1.2.2> ./configure
checking for grep that handles long lines and -e... /usr/bin/grep
checking for egrep... /usr/bin/grep -E
checking for a sed that does not truncate output... /usr/bin/sed
checking for gcc... gcc
checking for C compiler default output file name... a.out
checking whether the C compiler works... yes

root@thp016a:/www/tmp/oci8-1.2.2> make
        /usr/bin/posix/sh /www/tmp/oci8-1.2.2/libtool --mode=compile gcc  -I. -I/www/tmp/oci8-1.2.2 -DPHP_ATOM_INC -I/www/tmp/oci8-1.2.2/include -I/www/tmp/oci8-1.2.2/main -I/www/tmp/oci8-1.2.2 -I/usr/local/include/php -I/usr/local/include/php/main -I/usr/local/include/php/TSRM -I/usr/local/include/php/Zend -I/usr/local/include/php/ext -I/usr/local/oracle/8.0.6.3/rdbms/demo -I/usr/local/oracle/8.0.6.3/network/public  -DHAVE_CONFIG_H  -g -O2   -c /www/tmp/oci8-1.2.2/oci8.c -o oci8.lo
mkdir .libs
 gcc -I. -I/www/tmp/oci8-1.2.2 -DPHP_ATOM_INC -I/www/tmp/oci8-1.2.2/include -I/www/tmp/oci8-1.2.2/main -I/www/tmp/oci8-1.2.2 -I/usr/local/include/php -I/usr/local/include/php/main -I/usr/local/include/php/TSRM -I/usr/local/include/php/Zend -I/usr/local/include/php/ext -I/usr/local/oracle/8.0.6.3/rdbms/demo -I/usr/local/oracle/8.0.6.3/network/public -DHAVE_CONFIG_H -g -O2 -c /www/tmp/oci8-1.2.2/oci8.c  -fPIC -DPIC -o .libs/oci8.o
/www/tmp/oci8-1.2.2/oci8.c: In function `php_oci_connection_status':
/www/tmp/oci8-1.2.2/oci8.c:1429: error: `OCI_ATTR_SERVER_STATUS' undeclared (first use in this function)
/www/tmp/oci8-1.2.2/oci8.c:1429: error: (Each undeclared identifier is reported only once
/www/tmp/oci8-1.2.2/oci8.c:1429: error: for each function it appears in.)
/www/tmp/oci8-1.2.2/oci8.c:1431: error: `OCI_SERVER_NORMAL' undeclared (first use in this function)
*** Error exit code 1

Stop.


Expected result:
----------------
Return a sucessful build.

Actual result:
--------------
/www/tmp/oci8-1.2.2/oci8.c: In function `php_oci_connection_status':
/www/tmp/oci8-1.2.2/oci8.c:1429: error: `OCI_ATTR_SERVER_STATUS' undeclared (first use in this function)
/www/tmp/oci8-1.2.2/oci8.c:1429: error: (Each undeclared identifier is reported only once
/www/tmp/oci8-1.2.2/oci8.c:1429: error: for each function it appears in.)
/www/tmp/oci8-1.2.2/oci8.c:1431: error: `OCI_SERVER_NORMAL' undeclared (first use in this function)
*** Error exit code 1

Stop.


Patches

Add a Patch

Pull Requests

Add a Pull Request

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2006-09-26 12:28 UTC] tony2001@php.net
Does it work for you with Oracle Instant Client - http://www.oracle.com/technology/tech/oci/instantclient/index.html ?
 [2006-09-26 12:34 UTC] sn4265 at att dot com
No clue.  I have never used that before.  This system has had Oracle 8.0.6.3 on it for years, and has always been what we have built against in the past without any problems.  Is this a major change to PHP5?  Does it now only work with a more limited set of Oracle clients?
 [2006-09-26 22:02 UTC] tony2001@php.net
>Is this a major change to PHP5?  
>Does it now only work with a more limited set of Oracle clients?

Yes, there was a major change in OCI8, which greatly improved its functionality using new features available since Oracle 9.
It still does work with Oracle 8 servers, but I don't think it makes sense to keep supporting (seriously) outdated Oracle 8.x clients.

The easiest (and the recommended) way to setup a server with OCI8 support is to install Oracle Instant Client, doesn't matter which platform/OS you're using.

I guess in your case the solution would be to stick with PHP4/PHP5.0.x.
Other options are a bit more complicated:
1) upgrade the client to 9i (afaik instant client doesn't support Oracle < 8i)
2) upgrade both Oracle server and client to version >= 9.
 [2006-09-27 12:24 UTC] sn4265 at att dot com
OK...  The database servers that I am connecting to are remote, and are all Oracle 9i or greater.  I spent much of last night downloading and attempting to build PHP 5.1.6 with the Oracle Instant Client as suggested.  Unfortunately, I am still running into problems.  Here is what I am facing at this point.

The configure script completes fine as follows:
./configure --with-mysql --with-oci8=shared,instantclient,/usr/local/oracle/instantclient_10_2 --with-apxs2=/opt/apache/bin/apxs

The make fails at the following point:
        /bin/sh /www/tmp/php-5.1.6/libtool --silent --preserve-dup-deps --mode=compile gcc  -Iext/oci8/ -I/www/tmp/php-5.1.6/ext/oci8/ -DPHP_ATOM_INC -I/www/tmp/php-5.1.6/include -I/www/tmp/php-5.1.6/main -I/www/tmp/php-5.1.6 -I/usr/local/include/libxml2 -I/www/tmp/php-5.1.6/ext/date/lib -I/usr/include/mysql -I/usr/local/oracle/instantclient_10_2/sdk/include -I/www/tmp/php-5.1.6/TSRM -I/www/tmp/php-5.1.6/Zend  -D_XOPEN_SOURCE_EXTENDED  -I/usr/local/include -g -O2   -c /www/tmp/php-5.1.6/ext/oci8/oci8_lob.c -o ext/oci8/oci8_lob.lo
/www/tmp/php-5.1.6/ext/oci8/oci8_lob.c: In function `php_oci_lob_read':
/www/tmp/php-5.1.6/ext/oci8/oci8_lob.c:226: error: `oraub8' undeclared (first use in this function)
/www/tmp/php-5.1.6/ext/oci8/oci8_lob.c:226: error: (Each undeclared identifier is reported only once
/www/tmp/php-5.1.6/ext/oci8/oci8_lob.c:226: error: for each function it appears in.)
/www/tmp/php-5.1.6/ext/oci8/oci8_lob.c:226: error: parse error before ')' token
/www/tmp/php-5.1.6/ext/oci8/oci8_lob.c:226: error: parse error before ')' token
/www/tmp/php-5.1.6/ext/oci8/oci8_lob.c:226: error: parse error before "offset"
*** Error exit code 1

Stop.

Once again I'm stuck.  Thanks again for any assistance.
 [2006-09-27 20:49 UTC] tony2001@php.net
Please try the following:
1) open instantclient_10_2/sdk/include/oratypes.h
2) find this line:

#if (__STDC__ != 1) || defined(__LP64__)
and change it to
#if defined (__STDC_EXT__) || defined(__LP64__)

3) run make again.
 [2006-09-27 22:16 UTC] sn4265 at att dot com
One step forward two steps back.  The make command succeeded fine, but now the Apache webserver won't load.

root@hostname:/> /opt/apache/bin/apachectl -k start
/usr/lib/dld.sl: Can't shl_load() a library containing Thread Local Storage: /usr/lib/libcl.2
/usr/lib/dld.sl: Exec format error
Syntax error on line 232 of /opt/apache/conf/httpd.conf:
Cannot load /opt/apache/modules/libphp5.so into server: Exec format error
 [2006-09-27 22:26 UTC] tony2001@php.net
That's something out of my knowledge, you'd better ask this question on a HP-UX related forum.
 
PHP Copyright © 2001-2020 The PHP Group
All rights reserved.
Last updated: Thu Feb 20 07:01:25 2020 UTC