From f0507df8a780e3fda3eef05bce2c74ec8d032c8e Mon Sep 17 00:00:00 2001 From: Ileana Dumitrescu Date: Thu, 20 Jun 2024 16:57:26 +0300 Subject: [PATCH] m4: Disable chained fixups for macOS Append '-no_fixup_chains' flag to disable chained fixups since it is not compatible with '-undefined dynamic_lookup'. * m4/libtool.m4: AC_VAR_APPEND will handle appending the option to the variable, which allows the '+=' extension to be used by shells that provide this capability for more efficient scaling. Also, bump minimum required version of autoconf from 2.62 to 2.64. * tests/no-executables.at: Set cache variable for link test. * NO-THANKS: Add thanks for Carlo Cabrera and Dave Allured. --- NO-THANKS | 2 ++ m4/libtool.m4 | 24 ++++++++++++++++++++++-- tests/no-executables.at | 1 + 3 files changed, 25 insertions(+), 2 deletions(-) diff --git a/NO-THANKS b/NO-THANKS index 6b6a24153..9e0264bbd 100644 --- a/NO-THANKS +++ b/NO-THANKS @@ -75,12 +75,14 @@ Andreas Stieger Andreas.Stieger@gmx.de Brent Leback brent.leback@st.com Camilo La Rota camilo.larota@ens-lyon.fr Carl D. Roth roth@cse.ucsc.edu +Carlo Cabrera carlo.antonio.cabrera@gmail.com Chris P. Ross cross@eng.us.uu.net Christian Rössel christian.roessel@gmx.de Christopher Hulbert cchgroupmail@gmail.com Craig Tierney Craig.Tierney@noaa.gov Dan McMahill mcmahill@mtl.mit.edu Daniel Richard G. skunk@iSKUNK.ORG +Dave Allured dave.allured@noaa.gov Dave Yost Dave@Yost.com Dimitri Papadopoulos dpo@sfr.fr Donn Washburn n5xwb@comcast.net diff --git a/m4/libtool.m4 b/m4/libtool.m4 index 1187330a1..bd6c99476 100644 --- a/m4/libtool.m4 +++ b/m4/libtool.m4 @@ -60,7 +60,7 @@ esac # LT_INIT([OPTIONS]) # ------------------ AC_DEFUN([LT_INIT], -[AC_PREREQ([2.62])dnl We use AC_PATH_PROGS_FEATURE_CHECK +[AC_PREREQ([2.64])dnl We use AC_PATH_PROGS_FEATURE_CHECK AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl AC_BEFORE([$0], [LT_LANG])dnl AC_BEFORE([$0], [LT_OUTPUT])dnl @@ -974,6 +974,7 @@ _lt_linker_boilerplate=`cat conftest.err` $RM -r conftest* ])# _LT_LINKER_BOILERPLATE + # _LT_REQUIRED_DARWIN_CHECKS # ------------------------- m4_defun_once([_LT_REQUIRED_DARWIN_CHECKS],[ @@ -1024,6 +1025,21 @@ m4_defun_once([_LT_REQUIRED_DARWIN_CHECKS],[ rm -f conftest.* fi]) + # Feature test to disable chained fixups since it is not + # compatible with '-undefined dynamic_lookup' + AC_CACHE_CHECK([for -no_fixup_chains linker flag], + [lt_cv_support_no_fixup_chains], + [ save_LDFLAGS=$LDFLAGS + LDFLAGS="$LDFLAGS -Wl,-no_fixup_chains" + AC_LINK_IFELSE( + [AC_LANG_PROGRAM([],[])], + lt_cv_support_no_fixup_chains=yes, + lt_cv_support_no_fixup_chains=no + ) + LDFLAGS=$save_LDFLAGS + ] + ) + AC_CACHE_CHECK([for -exported_symbols_list linker flag], [lt_cv_ld_exported_symbols_list], [lt_cv_ld_exported_symbols_list=no @@ -1073,7 +1089,11 @@ _LT_EOF 10.[[012]],*|,*powerpc*-darwin[[5-8]]*) _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;; *) - _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;; + _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' + if test yes = "$lt_cv_support_no_fixup_chains"; then + AS_VAR_APPEND([_lt_dar_allow_undefined], [' $wl-no_fixup_chains']) + fi + ;; esac ;; esac diff --git a/tests/no-executables.at b/tests/no-executables.at index 46225a6f6..7530fe366 100644 --- a/tests/no-executables.at +++ b/tests/no-executables.at @@ -50,6 +50,7 @@ AM_PROG_GCJ lt_cv_shlibpath_overrides_runpath=no lt_cv_archive_cmds_need_lc=no lt_cv_cc_needs_belf=no +lt_cv_support_no_fixup_chains=no lt_cv_ld_exported_symbols_list=no lt_cv_prog_compiler_static_works=no lt_cv_aix_libpath=/usr/lib:/lib -- 2.47.2