diff --git a/racket/src/configure b/racket/src/configure index b4353468f8..6415cd57ca 100755 --- a/racket/src/configure +++ b/racket/src/configure @@ -712,6 +712,7 @@ PLAIN_CC MZLINKER REZ CC_FOR_BUILD +STRIP_LIB_DEBUG STRIP_DEBUG ARFLAGS STATIC_AR @@ -3177,6 +3178,7 @@ INSTALL_SETUP_RACKET_FLAGS= INSTALL_LIBS_ENABLE=no-install STRIP_DEBUG=":" +STRIP_LIB_DEBUG=":" strip_debug_flags="" enable_strip_by_default=yes @@ -4743,9 +4745,6 @@ $as_echo "#define HAVE_STDINT_H 1" >>confdefs.h PREFLAGS="$PREFLAGS -DOS_X -D_DARWIN_UNLIMITED_SELECT" try_kqueue_syscall=yes - # Needed when stripping ".a"s: - strip_debug_flags=" -S" - # ".a" is typically not useful, since we always build a ".dylib": if test "${enable_libs}" == "" ; then INSTALL_LIBS_ENABLE=no-install @@ -4855,6 +4854,11 @@ if test "${enable_strip}" = "" ; then fi fi +try_archive_conftest() +{ + $AR $ARFLAGS conftest.a conftest.$OBJEXT > /dev/null 2>&1 +} + if test "${enable_strip}" = "yes" ; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. @@ -4949,7 +4953,32 @@ else fi # Used to add -S flag, but not all `strip' variants support it: - STRIP_DEBUG="${STRIP}${strip_debug_flags}" + STRIP_DEBUG="${STRIP}" + if test "${INSTALL_LIBS_ENABLE}" = "install" ; then + # Can only support library stripping if something like "-S" is available: + msg="for strip -S" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking $msg" >&5 +$as_echo_n "checking $msg... " >&6; } + set_strip_lib=no + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int f() { return 0; } +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + try_archive_conftest +else + set_strip_lib=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + if test conftest.a ; then + if "${STRIP_DEBUG}" -S conftest.a > /dev/null 2>&1 ; then + STRIP_LIB_DEBUG="${STRIP_DEBUG} -S" + set_strip_lib=yes + fi + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $set_strip_lib" >&5 +$as_echo "$set_strip_lib" >&6; } + fi fi ############## C flags ################ @@ -6880,6 +6909,7 @@ LIBS="$LIBS $EXTRALIBS" + mk_needed_dir() diff --git a/racket/src/racket/Makefile.in b/racket/src/racket/Makefile.in index 396a2eff78..2d8e4c750d 100644 --- a/racket/src/racket/Makefile.in +++ b/racket/src/racket/Makefile.in @@ -37,6 +37,7 @@ ARFLAGS = @ARFLAGS@ RANLIB = @RANLIB@ STRIP_DEBUG = @STRIP_DEBUG@ +STRIP_LIB_DEBUG = @STRIP_LIB_DEBUG@ ARLIBFLAGS = @LDFLAGS@ @LIBS@ @@ -406,8 +407,8 @@ unix-install-cgc: unix-install-libs-cgc: cd ..; $(ICP) racket/libmzgc.@LIBSFX@ "$(DESTDIR)$(libdir)/libmzgc.@LIBSFX@" cd ..; $(ICP) racket/libracket.@LIBSFX@ "$(DESTDIR)$(libdir)/libracket.@LIBSFX@" - cd ..; $(STRIP_DEBUG) "$(DESTDIR)$(libdir)/libmzgc.@LIBSFX@" - cd ..; $(STRIP_DEBUG) "$(DESTDIR)$(libdir)/libracket.@LIBSFX@" + cd ..; $(STRIP_LIB_DEBUG) "$(DESTDIR)$(libdir)/libmzgc.@LIBSFX@" + cd ..; $(STRIP_LIB_DEBUG) "$(DESTDIR)$(libdir)/libracket.@LIBSFX@" unix-no-install-libs-cgc: $(NOOP) @@ -424,7 +425,7 @@ unix-install-3m: unix-install-libs-3m: cd ..; $(ICP) racket/libracket3m.@LIBSFX@ "$(DESTDIR)$(libdir)/libracket3m.@LIBSFX@" - cd ..; $(STRIP_DEBUG) "$(DESTDIR)$(libdir)/libracket3m.@LIBSFX@" + cd ..; $(STRIP_LIB_DEBUG) "$(DESTDIR)$(libdir)/libracket3m.@LIBSFX@" unix-no-install-libs-3m: $(NOOP) diff --git a/racket/src/racket/configure.ac b/racket/src/racket/configure.ac index 8ad72a7af4..aea5974d24 100644 --- a/racket/src/racket/configure.ac +++ b/racket/src/racket/configure.ac @@ -450,6 +450,7 @@ INSTALL_SETUP_RACKET_FLAGS= INSTALL_LIBS_ENABLE=no-install STRIP_DEBUG=":" +STRIP_LIB_DEBUG=":" strip_debug_flags="" enable_strip_by_default=yes @@ -867,9 +868,6 @@ case "$host_os" in PREFLAGS="$PREFLAGS -DOS_X -D_DARWIN_UNLIMITED_SELECT" try_kqueue_syscall=yes - # Needed when stripping ".a"s: - strip_debug_flags=" -S" - # ".a" is typically not useful, since we always build a ".dylib": if test "${enable_libs}" == "" ; then INSTALL_LIBS_ENABLE=no-install @@ -979,10 +977,29 @@ if test "${enable_strip}" = "" ; then fi fi +try_archive_conftest() +{ + $AR $ARFLAGS conftest.a conftest.$OBJEXT > /dev/null 2>&1 +} + if test "${enable_strip}" = "yes" ; then AC_CHECK_TOOL([STRIP], [strip]) # Used to add -S flag, but not all `strip' variants support it: - STRIP_DEBUG="${STRIP}${strip_debug_flags}" + STRIP_DEBUG="${STRIP}" + if test "${INSTALL_LIBS_ENABLE}" = "install" ; then + # Can only support library stripping if something like "-S" is available: + [ msg="for strip -S" ] + AC_MSG_CHECKING($msg) + set_strip_lib=no + AC_COMPILE_IFELSE([AC_LANG_SOURCE([int f() { return 0; }])], try_archive_conftest, set_strip_lib=no ) + if test conftest.a ; then + if "${STRIP_DEBUG}" -S conftest.a > /dev/null 2>&1 ; then + STRIP_LIB_DEBUG="${STRIP_DEBUG} -S" + set_strip_lib=yes + fi + fi + AC_MSG_RESULT($set_strip_lib) + fi fi ############## C flags ################ @@ -1692,6 +1709,7 @@ AC_SUBST(AR) AC_SUBST(STATIC_AR) AC_SUBST(ARFLAGS) AC_SUBST(STRIP_DEBUG) +AC_SUBST(STRIP_LIB_DEBUG) AC_SUBST(CC_FOR_BUILD) AC_SUBST(REZ) AC_SUBST(MZLINKER)