[Date Prev][Date Next] [Chronological] [Thread] [Top]

Re: Common symbols break OpenLDAP on Mac OS X (ITS#796)

The provided patch does not cleanly apply against libtool 1.3.5
components (currently found in HEAD).  Can you verify exactly
which changes are needed?  Thanks


At 11:49 AM 10/2/00 +0000, lukeh@padl.com wrote:
>Full_Name: Luke Howard
>Version: 2.x
>OS: Mac OS X Public Beta (aka Darwin 1.2)
>URL: http://www.padl.com/~lukeh/lukeh-001002.diff
>Submission from: (NULL) (
>OpenLDAP 2.x builds fine on Mac OS X public beta, providing that you build with
>--disable-shared, you replace config.guess and config.sub with the ones
>/usr/libexec, and you patch libtool to support the "dyld" dynamic linker... 
>[NB. There is an obscure race condition in the pthread configure test which I'm
>still looking at, however this seems to succeed at least _some_ of the time.
>Edward Moy <emoy@apple.com> is also looking at this.]
>However, building with --enable-shared (the default) fails because the linker
>does not support common (uninitialized global) symbols. There are a few of these
>in the libraries (liblber and libldap_r) and the patch below initializes these.
>To summarize the diffs in the patch:
>- patch from Fred Sanchez <wsanchez@apple.com> to ltmain.sh and ltconfig to
>support "dyld" dynamic linker. Fred has submitted these to the GNU libtool folk.
>I modified this so that libtool invokes cc with -undefined suppress, otherwise
>the dependency of libldap upon liblber is not handled correctly (fails with
>undefined symbols). There may be a cleaner way to do this (eg. hack the
>makefiles to depend on liblber) but as it's expected that the user will link
>against both liblber and libldap I think this is safe.
>- patch to config.guess and config.sub to support Darwin (Mac OS X core).
>- initialize global variables to NULL, guarded with #ifdef __APPLE__.
>(Initializing mutexes is thread-library dependent, I think.)
>- terminate sed scripts in build/mkdep