summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTravis Tilley <lv@gentoo.org>2004-09-21 23:14:25 +0000
committerTravis Tilley <lv@gentoo.org>2004-09-21 23:14:25 +0000
commitf870bb89100242fac5a6220f69735da94c5df2aa (patch)
treec55f8ef37f063f41351fdc5101c6bc1144d302cf /sys-devel
parentmany fixes to init scripts, dep updates, etc. (#60403,#56713) (Manifest recom... (diff)
downloadgentoo-2-f870bb89100242fac5a6220f69735da94c5df2aa.tar.gz
gentoo-2-f870bb89100242fac5a6220f69735da94c5df2aa.tar.bz2
gentoo-2-f870bb89100242fac5a6220f69735da94c5df2aa.zip
moved libgcc stuff back into the versioned directory, the libgcc_s-only stuff will be broken out into a seperate ebuild. fixed broken libtool archives. added an sse2 fix from Scott "I also own lv" Ladd, and a workaround that disables sse2 by default for 32bit on both x86 and amd64 until the rest of the wrong-code bugs are fixed. the workaround can be disabled completely by using the -msse2 flag.
Diffstat (limited to 'sys-devel')
-rw-r--r--sys-devel/gcc/ChangeLog15
-rw-r--r--sys-devel/gcc/Manifest15
-rw-r--r--sys-devel/gcc/files/3.4.2/gcc34-fix-sse2_pinsrw.patch25
-rw-r--r--sys-devel/gcc/files/3.4.2/gcc34-m32-no-sse2.patch24
-rw-r--r--sys-devel/gcc/files/digest-gcc-3.4.2-r2 (renamed from sys-devel/gcc/files/digest-gcc-3.4.2-r1)0
-rw-r--r--sys-devel/gcc/gcc-3.4.2-r2.ebuild (renamed from sys-devel/gcc/gcc-3.4.2-r1.ebuild)44
6 files changed, 82 insertions, 41 deletions
diff --git a/sys-devel/gcc/ChangeLog b/sys-devel/gcc/ChangeLog
index 8697cad62195..2dbca98676d9 100644
--- a/sys-devel/gcc/ChangeLog
+++ b/sys-devel/gcc/ChangeLog
@@ -1,6 +1,19 @@
# ChangeLog for sys-devel/gcc
# Copyright 1999-2004 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/sys-devel/gcc/ChangeLog,v 1.329 2004/09/19 21:51:41 solar Exp $
+# $Header: /var/cvsroot/gentoo-x86/sys-devel/gcc/ChangeLog,v 1.330 2004/09/21 23:14:25 lv Exp $
+
+*gcc-3.4.2-r2 (21 Sep 2004)
+
+ 21 Sep 2004; Travis Tilley <lv@gentoo.org>
+ +files/3.4.2/gcc34-fix-sse2_pinsrw.patch,
+ +files/3.4.2/gcc34-m32-no-sse2.patch, -gcc-3.4.2-r1.ebuild,
+ +gcc-3.4.2-r2.ebuild:
+ moved libgcc stuff back into the versioned directory, the libgcc_s-only stuff
+ will be broken out into a seperate ebuild. fixed broken libtool archives.
+ added an sse2 fix from Scott "I also own lv" Ladd, and a workaround that
+ disables sse2 by default for 32bit on both x86 and amd64 until the rest of the
+ wrong-code bugs are fixed. the workaround can be disabled completely by using
+ the -msse2 flag.
19 Sep 2004; <solar@gentoo.org> files/3.3.4/gcc-3.3.4-spec-env.patch,
files/3.4.1/gcc-3.4.1-spec-env.patch:
diff --git a/sys-devel/gcc/Manifest b/sys-devel/gcc/Manifest
index 22667e1b87ba..a9f3e9d47b82 100644
--- a/sys-devel/gcc/Manifest
+++ b/sys-devel/gcc/Manifest
@@ -1,8 +1,4 @@
------BEGIN PGP SIGNED MESSAGE-----
-Hash: SHA1
-
MD5 99bd42b20f573db4f5dd176ec2fc8f08 gcc-3.3.2-r3.ebuild 20310
-MD5 bda7b2182de5ade42b1ca6dc08a80201 gcc-3.4.2-r1.ebuild 13986
MD5 ebb324eea95cb2c6be9254a05a7ff815 gcc-3.2.3-r4.ebuild 19653
MD5 d3b281e2d3ff272a34d85f475452a668 gcc-3.3.3_pre20040408-r1.ebuild 22511
MD5 9be02aa10d2d5643f3fb4f769345ecf9 gcc-3.3.ebuild 16522
@@ -27,6 +23,7 @@ MD5 29101392d0713e27c3186bab17fa17c2 gcc-3.3.4-r2.ebuild 24802
MD5 567094e03359ffc1c95af7356395228d metadata.xml 162
MD5 dce0d569acbf0ba02b504d6d24ed1e8b gcc-3.4.1-r2.ebuild 31161
MD5 fbdd9445945cd92c9f1791320f6f5f31 gcc-3.3.3-r5.ebuild 24223
+MD5 59869e140df33e81e0fefdd50dd901cd gcc-3.4.2-r2.ebuild 13584
MD5 f7e7042c2ddf66e344b30cbc66ebaf73 files/cc 24
MD5 80d122265d3062847a4a1b161abe1d26 files/cpp 24
MD5 ea2cf3df0d89a26d5fdc1a531176e395 files/pro-police-docs.patch 3287
@@ -59,6 +56,7 @@ MD5 f57a9900e4d0edcae7b1e327e263d2f7 files/digest-gcc-3.3 294
MD5 e3193bdffb435b77a21bfb504ff6f591 files/mkinfodir 7324
MD5 edced3dd7f4035b638bbee500bc89e7b files/gcc-spec-env.patch 791
MD5 07b57d62aa1a8cd4d1cd37984ebe2053 files/scan_libgcc_linked_ssp.sh 861
+MD5 3e2ed05a6d6829b70d282af8aa1fce82 files/digest-gcc-3.4.2-r2 358
MD5 f6b6f7c3577eccb694066bb54dd8075a files/3.3/gcc33-gentoo-branding-1.patch 870
MD5 d047c78a9141b16915d8ec3f54d1e246 files/3.3/gcc33-coreutils-compat.patch.bz2 3462
MD5 453122edf63d75cca3a6c56a6dac45b0 files/3.3/gcc33-propolice-version.patch 570
@@ -120,10 +118,5 @@ MD5 14fec2000fc63536d4cf22195e88e14f files/3.4.1/gcc-3.4.1-r2-gentoo-branding.pa
MD5 df06b1cf70425c78e2e59136ed372ab4 files/3.4.1/gcc341-ppc64-mozilla-ICE-fix.patch 729
MD5 523970c128b929fe7c7cf36508ebd1d5 files/2.95.3/gcc-2.95.3-new-atexit.diff 13604
MD5 b1a242694f56184cbcdd40ba25800d50 files/2.95.3/gcc-2.95.3-alpha.diff 14345
------BEGIN PGP SIGNATURE-----
-Version: GnuPG v1.2.4 (GNU/Linux)
-
-iD8DBQFBTf9L94CCfB4KcwwRAtHKAJ97PHdCmF8Fr/T7IGOUgCkereD7mQCfeqsz
-gqFpGqJK0ui0CM/YEQe/Kfc=
-=wAMN
------END PGP SIGNATURE-----
+MD5 2c1ce849de55d8c81af4e081dbb2f5e4 files/3.4.2/gcc34-m32-no-sse2.patch 1058
+MD5 2970ce4d26f78bbb7e76f1d41a177bfb files/3.4.2/gcc34-fix-sse2_pinsrw.patch 901
diff --git a/sys-devel/gcc/files/3.4.2/gcc34-fix-sse2_pinsrw.patch b/sys-devel/gcc/files/3.4.2/gcc34-fix-sse2_pinsrw.patch
new file mode 100644
index 000000000000..33b1ecfce570
--- /dev/null
+++ b/sys-devel/gcc/files/3.4.2/gcc34-fix-sse2_pinsrw.patch
@@ -0,0 +1,25 @@
+--- gcc-3.4.2.old/gcc/config/i386/i386.md 2004-09-21 17:08:59.654841672 +0000
++++ gcc-3.4.2/gcc/config/i386/i386.md 2004-09-21 17:10:57.386943672 +0000
+@@ -105,6 +105,7 @@
+ (UNSPEC_MFENCE 59)
+ (UNSPEC_LFENCE 60)
+ (UNSPEC_PSADBW 61)
++ (UNSPEC_PINSRW 62)
+ (UNSPEC_ADDSUB 71)
+ (UNSPEC_HADD 72)
+ (UNSPEC_HSUB 73)
+@@ -22095,11 +22096,12 @@
+
+ (define_insn "sse2_pinsrw"
+ [(set (match_operand:V8HI 0 "register_operand" "=x")
+- (vec_merge:V8HI (match_operand:V8HI 1 "register_operand" "0")
++ (unspec:V8HI [(match_operand:V8HI 1 "register_operand" "0")
+ (vec_duplicate:V8HI
+ (truncate:HI
+ (match_operand:SI 2 "nonimmediate_operand" "rm")))
+- (match_operand:SI 3 "const_0_to_255_operand" "N")))]
++ (match_operand:SI 3 "const_0_to_255_operand" "N")]
++ UNSPEC_PINSRW))]
+ "TARGET_SSE2"
+ "pinsrw\t{%3, %2, %0|%0, %2, %3}"
+ [(set_attr "type" "ssecvt")
diff --git a/sys-devel/gcc/files/3.4.2/gcc34-m32-no-sse2.patch b/sys-devel/gcc/files/3.4.2/gcc34-m32-no-sse2.patch
new file mode 100644
index 000000000000..3050b40b45f0
--- /dev/null
+++ b/sys-devel/gcc/files/3.4.2/gcc34-m32-no-sse2.patch
@@ -0,0 +1,24 @@
+diff -Nru gcc-3.4.2.old/gcc/config/i386/linux.h gcc-3.4.2/gcc/config/i386/linux.h
+--- gcc-3.4.2.old/gcc/config/i386/linux.h 2004-09-21 16:02:45.049073592 +0000
++++ gcc-3.4.2/gcc/config/i386/linux.h 2004-09-21 16:11:47.532603560 +0000
+@@ -90,7 +90,7 @@
+ #endif
+
+ #undef CC1_SPEC
+-#define CC1_SPEC "%(cc1_cpu) %{profile:-p}"
++#define CC1_SPEC "%(cc1_cpu) %{profile:-p} %{!m64: %{!msse2:-mno-sse2} }"
+
+ /* Provide a LINK_SPEC appropriate for Linux. Here we provide support
+ for the special GCC options -static and -shared, which allow us to
+diff -Nru gcc-3.4.2.old/gcc/config/i386/x86-64.h gcc-3.4.2/gcc/config/i386/x86-64.h
+--- gcc-3.4.2.old/gcc/config/i386/x86-64.h 2004-09-21 16:02:45.113063864 +0000
++++ gcc-3.4.2/gcc/config/i386/x86-64.h 2004-09-21 16:25:46.174110672 +0000
+@@ -45,7 +45,7 @@
+ #define WCHAR_TYPE_SIZE 32
+
+ #undef CC1_SPEC
+-#define CC1_SPEC "%(cc1_cpu) %{profile:-p}"
++#define CC1_SPEC "%(cc1_cpu) %{profile:-p} %{m32: %{!msse2:-mno-sse2} }"
+
+ #undef ASM_SPEC
+ #define ASM_SPEC "%{v:-V} %{Qy:} %{!Qn:-Qy} %{n} %{T} %{Ym,*} %{Yd,*} \
diff --git a/sys-devel/gcc/files/digest-gcc-3.4.2-r1 b/sys-devel/gcc/files/digest-gcc-3.4.2-r2
index 3d78b86acca9..3d78b86acca9 100644
--- a/sys-devel/gcc/files/digest-gcc-3.4.2-r1
+++ b/sys-devel/gcc/files/digest-gcc-3.4.2-r2
diff --git a/sys-devel/gcc/gcc-3.4.2-r1.ebuild b/sys-devel/gcc/gcc-3.4.2-r2.ebuild
index e1217faf3f39..46e9e5d2e221 100644
--- a/sys-devel/gcc/gcc-3.4.2-r1.ebuild
+++ b/sys-devel/gcc/gcc-3.4.2-r2.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.5 2004/09/14 17:55:46 lv Exp $
+# $Header: /var/cvsroot/gentoo-x86/sys-devel/gcc/gcc-3.4.2-r2.ebuild,v 1.1 2004/09/21 23:14:25 lv Exp $
IUSE="static nls bootstrap build nomultilib gcj gtk f77 objc hardened uclibc n32 n64"
@@ -59,8 +59,6 @@ ETYPE="gcc-compiler"
HARDENED_GCC_WORKS="x86 sparc amd64"
SPLIT_SPECS="true"
-SLOT="3.4"
-
# 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
@@ -146,12 +144,16 @@ src_unpack() {
use n64 && epatch ${FILESDIR}/3.4.1/gcc-3.4.1-mips-n64only.patch
fi
+ # hack around some ugly 32bit sse2 wrong-code bugs
+ epatch ${FILESDIR}/3.4.2/gcc34-m32-no-sse2.patch
+ epatch ${FILESDIR}/3.4.2/gcc34-fix-sse2_pinsrw.patch
+
if use amd64 && use !nomultilib ; then
# this should hack around the GCC_NO_EXECUTABLES bug
epatch ${FILESDIR}/3.4.1/gcc-3.4.1-glibc-is-native.patch
cd ${S}/libstdc++-v3
einfo "running autoreconf..."
- autoreconf
+ autoreconf 2> /dev/null
cd ${S}
fi
}
@@ -376,32 +378,16 @@ src_install() {
exeinto /sbin
doexe ${FILESDIR}/fix_libtool_files.sh
- # multilib is a headache. we want a versioned 32bit libgcc in /lib32,
- # but that currently needs to be a symlink to where we -really- keep
- # our 32bit libraries.
- if [ -d ${D}/${LIBPATH}/../lib32 ] && use amd64 ; then
- mkdir -p ${D}/emul/linux/x86/lib/
- ln -s lib ${D}/emul/linux/x86/lib32
- ln -s ./emul/linux/x86/lib ${D}/lib32
+ # we dont want these in freaky non-versioned paths that dont ever get used
+ if [ -d ${D}/${LIBPATH}/../$(get_libdir) ] ; then
+ mv ${D}/${LIBPATH}/../$(get_libdir)/* ${D}/${LIBPATH}/
+ rm -rf ${D}/${LIBPATH}/../$(get_libdir)/
fi
-
- if [ "$CHOST" == "$CCHOST" -o "$CCHOST" == "" ] ; then
- # we want libgcc_s.so in /lib{,32,64}, NOT some funky directory where
- # it'll never be found.
- for libgcc_dir in `ls -d ${D}/${LIBPATH}/../lib*` ; do
- mkdir -p ${D}/$(basename ${libgcc_dir})
- mv ${libgcc_dir}/* ${D}/$(basename ${libgcc_dir})/
- rm -rf ${libgcc_dir}
- add_version_to_shared ${D}/$(basename ${libgcc_dir})/
- done
- # it might be here too.
- if [ -e ${D}/${LIBPATH}/libgcc_s.so ] ; then
- mkdir -p ${D}/$(get_libdir)/
- mv ${D}/${LIBPATH}/libgcc_s* ${D}/$(get_libdir)/
- # we need a libgcc_s.so
- dosym libgcc_s.so.1 /$(get_libdir)/libgcc_s.so
- add_version_to_shared ${D}/$(get_libdir)/
- fi
+ if [ -d ${D}/${LIBPATH}/../$(get_multilibdir) ] ; then
+ local multilibdir=$(get_multilibdir)
+ mv ${D}/${LIBPATH}/../$(get_multilibdir)/* \
+ ${D}/${LIBPATH}/${multilibdir/lib}/
+ rm -rf ${D}/${LIBPATH}/../$(get_multilibdir)/
fi
}