diff options
author | 2004-09-21 23:14:25 +0000 | |
---|---|---|
committer | 2004-09-21 23:14:25 +0000 | |
commit | f870bb89100242fac5a6220f69735da94c5df2aa (patch) | |
tree | c55f8ef37f063f41351fdc5101c6bc1144d302cf /sys-devel | |
parent | many fixes to init scripts, dep updates, etc. (#60403,#56713) (Manifest recom... (diff) | |
download | gentoo-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/ChangeLog | 15 | ||||
-rw-r--r-- | sys-devel/gcc/Manifest | 15 | ||||
-rw-r--r-- | sys-devel/gcc/files/3.4.2/gcc34-fix-sse2_pinsrw.patch | 25 | ||||
-rw-r--r-- | sys-devel/gcc/files/3.4.2/gcc34-m32-no-sse2.patch | 24 | ||||
-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 } |