pkgsrc-Changes archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

CVS commit: pkgsrc/lang/gcc12



Module Name:    pkgsrc
Committed By:   brook
Date:           Sun Dec 15 03:05:12 UTC 2024

Modified Files:
        pkgsrc/lang/gcc12: distinfo
        pkgsrc/lang/gcc12/patches: patch-libgcc_config.host
Added Files:
        pkgsrc/lang/gcc12/patches: patch-libgcc_config_i386_t-darwin
            patch-libgcc_config_rs6000_t-darwin
            patch-libgcc_config_t-darwin-libgccs1
            patch-libgcc_config_t-darwin-min-11

Log Message:
The lang/gcc12, lang/gcc13, and lang/gcc14 fail to build on Darwin 24
(MacOS 15) + Xcode 16.  This is a known problem that has been fixed
upstream; see

https://nam10.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgcc.gnu.org%2Fbugzilla%2Fshow_bug.cgi%3Fid%3D116809&data=05%7C02%7Cbrook%40biology.nmsu.edu%7C9ac029bebed94a8c076f08dd19568e63%7Ca3ec87a89fb84158ba8ff11bace1ebaa%7C1%7C0%7C638694581737865288%7CUnknown%7CTWFpbGZsb3d8eyJFbXB0eU1hcGkiOnRydWUsIlYiOiIwLjAuMDAwMCIsIlAiOiJXaW4zMiIsIkFOIjoiTWFpbCIsIldUIjoyfQ%3D%3D%7C0%7C%7C%7C&sdata=DIvQP0mbOte9Pjh3UjtXsSGiQhTontx4GTQHNCFwg6E%3D&reserved=0

and associated patches from 2024-09-24 and 2024-09-27.

The basic problem is that the legacy library libgcc_s.1 referenced
private symbols in the Apple-provided runtime, which have now been
removed by Apple and therefore do not resolve.  Those symbols never
worked anyway, so there should be no legacy code using them.  The
upstream solution is to drop support for libgcc_s.1 for new versions
of Darwin.


To generate a diff of this commit:
cvs rdiff -u -r1.8 -r1.9 pkgsrc/lang/gcc12/distinfo
cvs rdiff -u -r1.1 -r1.2 pkgsrc/lang/gcc12/patches/patch-libgcc_config.host
cvs rdiff -u -r0 -r1.1 \
    pkgsrc/lang/gcc12/patches/patch-libgcc_config_i386_t-darwin \
    pkgsrc/lang/gcc12/patches/patch-libgcc_config_rs6000_t-darwin \
    pkgsrc/lang/gcc12/patches/patch-libgcc_config_t-darwin-libgccs1 \
    pkgsrc/lang/gcc12/patches/patch-libgcc_config_t-darwin-min-11

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: pkgsrc/lang/gcc12/distinfo
diff -u pkgsrc/lang/gcc12/distinfo:1.8 pkgsrc/lang/gcc12/distinfo:1.9
--- pkgsrc/lang/gcc12/distinfo:1.8      Fri Jun 28 19:16:00 2024
+++ pkgsrc/lang/gcc12/distinfo  Sun Dec 15 03:05:12 2024
@@ -1,4 +1,4 @@
-$NetBSD: distinfo,v 1.8 2024/06/28 19:16:00 adam Exp $
+$NetBSD: distinfo,v 1.9 2024/12/15 03:05:12 brook Exp $
 
 BLAKE2s (gcc-12.4.0.diff) = ff17898717cb3781dd802a3376ce9a659df97d7d4a3ec3c4bd26279755ab752b
 SHA512 (gcc-12.4.0.diff) = 1e5df17525c13ff3b79117ffb426726c47a9bbb1ffb8555a75083eff5b2134c728decf765be24e4e0bb21685e60973211e359027e9b90f298e24b501cbc899aa
@@ -24,7 +24,11 @@ SHA1 (patch-gcc_targhooks.cc) = 3bd54b7c
 SHA1 (patch-isl_configure) = 5523c76d95b229b3cd25461b4c2b7af24bf2534e
 SHA1 (patch-libffi_configure) = 919bbe094e3ce547a0186eeaddb20a662595f79a
 SHA1 (patch-libffi_testsuite_libffi.call_float2.c) = 89e2dd6aaf2c1f75726f02362d8a8bf7178694ea
