summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTravis Tilley <lv@gentoo.org>2004-05-20 08:39:50 +0000
committerTravis Tilley <lv@gentoo.org>2004-05-20 08:39:50 +0000
commit8446d46e1861fed9c3313225104cfca58f137500 (patch)
tree4129eba5367b7a304a5230aedafcc50533494047 /sys-devel
parentmark stable, security fix (Manifest recommit) (diff)
downloadgentoo-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/ChangeLog12
-rw-r--r--sys-devel/gcc/Manifest3
-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
}