From 6e561c7f7de2e1489033da40472311147a46c1f9 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Tue, 6 Nov 2007 02:16:55 +0100 Subject: r25850: Add macro for picflag. (This used to be commit 9ebc6f2d17349b214618d65b29826867796c12ce) --- source4/build/m4/check_ld.m4 | 20 ++----------- source4/lib/ldb/Makefile.in | 12 ++++++-- source4/lib/ldb/configure.ac | 1 + source4/lib/replace/libreplace_ld.m4 | 55 ++++++++++++++++++++++++++++++++++++ 4 files changed, 67 insertions(+), 21 deletions(-) diff --git a/source4/build/m4/check_ld.m4 b/source4/build/m4/check_ld.m4 index 9bc96fb83f..2d2b53e948 100644 --- a/source4/build/m4/check_ld.m4 +++ b/source4/build/m4/check_ld.m4 @@ -56,7 +56,6 @@ case "$host_os" in SHLD_FLAGS="-shared -Wl,-Bsymbolic" SHLD_UNDEF_FLAGS="-Wl,--allow-shlib-undefined" LDFLAGS="$LDFLAGS -Wl,--export-dynamic" - PICFLAG="-fPIC" SONAMEFLAG="-Wl,-soname=" ;; *solaris*) @@ -64,13 +63,11 @@ case "$host_os" in SHLD_FLAGS="-G" SONAMEFLAG="-h " if test "${GCC}" = "yes"; then - PICFLAG="-fPIC" SONAMEFLAG="-Wl,-soname=" if test "${ac_cv_prog_gnu_ld}" = "yes"; then LDFLAGS="$LDFLAGS -Wl,-E" fi else - PICFLAG="-KPIC" ## ${CFLAGS} added for building 64-bit shared ## libs using Sun's Compiler SHLD_FLAGS="-G \${CFLAGS}" @@ -80,20 +77,17 @@ case "$host_os" in BLDSHARED="true" SHLD_FLAGS="-G" SONAMEFLAG="-Wl,-h," - PICFLAG="-KPIC" # Is this correct for SunOS ;; *netbsd* | *freebsd* | *dragonfly* ) BLDSHARED="true" LDFLAGS="$LDFLAGS -Wl,--export-dynamic" SONAMEFLAG="-Wl,-soname," - PICFLAG="-fPIC -DPIC" ;; *openbsd*) # disabled because us4 fails to link libtorture.so BLDSHARED="false" LDFLAGS="$LDFLAGS -Wl,-Bdynamic" SONAMEFLAG="-Wl,-soname," - PICFLAG="-fPIC" ;; *irix*) # disabled because us4 fails to link libtorture.so @@ -101,19 +95,12 @@ case "$host_os" in SHLD_FLAGS="-set_version sgi1.0 -shared" SONAMEFLAG="-soname " SHLD="${PROG_LD}" - if test "${GCC}" = "yes"; then - PICFLAG="-fPIC" - else - PICFLAG="-KPIC" - fi ;; *aix*) # disabled because us4 fails to link libtorture.so BLDSHARED="false" SHLD_FLAGS="-Wl,-G,-bexpall,-bbigtoc" LDFLAGS="$LDFLAGS -Wl,-brtl,-bexpall,-bbigtoc" - # as AIX code is always position independent... - PICFLAG="-O2" ;; *hpux*) # Use special PIC flags for the native HP-UX compiler. @@ -121,14 +108,11 @@ case "$host_os" in BLDSHARED="true" SHLD_FLAGS="-b -Wl,-B,symbolic,-b,-z" SONAMEFLAG="-Wl,+h " - PICFLAG="+z +ESnolit" elif test "${GCC}" = "yes"; then BLDSHARED="true" # I hope this is correct - PICFLAG="-fPIC" fi if test "$host_cpu" = "ia64"; then SHLIBEXT="so" - PICFLAG="+z" LDFLAGS="$LDFLAGS -Wl,-E,+b/usr/local/lib/hpux32:/usr/lib/hpux32" else SHLIBEXT="sl" @@ -139,12 +123,10 @@ case "$host_os" in # disabled because tru64 fails to link libtorture.so BLDSHARED="false" SONAMEFLAG="-Wl,-soname," - PICFLAG="-fPIC" ;; *unixware*) BLDSHARED="true" SONAMEFLAG="-Wl,-soname," - PICFLAG="-KPIC" ;; *darwin*) BLDSHARED="true" @@ -167,6 +149,8 @@ AC_MSG_RESULT([$STLD]) AC_MSG_CHECKING([STLD_FLAGS]) AC_MSG_RESULT([$STLD_FLAGS]) +AC_LD_PICFLAG + AC_ARG_ENABLE(shared, [ --disable-shared Disable testing for building shared libraries], [],[enable_shared=yes]) diff --git a/source4/lib/ldb/Makefile.in b/source4/lib/ldb/Makefile.in index a87d39f123..eb10311ccc 100644 --- a/source4/lib/ldb/Makefile.in +++ b/source4/lib/ldb/Makefile.in @@ -36,6 +36,7 @@ SHLIBEXT = @SHLIBEXT@ LD_EXPORT_DYNAMIC = @LD_EXPORT_DYNAMIC@ +PICFLAG = @PICFLAG@ CFLAGS=-g -I$(srcdir)/include -Iinclude -I$(srcdir) -I$(srcdir)/.. \ $(POPT_CFLAGS) $(TALLOC_CFLAGS) $(TDB_CFLAGS) \ -DLIBDIR=\"$(libdir)\" -DSHLIBEXT=\"$(SHLIBEXT)\" -DUSE_MMAP=1 @CFLAGS@ @@ -98,6 +99,11 @@ showflags: @mkdir -p `dirname $@` @$(CC) $(CFLAGS) -c $< -o $@ +.c.po: + @echo Compiling $*.c + @mkdir -p `dirname $@` + @$(CC) $(CFLAGS) $(PICFLAG) -c $< -o $@ + dirs: @mkdir -p $(DIRS) @@ -108,8 +114,8 @@ lib/libldb.a: $(OBJS) 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) -sample_module.$(SHLIBEXT): tests/sample_module.o - $(CC) -shared -o $@ tests/sample_module.o +sample_module.$(SHLIBEXT): tests/sample_module.po + $(CC) -shared -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) @@ -141,7 +147,7 @@ examples/ldbreader: examples/ldbreader.o $(LIBS) examples/ldifreader: examples/ldifreader.o $(LIBS) $(CC) -o examples/ldifreader examples/ldifreader.o $(LIB_FLAGS) -.SUFFIXES: .1 .1.xml .3 .3.xml .xml .html +.SUFFIXES: .1 .1.xml .3 .3.xml .xml .html .po manpages: @$(srcdir)/docs/builddocs.sh "$(XSLTPROC)" "$(srcdir)" diff --git a/source4/lib/ldb/configure.ac b/source4/lib/ldb/configure.ac index fac5d1542e..b4b8788253 100644 --- a/source4/lib/ldb/configure.ac +++ b/source4/lib/ldb/configure.ac @@ -72,6 +72,7 @@ AC_SUBST(TESTS) AC_SUBST(EXTRA_OBJ) AC_LD_EXPORT_DYNAMIC +AC_LD_PICFLAG 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 8d7d3d7ebb..d3d3f9464f 100644 --- a/source4/lib/replace/libreplace_ld.m4 +++ b/source4/lib/replace/libreplace_ld.m4 @@ -8,3 +8,58 @@ AC_LINK_IFELSE([ int main() { return 0; } ], AC_SUBST(LD_EXPORT_DYNAMIC) LDFLAGS="$saved_LDFLAGS" ]) + +AC_DEFUN([AC_LD_PICFLAG], +[ +case "$host_os" in + *linux*) + PICFLAG="-fPIC" + ;; + *solaris*) + if test "${GCC}" = "yes"; then + PICFLAG="-fPIC" + else + PICFLAG="-KPIC" + fi + ;; + *sunos*) + PICFLAG="-KPIC" # Is this correct for SunOS + ;; + *netbsd* | *freebsd* | *dragonfly* ) + PICFLAG="-fPIC -DPIC" + ;; + *openbsd*) + PICFLAG="-fPIC" + ;; + *irix*) + if test "${GCC}" = "yes"; then + PICFLAG="-fPIC" + else + PICFLAG="-KPIC" + fi + ;; + *aix*) + # as AIX code is always position independent... + PICFLAG="-O2" + ;; + *hpux*) + if test $ac_cv_prog_cc_Ae = yes; then + PICFLAG="+z +ESnolit" + elif test "${GCC}" = "yes"; then + PICFLAG="-fPIC" + fi + if test "$host_cpu" = "ia64"; then + PICFLAG="+z" + fi + ;; + *osf*) + PICFLAG="-fPIC" + ;; + *unixware*) + PICFLAG="-KPIC" + ;; + *darwin*) + ;; +esac +AC_SUBST(PICFLAG) +]) -- cgit