summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTravis Tilley <lv@gentoo.org>2004-09-13 21:39:47 +0000
committerTravis Tilley <lv@gentoo.org>2004-09-13 21:39:47 +0000
commit8684673aff6e0db3e136de3e3c0a03365f7f97e5 (patch)
tree10d55b6af5c6240737ae2c05d369f164cb1df4bc /sys-devel
parentupdated manifest file (Manifest recommit) (diff)
downloadgentoo-2-8684673aff6e0db3e136de3e3c0a03365f7f97e5.tar.gz
gentoo-2-8684673aff6e0db3e136de3e3c0a03365f7f97e5.tar.bz2
gentoo-2-8684673aff6e0db3e136de3e3c0a03365f7f97e5.zip
added a patch from Rob "I own lv" Holland that allows you to switch specs files based on an environment variable (GCC_SPECS) and made gcc build both a vanilla and hardened specs file by default. Eventually this will mean being able to switch between gcc and hardened gcc on the fly. Since neither gcc-config nor portage support this yet, I"m not bumping the revision number.
Diffstat (limited to 'sys-devel')
-rw-r--r--sys-devel/gcc/ChangeLog10
-rw-r--r--sys-devel/gcc/files/gcc-spec-env.patch24
-rw-r--r--sys-devel/gcc/gcc-3.4.2-r1.ebuild10
3 files changed, 41 insertions, 3 deletions
diff --git a/sys-devel/gcc/ChangeLog b/sys-devel/gcc/ChangeLog
index b48ea22884df..61d2352e8328 100644
--- a/sys-devel/gcc/ChangeLog
+++ b/sys-devel/gcc/ChangeLog
@@ -1,6 +1,14 @@
# ChangeLog for sys-devel/gcc
# Copyright 2002-2004 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/sys-devel/gcc/ChangeLog,v 1.323 2004/09/12 17:44:43 lv Exp $
+# $Header: /var/cvsroot/gentoo-x86/sys-devel/gcc/ChangeLog,v 1.324 2004/09/13 21:39:47 lv Exp $
+
+ 13 Sep 2004; Travis Tilley <lv@gentoo.org> +files/gcc-spec-env.patch,
+ gcc-3.4.2-r1.ebuild:
+ added a patch from Rob "I own lv" Holland that allows you to switch specs
+ files based on an environment variable (GCC_SPECS) and made gcc build both a
+ vanilla and hardened specs file by default. Eventually this will mean being
+ able to switch between gcc and hardened gcc on the fly. Since neither
+ gcc-config nor portage support this yet, I'm not bumping the revision number.
*gcc-3.4.2-r1 (12 Sep 2004)
diff --git a/sys-devel/gcc/files/gcc-spec-env.patch b/sys-devel/gcc/files/gcc-spec-env.patch
new file mode 100644
index 000000000000..96e6ded4ce41
--- /dev/null
+++ b/sys-devel/gcc/files/gcc-spec-env.patch
@@ -0,0 +1,24 @@
+--- gcc-3.4.2-r1/gcc/gcc.c 2004-09-13 14:30:15.995139424 +0000
++++ gcc-3.4.2-r1/gcc/gcc.c.new 2004-09-13 14:38:58.731671392 +0000
+@@ -6421,6 +6421,21 @@
+
+ /* Process any user specified specs in the order given on the command
+ line. */
++
++ GET_ENVIRONMENT (specs_file, "GCC_SPECS");
++ if (specs_file)
++ {
++ struct user_specs *user = (struct user_specs *)
++ xmalloc (sizeof (struct user_specs));
++
++ user->next = (struct user_specs *) 0;
++ user->filename = specs_file;
++ if (user_specs_tail)
++ user_specs_tail->next = user;
++ else
++ user_specs_head = user;
++ user_specs_tail = user;
++ }
+ for (uptr = user_specs_head; uptr; uptr = uptr->next)
+ {
+ char *filename = find_a_file (&startfile_prefixes, uptr->filename,
diff --git a/sys-devel/gcc/gcc-3.4.2-r1.ebuild b/sys-devel/gcc/gcc-3.4.2-r1.ebuild
index cc9c4283ac88..d09858ae4714 100644
--- a/sys-devel/gcc/gcc-3.4.2-r1.ebuild
+++ b/sys-devel/gcc/gcc-3.4.2-r1.ebuild
@@ -1,6 +1,6 @@
# Copyright 1999-2004 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/sys-devel/gcc/gcc-3.4.2-r1.ebuild,v 1.1 2004/09/12 17:44:43 lv Exp $
+# $Header: /var/cvsroot/gentoo-x86/sys-devel/gcc/gcc-3.4.2-r1.ebuild,v 1.2 2004/09/13 21:39:47 lv Exp $
IUSE="static nls bootstrap build nomultilib gcj gtk f77 objc hardened uclibc n32 n64"
@@ -55,8 +55,9 @@ S="$(gcc_get_s_dir)"
ETYPE="gcc-compiler"
-PIEPATCH_EXCLUDE="upstream/04_all_gcc-3.4.0-v8.7.6.1-pie-arm-uclibc.patch.bz2"
+#PIEPATCH_EXCLUDE="upstream/04_all_gcc-3.4.0-v8.7.6.1-pie-arm-uclibc.patch.bz2"
HARDENED_GCC_WORKS="x86 sparc amd64"
+SPLIT_SPECS="true"
# Recently there has been a lot of stability problem in Gentoo-land. Many
# things can be the cause to this, but I believe that it is due to gcc3
@@ -135,6 +136,7 @@ src_unpack() {
# misc patches that havent made it into a patch tarball yet
epatch ${FILESDIR}/3.4.0/gcc34-reiser4-fix.patch
+ epatch ${FILESDIR}/gcc-spec-env.patch
if use mips && use nomultilib; then
use n32 && epatch ${FILESDIR}/3.4.1/gcc-3.4.1-mips-n32only.patch
@@ -185,6 +187,10 @@ src_install() {
create_gcc_multilib_scripts
+ if [ "${SPLIT_SPECS}" == "true" ] ; then
+ cp ${WORKDIR}/build/*.specs ${D}/${LIBPATH}
+ fi
+
# Because GCC 3.4 installs into the gcc directory and not the gcc-lib
# directory, we will have to rename it in order to keep compatibility
# with our current libtool check and gcc-config (which would be a pain