On 2012-05-04 10:40, Hartmann, O. wrote:> On all FreeBSD 10-CURRENt boxes, built with CLANG, there is no OpenLDAP > anymore since yesterday's buildworld! > OpenLDAP (slapd), the most recent build from the ports (recompiled > everything in hope to fix the problem) coredumps immediately after it > tries to start. Examination of the cause with slapd -d256 doesn't work.
Which version of openldap did you use? I built openldap24-server with its default settings, and it starts up just fine. ... > Recompiling everything prerequisit for OpenLDAP/SASL revealed that even > now databases/db5 isn't compiling with CLANG anymore (which has before > the last LLVM update). > > What happened? Why is CLANG (3.1?) now so picky about some __atomic_... > statements? This is because bdb5 tries to redefine gcc's builtin atomic functions, which are also supported by clang (this is a feature :). It is rather dumb to use names starting with underscores for this, since they are reserved. The same problem occurs if you compile with gcc 4.7 or higher, albeit gcc apparently doesn't think this is serious enough to bail out: ./libtool --mode=compile /usr/local/bin/gcc47 -c -I. -I./../src -D_THREAD_SAFE -O2 -pipe -fno-strict-aliasing ../src/mutex/mut_tas.c libtool: compile: /usr/local/bin/gcc47 -c -I. -I./../src -D_THREAD_SAFE -O2 -pipe -fno-strict-aliasing ../src/mutex/mut_tas.c -fPIC -DPIC -o .libs/mut_tas.o In file included from ./../src/dbinc/mutex_int.h:12:0, from ./../src/dbinc/mutex.h:15, from ./db_int.h:1089, from ../src/mutex/mut_tas.c:11: ./../src/dbinc/atomic.h:179:19: warning: conflicting types for built-in function '__atomic_compare_exchange' [enabled by default] In any case, attached is a simple patch to fix the db5 port.
Index: databases/db5/files/patch-src_dbinc_atomic.h =================================================================== RCS file: databases/db5/files/patch-src_dbinc_atomic.h diff -N databases/db5/files/patch-src_dbinc_atomic.h --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ databases/db5/files/patch-src_dbinc_atomic.h 4 May 2012 21:07:42 -0000 @@ -0,0 +1,20 @@ +--- ../src/dbinc/atomic.h.orig 2012-02-29 19:48:38.000000000 +0100 ++++ ../src/dbinc/atomic.h 2012-05-04 22:39:32.000000000 +0200 +@@ -144,7 +144,7 @@ typedef LONG volatile *interlocked_val; + #define atomic_inc(env, p) __atomic_inc(p) + #define atomic_dec(env, p) __atomic_dec(p) + #define atomic_compare_exchange(env, p, o, n) \ +- __atomic_compare_exchange((p), (o), (n)) ++ __atomic_compare_exchange_db((p), (o), (n)) + static inline int __atomic_inc(db_atomic_t *p) + { + int temp; +@@ -176,7 +176,7 @@ static inline int __atomic_dec(db_atomic + * http://gcc.gnu.org/onlinedocs/gcc-4.1.0/gcc/Atomic-Builtins.html + * which configure could be changed to use. + */ +-static inline int __atomic_compare_exchange( ++static inline int __atomic_compare_exchange_db( + db_atomic_t *p, atomic_value_t oldval, atomic_value_t newval) + { + atomic_value_t was;
_______________________________________________ freebsd-current@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-current To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"