[PATCH] libga68, Darwin: Link libgc statically if possible.
Iain Sandoe
iains.gcc@gmail.com
Wed Apr 2 16:06:49 GMT 2025
tested on x86_64-darwin, OK for a68 mainline?
thanks
Iain
--- 8< ---
Since libgc is not shipped with macOS installs it makes the toolchain more
portable to avoid dependencies on shared libs. If a convenience library is
available for libgc, then use it.
ChangeLog:
* libga68/configure: Regenerate.
* libga68/configure.ac: For Darwin, link with the libgc convenience
lib if it is available.
Signed-off-by: Iain Sandoe <iain@sandoe.co.uk>
---
libga68/configure | 21 +++++++++++++++------
libga68/configure.ac | 17 +++++++++++++----
2 files changed, 28 insertions(+), 10 deletions(-)
diff --git a/libga68/configure b/libga68/configure
index 5a263eff5de..f3c56c7fb78 100755
--- a/libga68/configure
+++ b/libga68/configure
@@ -634,11 +634,11 @@ ac_subst_vars='am__EXEEXT_FALSE
am__EXEEXT_TRUE
LTLIBOBJS
LIBOBJS
-extra_darwin_ldflags_libga68
-get_gcc_base_ver
LIBGA68_BOEHM_GC_LIBS
LIBGA68_BOEHM_GC_INCLUDES
LIBGA68_GCFLAGS
+extra_darwin_ldflags_libga68
+get_gcc_base_ver
libga68_VERSION
SPEC_LIBGA68_DEPS
CC_FOR_BUILD
@@ -16853,6 +16853,7 @@ if test "${with_target_bdw_gc_lib+set}" = set; then :
fi
+bdw_lib_dir=
case "$enable_algol68_gc" in
no)
use_bdw_gc=no
@@ -17024,9 +17025,6 @@ else
SPEC_LIBGA68_DEPS="$SPEC_LIBGA68_DEPS $BDW_GC_LIBS"
fi
-
-
-
# Determine what GCC version number to use in filesystem paths.
get_gcc_base_ver="cat"
@@ -17045,12 +17043,23 @@ fi
extra_darwin_ldflags_libga68=
case $host in
*-*-darwin*)
- extra_darwin_ldflags_libga68=-Wl,-U,___algol68_main ;;
+ extra_darwin_ldflags_libga68=-Wl,-U,___algol68_main
+ if test -f $bdw_lib_dir/libgc.a; then
+ # Darwin wants to link this statically into the library
+ LIBGA68_BOEHM_GC_LIBS="$bdw_lib_dir/libgc.a"
+ # No spec entry.
+ BDW_GC_LIBS=
+ fi
+ ;;
*) ;;
esac
+
+
+
+
ac_config_files="$ac_config_files Makefile"
ac_config_files="$ac_config_files libga68.spec"
diff --git a/libga68/configure.ac b/libga68/configure.ac
index 0eb7cb2cc67..8d8411c8c93 100644
--- a/libga68/configure.ac
+++ b/libga68/configure.ac
@@ -247,6 +247,7 @@ AC_ARG_WITH([target-bdw-gc-lib],
[AS_HELP_STRING([--with-target-bdw-gc-lib=PATHLIST],
[specify directories for installed bdw-gc library])])
+bdw_lib_dir=
case "$enable_algol68_gc" in
no)
use_bdw_gc=no
@@ -387,9 +388,6 @@ else
LIBGA68_BOEHM_GC_LIBS=$BDW_GC_LIBS
SPEC_LIBGA68_DEPS="$SPEC_LIBGA68_DEPS $BDW_GC_LIBS"
fi
-AC_SUBST(LIBGA68_GCFLAGS)
-AC_SUBST(LIBGA68_BOEHM_GC_INCLUDES)
-AC_SUBST(LIBGA68_BOEHM_GC_LIBS)
# Determine what GCC version number to use in filesystem paths.
GCC_BASE_VER
@@ -397,11 +395,22 @@ GCC_BASE_VER
extra_darwin_ldflags_libga68=
case $host in
*-*-darwin*)
- extra_darwin_ldflags_libga68=-Wl,-U,___algol68_main ;;
+ extra_darwin_ldflags_libga68=-Wl,-U,___algol68_main
+ if test -f $bdw_lib_dir/libgc.a; then
+ # Darwin wants to link this statically into the library
+ LIBGA68_BOEHM_GC_LIBS="$bdw_lib_dir/libgc.a"
+ # No spec entry.
+ BDW_GC_LIBS=
+ fi
+ ;;
*) ;;
esac
AC_SUBST(extra_darwin_ldflags_libga68)
+AC_SUBST(LIBGA68_GCFLAGS)
+AC_SUBST(LIBGA68_BOEHM_GC_INCLUDES)
+AC_SUBST(LIBGA68_BOEHM_GC_LIBS)
+
AC_CONFIG_SRCDIR([Makefile.am])
AC_CONFIG_FILES([Makefile])
AC_CONFIG_FILES(libga68.spec)
--
2.39.2 (Apple Git-143)
More information about the Algol68
mailing list