vapier 14/03/29 05:31:59 Modified: src_unpack.eblit src_compile.eblit Log: 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)
Revision Changes Path 1.25 sys-libs/glibc/files/eblits/src_unpack.eblit file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/sys-libs/glibc/files/eblits/src_unpack.eblit?rev=1.25&view=markup plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/sys-libs/glibc/files/eblits/src_unpack.eblit?rev=1.25&content-type=text/plain diff : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/sys-libs/glibc/files/eblits/src_unpack.eblit?r1=1.24&r2=1.25 Index: src_unpack.eblit =================================================================== RCS file: /var/cvsroot/gentoo-x86/sys-libs/glibc/files/eblits/src_unpack.eblit,v retrieving revision 1.24 retrieving revision 1.25 diff -u -r1.24 -r1.25 --- src_unpack.eblit 28 Sep 2013 22:07:57 -0000 1.24 +++ src_unpack.eblit 29 Mar 2014 05:31:59 -0000 1.25 @@ -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 @@ # 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 1.38 sys-libs/glibc/files/eblits/src_compile.eblit file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/sys-libs/glibc/files/eblits/src_compile.eblit?rev=1.38&view=markup plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/sys-libs/glibc/files/eblits/src_compile.eblit?rev=1.38&content-type=text/plain diff : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/sys-libs/glibc/files/eblits/src_compile.eblit?r1=1.37&r2=1.38 Index: src_compile.eblit =================================================================== RCS file: /var/cvsroot/gentoo-x86/sys-libs/glibc/files/eblits/src_compile.eblit,v retrieving revision 1.37 retrieving revision 1.38 diff -u -r1.37 -r1.38 --- src_compile.eblit 17 Jan 2014 06:23:22 -0000 1.37 +++ src_compile.eblit 29 Mar 2014 05:31:59 -0000 1.38 @@ -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 @@ 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() {