-SHA1 (patch-libgcc_config.host) = d40d4d08c807eeff98cc246d1ea756b5b2c749b0
+SHA1 (patch-libgcc_config.host) = 9f7c7571408bb2112d77257dfaea3558c6ed9e06
+SHA1 (patch-libgcc_config_i386_t-darwin) = bf59366eec8a9210ccdf9e79ab770263961c92e5
+SHA1 (patch-libgcc_config_rs6000_t-darwin) = c428d1e58617f55fcf93e2672b4956ce79433834
+SHA1 (patch-libgcc_config_t-darwin-libgccs1) = 2924a8e5ca8baf72003ee8f832a7bb73eca26ba0
+SHA1 (patch-libgcc_config_t-darwin-min-11) = 4264fa3e974819daf6bb1641f066db3faea9224c
 SHA1 (patch-libgcc_crtstuff.c) = a16d465039de00c195cf0694560140a9c38f3a25
 SHA1 (patch-libgfortran_io_io.h) = d44676239a7f45e42054d24bd5224f43c20055c0
 SHA1 (patch-libquadmath_printf_quadmath-printf.c) = 78e09f1e6d61ee57cee83275093cf46b2335d204

Index: pkgsrc/lang/gcc12/patches/patch-libgcc_config.host
diff -u pkgsrc/lang/gcc12/patches/patch-libgcc_config.host:1.1 pkgsrc/lang/gcc12/patches/patch-libgcc_config.host:1.2
--- pkgsrc/lang/gcc12/patches/patch-libgcc_config.host:1.1      Thu Jun 16 15:43:55 2022
+++ pkgsrc/lang/gcc12/patches/patch-libgcc_config.host  Sun Dec 15 03:05:12 2024
@@ -1,11 +1,72 @@
-$NetBSD: patch-libgcc_config.host,v 1.1 2022/06/16 15:43:55 adam Exp $
+$NetBSD: patch-libgcc_config.host,v 1.2 2024/12/15 03:05:12 brook Exp $
 
-This is needed for arm64 to get Out-of-line LSE atomics linked into libgcc.
+Part 1: drop legacy library build for macOS >= 14 [PR116809].
+
+This is a mixture of two upstream patches.  See
+
+     https://github.com/gcc-mirror/gcc/blob/master/libgcc/config.host
+
+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, Darwin: Don't build legacy libgcc_s.1 on macOS 14 [PR116809]
+
+d9cafa0 stopped building libgcc_s.1 on macOS >= 15, in part because
+that is required to bootstrap the compiler using the macOS 15 SDK. The
+macOS 15 SDK ships in Xcode 16, which also runs on macOS 14. libgcc_s.1
+can no longer be built on macOS 14 using Xcode 16 by the same logic that
+the previous change disabled it for macOS 15.
+
+       PR target/116809
+
+Parts 2-3: This is needed for arm64 to get Out-of-line LSE atomics linked into libgcc.
 libsupc++ fails to link without this, and for arm to build.
 
---- libgcc/config.host.orig    2021-04-08 04:56:29.805761640 -0700
-+++ libgcc/config.host 2022-02-02 04:08:51.653635705 -0800
-@@ -377,6 +377,7 @@
+--- libgcc/config.host.orig    2024-06-20 08:08:09.000000000 +0000
++++ libgcc/config.host
+@@ -243,19 +243,25 @@ case ${host} in
+   tmake_file="$tmake_file t-slibgcc-darwin"
+   # newer toolsets produce warnings when building for unsupported versions.
+   case ${host} in
+-    *-*-darwin1[89]* | *-*-darwin2* )
+-      tmake_file="t-darwin-min-8 $tmake_file"
++    x86_64-*-darwin2[0-2]*)
++      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 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
+@@ -412,6 +418,7 @@ aarch64*-*-freebsd*)
  aarch64*-*-netbsd*)
        extra_parts="$extra_parts crtfastmath.o"
        tmake_file="${tmake_file} ${cpu_type}/t-aarch64"
@@ -13,7 +74,7 @@ libsupc++ fails to link without this, an
        tmake_file="${tmake_file} ${cpu_type}/t-softfp t-softfp t-crtfm"
        md_unwind_header=aarch64/aarch64-unwind.h
        ;;
-@@ -463,7 +464,8 @@
+@@ -499,7 +506,8 @@ arm*-*-netbsdelf*)
        case ${host} in
          arm*-*-netbsdelf-*eabi*)
            tmake_file="${tmake_file} arm/t-netbsd-eabi"

Added files:

