--- /usr/portage/dev-libs/dietlibc/dietlibc-0.33_pre20130103.ebuild 2013-01-03 21:15:02.000000000 +0100 +++ dietlibc-0.33_pre20130103.ebuild 2013-06-10 18:36:17.000000000 +0200 @@ -1,6 +1,6 @@ # Copyright 1999-2013 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 -# $Header: /var/cvsroot/gentoo-x86/dev-libs/dietlibc/dietlibc-0.33_pre20130103.ebuild,v 1.1 2013/01/03 20:15:02 pacho Exp $ +# $Header: $ EAPI=5 inherit eutils flag-o-matic toolchain-funcs @@ -19,7 +19,20 @@ RDEPEND="" DIETHOME=/usr/diet +IUSE_LIBC_TARGET="alpha arm armeb i386 ia64 mips mipsel parisc parisc64 ppc ppc64 s390 s390x sparc sparc64 x86_64" + +for t in ${IUSE_LIBC_TARGET} ; do + IUSE="${IUSE} target_${t}" +done + src_prepare() { + epatch "${FILESDIR}/${P}-BJA-nostrip.diff" +} + +diet_flags() { + # Reset CFLAGS + CFLAGS="" + # Replace sparc64 related C[XX]FLAGS (see bug #45716) use sparc && replace-sparc64-flags @@ -34,23 +47,46 @@ src_prepare() { # only use -nopie on archs that support it gcc-specs-pie && append-flags -nopie - sed -i -e 's:strip::' Makefile || die append-flags -Wa,--noexecstack } src_compile() { - emake prefix="${EPREFIX}"${DIETHOME} \ - CC="$(tc-getCC)" \ - CFLAGS="${CFLAGS}" \ - STRIP=":" + for t in ${IUSE_LIBC_TARGET} ; do + use target_$t $USE || continue + + tC="CROSS_$t" + if [ -z "${!tC}" ] ; then + ewarn "CROSS_$t not defined, can't build" + sleep 15 + continue + fi + + CHOST="$t" + diet_flags + + einfo "Building libc $t" + emake prefix="${EPREFIX}${DIETHOME}" \ + MYARCH="${t}" \ + CROSS="${!tC}" \ + CFLAGS="${CFLAGS}" + done } src_install() { - emake prefix="${EPREFIX}"${DIETHOME} \ - DESTDIR="${D}" \ - install-bin \ + emake prefix="${EPREFIX}${DIETHOME}" \ + DESTDIR="${ED}" \ install-headers + for t in ${IUSE_LIBC_TARGET} ; do + use target_$t $USE || continue + + einfo "Installing libc $t" + emake prefix="${EPREFIX}${DIETHOME}" \ + MYARCH="${t}" \ + DESTDIR="${ED}" \ + install-bin + done + dobin "${ED}"${DIETHOME}/bin/* doman "${ED}"${DIETHOME}/man/*/* rm -r "${ED}"${DIETHOME}/{man,bin} || die