I still don't think we should be linking with libocijdbc8 in any case.
Can you ask some Oracle support why their libs differ with same version
but in different OSes??
--Jani
On Sat, 8 Mar 2003, Michael Mauch wrote:
>Hi,
>
>this is a repost of my article from Monday, 03 March. Perhaps it has
>gone unnoticed because of the discussion about OnUpdateInt()? If it was
>noticed, but the patch just sucks, please say so.
>
>
>My older patch for the link problems with OCI8 on Tru64 broke the build
>on AIX and maybe other systems, so Jani commented it out. Here comes a
>better patch. Instead of just linking to libocijdbc8/9 if it is
>available, it tries to find the OCILobIsTemporary function in the normal
>libclntsh first, and does nothing if it's there. Only if
>OCILobIsTemporary is not in libclntsh, another check is done to search
>it in libocijdbc8/9.
>
>I tested it on Linux with Oracle 8.1.6, Tru64 with 8.1.6, 8.1.7 and
>9.0.1, and made sure that libocijdb8/9 is linked only when necessary.
>
>The patch is not yet tested on AIX, though. I'll ask the two people who
>reported bug #22324 after the patch has been applied (or should I ask
>them before the patch is applied, and send them the new configure and
>main/php_config.h.in built here?).
>
>Just before posting this, I became aware that at least here (Linux,
>Oracle 8.1.6), the line
>
>AC_DEFINE(HAVE_OCI8_SHARED_MODE,1,[ ])
>
>results in a core dump at startup, if I use --with-oci8=shared. This is
>a separate problem (#22521), it also happens without my patch. Setting
>OCI_USE_EMALLOC to 1 in oci8.c doesn't change it.
>
>Regards...
> Michael
>
>Index: ext/oci8/config.m4
>===================================================================
>RCS file: /repository/php4/ext/oci8/config.m4,v
>retrieving revision 1.37.2.3
>diff -u -B -b -r1.37.2.3 config.m4
>--- ext/oci8/config.m4 25 Feb 2003 04:37:08 -0000 1.37.2.3
>+++ ext/oci8/config.m4 3 Mar 2003 20:45:03 -0000
>@@ -89,14 +89,20 @@
> 8.1)
> PHP_ADD_LIBRARY(clntsh, 1, OCI8_SHARED_LIBADD)
>
>-dnl This breaks build on some systems (AIX at least).
>-dnl if test -f $OCI8_DIR/lib/libocijdbc8.so ; then
>-dnl PHP_ADD_LIBRARY(ocijdbc8, 1, OCI8_SHARED_LIBADD)
>-dnl fi
>-
> PHP_ADD_LIBPATH($OCI8_DIR/lib, OCI8_SHARED_LIBADD)
>+
>+ php_save="$LDFLAGS"
>+ LDFLAGS="-L$OCI8_DIR/lib $LDFLAGS"
>+ AC_CHECK_LIB(clntsh, OCILobIsTemporary, [ ], [
>+ AC_CHECK_LIB(ocijdbc8, OCILobIsTemporary, [
>+ PHP_ADD_LIBRARY_WITH_PATH(ocijdbc8, $OCI8_DIR/lib, OCI8_SHARED_LIBADD)
>+ ], [ ])
>+ ])
>+ LDFLAGS="$php_save"
>+
> AC_DEFINE(HAVE_OCI8_TEMP_LOB,1,[ ])
>- AC_DEFINE(HAVE_OCI8_SHARED_MODE,1,[ ])
>+
>+ dnl AC_DEFINE(HAVE_OCI8_SHARED_MODE,1,[ ])
>
> dnl
> dnl OCI_ATTR_STATEMENT is not available in all 8.1.x versions
>@@ -107,12 +113,17 @@
> 9.0)
> PHP_ADD_LIBRARY(clntsh, 1, OCI8_SHARED_LIBADD)
>
>-dnl This breaks build on some systems (AIX at least)
>-dnl if test -f $OCI8_DIR/lib/libocijdbc8.so ; then
>-dnl PHP_ADD_LIBRARY(ocijdbc8, 1, OCI8_SHARED_LIBADD)
>-dnl fi
>-
> PHP_ADD_LIBPATH($OCI8_DIR/lib, OCI8_SHARED_LIBADD)
>+
>+ php_save="$LDFLAGS"
>+ LDFLAGS="-L$OCI8_DIR/lib $LDFLAGS"
>+ AC_CHECK_LIB(clntsh, OCILobIsTemporary, [ ], [
>+ AC_CHECK_LIB(ocijdbc9, OCILobIsTemporary, [
>+ PHP_ADD_LIBRARY_WITH_PATH(ocijdbc9, $OCI8_DIR/lib, OCI8_SHARED_LIBADD)
>+ ], [ ])
>+ ])
>+ LDFLAGS="$php_save"
>+
> AC_DEFINE(HAVE_OCI8_TEMP_LOB,1,[ ])
> AC_DEFINE(HAVE_OCI8_ATTR_STATEMENT,1,[ ])
> AC_DEFINE(HAVE_OCI8_SHARED_MODE,1,[ ])
>
>
--
<- For Sale! ->
--
PHP Development Mailing List <http://www.php.net/>
To unsubscribe, visit: http://www.php.net/unsub.php