On Wed, Apr 28, 2004, Karl Vogel wrote:
> Build of subversion fails because apr-util can't find a suitable Berkeley
> DB. This is caused by Berkeley DB needing pthreads on Tru64:
>
> http://cvs.openpkg.org/chngview?cn=16152
>
> Therefor everything that links to libdb.a also requires pthreads. apr-util
> however doesn't know this, which makes the following configure check fail:
>
> configure:19350: checking for -ldb
> configure:19411: /usr/users/kvo/openpkg/dev/bin/cc -o conftest -O2
> -I/usr/users/kvo/openpkg/dev/include/libxml2
> -I/usr/users/kvo/openpkg/dev/include -DOSF1
> -L/usr/users/kvo/openpkg/dev/lib conftest.c -ldb 1>&5
> pthread_mutexattr_init
> pthread_mutexattr_destroy
> pthread_condattr_init
> pthread_condattr_destroy
> pthread_mutexattr_setpshared
> pthread_condattr_setpshared
> collect2: ld returned 1 exit status
> configure: failed program was:
> #line 19370 "configure"
> #include "confdefs.h"
>
> #include <stdio.h>
> #include <db.h>
> main ()
> {
> int major, minor, patch;
>
> db_version(&major, &minor, &patch);
>
> /* Sanity check: ensure that db.h constants actually match the db library
> */
> if (major != DB_VERSION_MAJOR
> || minor != DB_VERSION_MINOR
> || patch != DB_VERSION_PATCH)
> exit (1);
>
> /* Run-time check: ensure the library claims to be the correct version.
> */
> [...]
>
> Adding -lpthread (or -pthread) to the compile line, makes this test succeed.
>
> Now for the difficult part.. any suggestions on how to resolve this? (not
> just for subversion but for all packages depending on Berkeley DB?
> pkg-config comes to mind... does openpkg have something similar ?!?!?)
Berkeley-DB can be told to use different types of mutexes. The default
on Tru64 seems to be Pthread API based. Look into db.spec: we for
instance force the use of x86/gcc-assembly mutexes on the usual Intel
platforms to avoid Pthread API dependencies under FreeBSD, Linux
and Solaris/x86. In openpkg.spec we go even further: we enforce the
UNIX/fcntl mutex variant which is available really everywhere. I
recommend you to try in db.spec a check for Tru64 where you enforce
mutex="UNIX/fcntl". Check whether this works as expected...
If yes, I think we should even use the following non-Tru64 related patch:
Index: db.spec
===================================================================
RCS file: /e/openpkg/cvs/openpkg-src/db/db.spec,v
retrieving revision 1.44
diff -u -d -u -d -u -d -r1.44 db.spec
--- db.spec 26 Apr 2004 08:59:43 -0000 1.44
+++ db.spec 28 Apr 2004 16:39:26 -0000
@@ -91,6 +91,7 @@
mutex="no"
case "%{l_platform -p}" in
ix86-* ) mutex="x86/gcc-assembly" ;;
+ * ) mutex="UNIX/fcntl" ;;
esac
cd build_unix
CC="%{l_cc}" \
Ralf S. Engelschall
[EMAIL PROTECTED]
www.engelschall.com
______________________________________________________________________
The OpenPKG Project www.openpkg.org
Developer Communication List [EMAIL PROTECTED]