[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