From df72eb16a5bda90be31681a8d494a4053f891986 Mon Sep 17 00:00:00 2001
From: Iain Sandoe <iain@sandoe.co.uk>
Date: Sun, 22 Sep 2024 11:43:32 +0100
Subject: [PATCH 2/3] libgcc, Darwin: Drop the legacy library build for macOS
 >= 15 [PR116809].

We have been building a legacy libgcc_s.1 DSO to support code that
was built with older compilers.

From macOS 15,  the unwinder no longer exports some of the symbols used
in that library which (a) cuases bootstrap fail and (b) means that the
legacy library is no longer useful.

No open branch of GCC emits references to this library - and any already
-built code that depends on the symbols would need rework anyway.

	PR target/116809

libgcc/ChangeLog:

	* config.host: Build legacy libgcc_s.1 on hosts before macOS 15.
	* config/i386/t-darwin: Remove reference to legacy libgcc_s.1
	* config/rs6000/t-darwin: Likewise.
	* config/t-darwin-libgccs1: New file.

Signed-off-by: Iain Sandoe <iain@sandoe.co.uk>
(cherry picked from commit d9cafa0c4f0a81304d9b95a78ccc8e9003c6d7a3)
---
 libgcc/config.host              | 11 +++++++----
 libgcc/config/i386/t-darwin     |  3 ---
 libgcc/config/rs6000/t-darwin   |  3 ---
 libgcc/config/t-darwin-libgccs1 |  3 +++
 4 files changed, 10 insertions(+), 10 deletions(-)
 create mode 100644 libgcc/config/t-darwin-libgccs1

diff --git libgcc/config.host libgcc/config.host
index d27204f3fb47..08be426f3fe4 100644
--- libgcc/config.host
+++ libgcc/config.host
@@ -236,22 +236,25 @@ case ${host} in
   esac
   tmake_file="$tmake_file t-slibgcc-darwin"
   case ${host} in
+    x86_64-*-darwin2[0-3]*)
+      tmake_file="t-darwin-min-11 t-darwin-libgccs1 $tmake_file"
+      ;;
     *-*-darwin2*)
       tmake_file="t-darwin-min-11 $tmake_file"
       ;;
     *-*-darwin1[89]*)
-      tmake_file="t-darwin-min-8 $tmake_file"
+      tmake_file="t-darwin-min-8 t-darwin-libgccs1 $tmake_file"
       ;;
     *-*-darwin9* | *-*-darwin1[0-7]*)
-      tmake_file="t-darwin-min-5 $tmake_file"
+      tmake_file="t-darwin-min-5 t-darwin-libgccs1 $tmake_file"
       ;;
     *-*-darwin[4-8]*)
-      tmake_file="t-darwin-min-1 $tmake_file"
+      tmake_file="t-darwin-min-1 t-darwin-libgccs1 $tmake_file"
       ;;
     *)
       # Fall back to configuring for the oldest system known to work with
       # all archs and the current sources.
-      tmake_file="t-darwin-min-5 $tmake_file"
+      tmake_file="t-darwin-min-5 t-darwin-libgccs1 $tmake_file"
       echo "Warning: libgcc configured to support macOS 10.5" 1>&2
       ;;
   esac
diff --git libgcc/config/i386/t-darwin libgcc/config/i386/t-darwin
index 4c18da1efbfd..c6b3acaaca28 100644
--- libgcc/config/i386/t-darwin
+++ libgcc/config/i386/t-darwin
@@ -4,6 +4,3 @@ LIB2FUNCS_EXCLUDE = _fixtfdi _fixunstfdi _floatditf _floatunditf
 
 # Extra symbols for this port.
 SHLIB_MAPFILES += $(srcdir)/config/i386/libgcc-darwin.ver
-
-# Build a legacy libgcc_s.1
-BUILD_LIBGCCS1 = YES
diff --git libgcc/config/rs6000/t-darwin libgcc/config/rs6000/t-darwin
index 183d0df92ce9..8b513bdb1d78 100644
--- libgcc/config/rs6000/t-darwin
+++ libgcc/config/rs6000/t-darwin
@@ -56,6 +56,3 @@ unwind-dw2_s.o: HOST_LIBGCC2_CFLAGS += -maltivec
 unwind-dw2.o: HOST_LIBGCC2_CFLAGS += -maltivec
 
 LIB2ADDEH += $(srcdir)/config/rs6000/darwin-fallback.c
-
-# Build a legacy libgcc_s.1
-BUILD_LIBGCCS1 = YES
diff --git libgcc/config/t-darwin-libgccs1 libgcc/config/t-darwin-libgccs1
new file mode 100644
index 000000000000..b88b1a5bba8a
--- /dev/null
+++ libgcc/config/t-darwin-libgccs1
@@ -0,0 +1,3 @@
+
+# Build a legacy libgcc_s.1
+BUILD_LIBGCCS1 = YES
-- 
2.46.2

