summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--rtems/config/4.11/rtems-arm.bset9
-rw-r--r--rtems/patches/gcc-4.7-arm-to-eabi-20120511.diff102
-rw-r--r--source-builder/config/gcc-4.7-1.cfg26
3 files changed, 129 insertions, 8 deletions
diff --git a/rtems/config/4.11/rtems-arm.bset b/rtems/config/4.11/rtems-arm.bset
index 18a2878..9d26cfd 100644
--- a/rtems/config/4.11/rtems-arm.bset
+++ b/rtems/config/4.11/rtems-arm.bset
@@ -2,7 +2,7 @@
# Tools Set for RTEMS ARM 4.11 Stable
#
-%define _target arm-rtemseabi4.11
+%define _target arm-rtems4.11
%define release 1
@@ -12,9 +12,14 @@
%include rtems-4.11-base.bset
#
+# Patch to enable EABI
+#
+Patch2: gcc-4.7-arm-to-eabi-20120511.diff
+
+#
# Tools configuration.
#
expat-2.1.0-1
tools/rtems-binutils-2.22-1
-tools/rtems-gcc-4.6.3-newlib-1.20.0-1
+tools/rtems-gcc-4.7.2-newlib-1.20.0-1
tools/rtems-gdb-7.5-1
diff --git a/rtems/patches/gcc-4.7-arm-to-eabi-20120511.diff b/rtems/patches/gcc-4.7-arm-to-eabi-20120511.diff
new file mode 100644
index 0000000..2d199e0
--- /dev/null
+++ b/rtems/patches/gcc-4.7-arm-to-eabi-20120511.diff
@@ -0,0 +1,102 @@
+commit a48b4fb1619e628f8ead188bc6687696e5468b0e
+Author: Sebastian Huber <sebastian.huber@embedded-brains.de>
+Date: Fri May 4 09:30:32 2012 +0200
+
+ ARM RTEMS changes
+
+ 2012-04-04 Sebastian Huber <sebastian.huber@embedded-brains.de>
+
+ * config.gcc (arm*-*-rtemself*): New.
+ (arm*-*-rtems*): Removed.
+ (arm*-*-eabi* | arm*-*-symbianelf* | arm*-*-rtemseabi*): Rename
+ "arm*-*-rtemseabi*" to "arm*-*-rtems*".
+
+ 2012-04-04 Sebastian Huber <sebastian.huber@embedded-brains.de>
+
+ * config.host (arm*-*-rtemself*): New.
+ (arm*-*-eabi* | arm*-*-symbianelf* | arm*-*-rtemseabi*): Rename
+ "arm*-*-rtemseabi*" to "arm*-*-rtems*".
+
+diff --git a/gcc/config.gcc b/gcc/config.gcc
+index a2c947d..27864b4 100644
+--- a/gcc/config.gcc
++++ b/gcc/config.gcc
+@@ -251,7 +251,7 @@ case ${target} in
+ | arm*-*-elf \
+ | arm*-*-freebsd* \
+ | arm*-*-linux* \
+- | arm*-*-rtems* \
++ | arm*-*-rtemself* \
+ | arm*-*-uclinux* \
+ | arm*-wince-pe* \
+ | mips-sgi-irix6.5 \
+@@ -885,7 +885,12 @@ arm*-*-ecos-elf)
+ tm_file="dbxelf.h elfos.h newlib-stdint.h arm/unknown-elf.h arm/elf.h arm/aout.h arm/arm.h arm/ecos-elf.h"
+ tmake_file="arm/t-arm arm/t-arm-elf"
+ ;;
+-arm*-*-eabi* | arm*-*-symbianelf* | arm*-*-rtemseabi*)
++arm*-*-rtemself*)
++ tm_file="dbxelf.h elfos.h arm/unknown-elf.h arm/elf.h arm/aout.h arm/arm.h arm/rtems-elf.h rtems.h newlib-stdint.h"
++ tmake_file="arm/t-arm arm/t-arm-elf t-rtems arm/t-rtems"
++ use_gcc_stdint=provide
++ ;;
++arm*-*-eabi* | arm*-*-symbianelf* | arm*-*-rtems*)
+ # The BPABI long long divmod functions return a 128-bit value in
+ # registers r0-r3. Correctly modeling that requires the use of
+ # TImode.
+@@ -899,9 +904,10 @@ arm*-*-eabi* | arm*-*-symbianelf* | arm*-*-rtemseabi*)
+ tmake_file="${tmake_file} arm/t-bpabi"
+ use_gcc_stdint=wrap
+ ;;
+- arm*-*-rtemseabi*)
++ arm*-*-rtems*)
+ tm_file="${tm_file} rtems.h arm/rtems-eabi.h newlib-stdint.h"
+ tmake_file="${tmake_file} arm/t-bpabi t-rtems arm/t-rtems-eabi"
++ use_gcc_stdint=provide
+ ;;
+ arm*-*-symbianelf*)
+ tm_file="${tm_file} arm/symbian.h"
+@@ -912,10 +918,6 @@ arm*-*-eabi* | arm*-*-symbianelf* | arm*-*-rtemseabi*)
+ esac
+ tm_file="${tm_file} arm/aout.h arm/arm.h"
+ ;;
+-arm*-*-rtems*)
+- tm_file="dbxelf.h elfos.h arm/unknown-elf.h arm/elf.h arm/aout.h arm/arm.h arm/rtems-elf.h rtems.h newlib-stdint.h"
+- tmake_file="arm/t-arm arm/t-arm-elf t-rtems arm/t-rtems"
+- ;;
+ arm*-*-elf)
+ tm_file="dbxelf.h elfos.h newlib-stdint.h arm/unknown-elf.h arm/elf.h arm/aout.h arm/arm.h"
+ tmake_file="arm/t-arm arm/t-arm-elf"
+diff --git a/libgcc/config.host b/libgcc/config.host
+index 79be4ed..da6ffc2 100644
+--- a/libgcc/config.host
++++ b/libgcc/config.host
+@@ -354,11 +354,15 @@ arm*-*-ecos-elf)
+ tmake_file="$tmake_file arm/t-arm arm/t-elf t-softfp-sfdf t-softfp-excl arm/t-softfp t-softfp"
+ extra_parts="$extra_parts crti.o crtn.o"
+ ;;
+-arm*-*-eabi* | arm*-*-symbianelf* | arm*-*-rtemseabi*)
++arm*-*-rtemself*)
++ tmake_file="$tmake_file arm/t-arm arm/t-elf t-softfp-sfdf t-softfp-excl arm/t-softfp t-softfp"
++ extra_parts="$extra_parts crti.o crtn.o"
++ ;;
++arm*-*-eabi* | arm*-*-symbianelf* | arm*-*-rtems*)
+ tmake_file="${tmake_file} arm/t-arm arm/t-elf t-fixedpoint-gnu-prefix"
+ tm_file="$tm_file arm/bpabi-lib.h"
+ case ${host} in
+- arm*-*-eabi* | arm*-*-rtemseabi*)
++ arm*-*-eabi* | arm*-*-rtems*)
+ tmake_file="${tmake_file} arm/t-bpabi"
+ extra_parts="crtbegin.o crtend.o crti.o crtn.o"
+ ;;
+@@ -371,10 +375,6 @@ arm*-*-eabi* | arm*-*-symbianelf* | arm*-*-rtemseabi*)
+ tmake_file="$tmake_file t-softfp-sfdf t-softfp-excl arm/t-softfp t-softfp"
+ unwind_header=config/arm/unwind-arm.h
+ ;;
+-arm*-*-rtems*)
+- tmake_file="$tmake_file arm/t-arm arm/t-elf t-softfp-sfdf t-softfp-excl arm/t-softfp t-softfp"
+- extra_parts="$extra_parts crti.o crtn.o"
+- ;;
+ arm*-*-elf)
+ tmake_file="$tmake_file arm/t-arm arm/t-elf t-softfp-sfdf t-softfp-excl arm/t-softfp t-softfp"
+ extra_parts="$extra_parts crti.o crtn.o"
diff --git a/source-builder/config/gcc-4.7-1.cfg b/source-builder/config/gcc-4.7-1.cfg
index 519e2c8..a0e2fe2 100644
--- a/source-builder/config/gcc-4.7-1.cfg
+++ b/source-builder/config/gcc-4.7-1.cfg
@@ -58,23 +58,37 @@ Source22: ftp://ftp.gnu.org/gnu/gmp/gmp-%{gmp_version}.tar.bz2
%prep
%setup -q -c -T -n %{name}-%{version}
- # gcc core
+ # gcc and optional the g++ core if separate packages
%setup -q -T -D -n %{name}-%{version} -a0
- cd gcc-%{gcc_version}
- %{?patch0:%patch0 -p1}
- cd ..
-
- # g++
%{?source1:%setup -q -T -D -n %{name}-%{version} -a1}
cd gcc-%{gcc_version}
+ %{?patch0:%patch0 -p1}
%{?patch1:%patch1 -p1}
+ %{?patch2:%patch2 -p1}
+ %{?patch3:%patch3 -p1}
+ %{?patch4:%patch4 -p1}
+ %{?patch5:%patch5 -p1}
+ %{?patch6:%patch6 -p1}
+ %{?patch7:%patch7 -p1}
+ %{?patch8:%patch8 -p1}
+ %{?patch9:%patch9 -p1}
cd ..
# newlib
%setup -q -T -D -n %{name}-%{version} -a10
cd newlib-%{newlib_version}
%{?patch10:%patch10 -p1}
+ %{?patch11:%patch11 -p1}
+ %{?patch12:%patch12 -p1}
+ %{?patch13:%patch13 -p1}
+ %{?patch14:%patch14 -p1}
+ %{?patch15:%patch15 -p1}
+ %{?patch16:%patch16 -p1}
+ %{?patch17:%patch17 -p1}
+ %{?patch18:%patch18 -p1}
+ %{?patch19:%patch19 -p1}
cd ..
+
# Link newlib into the gcc source tree
ln -s ../newlib-%{newlib_version}/newlib gcc-%{gcc_version}