commit:     f626d52c4995d3d1337cc91b8b47582f455ec6b8
Author:     Fabian Groffen <grobian <AT> gentoo <DOT> org>
AuthorDate: Sat Feb 17 07:09:15 2018 +0000
Commit:     Fabian Groffen <grobian <AT> gentoo <DOT> org>
CommitDate: Sat Feb 17 07:09:15 2018 +0000
URL:        https://gitweb.gentoo.org/repo/proj/prefix.git/commit/?id=f626d52c

scripts/bootstrap-prefix: add back initial support for ppc-darwin9

 scripts/bootstrap-prefix.sh | 45 +++++++++++++++++++++++++++++++++++++--------
 1 file changed, 37 insertions(+), 8 deletions(-)

diff --git a/scripts/bootstrap-prefix.sh b/scripts/bootstrap-prefix.sh
index 3ef6e06e35..cf7d96721d 100755
--- a/scripts/bootstrap-prefix.sh
+++ b/scripts/bootstrap-prefix.sh
@@ -168,6 +168,7 @@ configure_toolchain() {
        local gcc_deps="dev-libs/gmp dev-libs/mpfr dev-libs/mpc"
        compiler="${gcc_deps} sys-devel/gcc-config sys-devel/gcc"
        compiler_stage1="${gcc_deps} sys-devel/gcc-config"
+       compiler_type="gcc"
        case ${CHOST} in
        *-cygwin*)
          # not supported in gcc-4.7 yet, easy enough to install g++
@@ -202,10 +203,37 @@ configure_toolchain() {
                dev-util/cmake
                dev-util/ninja"
        case ${CHOST} in
+               powerpc-*darwin*)
+                       compiler_stage1="sys-apps/darwin-miscutils sys-libs/csu"
+                       local ccvers="$( (unset CHOST; gcc --version 
2>/dev/null) )"
+                       local mycc=
+                       case "${ccvers}" in
+                               *"(GCC) 4.2.1 "*)
+                                       linker=sys-devel/binutils-apple
+                                       mycc=gcc
+                                       ;;
+                               *"(GCC) 4.0.1 "*)
+                                       # need gcc-4.2.1 to compile llvm
+                                       linker="=sys-devel/binutils-apple-3.2"
+                                       compiler_stage1+="
+                                               ${gcc_deps}
+                                               sys-devel/gcc-config
+                                               sys-devel/gcc-apple
+                                               sys-devel/binutils-apple"
+                                       mycc=gcc
+                                       ;;
+                               *)
+                                       eerror "unknown compiler"
+                                       return 1
+                                       ;;
+                       esac
+                       compiler="${gcc_deps} sys-devel/gcc-config 
sys-devel/gcc-apple"
+                       ;;
                *-darwin*)
                        # for compilers choice, see bug:
                        # https://bugs.gentoo.org/show_bug.cgi?id=538366
                        compiler_stage1="sys-apps/darwin-miscutils sys-libs/csu"
+                       compiler_type="clang"
                        local ccvers="$( (unset CHOST; gcc --version 
2>/dev/null) )"
                        local mycc=
                        case "${ccvers}" in
@@ -1524,12 +1552,12 @@ bootstrap_stage2() {
                fi
        done
 
-       if [[ ${CHOST} == *darwin* ]] ; then
+       if [[ ${compiler_type} == clang ]] ; then
                # we use Clang as our toolchain compiler, so we need to make
                # sure we actually use it
                {
                        echo
-                       echo "# System compiler on Darwin Prefix is Clang, do 
not remove this"
+                       echo "# System compiler on $(uname) Prefix is Clang, do 
not remove this"
                        echo "CC=${CHOST}-clang"
                        echo "CXX=${CHOST}-clang++"
                        echo "OBJC=${CHOST}-clang"
@@ -1548,6 +1576,7 @@ bootstrap_stage2() {
                cp "${ROOT}"/tmp/usr/${CHOST}/lib/gcc/* 
"${ROOT}"/usr/${CHOST}/lib/gcc
        fi
 
+       touch "${ROOT}/tmp/.stage2-finished"
        einfo "stage2 successfully finished"
 }
 
@@ -1561,8 +1590,10 @@ bootstrap_stage3() {
                eerror "emerge not found, did you bootstrap stage1?"
                return 1
        fi
-       
-       if [[ ${CHOST} == *-darwin* ]] ; then
+
+       configure_toolchain || return 1
+
+       if [[ ${compiler_type} == clang ]] ; then
                if ! type -P clang > /dev/null ; then
                        eerror "clang not found, did you bootstrap stage2?"
                        return 1
@@ -1576,7 +1607,6 @@ bootstrap_stage3() {
 
        get_libdir() { portageq envvar LIBDIR_$(portageq envvar ABI) || echo 
lib; }
 
-       configure_toolchain || return 1
        export CONFIG_SHELL="${ROOT}"/tmp/bin/bash
        export CPPFLAGS="-isystem ${ROOT}/usr/include"
        export LDFLAGS="-L${ROOT}/usr/$(get_libdir)"
@@ -1681,7 +1711,7 @@ bootstrap_stage3() {
        # in addition, avoid collisions
        rm -Rf "${ROOT}"/tmp/usr/lib/python2.7/site-packages/clang
 
-       # llvm-3.5 doesn't find c++11 headers/lib by default, make it so
+       # llvm-3.5 doesn't find C++11 headers/lib by default, make it so
        if [[ ${CHOST} == *-darwin9 ]] ; then
                export OVERRIDE_CXXFLAGS="-I${ROOT}/tmp/usr/include/c++/v1 
-fPIC"
                # -fPIC is here because we need it, but the toolchain doesn't
@@ -2489,8 +2519,7 @@ EOF
        # when we find gcc there (it's needed to bootstrap llvm)
        local compiler=gcc
        [[ ${CHOST} == *-darwin* ]] && compiler=clang
-       if ! [[ -x ${EPREFIX}/usr/bin/${compiler} \
-               || -x ${EPREFIX}/tmp/usr/bin/${compiler} ]] \
+       if ! [[ -e ${EPREFIX}/tmp/.stage2-finished ]] \
                && ! ${BASH} ${BASH_SOURCE[0]} "${EPREFIX}" stage2_log ; then
                # stage 2 fail
                cat << EOF

Reply via email to