From: Jelmer Vernooij Date: Tue, 6 Nov 2007 01:17:05 +0000 (+0100) Subject: r25851: Move system-specific ldflags checks to libreplace so they can be used by... X-Git-Url: http://git.samba.org/samba.git/?p=jelmer%2Fsamba4-debian.git;a=commitdiff_plain;h=d28c8b822e7b571f24542409376bba8701eeef79 r25851: Move system-specific ldflags checks to libreplace so they can be used by ldb. --- diff --git a/.bzrignore b/.bzrignore index aabb1d9db..f11092e89 100644 --- a/.bzrignore +++ b/.bzrignore @@ -204,3 +204,4 @@ source/rpc_server/lsa/proto.h source/torture/winbind/proto.h source/lib/ldb/tdbtest.ldb source/lib/ldb/tdbtest.ldb +*.po diff --git a/source/build/m4/check_ld.m4 b/source/build/m4/check_ld.m4 index 2d2b53e94..77c22bcfd 100644 --- a/source/build/m4/check_ld.m4 +++ b/source/build/m4/check_ld.m4 @@ -31,7 +31,6 @@ STLD_FLAGS="-rcs" BLDSHARED="false" LD="${CC}" SHLD="${CC}" -SHLD_FLAGS="-shared" SHLIBEXT="so" SONAMEFLAG="" PICFLAG="" @@ -53,29 +52,22 @@ AC_MSG_CHECKING([whether to try to build shared libraries on $host_os]) case "$host_os" in *linux*) BLDSHARED="true" - SHLD_FLAGS="-shared -Wl,-Bsymbolic" SHLD_UNDEF_FLAGS="-Wl,--allow-shlib-undefined" LDFLAGS="$LDFLAGS -Wl,--export-dynamic" SONAMEFLAG="-Wl,-soname=" ;; *solaris*) BLDSHARED="true" - SHLD_FLAGS="-G" SONAMEFLAG="-h " if test "${GCC}" = "yes"; then SONAMEFLAG="-Wl,-soname=" if test "${ac_cv_prog_gnu_ld}" = "yes"; then LDFLAGS="$LDFLAGS -Wl,-E" fi - else - ## ${CFLAGS} added for building 64-bit shared - ## libs using Sun's Compiler - SHLD_FLAGS="-G \${CFLAGS}" fi ;; *sunos*) BLDSHARED="true" - SHLD_FLAGS="-G" SONAMEFLAG="-Wl,-h," ;; *netbsd* | *freebsd* | *dragonfly* ) @@ -92,21 +84,18 @@ case "$host_os" in *irix*) # disabled because us4 fails to link libtorture.so BLDSHARED="false" - SHLD_FLAGS="-set_version sgi1.0 -shared" SONAMEFLAG="-soname " SHLD="${PROG_LD}" ;; *aix*) # disabled because us4 fails to link libtorture.so BLDSHARED="false" - SHLD_FLAGS="-Wl,-G,-bexpall,-bbigtoc" LDFLAGS="$LDFLAGS -Wl,-brtl,-bexpall,-bbigtoc" ;; *hpux*) # Use special PIC flags for the native HP-UX compiler. if test $ac_cv_prog_cc_Ae = yes; then BLDSHARED="true" - SHLD_FLAGS="-b -Wl,-B,symbolic,-b,-z" SONAMEFLAG="-Wl,+h " elif test "${GCC}" = "yes"; then BLDSHARED="true" # I hope this is correct @@ -130,7 +119,6 @@ case "$host_os" in ;; *darwin*) BLDSHARED="true" - SHLD_FLAGS="-bundle -flat_namespace -undefined suppress" SHLIBEXT="dylib" ;; esac @@ -150,6 +138,8 @@ AC_MSG_CHECKING([STLD_FLAGS]) AC_MSG_RESULT([$STLD_FLAGS]) AC_LD_PICFLAG +AC_LD_EXPORT_DYNAMIC +AC_LD_SHLDFLAGS AC_ARG_ENABLE(shared, [ --disable-shared Disable testing for building shared libraries], diff --git a/source/lib/ldb/Makefile.in b/source/lib/ldb/Makefile.in index eb10311cc..fd0caa4a5 100644 --- a/source/lib/ldb/Makefile.in +++ b/source/lib/ldb/Makefile.in @@ -35,6 +35,7 @@ LDAP_LIBS = @LDAP_LIBS@ SHLIBEXT = @SHLIBEXT@ LD_EXPORT_DYNAMIC = @LD_EXPORT_DYNAMIC@ +SHLD_FLAGS = @SHLD_FLAGS@ PICFLAG = @PICFLAG@ CFLAGS=-g -I$(srcdir)/include -Iinclude -I$(srcdir) -I$(srcdir)/.. \ @@ -112,10 +113,10 @@ lib/libldb.a: $(OBJS) @-ranlib $@ lib/libnss_ldb.so.2: $(NSS_OBJ) $(LIBS) bin/libldb.a - $(CC) -shared -Wl,-soname,libnss_ldb.so.2 -o lib/libnss_ldb.so.2 $(NSS_OBJ) $(OBJS) $(LIB_FLAGS) + $(CC) $(SHLD_FLAGS) -Wl,-soname,libnss_ldb.so.2 -o lib/libnss_ldb.so.2 $(NSS_OBJ) $(OBJS) $(LIB_FLAGS) sample_module.$(SHLIBEXT): tests/sample_module.po - $(CC) -shared -o $@ tests/sample_module.po + $(CC) $(SHLD_FLAGS) -o $@ tests/sample_module.po bin/ldbadd: tools/ldbadd.o tools/cmdline.o $(LIBS) $(CC) -o bin/ldbadd tools/ldbadd.o tools/cmdline.o $(LIB_FLAGS) $(LD_EXPORT_DYNAMIC) diff --git a/source/lib/ldb/configure.ac b/source/lib/ldb/configure.ac index b4b878825..ffa3f4f75 100644 --- a/source/lib/ldb/configure.ac +++ b/source/lib/ldb/configure.ac @@ -73,6 +73,7 @@ AC_SUBST(EXTRA_OBJ) AC_LD_EXPORT_DYNAMIC AC_LD_PICFLAG +AC_LD_SHLDFLAGS m4_include(libldb.m4) AC_OUTPUT(Makefile ldb.pc) diff --git a/source/lib/replace/libreplace_ld.m4 b/source/lib/replace/libreplace_ld.m4 index d3d3f9464..07dd2db23 100644 --- a/source/lib/replace/libreplace_ld.m4 +++ b/source/lib/replace/libreplace_ld.m4 @@ -63,3 +63,41 @@ case "$host_os" in esac AC_SUBST(PICFLAG) ]) + +AC_DEFUN([AC_LD_SHLDFLAGS], +[ + SHLD_FLAGS="-shared" + + case "$host_os" in + *linux*) + SHLD_FLAGS="-shared -Wl,-Bsymbolic" + ;; + *solaris*) + SHLD_FLAGS="-G" + if test "${GCC}" = "no"; then + ## ${CFLAGS} added for building 64-bit shared + ## libs using Sun's Compiler + SHLD_FLAGS="-G \${CFLAGS}" + fi + ;; + *sunos*) + SHLD_FLAGS="-G" + ;; + *irix*) + SHLD_FLAGS="-set_version sgi1.0 -shared" + ;; + *aix*) + SHLD_FLAGS="-Wl,-G,-bexpall,-bbigtoc" + ;; + *hpux*) + if test $ac_cv_prog_cc_Ae = yes; then + SHLD_FLAGS="-b -Wl,-B,symbolic,-b,-z" + fi + ;; + *darwin*) + SHLD_FLAGS="-bundle -flat_namespace -undefined suppress" + ;; + esac + + AC_SUBST(SHLD_FLAGS) +])