summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Frysinger <vapier@gentoo.org>2009-02-16 00:29:11 +0000
committerMike Frysinger <vapier@gentoo.org>2009-02-16 00:29:11 +0000
commitc95ca5a1cc1571e1ff0de4b2fc760fb10cd54776 (patch)
tree72ac87a3c9e10308633ca65e6167c262a1721a1c /sys-libs
parentAdd gcc-4.3 patch per bug 255604. Thanks to Arttu Valo <arttuv69@gmail.com> f... (diff)
downloadgentoo-2-c95ca5a1cc1571e1ff0de4b2fc760fb10cd54776.tar.gz
gentoo-2-c95ca5a1cc1571e1ff0de4b2fc760fb10cd54776.tar.bz2
gentoo-2-c95ca5a1cc1571e1ff0de4b2fc760fb10cd54776.zip
Simplify ebuild greatly by removing all the extraneous gcc cruft.
(Portage version: 2.2_rc23/cvs/Linux x86_64)
Diffstat (limited to 'sys-libs')
-rw-r--r--sys-libs/libstdc++-v3/ChangeLog5
-rw-r--r--sys-libs/libstdc++-v3/libstdc++-v3-3.3.6.ebuild187
2 files changed, 28 insertions, 164 deletions
diff --git a/sys-libs/libstdc++-v3/ChangeLog b/sys-libs/libstdc++-v3/ChangeLog
index 9b26a8d48012..664c5282398b 100644
--- a/sys-libs/libstdc++-v3/ChangeLog
+++ b/sys-libs/libstdc++-v3/ChangeLog
@@ -1,6 +1,9 @@
# ChangeLog for sys-libs/libstdc++-v3
# Copyright 1999-2009 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/sys-libs/libstdc++-v3/ChangeLog,v 1.57 2009/02/15 22:58:32 vapier Exp $
+# $Header: /var/cvsroot/gentoo-x86/sys-libs/libstdc++-v3/ChangeLog,v 1.58 2009/02/16 00:29:11 vapier Exp $
+
+ 16 Feb 2009; Mike Frysinger <vapier@gentoo.org> libstdc++-v3-3.3.6.ebuild:
+ Simplify ebuild greatly by removing all the extraneous gcc cruft.
15 Feb 2009; Mike Frysinger <vapier@gentoo.org>
-files/libstdc++-v3-open_missing_mode.patch, libstdc++-v3-3.3.6.ebuild:
diff --git a/sys-libs/libstdc++-v3/libstdc++-v3-3.3.6.ebuild b/sys-libs/libstdc++-v3/libstdc++-v3-3.3.6.ebuild
index 71cdb541060f..db6e94da2b3b 100644
--- a/sys-libs/libstdc++-v3/libstdc++-v3-3.3.6.ebuild
+++ b/sys-libs/libstdc++-v3/libstdc++-v3-3.3.6.ebuild
@@ -1,8 +1,8 @@
# Copyright 1999-2009 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/sys-libs/libstdc++-v3/libstdc++-v3-3.3.6.ebuild,v 1.21 2009/02/15 22:58:32 vapier Exp $
+# $Header: /var/cvsroot/gentoo-x86/sys-libs/libstdc++-v3/libstdc++-v3-3.3.6.ebuild,v 1.22 2009/02/16 00:29:11 vapier Exp $
-inherit eutils flag-o-matic libtool gnuconfig versionator
+inherit eutils flag-o-matic libtool multilib
transform_known_flags() {
declare setting
@@ -100,117 +100,32 @@ do_filter_flags() {
strip-flags
}
-S=${WORKDIR}/gcc-${PV}
-
-# Theoretical cross compiler support
-[ ! -n "${CCHOST}" ] && export CCHOST="${CHOST}"
-
PATCH_VER="1.6"
-LOC="/usr"
-#MY_PV="`echo ${PV} | awk -F. '{ gsub(/_pre.*|_alpha.*/, ""); print $1 "." $2 }'`"
-#MY_PV_FULL="`echo ${PV} | awk '{ gsub(/_pre.*|_alpha.*/, ""); print $0 }'`"
-MY_PV="$(get_version_component_range 1-2)"
-MY_PV_FULL="$(get_version_component_range 1-3)"
-
-LIBPATH="${LOC}/lib/gcc-lib/${CCHOST}/${MY_PV_FULL}"
-BINPATH="${LOC}/${CCHOST}/gcc-bin/${MY_PV}"
-DATAPATH="${LOC}/share/gcc-data/${CCHOST}/${MY_PV}"
-# Dont install in /usr/include/g++-v3/, but in gcc internal directory.
-# We will handle /usr/include/g++-v3/ with gcc-config ...
-STDCXX_INCDIR="${LIBPATH}/include/g++-v${MY_PV/\.*/}"
-
-SRC_URI="ftp://gcc.gnu.org/pub/gcc/releases/gcc-${PV}/gcc-${PV}.tar.bz2
- mirror://gentoo/gcc-${PV}-patches-${PATCH_VER}.tar.bz2"
DESCRIPTION="Compatibility package for running binaries linked against a pre gcc 3.4 libstdc++"
HOMEPAGE="http://gcc.gnu.org/libstdc++/"
+SRC_URI="ftp://gcc.gnu.org/pub/gcc/releases/gcc-${PV}/gcc-${PV}.tar.bz2
+ mirror://gentoo/gcc-${PV}-patches-${PATCH_VER}.tar.bz2"
LICENSE="GPL-2 LGPL-2.1"
-
+SLOT="5"
KEYWORDS="amd64 hppa ~mips ppc -ppc64 sparc x86 ~x86-fbsd"
-IUSE="multilib nls nptl build"
-
-# 3.2.3 -> 3.3.x install .so.5, so lets slot to 5
-if [ "${CHOST}" == "${CCHOST}" ]
-then
- SLOT="5"
-else
- SLOT="${CCHOST}-5"
-fi
-
-DEPEND="virtual/libc
- !nptl? ( elibc_glibc? ( >=sys-libs/glibc-2.3.2-r3 ) )
- >=sys-devel/binutils-2.14.90.0.6-r1
- >=sys-devel/bison-1.875
- >=sys-devel/gcc-config-1.3.1
- >=sys-devel/gcc-3.3.3_pre20040130
- !build? ( >=sys-libs/ncurses-5.2-r2
- nls? ( sys-devel/gettext ) )"
-
-RDEPEND="virtual/libc
- !nptl? ( elibc_glibc? ( >=sys-libs/glibc-2.3.2-r3 ) )
- >=sys-devel/gcc-config-1.3.1
- >=sys-libs/zlib-1.1.4
- >=sys-apps/texinfo-4.2-r4
- !build? ( >=sys-libs/ncurses-5.2-r2 )"
-
-PDEPEND="sys-devel/gcc-config"
+IUSE="multilib nls"
+
+S=${WORKDIR}/gcc-${PV}
src_unpack() {
unpack ${A}
-
cd "${S}"
EPATCH_SUFFIX="patch" epatch "${WORKDIR}"/patch
-
- # Fixup libtool to correctly generate .la files with portage
elibtoolize --portage --shallow
-
- if (has_multilib_profile || use multilib) ; then
- sed -i \
- -e 's:\(MULTILIB_OSDIRNAMES = \).*:\1../lib64 ../lib32:' \
- "${S}"/gcc/config/i386/t-linux64 \
- || die "sed failed!"
- fi
-
- # Misdesign in libstdc++ (Redhat)
- cp -pPR "${S}"/libstdc++-v3/config/cpu/i{4,3}86/atomicity.h
-
- cd "${S}"; ./contrib/gcc_update --touch &> /dev/null
- gnuconfig_update
+ ./contrib/gcc_update --touch
}
src_compile() {
-
- local myconf=
-
- if ! use nls || use build
- then
- myconf="${myconf} --disable-nls"
- else
- myconf="${myconf} --enable-nls --without-included-gettext"
- fi
-
- (has_multilib_profile || use multilib) || myconf="${myconf} --disable-multilib"
-
do_filter_flags
- einfo "CFLAGS=\"${CFLAGS}\""
- einfo "CXXFLAGS=\"${CXXFLAGS}\""
-
- # Build in a separate build tree
- mkdir -p "${WORKDIR}"/build
- cd "${WORKDIR}"/build
-
- einfo "Configuring libstdc++..."
- addwrite "/dev/zero"
- "${S}"/configure --prefix=${LOC} \
- --bindir=${BINPATH} \
- --includedir=${LIBPATH}/include \
- --datadir=${DATAPATH} \
- --mandir=${DATAPATH}/man \
- --infodir=${DATAPATH}/info \
+ econf \
--enable-shared \
- --host=${CHOST} \
- --target=${CCHOST} \
--with-system-zlib \
--enable-languages=c++ \
--enable-threads=posix \
@@ -218,78 +133,24 @@ src_compile() {
--disable-checking \
--enable-cstdio=stdio \
--enable-__cxa_atexit \
- --enable-version-specific-runtime-libs \
- --with-gxx-include-dir=${STDCXX_INCDIR} \
- --with-local-prefix=${LOC}/local \
- ${myconf} || die
+ $(use_enable multilib) \
+ $(use_enable nls) \
+ $(use_with !nls included-gettext) \
+ || die
touch "${S}"/gcc/c-gperf.h
- einfo "Compiling libstdc++..."
- S="${WORKDIR}/build" \
- emake all-target-libstdc++-v3 \
- LIBPATH="${LIBPATH}" \
- BOOT_CFLAGS="${CFLAGS}" STAGE1_CFLAGS="-O" || die
+ emake all-target-libstdc++-v3 || die
}
src_install() {
- local x=
-
- # Do allow symlinks in ${LOC}/lib/gcc-lib/${CHOST}/${PV}/include as
- # this can break the build.
- for x in "${WORKDIR}"/build/gcc/include/*
- do
- if [ -L ${x} ]
- then
- rm -f ${x}
- continue
- fi
- done
- # Remove generated headers, as they can cause things to break
- # (ncurses, openssl, etc).
- for x in `find "${WORKDIR}"/build/gcc/include/ -name '*.h'`
- do
- if grep -q 'It has been auto-edited by fixincludes from' ${x}
- then
- rm -f ${x}
- fi
- done
-
- einfo "Installing libstdc++..."
- # Do the 'make install' from the build directory
- cd "${WORKDIR}"/build
- S="${WORKDIR}/build" \
- make prefix=${LOC} \
- bindir=${BINPATH} \
- includedir=${LIBPATH}/include \
- datadir=${DATAPATH} \
- mandir=${DATAPATH}/man \
- infodir=${DATAPATH}/info \
- DESTDIR="${D}" \
- LIBPATH="${LIBPATH}" \
- install-target-libstdc++-v3 || die
-
- # we'll move this into a directory we can put at the end of ld.so.conf
- # other than the normal versioned directory, so that it doesnt conflict
- # with gcc 3.3.3
- mkdir -p "${D}"/${LOC}/lib/libstdc++-v3/
- mv "${D}"/${LIBPATH}/lib* "${D}"/${LOC}/lib/libstdc++-v3/
- # we dont want the headers...
- rm -rf "${D}"/${LOC}/lib/gcc*
- # or locales...
- rm -rf "${D}"/${LOC}/share
- # or anything other than the .so files, really.
- find "${D}" | grep -e c++.la$ -e c++.a$ | xargs rm -f
- # we dont even want the un-versioned .so symlink, as it confuses some
- # apps and also causes others to link against the old libstdc++...
- rm "${D}"/${LOC}/lib/libstdc++-v3/libstdc++.so
-
- # and it's much easier to just move around the result than it is to
- # configure libstdc++-v3 to use CONF_LIDIR
- if [ "$(get_libdir)" != "lib" ] ; then
- mv "${D}"/${LOC}/lib "${D}"/${LOC}/$(get_libdir)
- fi
-
- mkdir -p "${D}"/etc/env.d/
- echo "LDPATH=\"${LOC}/$(get_libdir)/libstdc++-v3/\"" >> "${D}"/etc/env.d/99libstdc++
+ emake -j1 DESTDIR="${D}" install-target-libstdc++-v3 || die
+
+ # scrub everything but the library we care about
+ pushd "${D}" >/dev/null
+ mv usr/lib* . || die
+ rm -rf usr
+ rm -f lib*/*.{a,la,so} || die
+ dodir /usr
+ mv lib* usr/ || die
}