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 @@ -11,10 +11,15 @@ # %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 +Date: Fri May 4 09:30:32 2012 +0200 + + ARM RTEMS changes + + 2012-04-04 Sebastian Huber + + * 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 + + * 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}