diff options
author | Fabian Groffen <grobian@gentoo.org> | 2024-03-10 19:59:51 +0100 |
---|---|---|
committer | Fabian Groffen <grobian@gentoo.org> | 2024-03-10 19:59:51 +0100 |
commit | bf8c6e96498309932dbdc975462ef93eb0c1c347 (patch) | |
tree | cdbd0d7e4bfad9b8f1e548e37a4a02571343d029 | |
parent | sys-devel/gcc-14.0.1: dekeyword, better not to use it (yet) (diff) | |
download | prefix-bf8c6e96498309932dbdc975462ef93eb0c1c347.tar.gz prefix-bf8c6e96498309932dbdc975462ef93eb0c1c347.tar.bz2 prefix-bf8c6e96498309932dbdc975462ef93eb0c1c347.zip |
sys-devel/gcc-13.2.0: fix bootstrap using CLT 15.3 on macOS
Signed-off-by: Fabian Groffen <grobian@gentoo.org>
-rw-r--r-- | sys-devel/gcc/files/gcc-13-darwin14-bootstrap.patch | 40 | ||||
-rw-r--r-- | sys-devel/gcc/gcc-13.2.0.ebuild | 4 |
2 files changed, 44 insertions, 0 deletions
diff --git a/sys-devel/gcc/files/gcc-13-darwin14-bootstrap.patch b/sys-devel/gcc/files/gcc-13-darwin14-bootstrap.patch new file mode 100644 index 0000000000..98a92c103e --- /dev/null +++ b/sys-devel/gcc/files/gcc-13-darwin14-bootstrap.patch @@ -0,0 +1,40 @@ +disable some code-sanity checks/hacks because while bootstapping we use +a compiler and its c++ library that does not necessarily comply + +This is an issue since macOS Sonoma 14.4 and/or CLT 15.3. + +--- a/include/safe-ctype.h ++++ b/include/safe-ctype.h +@@ -120,6 +120,7 @@ + So we include ctype.h here and then immediately redefine its macros. */ + + #include <ctype.h> ++#if 0 + #undef isalpha + #define isalpha(c) do_not_use_isalpha_with_safe_ctype + #undef isalnum +@@ -146,5 +147,6 @@ + #define toupper(c) do_not_use_toupper_with_safe_ctype + #undef tolower + #define tolower(c) do_not_use_tolower_with_safe_ctype ++#endif + + #endif /* SAFE_CTYPE_H */ +--- a/gcc/system.h ++++ b/gcc/system.h +@@ -917,6 +917,7 @@ + + #if (GCC_VERSION >= 3000) + ++#if 0 + /* Note autoconf checks for prototype declarations and includes + system.h while doing so. Only poison these tokens if actually + compiling gcc, so that the autoconf declaration tests for malloc +@@ -933,6 +934,7 @@ + #undef realloc + #pragma GCC poison malloc realloc + #endif ++#endif + + /* The %m format should be used when GCC's main diagnostic functions + supporting %m are available, and xstrerror from libiberty diff --git a/sys-devel/gcc/gcc-13.2.0.ebuild b/sys-devel/gcc/gcc-13.2.0.ebuild index 65b51e7dcc..41160a6ef9 100644 --- a/sys-devel/gcc/gcc-13.2.0.ebuild +++ b/sys-devel/gcc/gcc-13.2.0.ebuild @@ -21,6 +21,8 @@ IANSGCCVER="gcc-13.2-darwin-r0" SRC_URI+=" elibc_Darwin? ( https://github.com/iains/gcc-13-branch/archive/refs/tags/${IANSGCCVER}.tar.gz )" +IUSE+="bootstrap" + # Technically only if USE=hardened *too* right now, but no point in complicating it further. # If GCC is enabling CET by default, we need glibc to be built with support for it. # bug #830454 @@ -76,6 +78,8 @@ src_prepare() { fi if [[ ${CHOST} == *-darwin* ]] ; then + use bootstrap && eapply "${FILESDIR}"/${PN}-13-darwin14-bootstrap.patch + # our ld64 is a slight bit different, so tweak expression to not # get confused and break the build sed -i -e 's/grep ld64/grep :ld64/' gcc/configure || die |