Index: pkgsrc/lang/gcc12/patches/patch-libgcc_config_i386_t-darwin
diff -u /dev/null pkgsrc/lang/gcc12/patches/patch-libgcc_config_i386_t-darwin:1.1
--- /dev/null   Sun Dec 15 03:05:12 2024
+++ pkgsrc/lang/gcc12/patches/patch-libgcc_config_i386_t-darwin Sun Dec 15 03:05:12 2024
@@ -0,0 +1,27 @@
+$NetBSD: patch-libgcc_config_i386_t-darwin,v 1.1 2024/12/15 03:05:12 brook Exp $
+
+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
+
+See https://github.com/gcc-mirror/gcc/blob/master/libgcc/config/i386/t-darwin.
+
+--- libgcc/config/i386/t-darwin.orig   2024-06-20 08:08:09.000000000 +0000
++++ libgcc/config/i386/t-darwin
+@@ -4,6 +4,3 @@ LIB2FUNCS_EXCLUDE = _fixtfdi _fixunstfdi
+ 
+ # Extra symbols for this port.
+ SHLIB_MAPFILES += $(srcdir)/config/i386/libgcc-darwin.ver
+-
+-# Build a legacy libgcc_s.1
+-BUILD_LIBGCCS1 = YES
Index: pkgsrc/lang/gcc12/patches/patch-libgcc_config_rs6000_t-darwin
diff -u /dev/null pkgsrc/lang/gcc12/patches/patch-libgcc_config_rs6000_t-darwin:1.1
--- /dev/null   Sun Dec 15 03:05:12 2024
+++ pkgsrc/lang/gcc12/patches/patch-libgcc_config_rs6000_t-darwin       Sun Dec 15 03:05:12 2024
@@ -0,0 +1,27 @@
+$NetBSD: patch-libgcc_config_rs6000_t-darwin,v 1.1 2024/12/15 03:05:12 brook Exp $
+
+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
+
+See https://github.com/gcc-mirror/gcc/blob/master/libgcc/config/rs6000/t-darwin.
+
+--- libgcc/config/rs6000/t-darwin.orig 2024-06-20 08:08:09.000000000 +0000
++++ libgcc/config/rs6000/t-darwin
+@@ -56,6 +56,3 @@ unwind-dw2_s.o: HOST_LIBGCC2_CFLAGS += -
+ unwind-dw2.o: HOST_LIBGCC2_CFLAGS += -maltivec
+ 
+ LIB2ADDEH += $(srcdir)/config/rs6000/darwin-fallback.c
+-
+-# Build a legacy libgcc_s.1
+-BUILD_LIBGCCS1 = YES
Index: pkgsrc/lang/gcc12/patches/patch-libgcc_config_t-darwin-libgccs1
diff -u /dev/null pkgsrc/lang/gcc12/patches/patch-libgcc_config_t-darwin-libgccs1:1.1
--- /dev/null   Sun Dec 15 03:05:12 2024
+++ pkgsrc/lang/gcc12/patches/patch-libgcc_config_t-darwin-libgccs1     Sun Dec 15 03:05:12 2024
@@ -0,0 +1,23 @@
+$NetBSD: patch-libgcc_config_t-darwin-libgccs1,v 1.1 2024/12/15 03:05:12 brook Exp $
+
+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
+
+See https://github.com/gcc-mirror/gcc/blob/master/libgcc/config/t-darwin-libgccs1.
+
+--- libgcc/config/t-darwin-libgccs1.orig       2024-12-11 18:34:57.149966944 +0000
++++ libgcc/config/t-darwin-libgccs1
+@@ -0,0 +1,2 @@
++# Build a legacy libgcc_s.1
++BUILD_LIBGCCS1 = YES
Index: pkgsrc/lang/gcc12/patches/patch-libgcc_config_t-darwin-min-11
diff -u /dev/null pkgsrc/lang/gcc12/patches/patch-libgcc_config_t-darwin-min-11:1.1
--- /dev/null   Sun Dec 15 03:05:12 2024
+++ pkgsrc/lang/gcc12/patches/patch-libgcc_config_t-darwin-min-11       Sun Dec 15 03:05:12 2024
@@ -0,0 +1,17 @@
+$NetBSD: patch-libgcc_config_t-darwin-min-11,v 1.1 2024/12/15 03:05:12 brook Exp $
+
+libgcc, Darwin: From macOS 11, make that the earliest supported.
+
+For libgcc, we have (so far) supported building a DSO that supports
+earlier versions of the OS than the target.  From macOS 11, there are
+APIs that do not exist on earlier OS versions, so limit the libgcc
+range to macOS11..current.
+
+See https://github.com/gcc-mirror/gcc/blob/master/libgcc/config/t-darwin-min-11.
+
+--- libgcc/config/t-darwin-min-11.orig 2024-12-11 18:34:57.240111740 +0000
++++ libgcc/config/t-darwin-min-11
+@@ -0,0 +1,3 @@
++# Support building with -mmacosx-version-min back to macOS 11.
++DARWIN_MIN_LIB_VERSION = -mmacosx-version-min=11
++DARWIN_MIN_CRT_VERSION = -mmacosx-version-min=11



Home | Main Index | Thread Index | Old Index