diff options
author | Mike Frysinger <vapier@gentoo.org> | 2014-03-29 05:31:59 +0000 |
---|---|---|
committer | Mike Frysinger <vapier@gentoo.org> | 2014-03-29 05:31:59 +0000 |
commit | c99ed88a2fba13b6ac126e05f7d1ca98cda262b7 (patch) | |
tree | 4da079ce37e30f510ab561aa954bf1e5ebc362da /sys-libs/glibc/files | |
parent | Fix underlinking (missing -lm for function rintf()) wrt #504270 by Hector Martin (diff) | |
download | gentoo-2-c99ed88a2fba13b6ac126e05f7d1ca98cda262b7.tar.gz gentoo-2-c99ed88a2fba13b6ac126e05f7d1ca98cda262b7.tar.bz2 gentoo-2-c99ed88a2fba13b6ac126e05f7d1ca98cda262b7.zip |
Add support for in-place bootstrapping between ABIs (on x86 for now).
(Portage version: 2.2.8-r1/cvs/Linux x86_64, signed Manifest commit with key D2E96200)
Diffstat (limited to 'sys-libs/glibc/files')
-rw-r--r-- | sys-libs/glibc/files/eblits/src_compile.eblit | 16 | ||||
-rw-r--r-- | sys-libs/glibc/files/eblits/src_unpack.eblit | 6 |
2 files changed, 18 insertions, 4 deletions
diff --git a/sys-libs/glibc/files/eblits/src_compile.eblit b/sys-libs/glibc/files/eblits/src_compile.eblit index d02f0d52230c..1cb0f7c160a8 100644 --- a/sys-libs/glibc/files/eblits/src_compile.eblit +++ b/sys-libs/glibc/files/eblits/src_compile.eblit @@ -1,6 +1,6 @@ # Copyright 1999-2014 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 -# $Header: /var/cvsroot/gentoo-x86/sys-libs/glibc/files/eblits/src_compile.eblit,v 1.37 2014/01/17 06:23:22 vapier Exp $ +# $Header: /var/cvsroot/gentoo-x86/sys-libs/glibc/files/eblits/src_compile.eblit,v 1.38 2014/03/29 05:31:59 vapier Exp $ glibc_do_configure() { local myconf=() @@ -121,6 +121,20 @@ glibc_do_configure() { if is_crosscompile && [[ ${CTARGET} == ia64* ]] ; then sed -i '1i+link-static = touch $@' config.make fi + + # If we're trying to migrate between ABI sets, we need + # to lie and use a local copy of gcc. Like if the system + # is built with MULTILIB_ABIS="amd64 x86" but we want to + # add x32 to it, gcc/glibc don't yet support x32. + if [[ -n ${GCC_BOOTSTRAP_VER} ]] && use multilib ; then + echo 'main(){}' > "${T}"/test.c + if ! $(tc-getCC ${CTARGET}) ${CFLAGS} ${LDFLAGS} "${T}"/test.c -Wl,-emain -lgcc 2>/dev/null ; then + sed -i -e '/^CC = /s:$: -B$(objdir)/../'"gcc-${GCC_BOOTSTRAP_VER}/${ABI}:" config.make || die + mkdir -p sunrpc + cp $(which rpcgen) sunrpc/cross-rpcgen || die + touch -t 202001010101 sunrpc/cross-rpcgen || die + fi + fi } toolchain-glibc_src_compile() { diff --git a/sys-libs/glibc/files/eblits/src_unpack.eblit b/sys-libs/glibc/files/eblits/src_unpack.eblit index 15e8895d4e92..cdcd8e48685f 100644 --- a/sys-libs/glibc/files/eblits/src_unpack.eblit +++ b/sys-libs/glibc/files/eblits/src_unpack.eblit @@ -1,6 +1,6 @@ -# Copyright 1999-2013 Gentoo Foundation +# Copyright 1999-2014 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 -# $Header: /var/cvsroot/gentoo-x86/sys-libs/glibc/files/eblits/src_unpack.eblit,v 1.24 2013/09/28 22:07:57 vapier Exp $ +# $Header: /var/cvsroot/gentoo-x86/sys-libs/glibc/files/eblits/src_unpack.eblit,v 1.25 2014/03/29 05:31:59 vapier Exp $ int_to_KV() { local version=$1 major minor micro @@ -165,7 +165,7 @@ eblit-glibc-src_unpack() { # http://sourceware.org/ml/libc-alpha/2012-05/msg01865.html if ! version_is_at_least 2.16 ; then echo 'int main(){}' > "${T}"/gcc_eh_test.c - if ! $(tc-getCC ${CTARGET}) "${T}"/gcc_eh_test.c -lgcc_eh 2>/dev/null ; then + if ! $(tc-getCC ${CTARGET}) ${CFLAGS} ${LDFLAGS} "${T}"/gcc_eh_test.c -lgcc_eh 2>/dev/null ; then sed -i -e 's:-lgcc_eh::' Makeconfig || die "sed gcc_eh" fi fi |