ID:               37284
 User updated by:  jnavratil at houston dot rr dot com
 Reported By:      jnavratil at houston dot rr dot com
-Status:           Feedback
+Status:           Open
 Bug Type:         Compile Failure
 Operating System: Solaris 8
 PHP Version:      5.1.3
 New Comment:

I'm sure I don't understand your comment that OCI8 supports older
versions on the server.  I am building on an 8.0.5 service and the
oci.h doen't have the missing preprocessor variables.  What am I
misunderstanding?

As I suggested I would, I attempted to have
'php_oci_connection_status()' return success.  oci8.c would then build,
but oci_lob.c showed more of the same types of messages.  This approach
appears to be a non-starter.

I then built using instantclient (all on the 8.0.5. server box).  It
appears to succeed, but a simple test program attempting to
oci_pconnect() to the database resulted in the ORA-3134 error that
communication with this server is no longer supported.  I bumped into
the same problem with a 10g client attempting to talk to an 8.0.5
server.

It appears that the current oci8 extension will talk to 8.1.7 servers
(according to Oracle documentation) or later.

My next attempt will be to try to build php 5.1.3 with the oci8
extension from 5.0.4.  Do you have any other suggestions?


Previous Comments:
------------------------------------------------------------------------

[2006-05-03 07:09:25] [EMAIL PROTECTED]

>If Oracle 8 support is to be dropped (not unreasonable,
> though unfortunate), then we probably need to update the
> documentation which claims support for Oracle 7 and 8.

OCI8 does support older Oracle versions on the server, but you can
always install Oracle Instant Client on the client side and use it
instead of ancient client version.

>Assuming you think this approach is justified, can you
>think  of a way to determine which major/minor version
>introduced these preprocessor variables.

No idea.
But you can always do it this way:
http://tony2001.phpclub.net/dev/tmp/oracle8.diff
(run `./cvsclean &&./buildconf --force` after applying this patch)


------------------------------------------------------------------------

[2006-05-02 23:37:17] jnavratil at houston dot rr dot com

If Oracle 8 support is to be dropped (not unreasonable, though
unfortunate), then we probably need to update the documentation which
claims support for Oracle 7 and 8.

That said, I was reading oci8.c and determined that the offending
routine checks the server connection status and is used prior to
attempting to "ping" the server as part of a check to see if the server
hasn't dropped the connection.  If that is so, could the
'php_oci_connection_status()' routine simply return success (i.e. '1')
and let the ping use OCIServerVersion to test the connection?  I will
test this approach on my 8.0.5 machine, although no program is ever
proven correct through testing.

Assuming you think this approach is justified, can you think  of a way
to determine which major/minor version introduced these preprocessor
variables.  My searches have been inconclusive.

------------------------------------------------------------------------

[2006-05-02 20:38:43] [EMAIL PROTECTED]

Unfortunately I don't have Oracle8, so I can't test and/or fix it. 
I should also note that it was decided to drop Oracle8 support, but I
think the patch could be accepted.

------------------------------------------------------------------------

[2006-05-02 20:30:27] jnavratil at houston dot rr dot com

(Got OS wrong initially)

------------------------------------------------------------------------

[2006-05-02 20:27:39] jnavratil at houston dot rr dot com

Description:
------------
oci8.c references undeclared OCI_ATTR_SERVER_STATUS and
OCI_SERVER_NORMAL which are not defined in Oracle 8.0.5 headers (they
appear to have been first defined in 9i).  The result is a compile
failure of oci8.c.

Reproduce code:
---------------
configure --with-oci8=${ORACLE_HOME}
make

Expected result:
----------------
build of oci8 extension.

Actual result:
--------------
/bin/sh /usr/local/src/php-5.1.3/libtool --silent --preserve-dup-deps
--mode=compile gcc  -Iext/oci8/ -I/usr/local/src/php-5.1.3/ext/oci8/
-DPHP_ATOM_INC -I/usr/local/src/php-5.1.3/include
-I/usr/local/src/php-5.1.3/main -I/usr/local/src/php-5.1.3
-I/usr/local/include/libxml2 -I/usr/local/ssl/include
-I/usr/local/include -I/usr/local/src/php-5.1.3/ext/date/lib
-I/usr/local/include/freetype2
-I/u00/app/oracle/product/8.0.5/rdbms/demo
-I/u00/app/oracle/product/8.0.5/network/public
-I/u00/app/oracle/product/8.0.5/plsql/public
-I/usr/local/src/php-5.1.3/TSRM -I/usr/local/src/php-5.1.3/Zend 
-D_POSIX_PTHREAD_SEMANTICS  -I/usr/local/include -g -O2  -c
/usr/local/src/php-5.1.3/ext/oci8/oci8.c -o ext/oci8/oci8.lo
/usr/local/src/php-5.1.3/ext/oci8/oci8.c: In function
`php_oci_connection_status':
/usr/local/src/php-5.1.3/ext/oci8/oci8.c:1384: error:
`OCI_ATTR_SERVER_STATUS' undeclared (first use in this function)
/usr/local/src/php-5.1.3/ext/oci8/oci8.c:1384: error: (Each undeclared
identifier is reported only once
/usr/local/src/php-5.1.3/ext/oci8/oci8.c:1384: error: for each function
it appears in.)
/usr/local/src/php-5.1.3/ext/oci8/oci8.c:1386: error:
`OCI_SERVER_NORMAL' undeclared (first use in this function)
make: *** [ext/oci8/oci8.lo] Error 1



------------------------------------------------------------------------


-- 
Edit this bug report at http://bugs.php.net/?id=37284&edit=1

Reply via email to