|   | php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login | 
| 
  [2003-05-13 08:34 UTC] tommi dot komulainen at iki dot fi
 The configure script is unable to find the db4 in the system, because it isn't
taking into account #defines such as the following in /usr/include/db.h:
#define db_create db_create_4001
The library does not contain unversioned symbols and therefore the configure
script needs to #include the db.h to be able to make proper checks for the
versioned symbols.
Replacing the AC_CHECK_LIB with somewhat similar AC_TRY_LINK should do the
trick.  See the following patch (I've only tried it with db4.1, I don't know if
the function signature is the same for older versions, but I'd think so.)
--- ext/dba/config.m4.orig	2003-04-14 00:05:41.000000000 +0300
+++ ext/dba/config.m4	2003-05-13 16:15:37.000000000 +0300
@@ -136,17 +136,19 @@
 AC_DEFUN(PHP_DBA_DB_CHECK,[
   for LIB in $2; do
     if test -f $THIS_PREFIX/lib/lib$LIB.a -o -f $THIS_PREFIX/lib/lib$LIB.$SHLIB_SUFFIX_NAME; then
-      PHP_TEMP_LDFLAGS(-L$THIS_PREFIX/lib,[
-        AC_CHECK_LIB($LIB, $3, [
-          AC_EGREP_CPP(yes,[
+      PHP_TEMP_LDFLAGS(-L$THIS_PREFIX/lib -l$LIB,[
+	AC_MSG_CHECKING(db_create in $LIB)
+        AC_TRY_LINK([
 #include "$THIS_INCLUDE"
-            yes
-#endif
-          ],[
-            THIS_LIBS=$LIB
-            break
-          ])
-        ])
+	],[
+(void)db_create((DB**)0, (DB_ENV*)0, 0);
+	],[
+	  AC_MSG_RESULT(yes)
+	  THIS_LIBS=$LIB
+	  break
+	],[
+	  AC_MSG_RESULT(no)
+	])
       ])
     fi
   done
PatchesPull RequestsHistoryAllCommentsChangesGit/SVN commits             | |||||||||||||||||||||||||||
|  Copyright © 2001-2025 The PHP Group All rights reserved. | Last updated: Fri Oct 31 07:00:01 2025 UTC | 
not fixed in CVS! problem: incorrect order of c src and libs. you must prepend LDFLAGS and LIBS, seperate LIBS from LDFLAGS. $ gcc -o conftest -g -O2 -L/usr/lib -ldb-4.2 conftest.c -lresolv -lm /tmp/ccozwee7.o(.text+0x29): In function `main': /usr/src/apache-php/php-4.3.9/conftest.c:7: undefined reference to `_db_create' collect2: ld returned 1 exit status rurban@reini /usr/src/apache-php/php-4.3.9 $ gcc -o conftest -g -O2 conftest.c -L/usr/lib -ldb-4.2 -lresolv -lm (the same goes for ext/ldap/config.m4) patch: $ diff -bu ext/dba/config.m4~ ext/dba/config.m4 --- ext/dba/config.m4~ 2004-03-08 01:01:03.000000000 +0100 +++ ext/dba/config.m4 2004-09-24 13:27:27.121674400 +0100 @@ -11,8 +11,11 @@ AC_DEFUN(PHP_TEMP_LDFLAGS,[ old_LDFLAGS=$LDFLAGS LDFLAGS="$1 $LDFLAGS" - $2 + old_LIBS=$LIBS + LIBS="$2 LIBS" + $3 LDFLAGS=$old_LDFLAGS + LIBS=$old_LIBS ]) dnl Assign INCLUDE/LFLAGS from PREFIX @@ -134,7 +137,7 @@ AC_DEFUN(PHP_DBA_DB_CHECK,[ for LIB in $2; do if test -f $THIS_PREFIX/lib/lib$LIB.a -o -f $THIS_PREFIX/lib/lib$LIB.$SHLIB_SUFFIX_NAME; then - PHP_TEMP_LDFLAGS(-L$THIS_PREFIX/lib -l$LIB,[ + PHP_TEMP_LDFLAGS(-L$THIS_PREFIX/lib, -l$LIB,[ AC_TRY_LINK([ #include "$THIS_INCLUDE" ],[