r25851: Move system-specific ldflags checks to libreplace so they can be used by...
authorJelmer Vernooij <jelmer@samba.org>
Tue, 6 Nov 2007 01:17:05 +0000 (02:17 +0100)
committerStefan Metzmacher <metze@samba.org>
Fri, 21 Dec 2007 04:44:27 +0000 (05:44 +0100)
.bzrignore
source/build/m4/check_ld.m4
source/lib/ldb/Makefile.in
source/lib/ldb/configure.ac
source/lib/replace/libreplace_ld.m4

index aabb1d9db4391b2324158ff14dd32e8fd26cdd5e..f11092e8994109489a1284fe4ab76bf18d079dff 100644 (file)
@@ -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
 source/torture/winbind/proto.h
 source/lib/ldb/tdbtest.ldb
 source/lib/ldb/tdbtest.ldb
+*.po
index 2d2b53e948080cd6f6e2bc4bf474cd83ebc5816d..77c22bcfd615f17c41d569c17a8c12a6a32b0fb1 100644 (file)
@@ -31,7 +31,6 @@ STLD_FLAGS="-rcs"
 BLDSHARED="false"
 LD="${CC}"
 SHLD="${CC}"
 BLDSHARED="false"
 LD="${CC}"
 SHLD="${CC}"
-SHLD_FLAGS="-shared"
 SHLIBEXT="so"
 SONAMEFLAG=""
 PICFLAG=""
 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"
 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_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
                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"
                fi
                ;;
        *sunos*)
                BLDSHARED="true"
-               SHLD_FLAGS="-G"
                SONAMEFLAG="-Wl,-h,"
                ;;
        *netbsd* | *freebsd* | *dragonfly* )  
                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"
        *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"
                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"
                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
                        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"
                ;;
        *darwin*)
                BLDSHARED="true"
-               SHLD_FLAGS="-bundle -flat_namespace -undefined suppress"
                SHLIBEXT="dylib"
                ;;
 esac
                SHLIBEXT="dylib"
                ;;
 esac
@@ -150,6 +138,8 @@ AC_MSG_CHECKING([STLD_FLAGS])
 AC_MSG_RESULT([$STLD_FLAGS])
 
 AC_LD_PICFLAG
 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],
 
 AC_ARG_ENABLE(shared,
 [  --disable-shared        Disable testing for building shared libraries],
index eb10311ccc5ae20a89d50a0eef351b2550495963..fd0caa4a5c1b133c1bef78bd8e9e5be3a55a20ab 100644 (file)
@@ -35,6 +35,7 @@ LDAP_LIBS = @LDAP_LIBS@
 SHLIBEXT = @SHLIBEXT@
 
 LD_EXPORT_DYNAMIC = @LD_EXPORT_DYNAMIC@
 SHLIBEXT = @SHLIBEXT@
 
 LD_EXPORT_DYNAMIC = @LD_EXPORT_DYNAMIC@
+SHLD_FLAGS = @SHLD_FLAGS@
 
 PICFLAG = @PICFLAG@
 CFLAGS=-g -I$(srcdir)/include -Iinclude -I$(srcdir) -I$(srcdir)/.. \
 
 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
        @-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 
 
 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)
 
 bin/ldbadd: tools/ldbadd.o tools/cmdline.o $(LIBS)
        $(CC) -o bin/ldbadd tools/ldbadd.o tools/cmdline.o $(LIB_FLAGS) $(LD_EXPORT_DYNAMIC)
index b4b87882533c4390ad90d7e55b32fc377fd43ba4..ffa3f4f7502132a71bf63ca561a94e52fc814678 100644 (file)
@@ -73,6 +73,7 @@ AC_SUBST(EXTRA_OBJ)
 
 AC_LD_EXPORT_DYNAMIC
 AC_LD_PICFLAG
 
 AC_LD_EXPORT_DYNAMIC
 AC_LD_PICFLAG
+AC_LD_SHLDFLAGS
 
 m4_include(libldb.m4)
 AC_OUTPUT(Makefile ldb.pc)
 
 m4_include(libldb.m4)
 AC_OUTPUT(Makefile ldb.pc)
index d3d3f9464fc98024ef3dd306ed66dbc0c597c4f0..07dd2db231786cc290ba8d058ead7fc834d19a4a 100644 (file)
@@ -63,3 +63,41 @@ case "$host_os" in
 esac
 AC_SUBST(PICFLAG)
 ])
 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)
+])