update to gcc 4.6.2 and binutils 2.22
changed the strategy for matching libgccs a bit, it was getting out of hand
and somewhat impossible to keep making a seperate libgcc for each core active.
Now it requires a bit more manual setting of the fpu on the command line or
you'll get a bad match. So it goes.
diff --git a/doit b/doit
index b7fa25b..1d73682 100755
--- a/doit
+++ b/doit
@@ -2,7 +2,7 @@
OS=`uname`
HOSTARCH=`uname -m`
-ARCHSUFFIX=.bz2
+ARCHSUFFIX=.xz
if [ "x$ARCHES" = "x" ]; then
echo need to specify architectures to build in the ARCHES environment variable
@@ -28,6 +28,16 @@
tar xf gcc-$GCCVER.tar${ARCHSUFFIX} || exit 1
echo patching gcc
patch -d gcc-$GCCVER -p1 < gcc-patch.txt || exit 1
+
+ cd gcc-$GCCVER
+ tar xf ../gmp-*
+ tar xf ../mpc-*
+ tar xf ../mpfr-*
+ ln -sf gmp-* gmp
+ ln -sf mpc-* mpc
+ ln -sf mpfr-* mpfr
+ cd ..
+
rm -rf gcc-$GCCVER.patched
mv gcc-$GCCVER gcc-$GCCVER.patched
fi
@@ -43,9 +53,9 @@
(mkdir -p $BINBUILDPATH &&
cd $BINBUILDPATH &&
../binutils-$BINVER.patched/configure --target=$ARCH-elf --prefix=$INSTALLPATH &&
- gmake configure-host &&
- gmake -j4 &&
- gmake install &&
+ make configure-host &&
+ make -j32 &&
+ make install &&
touch built.txt)
fi
@@ -53,9 +63,9 @@
(mkdir -p $GCCBUILDPATH &&
cd $GCCBUILDPATH &&
../gcc-$GCCVER.patched/configure --target=$ARCH-elf --prefix=$INSTALLPATH --enable-languages=c,c++ --disable-libssp &&
- gmake configure-host &&
- gmake -j4 &&
- gmake install &&
+ make configure-host &&
+ make -j32 &&
+ make install &&
touch built.txt)
fi
done
diff --git a/gcc-patch.txt b/gcc-patch.txt
index 8193e80..5297189 100644
--- a/gcc-patch.txt
+++ b/gcc-patch.txt
@@ -1,7 +1,7 @@
-diff -ruN gcc-4.3.2/configure gcc-4.3.2.patched/configure
---- gcc-4.3.2/configure 2008-02-01 19:29:30.000000000 -0800
-+++ gcc-4.3.2.patched/configure 2008-12-25 08:59:11.000000000 -0800
-@@ -2141,6 +2141,7 @@
+diff -ruN gcc-4.6.2/configure gcc-4.6.2.patched/configure
+--- gcc-4.6.2/configure 2011-06-27 13:54:59.000000000 -0700
++++ gcc-4.6.2.patched/configure 2011-12-24 12:23:16.660536149 -0800
+@@ -3125,6 +3125,7 @@
noconfigdirs="$noconfigdirs ld gas gdb gprof"
noconfigdirs="$noconfigdirs sim target-rda"
noconfigdirs="$noconfigdirs ${libgcj}"
@@ -9,7 +9,7 @@
;;
*-*-freebsd[12] | *-*-freebsd[12].* | *-*-freebsd*aout*)
noconfigdirs="$noconfigdirs target-newlib target-libgloss ${libgcj}"
-@@ -2220,6 +2221,10 @@
+@@ -3205,6 +3206,10 @@
sh-*-linux*)
noconfigdirs="$noconfigdirs ${libgcj} target-newlib target-libgloss"
;;
@@ -20,7 +20,7 @@
sh*-*-pe|mips*-*-pe|*arm-wince-pe)
noconfigdirs="$noconfigdirs ${libgcj}"
noconfigdirs="$noconfigdirs target-examples"
-@@ -2247,6 +2252,7 @@
+@@ -3232,6 +3237,7 @@
;;
arm-*-elf* | strongarm-*-elf* | xscale-*-elf* | arm*-*-eabi* )
noconfigdirs="$noconfigdirs target-libffi target-qthreads"
@@ -28,7 +28,7 @@
libgloss_dir=arm
;;
arm*-*-linux-gnueabi)
-@@ -2373,6 +2379,7 @@
+@@ -3369,6 +3375,7 @@
;;
i[3456789]86-*-coff | i[3456789]86-*-elf)
noconfigdirs="$noconfigdirs ${libgcj}"
@@ -36,7 +36,7 @@
libgloss_dir=i386
;;
i[3456789]86-*-linux*)
-@@ -2438,6 +2445,10 @@
+@@ -3436,6 +3443,10 @@
i[3456789]86-*-rdos*)
noconfigdirs="$noconfigdirs gdb target-newlib target-libgloss"
;;
@@ -47,7 +47,7 @@
m32r-*-*)
noconfigdirs="$noconfigdirs ${libgcj}"
;;
-@@ -2494,6 +2505,10 @@
+@@ -3492,6 +3503,10 @@
noconfigdirs="$noconfigdirs ${libgcj}"
libgloss_dir=rs6000
;;
@@ -58,33 +58,69 @@
powerpc-*-eabi* | powerpcle-*-eabi* | powerpc-*-rtems* )
libgloss_dir=rs6000
;;
-Files gcc-4.3.2/gcc/config/arm/.t-arm-elf.swp and gcc-4.3.2.patched/gcc/config/arm/.t-arm-elf.swp differ
-diff -ruN gcc-4.3.2/gcc/config/arm/t-arm-elf gcc-4.3.2.patched/gcc/config/arm/t-arm-elf
---- gcc-4.3.2/gcc/config/arm/t-arm-elf 2007-01-03 15:48:10.000000000 -0800
-+++ gcc-4.3.2.patched/gcc/config/arm/t-arm-elf 2008-12-25 10:07:27.000000000 -0800
-@@ -6,8 +6,8 @@
- _truncdfsf2 _negsf2 _addsubsf3 _muldivsf3 _cmpsf2 _unordsf2 \
- _fixsfsi _fixunssfsi _floatdidf _floatdisf _floatundidf _floatundisf
+diff -ruN gcc-4.6.2/gcc/config/arm/elf.h gcc-4.6.2.patched/gcc/config/arm/elf.h
+--- gcc-4.6.2/gcc/config/arm/elf.h 2009-06-21 13:48:15.000000000 -0700
++++ gcc-4.6.2.patched/gcc/config/arm/elf.h 2011-12-24 13:12:51.121576063 -0800
+@@ -164,3 +164,6 @@
+ #undef L_floatundisf
+ #endif
--MULTILIB_OPTIONS = marm/mthumb
--MULTILIB_DIRNAMES = arm thumb
-+MULTILIB_OPTIONS = mthumb
-+MULTILIB_DIRNAMES = thumb
- MULTILIB_EXCEPTIONS =
- MULTILIB_MATCHES =
-
-@@ -21,6 +21,10 @@
- #MULTILIB_MATCHES += march?armv7=mcpu?cortex-r4
- #MULTILIB_MATCHES += march?armv7=mcpu?cortex-m3
-
-+# build a bunch of specialized versions of libcc for particular cores
-+MULTILIB_OPTIONS += mcpu=arm7tdmi/mcpu=arm9tdmi/mcpu=arm920t/mcpu=arm926ej-s/mcpu=arm1136j-s/mcpu=arm1136jf-s/mcpu=arm1176jz-s/mcpu=arm1176jzf-s/mcpu=xscale/mcpu=mpcore/mcpu=cortex-a8/march=armv4t/march=armv5t/march=armv5te/march=armv6/march=armv6j/march=armv6k/march=armv6z/march=armv6zk/march=armv7-a/march=armv7-r
-+MULTILIB_DIRNAMES += arm7tdmi arm9tdmi arm920t arm926ej-s arm1136j-s arm1136jf-s arm1176jz-s arm1176jzf-s xscale mpcore cortex-a8 armv4t armv5t armv5te armv6 armv6j armv6k armv6z armv6zk armv7-a armv7-r
++#undef FPUTYPE_DEFAULT
++#define FPUTYPE_DEFAULT "vfp"
+
- # MULTILIB_OPTIONS += mcpu=ep9312
- # MULTILIB_DIRNAMES += ep9312
- # MULTILIB_EXCEPTIONS += *mthumb/*mcpu=ep9312*
-@@ -33,8 +37,8 @@
+diff -ruN gcc-4.6.2/gcc/config/arm/t-arm-elf gcc-4.6.2.patched/gcc/config/arm/t-arm-elf
+--- gcc-4.6.2/gcc/config/arm/t-arm-elf 2011-01-03 12:52:22.000000000 -0800
++++ gcc-4.6.2.patched/gcc/config/arm/t-arm-elf 2011-12-24 14:13:54.219032141 -0800
+@@ -40,22 +40,36 @@
+ #MULTILIB_DIRNAMES += fa526 fa626 fa606te fa626te fmp626 fa726te
+ #MULTILIB_EXCEPTIONS += *mthumb*/*mcpu=fa526 *mthumb*/*mcpu=fa626
+
+-#MULTILIB_OPTIONS += march=armv7
+-#MULTILIB_DIRNAMES += thumb2
+-#MULTILIB_EXCEPTIONS += march=armv7* marm/*march=armv7*
+-#MULTILIB_MATCHES += march?armv7=march?armv7-a
+-#MULTILIB_MATCHES += march?armv7=march?armv7-r
+-#MULTILIB_MATCHES += march?armv7=march?armv7-m
+-#MULTILIB_MATCHES += march?armv7=mcpu?cortex-a8
+-#MULTILIB_MATCHES += march?armv7=mcpu?cortex-r4
+-#MULTILIB_MATCHES += march?armv7=mcpu?cortex-m3
++# build a bunch of specialized versions of libcc for particular cores
++#MULTILIB_OPTIONS += mcpu=arm7tdmi/mcpu=arm9tdmi/mcpu=arm920t/mcpu=arm926ej-s/mcpu=arm1136j-s/mcpu=arm1136jf-s/mcpu=arm1176jz-s/mcpu=arm1176jzf-s/mcpu=xscale/mcpu=mpcore/mcpu=cortex-a8/cortex-a9/march=armv4t/march=armv5t/march=armv5te/march=armv6/march=armv6j/march=armv6k/march=armv6z/march=armv6zk/march=armv7-a/march=armv7-r
++#MULTILIB_DIRNAMES += arm7tdmi arm9tdmi arm920t arm926ej-s arm1136j-s arm1136jf-s arm1176jz-s arm1176jzf-s xscale mpcore cortex-a8 cortex-a9 cortex-m3 armv4t armv5t armv5te armv6 armv6j armv6k armv6z armv6zk armv7-a armv7-r
++#MULTILIB_OPTIONS += mcpu=arm7tdmi/mcpu=arm9tdmi/mcpu=arm920t/mcpu=arm926ej-s/mcpu=arm1136j-s/mcpu=arm1136jf-s/mcpu=arm1176jz-s/mcpu=arm1176jzf-s/mcpu=xscale/mcpu=mpcore/mcpu=cortex-a8/mcpu=cortex-a9
++#MULTILIB_DIRNAMES += arm7tdmi arm9tdmi arm920t arm926ej-s arm1136j-s arm1136jf-s arm1176jz-s arm1176jzf-s xscale mpcore cortex-a8 cortex-a9
++
++MULTILIB_OPTIONS += march=armv7
++MULTILIB_DIRNAMES += thumb2
++MULTILIB_EXCEPTIONS += march=armv7* marm/*march=armv7*
++MULTILIB_MATCHES += march?armv7=march?armv7-a
++MULTILIB_MATCHES += march?armv7=march?armv7-r
++MULTILIB_MATCHES += march?armv7=march?armv7-m
++MULTILIB_MATCHES += march?armv7=mcpu?cortex-a15
++MULTILIB_MATCHES += march?armv7=mcpu?cortex-a9
++MULTILIB_MATCHES += march?armv7=mcpu?cortex-a8
++MULTILIB_MATCHES += march?armv7=mcpu?cortex-r4
++MULTILIB_MATCHES += march?armv7=mcpu?cortex-m4
++MULTILIB_MATCHES += march?armv7=mcpu?cortex-m3
++
++MULTILIB_OPTIONS += mfpu=vfp
++MULTILIB_DIRNAMES += vfp
++MULTILIB_MATCHES += mfpu?vfp=mcpu?arm1136jf-s
++MULTILIB_MATCHES += mfpu?vfp=mcpu?arm1136jzf-s
+
+ # Not quite true. We can support hard-vfp calling in Thumb2, but how do we
+ # express that here? Also, we really need architecture v5e or later
+ # (mcrr etc).
+-MULTILIB_OPTIONS += mfloat-abi=hard
+-MULTILIB_DIRNAMES += fpu
+-MULTILIB_EXCEPTIONS += *mthumb/*mfloat-abi=hard*
++#MULTILIB_OPTIONS += mfloat-abi=hard
++#MULTILIB_DIRNAMES += fpu
++#MULTILIB_EXCEPTIONS += *mthumb/*mfloat-abi=hard*
+ #MULTILIB_EXCEPTIONS += *mcpu=fa526/*mfloat-abi=hard*
+ #MULTILIB_EXCEPTIONS += *mcpu=fa626/*mfloat-abi=hard*
+
+@@ -71,8 +85,8 @@
# MULTILIB_DIRNAMES += fpu soft
# MULTILIB_EXCEPTIONS += *mthumb/*mhard-float*
#
@@ -95,9 +131,9 @@
#
# MULTILIB_OPTIONS += fno-leading-underscore/fleading-underscore
# MULTILIB_DIRNAMES += elf under
-diff -ruN gcc-4.3.2/gcc/config/i386/t-x86_64elf gcc-4.3.2.patched/gcc/config/i386/t-x86_64elf
---- gcc-4.3.2/gcc/config/i386/t-x86_64elf 1969-12-31 16:00:00.000000000 -0800
-+++ gcc-4.3.2.patched/gcc/config/i386/t-x86_64elf 2008-12-25 08:49:29.000000000 -0800
+diff -ruN gcc-4.6.2/gcc/config/i386/t-x86_64elf gcc-4.6.2.patched/gcc/config/i386/t-x86_64elf
+--- gcc-4.6.2/gcc/config/i386/t-x86_64elf 1969-12-31 16:00:00.000000000 -0800
++++ gcc-4.6.2.patched/gcc/config/i386/t-x86_64elf 2011-12-24 12:23:16.660536149 -0800
@@ -0,0 +1,21 @@
+# On x86-64 we do not need any exports for glibc for 64-bit libgcc_s,
+# override the settings
@@ -120,10 +156,10 @@
+# because then __FRAME_END__ might not be the last thing in .eh_frame
+# section.
+#CRTSTUFF_T_CFLAGS = -fno-omit-frame-pointer -fno-asynchronous-unwind-tables
-diff -ruN gcc-4.3.2/gcc/config.gcc gcc-4.3.2.patched/gcc/config.gcc
---- gcc-4.3.2/gcc/config.gcc 2008-06-09 09:32:15.000000000 -0700
-+++ gcc-4.3.2.patched/gcc/config.gcc 2008-12-25 08:49:29.000000000 -0800
-@@ -1121,6 +1121,10 @@
+diff -ruN gcc-4.6.2/gcc/config.gcc gcc-4.6.2.patched/gcc/config.gcc
+--- gcc-4.6.2/gcc/config.gcc 2011-07-22 09:44:50.000000000 -0700
++++ gcc-4.6.2.patched/gcc/config.gcc 2011-12-24 12:23:16.660536149 -0800
+@@ -1219,6 +1219,10 @@
tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h ${fbsd_tm_file} i386/x86-64.h i386/freebsd.h i386/freebsd64.h"
tmake_file="${tmake_file} i386/t-crtstuff"
;;
@@ -133,4 +169,4 @@
+ ;;
i[34567]86-*-netbsdelf*)
tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h netbsd.h netbsd-elf.h i386/netbsd-elf.h"
- ;;
+ extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
diff --git a/toolvers b/toolvers
index a606f44..f2d3b03 100644
--- a/toolvers
+++ b/toolvers
@@ -1,3 +1,3 @@
-GCCVER=4.3.2
-BINVER=2.19
+GCCVER=4.6.2
+BINVER=2.22