commit:     a114199475717d5bb2a2df40edec1b3ca6e0b299
Author:     Fabian Groffen <grobian <AT> gentoo <DOT> org>
AuthorDate: Mon Jul 22 07:42:25 2024 +0000
Commit:     Fabian Groffen <grobian <AT> gentoo <DOT> org>
CommitDate: Mon Jul 22 07:42:25 2024 +0000
URL:        https://gitweb.gentoo.org/repo/proj/prefix.git/commit/?id=a1141994

scripts/bootstrap-prefix: be selective on where to use GCC-5 in stage1

GCC-5 doesn't compile on ARM64, newer versions of macOS might also prove
to be capable of compiling GCC-14.

Signed-off-by: Fabian Groffen <grobian <AT> gentoo.org>

 scripts/bootstrap-prefix.sh | 30 +++++++++++++++++++++---------
 1 file changed, 21 insertions(+), 9 deletions(-)

diff --git a/scripts/bootstrap-prefix.sh b/scripts/bootstrap-prefix.sh
index 33c9feff34..07ce71168c 100755
--- a/scripts/bootstrap-prefix.sh
+++ b/scripts/bootstrap-prefix.sh
@@ -391,10 +391,10 @@ bootstrap_profile() {
                        profile="prefix/darwin/macos/10.$((rev - 4))/x64"
                        ;;
                *64-apple-darwin2[0123456789])
-                       # Big Sur is  11.0
-                       # Monterey is 12.0
-                       # Ventura is  13.0
-                       # Sanoma is   14.0
+                       # Big Sur is  11.0  darwin20
+                       # Monterey is 12.0  darwin21
+                       # Ventura is  13.0  darwin22
+                       # Sanoma is   14.0  darwin23
                        rev=${CHOST##*darwin}
                        case ${CHOST%%-*} in
                                x86_64)  arch=x64    ;;
@@ -1483,11 +1483,9 @@ bootstrap_stage1() {
        configure_toolchain
        export CC CXX
 
-       # GCC 14 cannot be compiled by versions of Clang at least on
-       # Darwin17, so go the safe route and get GCC-5 which is sufficient
-       # and the last one we can compile without C11.  This also compiles
-       # on Darwin 8 and 9.
-       # see also configure_toolchain
+       # default: empty = NO
+       local USEGCC5=
+
        if [[ ${CHOST} == *-darwin* ]] ; then
                # setup MacOSX.sdk symlink for GCC, this should probably be
                # managed using an eselect module in the future
@@ -1525,11 +1523,25 @@ bootstrap_stage1() {
                ( cd "${ROOT}" && ln -s "${SDKPATH}" MacOSX.sdk )
                einfo "using system sources from ${SDKPATH}"
 
+               # GCC 14 cannot be compiled by versions of Clang at least on
+               # Darwin17, so go the safe route and get GCC-5 which is 
sufficient
+               # and the last one we can compile without C11.  This also 
compiles
+               # on Darwin 8 and 9.
+               # see also configure_toolchain
+               case ${CHOST} in
+                       *-darwin[89])  USEGCC5=yes  ;;
+                       *86*-darwin*)  USEGCC5=yes  ;;
+                       # arm64/M1 isn't supported by old GCC-5!
+               esac
+       fi
+
+       if [[ -n ${USEGCC5} ]] ; then
                # benefit from 4.2 if it's present
                if [[ -e /usr/bin/gcc-4.2 ]] ; then
                        export CC=gcc-4.2
                        export CXX=g++-4.2
                fi
+
                [[ -e ${ROOT}/tmp/usr/include/gmp.h ]] \
                        || (bootstrap_gmp) || return 1
                [[ -e ${ROOT}/tmp/usr/include/mpfr.h ]] \

Reply via email to