Architecture arm-rtems4.11 uses EABI.

Switch the arm-rtems4.11 to use EABI. The patch do this is taken from
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53325.
This commit is contained in:
Chris Johns 2013-02-20 11:18:10 +11:00
parent 2fd402d0f2
commit 9f04b64113
3 changed files with 129 additions and 8 deletions

View File

@ -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

View File

@ -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"

View File

@ -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}