commit: 21aeb54b33d10e6fab076beacf146dd6b4cf8fdd Author: Benda Xu <heroxbd <AT> gentoo <DOT> org> AuthorDate: Thu May 26 07:06:09 2016 +0000 Commit: Benda XU <heroxbd <AT> gentoo <DOT> org> CommitDate: Fri Jun 10 01:47:29 2016 +0000 URL: https://gitweb.gentoo.org/repo/proj/prefix.git/commit/?id=21aeb54b
bootstrap-prefix.sh: no USR SPLIT for RAP. Support Debian multiarch. scripts/bootstrap-prefix.sh | 82 +++------------------------------------------ 1 file changed, 5 insertions(+), 77 deletions(-) diff --git a/scripts/bootstrap-prefix.sh b/scripts/bootstrap-prefix.sh index 46cf012..4fba6df 100755 --- a/scripts/bootstrap-prefix.sh +++ b/scripts/bootstrap-prefix.sh @@ -224,7 +224,7 @@ bootstrap_setup() { echo "CONFIG_SHELL=\"${ROOT}/bin/bash\"" rapx "# sandbox does not work well on Prefix, bug 490246" rapx 'FEATURES="-usersandbox -sandbox"' - if [[ -n ${PREFIX_DISABLE_USR_SPLIT} ]] ; then + if [[ !is-rap && -n ${PREFIX_DISABLE_USR_SPLIT} ]] ; then echo echo "# This disables /usr-split, removing this will break" echo "PREFIX_DISABLE_GEN_USR_LDSCRIPT=yes" @@ -1469,83 +1469,11 @@ bootstrap_interactive() { # eventually ends up in make.conf, see the end of stage3. We don't # do this in bootstrap_setup() because in that case we'd also have # to cater for getting this right with manual bootstraps. - export PREFIX_DISABLE_USR_SPLIT=yes + is-rap || export PREFIX_DISABLE_USR_SPLIT=yes - # immediately die on platforms that we know are impossible due to - # brain-deadness (Debian/Ubuntu) or extremely hard dependency chains - # (TODO NetBSD/OpenBSD) - case ${CHOST} in - *-linux-gnu) - local toolchain_impossible= - # Figure out if this is Ubuntu... - if [[ $(lsb_release -is 2>/dev/null) == "Ubuntu" ]] ; then - case "$(lsb_release -sr)" in - [456789].*|10.*) - : # good versions - ;; - *) - # Debian/Ubuntu have seriously fscked up their - # toolchain to support their multi-arch crap - # since Natty (11.04) that noone really wants, - # and certainly not upstream. Some details: - # https://bugs.launchpad.net/ubuntu/+source/binutils/+bug/738098 - toolchain_impossible="Ubuntu >= 11.04 (Natty)" - ;; - esac - fi - # Figure out if this is Debian - if [[ -e /etc/debian_release ]] ; then - case "$(< /etc/debian_release)" in - hamm/*|slink/*|potato/*|woody/*|sarge/*|etch/*|lenny/*|squeeze/*) - : # good versions - ;; - *) - # Debian introduced their big crap since Wheezy - # (7.0), like for Ubuntu, see above - toolchain_impossible="Debian >= 7.0 (Wheezy)" - ;; - esac - fi - if [[ -n ${toolchain_impossible} ]] ; then - # In short, it's impossible for us to compile a - # compiler, since 1) gcc picks up our ld, which doesn't - # support sysroot (can work around with a wrapper - # script), 2) headers and libs aren't found (symlink - # them to Prefix), 3) stuff like crtX.i isn't found - # during bootstrap, since the bootstrap compiler doesn't - # get any of our flags and doesn't know where to find - # them (even if we copied them). So we cannot do this, - # unless we use the Ubuntu patches in our ebuilds, which - # is a NO-GO area. - cat << EOF -Oh My! ${toolchain_impossible}! AAAAAAAAAAAAAAAAAAAAARGH! HELL comes over me! - -EOF - echo -n "..." - sleep 1 - echo -n "." - sleep 1 - echo -n "." - sleep 1 - echo -n "." - sleep 1 - echo - echo - cat << EOF -and over you. You're on the worst Linux distribution from a developer's -(and so Gentoo Prefix) perspective since http://wiki.debian.org/Multiarch/. -Due to this multi-arch idea, it is IMPOSSIBLE for Gentoo Prefix to -bootstrap a compiler without using Debuntu patches, which is an absolute -NO-GO area! GCC and binutils upstreams didn't just reject those patches -for fun. - -I really can't help you, and won't waste any of your time either. The -story simply ends here. Sorry. -EOF - exit 1 - fi - ;; - esac + # TODO should immediately die on platforms that we know are + # impossible due extremely hard dependency chains + # (NetBSD/OpenBSD) cat <<"EOF"