commit: 166387d875842c64c191dc86f7fc5719c2cc56d1
Author: Benda Xu <heroxbd <AT> gentoo <DOT> org>
AuthorDate: Thu Jul 7 01:43:34 2016 +0000
Commit: Benda XU <heroxbd <AT> gentoo <DOT> org>
CommitDate: Thu Jul 7 02:40:57 2016 +0000
URL: https://gitweb.gentoo.org/repo/proj/prefix.git/commit/?id=166387d8
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 0fadb13..af2f690 100755
--- a/scripts/bootstrap-prefix.sh
+++ b/scripts/bootstrap-prefix.sh
@@ -229,7 +229,7 @@ bootstrap_setup() {
echo "CONFIG_SHELL=\"${ROOT}/bin/bash\""
echo "# sandbox does not work well on Prefix, bug
490246"
echo '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"
@@ -1476,83 +1476,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"