ID: 34339 User updated by: info at ch2o dot info Reported By: info at ch2o dot info Status: Wont fix Bug Type: OCI8 related Operating System: HP-UX -PHP Version: 4.4.0 +PHP Version: 4.4.0 and 5.0.4 New Comment:
have tested backport to php4.4 and 5.0 of oci8/config.m4 from PHP 5.1 with add of the PHP_CHECK_64BIT in acinclude.m4 and work fine on hp-ux 11.11 with oracle 9i 64Bit... checking for Oracle (OCI8) support using ORACLE_HOME installation... yes checking Oracle Install Directory... /usr/local/oracle/ checking for long int... yes checking size of long int... 4 checking checking if we're at 64-bit platform... no checking OCI8 libraries dir... lib32 checking Oracle version... 9.0 checking for OCIEnvNlsCreate in -lclntsh... yes checking for OCINlsCharSetNameToId in -lclntsh... yes checking for OCILobIsTemporary in -lclntsh... yes checking for OCICollAssign in -lclntsh... yes in fact the 64Bit test work fine, is my fault have focalized on the size of the long int of 4 byte for 64Bit... but is reverse test : if not sized 4 byte is 64Bit! ... have tested also with instant client... and work fine also... Previous Comments: ------------------------------------------------------------------------ [2005-09-02 20:07:19] info at ch2o dot info i can't test the 64bit completely the 64Bit compile mode on hp-ux, in case i must compile all depandancy of php in 64Bit mode and is very long operation for my little time i have...but i can test the cli compile with hp-ux compiler but with only the included module... i while try it if i have some time in the near future... but in 32bit compile mode on hp-ux 64Bit, with the autodetecting of the good Oracle lib dir (lib or lib32), with the oci8/config.m4 (version 1.51) provided by php5.1 (a good solution) they dont work because the macro PHP_CHECK_64BIT detect that php are compiled in 64Bit not in 32Bit... because "long int" are 4 bit on hp-ux 11.11 on 64Bit hardware in 32bit compiled binary... but the compiler bloc the setting of variable with value lager than 32Bit...is why i sugest to modify the detection scheme of the 64Bit on hp-ux with the example have maked before... or if php4 and php5 are not compiled in 64bit environement, to modify oci8/config.m4 like that have sugested (in first) for php 4.4 and 5.0 (the two have the same problem!) for privileging 32bit version of oracle library... i'm testing backport to 4.4 and 5.0 of this modification... with modification of the detecting method of the 64BIT mode... ------------------------------------------------------------------------ [2005-09-02 08:34:32] [EMAIL PROTECTED] If the way it checks 64bit platform doesn't work for you @ HP-UX and you're able to test it - please provide a patch as we don't have HP-UX anywhere. ------------------------------------------------------------------------ [2005-09-02 07:19:36] [EMAIL PROTECTED] We start supporting 64bit at PHP 5.1. ------------------------------------------------------------------------ [2005-09-02 02:18:13] info at ch2o dot info i think that the modification 1.51 (51 branch) of config.m4 of oci8 (in relation i think with bug #29402) while be ok... but i'm not sure that the PHP_CHECK_64BIT (in acinclude.m4) is ok! because "int" and "long int" are 4 bytes in 32bit mode...on hp-ux 64bit (HP-UX 11.11 on PA RISC)...(tested with gcc 32Bit and HP-UX cc in 32bit and 64Bit!) the only way i found to detect 64bit on hp-ux is to test macro __LP64__ (on pa risc, beceause on itanium i thnik is differente..)... ------------------------------------------------------------------------ [2005-09-02 01:30:08] info at ch2o dot info Description: ------------ all oracle 64Bit version are delivered with 32bit and 64bit client... on hp-ux with Oracle 9i 64Bit, the $ORACLE_HOME/lib have 64bit client library and $ORACLE_HOME/lib32 the 32Bit version... (seem to be the same on AIX, and i think is the same probleme on other 64bit plateforme with oracle 64bit) with Oracle 8i 64bit the $ORACLE_HOME/lin containt 32bit version and $ORACLE_HOME/lib64 the 64Bit version... when you whant compile php + oci8 in 32bit with oracle 8i 64bit have no probleme... but with 9i they dont work beceause the 32bit client lib are in $ORACLE_HOME/lib32 not in $ORACLE_HOME/lib... with the detection schema used in oci8 ext, they cannot compile php + oci8 in 32bit with oracle 9i 64Bit... why i whant to compile php in 32Bit with Oracle 64Bit... on hp-ux there no precompiled version for 64Bit of all opensource needed for compiling php and all the nessary for use php... i think the probleme is the same with the 10g... Reproduce code: --------------- na Expected result: ---------------- na Actual result: -------------- have modified the config.m4 of the oci8... have replace $OCI8_DIR/lib with $OCI8_LIBDIR... and have added at the start of AC_OCI8_VERSION: OCI8_LIBDIR=$OCI8_DIR/lib and have added : elif test -f $OCI8_DIR/lib32/libclntsh.$SHLIB_SUFFIX_NAME.9.0; then OCI8_VERSION=9.0 OCI8_LIBDIR=$OCI8_DIR/lib32 before: elif test -f $OCI8_LIBDIR/libclntsh.$SHLIB_SUFFIX_NAME.9.0; then and they worked fine... but with that, they privilege the 32bit version vs the default version (the 64bit version with oracle 9i 64Bit) the seconde posibility is to add --oci8-32bit to force the use of lib32 in place of lib...for use with >=9i 64Bit in 32bit mode... and --oci8-64bit to force the use of lib64 in place of lib for compile with Oracle 8i 64bit in 64Bit mode... ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=34339&edit=1