summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJelmer Vernooij <jelmer@samba.org>2007-11-06 02:17:05 +0100
committerStefan Metzmacher <metze@samba.org>2007-12-21 05:44:27 +0100
commitdd66e34d416a95c1a1d36b032c72f781b14a13b7 (patch)
treeffda2adf6514a199b8a93932e04c911a82bf90d2
parent6e561c7f7de2e1489033da40472311147a46c1f9 (diff)
downloadsamba-dd66e34d416a95c1a1d36b032c72f781b14a13b7.tar.gz
samba-dd66e34d416a95c1a1d36b032c72f781b14a13b7.tar.bz2
samba-dd66e34d416a95c1a1d36b032c72f781b14a13b7.zip
r25851: Move system-specific ldflags checks to libreplace so they can be used by ldb.
(This used to be commit d28c8b822e7b571f24542409376bba8701eeef79)
-rw-r--r--.bzrignore1
-rw-r--r--source4/build/m4/check_ld.m414
-rw-r--r--source4/lib/ldb/Makefile.in5
-rw-r--r--source4/lib/ldb/configure.ac1
-rw-r--r--source4/lib/replace/libreplace_ld.m438
5 files changed, 45 insertions, 14 deletions
diff --git a/.bzrignore b/.bzrignore
index aabb1d9db4..f11092e899 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/source4/build/m4/check_ld.m4 b/source4/build/m4/check_ld.m4
index 2d2b53e948..77c22bcfd6 100644
--- a/source4/build/m4/check_ld.m4
+++ b/source4/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/source4/lib/ldb/Makefile.in b/source4/lib/ldb/Makefile.in
index eb10311ccc..fd0caa4a5c 100644
--- a/source4/lib/ldb/Makefile.in
+++ b/source4/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/source4/lib/ldb/configure.ac b/source4/lib/ldb/configure.ac
index b4b8788253..ffa3f4f750 100644
--- a/source4/lib/ldb/configure.ac
+++ b/source4/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/source4/lib/replace/libreplace_ld.m4 b/source4/lib/replace/libreplace_ld.m4
index d3d3f9464f..07dd2db231 100644
--- a/source4/lib/replace/libreplace_ld.m4
+++ b/source4/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)
+])