|
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 GroupAll rights reserved. |
Last updated: Sat Oct 25 07:00:02 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" ],[