From 20a0a20409fe47131e91346f474e05abe19857ab Mon Sep 17 00:00:00 2001 From: Matthew Flatt Date: Mon, 19 Jan 2009 16:11:43 +0000 Subject: [PATCH] configure+Makefile adjustments to support --as-needed linking (do not merge, yet) svn: r13224 --- src/configure | 4 ++-- src/mred/Makefile.in | 1 + src/mred/gc2/Makefile.in | 3 ++- src/mzscheme/Makefile.in | 2 ++ src/mzscheme/configure.ac | 4 ++-- src/mzscheme/gc2/Makefile.in | 2 ++ 6 files changed, 11 insertions(+), 5 deletions(-) diff --git a/src/configure b/src/configure index 36740c961d..e43d327eb6 100755 --- a/src/configure +++ b/src/configure @@ -5799,7 +5799,7 @@ case $OS in fi ;; Linux) - LIBS="$LIBS -rdynamic" + LIBS="$LIBS -ldl -lm -rdynamic" DYN_CFLAGS="-fPIC" GC_THREADS_FLAG="-DGC_LINUX_THREADS" # PPC: X11 librares are not found @@ -11672,7 +11672,7 @@ if test "${enable_shared}" = "yes" ; then plt_lib_version=`grep " MZSCHEME_VERSION " ${srcdir}/mzscheme/src/schvers.h | cut -d '"' -f 2` fi - AR="${LIBTOOLPROG} --mode=link --tag=CC $CC${need_gcc_static_libgcc}${ar_libtool_no_undefined} -release ${plt_lib_version} -rpath ${abslibdir} -o" + AR="${LIBTOOLPROG} --mode=link --tag=CC $CC${need_gcc_static_libgcc}${ar_libtool_no_undefined} -release ${plt_lib_version} -rpath ${abslibdir} \$(ARLIBFLAGS) -o" STATIC_AR="${LIBTOOLPROG} --mode=link --tag=CC $CC -o" ARFLAGS="" RANLIB=":" diff --git a/src/mred/Makefile.in b/src/mred/Makefile.in index 117f958011..0fd3236527 100644 --- a/src/mred/Makefile.in +++ b/src/mred/Makefile.in @@ -48,6 +48,7 @@ INC = -I$(PLTSRCDIR)/mzscheme/$(GCDIRECTORY) $(NOGCINC) CXXFLAGS = $(INC) $(XINCLUDE) $(OPTIONS) -D$(WXVARIANT) @COMPFLAGS@ @PROFFLAGS@ @CXXFLAGS@ @PREFLAGS@ CFLAGS = $(INC) $(XINCLUDE) $(OPTIONS) -D$(WXVARIANT) @COMPFLAGS@ @PROFFLAGS@ @CFLAGS@ @PREFLAGS@ LDFLAGS = @LDFLAGS@ $(XLIB) +ARLIBFLAGS = $(LDFLAGS) $(LDLIBS) ########################### MREDLINKER = @MREDLINKER@ diff --git a/src/mred/gc2/Makefile.in b/src/mred/gc2/Makefile.in index 2417f2c558..c2cde1e10f 100644 --- a/src/mred/gc2/Makefile.in +++ b/src/mred/gc2/Makefile.in @@ -45,6 +45,7 @@ INC = -I$(PLTSRCDIR)/mzscheme/$(GCDIRECTORY) $(NOGCINC) CXXFLAGS = $(INC) $(XINCLUDE) $(OPTIONS) -D$(WXVARIANT) @COMPFLAGS@ @PROFFLAGS@ @CXXFLAGS@ @PREFLAGS@ CFLAGS = $(INC) $(XINCLUDE) $(OPTIONS) -D$(WXVARIANT) @COMPFLAGS@ @PROFFLAGS@ @CFLAGS@ @PREFLAGS@ LDFLAGS = @LDFLAGS@ $(XLIB) +ARLIBFLAGS = $(LDFLAGS) $(LDLIBS) ########################### CPP = @CPP@ @@ -1362,7 +1363,7 @@ MREDMZOBJS_a = $(MZOBJS) MREDMZOBJS_la = ../libmred3m.@LIBSFX@: $(XOBJS) $(MZOBJS) $(@WXVARIANT@_PLAIN_OBJS) $(EXTRA_MZ_OBJS) - $(AR) $(ARFLAGS) ../libmred3m.@LIBSFX@ $(XOBJS) $(LIBMREDMZOBJS_@LIBSFX@) $(@WXVARIANT@_PLAIN_OBJS) $(EXTRA_MZ_OBJS) $(LIBMREDLIBS_@LIBSFX@) + $(AR) $(ARFLAGS) ../libmred3m.@LIBSFX@ $(XOBJS) $(LIBMREDMZOBJS_@LIBSFX@) $(@WXVARIANT@_PLAIN_OBJS) $(EXTRA_MZ_OBJS) $(LIBMREDLIBS_@LIBSFX@) $(RANLIB) ../libmred3m.@LIBSFX@ ../mred@MMM@@NOT_OSX@: mrmain.@LTO@ ../libmred3m.@LIBSFX@ diff --git a/src/mzscheme/Makefile.in b/src/mzscheme/Makefile.in index cc976ebf4c..5de4dbb24f 100644 --- a/src/mzscheme/Makefile.in +++ b/src/mzscheme/Makefile.in @@ -23,6 +23,8 @@ AR = @AR@ ARFLAGS = @ARFLAGS@ RANLIB = @RANLIB@ +ARLIBFLAGS = @LDFLAGS@ @LIBS@ + MZSRC = $(srcdir)/src FOREIGN_DIR = ../foreign diff --git a/src/mzscheme/configure.ac b/src/mzscheme/configure.ac index 1ed975c428..91f3ca3e2f 100644 --- a/src/mzscheme/configure.ac +++ b/src/mzscheme/configure.ac @@ -534,7 +534,7 @@ case $OS in fi ;; Linux) - LIBS="$LIBS -rdynamic" + LIBS="$LIBS -ldl -lm -rdynamic" DYN_CFLAGS="-fPIC" GC_THREADS_FLAG="-DGC_LINUX_THREADS" # PPC: X11 librares are not found @@ -1233,7 +1233,7 @@ if test "${enable_shared}" = "yes" ; then plt_lib_version=`grep " MZSCHEME_VERSION " ${srcdir}/mzscheme/src/schvers.h | cut -d '"' -f 2` fi - AR="${LIBTOOLPROG} --mode=link --tag=CC $CC${need_gcc_static_libgcc}${ar_libtool_no_undefined} -release ${plt_lib_version} -rpath ${abslibdir} -o" + AR="${LIBTOOLPROG} --mode=link --tag=CC $CC${need_gcc_static_libgcc}${ar_libtool_no_undefined} -release ${plt_lib_version} -rpath ${abslibdir} \$(ARLIBFLAGS) -o" STATIC_AR="${LIBTOOLPROG} --mode=link --tag=CC $CC -o" ARFLAGS="" RANLIB=":" diff --git a/src/mzscheme/gc2/Makefile.in b/src/mzscheme/gc2/Makefile.in index 3dce9e6b25..bdbf6a0a35 100644 --- a/src/mzscheme/gc2/Makefile.in +++ b/src/mzscheme/gc2/Makefile.in @@ -22,6 +22,8 @@ CPPFLAGS = @PREFLAGS@ @OPTIONS@ @GC2OPTIONS@ @MZOPTIONS@ -I$(builddir)/.. -I$(sr CFLAGS = @CFLAGS@ $(CPPFLAGS) @COMPFLAGS@ @PROFFLAGS@ LIBS = @LIBS@ +ARLIBFLAGS = @LDFLAGS@ $(LIBS) + DEF_COLLECTS_DIR = +D INITIAL_COLLECTS_DIRECTORY='"'"`cd $(srcdir)/../../../collects; pwd`"'"' XFORM_SETUP = ../mzscheme@CGC@ -cqu $(srcdir)/xform.ss --setup .