diff options
author | Travis Tilley <lv@gentoo.org> | 2004-05-20 08:39:50 +0000 |
---|---|---|
committer | Travis Tilley <lv@gentoo.org> | 2004-05-20 08:39:50 +0000 |
commit | 8446d46e1861fed9c3313225104cfca58f137500 (patch) | |
tree | 4129eba5367b7a304a5230aedafcc50533494047 /sys-devel | |
parent | mark stable, security fix (Manifest recommit) (diff) | |
download | gentoo-2-8446d46e1861fed9c3313225104cfca58f137500.tar.gz gentoo-2-8446d46e1861fed9c3313225104cfca58f137500.tar.bz2 gentoo-2-8446d46e1861fed9c3313225104cfca58f137500.zip |
my bad... 3.4.0-r3 was horribly broken, so i am doing a revision bump to encourage all users who installed this version to upgrade. i have also removed backwards compatibility support because it was horribly broken on a few archs other than x86 and amd64. please keep gcc 3.3.x or 3.2.x around if you need the older libstdc++ for running binary-only c++ apps.
Diffstat (limited to 'sys-devel')
-rw-r--r-- | sys-devel/gcc/ChangeLog | 12 | ||||
-rw-r--r-- | sys-devel/gcc/Manifest | 3 | ||||
-rw-r--r-- | sys-devel/gcc/files/digest-gcc-3.4.0-r4 (renamed from sys-devel/gcc/files/digest-gcc-3.4.0-r3) | 0 | ||||
-rw-r--r-- | sys-devel/gcc/gcc-3.4.0-r4.ebuild (renamed from sys-devel/gcc/gcc-3.4.0-r3.ebuild) | 67 |
4 files changed, 30 insertions, 52 deletions
diff --git a/sys-devel/gcc/ChangeLog b/sys-devel/gcc/ChangeLog index b8a80c56c9ec..d54a8ec77d76 100644 --- a/sys-devel/gcc/ChangeLog +++ b/sys-devel/gcc/ChangeLog @@ -1,6 +1,16 @@ # ChangeLog for sys-devel/gcc # Copyright 2002-2004 Gentoo Technologies, Inc.; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/sys-devel/gcc/ChangeLog,v 1.246 2004/05/19 13:13:42 lv Exp $ +# $Header: /var/cvsroot/gentoo-x86/sys-devel/gcc/ChangeLog,v 1.247 2004/05/20 08:39:50 lv Exp $ + +*gcc-3.4.0-r4 (21 May 2004) + + 21 May 2004; Travis Tilley <lv@gentoo.org> -gcc-3.4.0-r3.ebuild, + +gcc-3.4.0-r4.ebuild: + 3.4.0-r3 was horribly broken, so i am doing a revision bump to encourage all + users who installed this version to upgrade. i have also removed backwards + compatibility support because it was horribly broken on a few archs other than + x86 and amd64. please keep gcc 3.3.x or 3.2.x around if you need the older + libstdc++ for running binary-only c++ apps. *gcc-3.4.0-r3 (20 May 2004) diff --git a/sys-devel/gcc/Manifest b/sys-devel/gcc/Manifest index ed34e31795fc..90e33beaaf6f 100644 --- a/sys-devel/gcc/Manifest +++ b/sys-devel/gcc/Manifest @@ -11,6 +11,7 @@ MD5 42871c605b839610632d237b41e38866 gcc-3.3.2-r5.ebuild 21460 MD5 7eb36ba5811423e02b4ae4c11d8869c5 gcc-3.3.3_pre20040215.ebuild 22195 MD5 d8d35a54609911a201727872dc3ffe26 gcc-3.3.3_pre20040322.ebuild 22621 MD5 b2c168723aee82080bc1ee741848ef40 gcc-3.3.3-r4.ebuild 25550 +MD5 f91bbde0c9de01f33635339f9818f164 gcc-3.4.0-r4.ebuild 27506 MD5 1aabd842d43a507ea8d2e988f6f88707 gcc-3.3.2-r7.ebuild 21865 MD5 ca6cec20814fc6a27d5b1394ef02c867 gcc-3.2.1-r7.ebuild 14773 MD5 2091041850f831fdef34656fc3308604 gcc-3.3.2-r2.ebuild 18118 @@ -22,7 +23,6 @@ MD5 14cf69f1206d85356781dd2ad63eb7ca gcc-3.3.2-r4.ebuild 20741 MD5 8c9407ec40e58c4ebeabe5ee6e93a52a gcc-3.2.2.ebuild 16096 MD5 c7e55fc7f4bfd637f45786c0c5fbb365 gcc-2.95.3-r8.ebuild 9095 MD5 b5f1d4d71ad38c5c5e489466ac0ad399 gcc-3.3.3-r3.ebuild 24690 -MD5 5b17022fb2ef0a58b805a8f56103e26b gcc-3.4.0-r3.ebuild 28651 MD5 9fb6a5505f97c736a3f40f84ea9c71da gcc-3.3.2-r6.ebuild 21217 MD5 e6ead3ed008a1fe7adc73ddae996ade3 gcc-3.3.2-r1.ebuild 17965 MD5 acffea20a38eb40fd2952700f53cdc90 ChangeLog 51309 @@ -51,6 +51,7 @@ MD5 5a9db19cd5ad6ad16b0f838d525d842a files/digest-gcc-3.3.3-r3 522 MD5 d476dba058ac32b251723e136c6dfa8e files/digest-gcc-3.3.3-r4 526 MD5 3a68d40d170427ffbfcf181b5099d693 files/digest-gcc-3.3.3-r5 528 MD5 887868d00e0bee0ea5dbe9ab3ff2f491 files/digest-gcc-3.4.0-r3 367 +MD5 887868d00e0bee0ea5dbe9ab3ff2f491 files/digest-gcc-3.4.0-r4 367 MD5 ac529391146ca1021405f8ec7a4b0579 files/digest-gcc-3.3.3_pre20040130 138 MD5 9996ea8d65888808363832ea1571fe0a files/digest-gcc-3.3.3_pre20040215 138 MD5 9996ea8d65888808363832ea1571fe0a files/digest-gcc-3.3.3_pre20040322 138 diff --git a/sys-devel/gcc/files/digest-gcc-3.4.0-r3 b/sys-devel/gcc/files/digest-gcc-3.4.0-r4 index d15ab4ef7534..d15ab4ef7534 100644 --- a/sys-devel/gcc/files/digest-gcc-3.4.0-r3 +++ b/sys-devel/gcc/files/digest-gcc-3.4.0-r4 diff --git a/sys-devel/gcc/gcc-3.4.0-r3.ebuild b/sys-devel/gcc/gcc-3.4.0-r4.ebuild index 40ca7eb25be8..6e456f80ea3a 100644 --- a/sys-devel/gcc/gcc-3.4.0-r3.ebuild +++ b/sys-devel/gcc/gcc-3.4.0-r4.ebuild @@ -1,6 +1,6 @@ # Copyright 1999-2004 Gentoo Technologies, Inc. # Distributed under the terms of the GNU General Public License v2 -# $Header: /var/cvsroot/gentoo-x86/sys-devel/gcc/gcc-3.4.0-r3.ebuild,v 1.2 2004/05/20 04:24:27 lv Exp $ +# $Header: /var/cvsroot/gentoo-x86/sys-devel/gcc/gcc-3.4.0-r4.ebuild,v 1.1 2004/05/20 08:39:50 lv Exp $ IUSE="static nls bootstrap java build X multilib gcj f77 objc hardened uclibc" @@ -122,8 +122,8 @@ HOMEPAGE="http://www.gnu.org/software/gcc/gcc.html" LICENSE="GPL-2 LGPL-2.1" -KEYWORDS="-*" -#KEYWORDS="amd64 ~x86 ~ppc ~sparc ~mips ~ia64 ~ppc64 ~hppa ~alpha ~s390" +#KEYWORDS="-*" +KEYWORDS="amd64 ~x86 ~ppc ~sparc ~mips ~ia64 ~ppc64 ~hppa ~alpha ~s390" # Ok, this is a hairy one again, but lets assume that we # are not cross compiling, than we want SLOT to only contain @@ -152,7 +152,7 @@ DEPEND="virtual/glibc hardened? ( >=sys-libs/glibc-2.3.3_pre20040420-r1 ) ( !sys-devel/hardened-gcc ) >=sys-devel/binutils-2.14.90.0.8-r1 - hardened? ( >=sys-devel/binutils-2.15.90.0.1.1-r2 ) + !amd64? ( hardened? ( >=sys-devel/binutils-2.15.90.0.3 ) ) >=sys-devel/bison-1.875 >=sys-devel/gcc-config-1.3.1 amd64? ( multilib? ( >=app-emulation/emul-linux-x86-baselibs-1.0 ) ) @@ -170,21 +170,6 @@ RDEPEND="virtual/glibc PDEPEND="sys-devel/gcc-config" -gcc_compat() { - einfo "GCC 3.4 provides a new (incompatible) version of libstdc++, so" - einfo "binaries linked to an older libstdc++ will break if that older" - einfo "version is uninstalled. To make sure nothing breaks, the libs" - einfo "from your previous gcc $@ installation will be backed up and" - einfo "included in this install." - - cd ${ROOT} || die "Failed to chdir to root: ${ROOT}" - tar cvf ${WORKDIR}/gcc-libs.tar $(find ${ROOT}/${LOC}/lib/gcc-lib/${CCHOST}/$@ -type f -name '*.so*') || die "failed to create tarball" - cd ${D} || die "failed to enter \$D: $D" - tar -mxvf ${WORKDIR}/gcc-libs.tar || die "failed to extract tarball" - - export BULIB=$@ -} - chk_gcc_version() { # This next bit is for updating libtool linker scripts ... local OLD_GCC_VERSION="`gcc -dumpversion`" @@ -296,14 +281,10 @@ update_gcc_for_libc_ssp() { src_unpack() { local release_version="Gentoo Linux ${PVR}" - ewarn "GCC 3.4 support in Gentoo is still in an early experimental stage." - ewarn "While the compiler itself appears to be pretty solid at this point," - ewarn "there is still a lot of software that will not compile with it. It" - ewarn "might be a good idea to keep your older compiler installed. Do not" - ewarn "hold gentoo accountable if GCC 3.4 wont compile your favorite piece" - ewarn "of software, emits strange and confusing error messages, frustrates" - ewarn "you and your porting efforts, eats your cat, humps your leg, or pees" - ewarn "on your rug. You have been warned!" + ewarn "GCC 3.3 compatibility has been removed. It was always broken, and overall" + ewarn "a bad way to do things. I added it as a temporary fix until a real one" + ewarn "could be implemented, but it breaks on a number of archs." + ewarn "It would be a /very/ good idea to keep gcc 3.3.x or 3.2.x installed." ewarn "NOTE: the piessp patch isnt as complete as the 3.3.3 version" if [ -n "${PP_VER}" ] && [ "${ARCH}" != "hppa" ] @@ -392,10 +373,16 @@ src_unpack() { cp ${WORKDIR}/gcc/protector.c ${WORKDIR}/${P}/gcc/ || die "protector.c not found" cp ${WORKDIR}/gcc/protector.h ${WORKDIR}/${P}/gcc/ || die "protector.h not found" cp -R ${WORKDIR}/gcc/testsuite/* ${WORKDIR}/${P}/gcc/testsuite/ || die "testsuite not found" + epatch ${FILESDIR}/3.4.0/gcc-3.4.0-move-propolice-into-glibc.patch - epatch ${WORKDIR}/protectonly.dif - #use uclibc && epatch ${FILESDIR}/3.3.3/gcc-3.3.3-uclibc-add-ssp.patch + use uclibc && epatch ${FILESDIR}/3.3.3/gcc-3.3.3-uclibc-add-ssp.patch + + # we apply only the needed parts of protectonly.dif + sed -e 's|^CRTSTUFF_CFLAGS = |CRTSTUFF_CFLAGS = -fno-stack-protector-all |' \ + -i gcc/Makefile.in || die "Failed to update crtstuff!" + sed -e 's|^\(LIBGCC2_CFLAGS.*\)$|\1 -fno-stack-protector-all|' \ + -i ${S}/gcc/Makefile.in || die "Failed to update libgcc!" release_version="${release_version}, ssp-${PP_FVER}" @@ -632,26 +619,6 @@ src_install() { ln -s gcc-lib ${D}/${LOC}/lib/gcc LIBPATH=${LIBPATH/lib\/gcc/lib\/gcc-lib} - # Due to the fact that GCC 3.4 provides an incompatible version of - # libstdc++, we need to provide compatibility for binary-only apps - # which are linked against the old version. Every arch should have - # one of these marked stable, so lets look for the newest version - # first. We need to check for the .so instead of just the directory - # because there may or may not be any shared objects to back up... - # The PPC-specific gcc 3.3.3 ebuilds for some reason install directly - # to /usr/lib/ on PPC64, so we'll have to add logic for this later. :/ - # Travis Tilley <lv@gentoo.org> - if [ -f ${LOC}/lib/gcc-lib/${CCHOST}/3.3.3/libstdc++.so ] - then - gcc_compat 3.3.3 - elif [ -f ${LOC}/lib/gcc-lib/${CCHOST}/3.3.2/libstdc++.so ] - then - gcc_compat 3.3.2 - elif [ -f ${LOC}/lib/gcc-lib/${CCHOST}/3.2.3/libstdc++.so ] - then - gcc_compat 3.2.3 - fi - dodir /lib /usr/bin dodir /etc/env.d/gcc echo "PATH=\"${BINPATH}\"" > ${D}/etc/env.d/gcc/${CCHOST}-${MY_PV_FULL} @@ -842,9 +809,9 @@ src_install() { # having one compiler installed at a time, but since these directories # exist outside the versioned directories, versions from gcc 3.3 and # 3.4 will overwrite each other. not good. - cp -pfd ${D}/${LIBPATH}/../lib64/libgcc_s* ${D}/${LIBPATH} use multilib && \ cp -pfd ${D}/${LIBPATH}/../lib32/libgcc_s* ${D}/${LIBPATH} + cp -pfd ${D}/${LIBPATH}/../lib64/libgcc_s* ${D}/${LIBPATH} fi } |