Bug #13474: --with-sybase-ct=shared,[DIR] does not result in shared php_sybase_ct.so module

From: Date: Fri, 28 Sep 2001 09:56:43 +0000
Subject: Bug #13474: --with-sybase-ct=shared,[DIR] does not result in shared php_sybase_ct.so module
Groups: php.dev 
Request: Send a blank email to php-dev+get-66757@lists.php.net to get a copy of this message
From:             nick@marden.org
Operating system: Redhat 6/2 Linux
PHP version:      4.0.6
PHP Bug Type:     Dynamic loading
Bug description:  --with-sybase-ct=shared,[DIR] does not result in shared php_sybase_ct.so module

If you configure PHP 4.0.6 with the configure option

--with-sybase-ct=shared,[DIR]

e.g.

--with-sybase-ct=shared,$SYBASE

You see this output from configure:

./configure: shared,/opt/sybase-11.9.2: No such file or directory
./configure: shared,/opt/sybase-11.9.2: No such file or directory

and static php_sybase_ct is built. This is incongruous with the behavior of
other database modules.

Attached is a patch to sybase_ct's config.m4 and Makefile.in that fixes the
problem - sort of. The shared module that gets built from this
configuration crashes at start-up time, I think due to a bug in Sybase
shared libraries for Linux.

Anyway, the patch is attached:

---------------- snip --------------------

--- Makefile.in.dist	Thu Sep 27 14:09:47 2001
+++ Makefile.in	Thu Sep 27 14:18:53 2001
@@ -1,5 +1,7 @@
 
 LTLIBRARY_NAME    = libsybase_ct.la
 LTLIBRARY_SOURCES = php_sybase_ct.c
+LTLIBRARY_SHARED_NAME = php_sybase_ct.la
+LTLIBRARY_SHARED_LIBADD = $(SYBASE_CT_SHARED_LIBADD)
 
 include $(top_srcdir)/build/dynlib.mk
--- config.m4.dist	Thu Sep 27 13:40:04 2001
+++ config.m4	Thu Sep 27 16:21:40 2001
@@ -1,44 +1,41 @@
 dnl $Id: config.m4,v 1.5 2001/03/27 20:34:43 sniper Exp $
 
-AC_MSG_CHECKING(for Sybase-CT support)
-AC_ARG_WITH(sybase-ct,
-[  --with-sybase-ct[=DIR]  Include Sybase-CT support.  DIR is the Sybase
home
-                          directory, defaults to /home/sybase.],
-[
-  if test "$withval" != "no"; then
-    AC_MSG_RESULT(yes)
-    if test -z "$SYBASE_LIBS"; then
-      PHP_EXTENSION(sybase_ct)
-    fi
-    AC_DEFINE(HAVE_SYBASE_CT,1,[ ])
-    if test "$withval" = "yes"; then
-      SYBASE_CT_INCDIR=/home/sybase/include
-      SYBASE_CT_LIBDIR=/home/sybase/lib
-    else
-      SYBASE_CT_INCDIR=$withval/include
-      SYBASE_CT_LIBDIR=$withval/lib
-    fi
-	PHP_ADD_INCLUDE($SYBASE_CT_INCDIR)
-	PHP_ADD_LIBPATH($SYBASE_CT_LIBDIR)
-	PHP_ADD_LIBRARY(cs)
-	PHP_ADD_LIBRARY(ct)
-	PHP_ADD_LIBRARY(comn)
-	PHP_ADD_LIBRARY(intl)
-	SYBASE_CT_LIBS="-lcs -lct -lcomn -lintl"
-    old_LDFLAGS=$LDFLAGS
-    LDFLAGS="$LDFLAGS -L$SYBASE_CT_LIBDIR"
-    AC_CHECK_LIB(tcl, netg_errstr,
-              [ PHP_ADD_LIBRARY(tcl) ],
-              [ PHP_ADD_LIBRARY(sybtcl) ],
-              [ $SYBASE_CT_LIBS ])
-    AC_CHECK_LIB(insck, insck__getVdate,
-              [ PHP_ADD_LIBRARY(insck) ])
-    AC_CHECK_LIB(insck, bsd_tcp,
-              [ PHP_ADD_LIBRARY(insck) ])
-      LDFLAGS=$old_LDFLAGS
+PHP_ARG_WITH(sybase-ct,for Sybase-CT support,
+[  --with-sybase-ct[=DIR]     Include Sybase-CT support.  DIR is the
Sybase home
+                             directory, defaults to /home/sybase.])
+
+if test "$PHP_SYBASE_CT" != "no"; then
+
+  if test "$PHP_SYBASE_CT" = "yes"; then
+    SYBASE_CT_INCDIR=/home/sybase/include
+    SYBASE_CT_LIBDIR=/home/sybase/lib
   else
-    AC_MSG_RESULT(no)
+    SYBASE_CT_INCDIR=$PHP_SYBASE_CT/include
+    SYBASE_CT_LIBDIR=$PHP_SYBASE_CT/lib
   fi
-],[
-  AC_MSG_RESULT(no)
-])
+
+  PHP_ADD_INCLUDE($SYBASE_CT_INCDIR)
+  PHP_ADD_LIBPATH($SYBASE_CT_LIBDIR,SYBASE_CT_SHARED_LIBADD)
+  PHP_ADD_LIBRARY(cs,1,SYBASE_CT_SHARED_LIBADD)
+  PHP_ADD_LIBRARY(ct,1,SYBASE_CT_SHARED_LIBADD)
+  PHP_ADD_LIBRARY(comn,1,SYBASE_CT_SHARED_LIBADD)
+  PHP_ADD_LIBRARY(intl,1,SYBASE_CT_SHARED_LIBADD)
+
+  SYBASE_CT_LIBS="-lcs -lct -lcomn -lintl"
+  old_LDFLAGS=$LDFLAGS
+  LDFLAGS="$LDFLAGS -L$SYBASE_CT_LIBDIR"
+  AC_CHECK_LIB(tcl, netg_errstr,
+                    [ PHP_ADD_LIBRARY(tcl,1,SYBASE_CT_SHARED_LIBADD) ],
+                    [ PHP_ADD_LIBRARY(sybtcl,1,SYBASE_CT_SHARED_LIBADD)
],
+                    [ $SYBASE_CT_LIBS ])
+  AC_CHECK_LIB(insck, insck__getVdate,
+                    [ PHP_ADD_LIBRARY(insck,1,SYBASE_CT_SHARED_LIBADD)
])
+  AC_CHECK_LIB(insck, bsd_tcp,
+                    [ PHP_ADD_LIBRARY(insck,1,SYBASE_CT_SHARED_LIBADD)
])
+  LDFLAGS=$old_LDFLAGS
+
+  PHP_EXTENSION(sybase_ct, $ext_shared)
+  AC_DEFINE(HAVE_SYBASE_CT,1,[ ])
+  PHP_SUBST_OLD(SYBASE_CT_SHARED_LIBADD)
+
+fi




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



Thread (1 message)

  • nick at marden dot org
« previous php.dev (#66757) next »