commit: 2990c38b564bf54bce0454f7c21f21db76628bc8 Author: Sam James <sam <AT> gentoo <DOT> org> AuthorDate: Wed Nov 3 03:37:06 2021 +0000 Commit: Sam James <sam <AT> gentoo <DOT> org> CommitDate: Wed Nov 3 03:37:06 2021 +0000 URL: https://gitweb.gentoo.org/repo/proj/prefix.git/commit/?id=2990c38b
sys-devel/gcc: add patch for building on macOS 12 (Monterey) Signed-off-by: Sam James <sam <AT> gentoo.org> sys-devel/gcc/files/gcc-10.3.0-monterey.patch | 80 +++++++++++++++++++++++++++ sys-devel/gcc/gcc-10.3.0-r2.ebuild | 2 + 2 files changed, 82 insertions(+) diff --git a/sys-devel/gcc/files/gcc-10.3.0-monterey.patch b/sys-devel/gcc/files/gcc-10.3.0-monterey.patch new file mode 100644 index 0000000000..904414dad1 --- /dev/null +++ b/sys-devel/gcc/files/gcc-10.3.0-monterey.patch @@ -0,0 +1,80 @@ +https://github.com/macports/macports-ports/blob/573b82fd5df538ea2ad75e2c2373f4727ef3430c/lang/gcc11/files/patch-darwin21-support.diff + +From 20f61faaed3b335d792e38892d826054d2ac9f15 Mon Sep 17 00:00:00 2001 +From: Saagar Jha <[email protected]> +Date: Tue, 15 Jun 2021 04:08:23 -0700 +Subject: [PATCH] Darwin, config: Amend for Darwin 21 / macOS 12. + +It seems that the OS major version is now tracking the kernel +major version - 9. Minor version tracking is unknown. + +Signed-off-by: Iain Sandoe <[email protected]> +Signed-off-by: Saagar Jha <[email protected]> + +gcc/ChangeLog: + + * config.gcc: Adjust for Darwin21. + * config/darwin-c.c (macosx_version_as_macro): Likewise. + * config/darwin-driver.c (validate_macosx_version_min): + Likewise. + (darwin_find_version_from_kernel): Likewise. + +--- a/gcc/config.gcc ++++ b/gcc/config.gcc +@@ -679,9 +679,9 @@ case ${target} in + *-*-darwin[4-9]* | *-*-darwin1[0-9]*) + macos_min=`expr $darwin_maj - 4` + ;; +- *-*-darwin20*) +- # Darwin 20 corresponds to macOS 11. +- macos_maj=11 ++ *-*-darwin2*) ++ # Darwin 20 corresponds to macOS 11, Darwin 21 to macOS 12. ++ macos_maj=`expr $darwin_maj - 9` + def_ld64=609.0 + ;; + *-*-darwin) +--- a/gcc/config/darwin-c.c ++++ b/gcc/config/darwin-c.c +@@ -691,7 +691,7 @@ macosx_version_as_macro (void) + if (!version_array) + goto fail; + +- if (version_array[MAJOR] < 10 || version_array[MAJOR] > 11) ++ if (version_array[MAJOR] < 10 || version_array[MAJOR] > 12) + goto fail; + + if (version_array[MAJOR] == 10 && version_array[MINOR] < 10) +--- a/gcc/config/darwin-driver.c ++++ b/gcc/config/darwin-driver.c +@@ -64,17 +64,17 @@ validate_macosx_version_min (const char *version_str) + + major = strtoul (version_str, &end, 10); + +- if (major < 10 || major > 11 ) /* MacOS 10 and 11 are known. */ ++ if (major < 10 || major > 12 ) /* macOS 10, 11, and 12 are known. */ + return NULL; + + /* Skip a separating period, if there's one. */ + version_str = end + ((*end == '.') ? 1 : 0); + +- if (major == 11 && *end != '\0' && !ISDIGIT (version_str[0])) +- /* For MacOS 11, we allow just the major number, but if the minor is ++ if (major > 10 && *end != '\0' && !ISDIGIT (version_str[0])) ++ /* For macOS 11+, we allow just the major number, but if the minor is + there it must be numeric. */ + return NULL; +- else if (major == 11 && *end == '\0') ++ else if (major > 10 && *end == '\0') + /* We will rewrite 11 => 11.0.0. */ + need_rewrite = true; + else if (major == 10 && (*end == '\0' || !ISDIGIT (version_str[0]))) +@@ -172,7 +172,7 @@ darwin_find_version_from_kernel (void) + if (minor_vers > 0) + minor_vers -= 1; /* Kernel 20.3 => macOS 11.2. */ + /* It's not yet clear whether patch level will be considered. */ +- asprintf (&new_flag, "11.%02d.00", minor_vers); ++ asprintf (&new_flag, "%d.%02d.00", major_vers - 9, minor_vers); + } + else if (major_vers - 4 <= 4) + /* On 10.4 and earlier, the old linker is used which does not diff --git a/sys-devel/gcc/gcc-10.3.0-r2.ebuild b/sys-devel/gcc/gcc-10.3.0-r2.ebuild index b1e30bf1e1..3b0eecc0a4 100644 --- a/sys-devel/gcc/gcc-10.3.0-r2.ebuild +++ b/sys-devel/gcc/gcc-10.3.0-r2.ebuild @@ -59,6 +59,8 @@ src_prepare() { # fix interoperation with Xcode 12.5, bug #799170 eapply -p1 "${FILESDIR}"/${PN}-10.2.0-xcode-12.5.patch + # allow building with macOS 12 + eapply -p1 "${FILESDIR}"/${PN}-10.3.0-monterey.patch } src_configure() {
