diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2011-11-07 03:21:19 +0000 |
---|---|---|
committer | Ralf Corsepius <corsepiu@gcc.gnu.org> | 2011-11-07 04:21:19 +0100 |
commit | e36c5271e3d07d9033da152da535f7b275ae3392 (patch) | |
tree | 3d45413982fb92c6b03adbe1ed1a4ba27bd03379 | |
parent | 6e25d659c18bf160c3ea39e0a5447ff77f379774 (diff) | |
download | gcc-e36c5271e3d07d9033da152da535f7b275ae3392.zip gcc-e36c5271e3d07d9033da152da535f7b275ae3392.tar.gz gcc-e36c5271e3d07d9033da152da535f7b275ae3392.tar.bz2 |
config.gcc (arm*-*-rtemseabi*): New target.
2011-11-06 Sebastian Huber <sebastian.huber@embedded-brains.de>
* config.gcc (arm*-*-rtemseabi*): New target.
* config/arm/rtems-eabi.h: New.
* config/arm/t-rtems-eabi: New.
From-SVN: r181064
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/config.gcc | 6 | ||||
-rw-r--r-- | gcc/config/arm/rtems-eabi.h | 29 | ||||
-rw-r--r-- | gcc/config/arm/t-rtems-eabi | 8 |
4 files changed, 48 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 59c4ffc..ddb1ea6 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2011-11-06 Sebastian Huber <sebastian.huber@embedded-brains.de> + + * config.gcc (arm*-*-rtemseabi*): New target. + * config/arm/rtems-eabi.h: New. + * config/arm/t-rtems-eabi: New. + 2011-11-06 David S. Miller <davem@davemloft.net> * config/sparc/sparc.md (UNSPEC_SHORT_LOAD): Delete. diff --git a/gcc/config.gcc b/gcc/config.gcc index 1f1c545..ccc142e 100644 --- a/gcc/config.gcc +++ b/gcc/config.gcc @@ -865,7 +865,7 @@ 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*-*-eabi* | arm*-*-symbianelf* | arm*-*-rtemseabi*) # The BPABI long long divmod functions return a 128-bit value in # registers r0-r3. Correctly modeling that requires the use of # TImode. @@ -879,6 +879,10 @@ arm*-*-eabi* | arm*-*-symbianelf* ) tmake_file="${tmake_file} arm/t-bpabi" use_gcc_stdint=wrap ;; + arm*-*-rtemseabi*) + 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" + ;; arm*-*-symbianelf*) tm_file="${tm_file} arm/symbian.h" # We do not include t-bpabi for Symbian OS because the system diff --git a/gcc/config/arm/rtems-eabi.h b/gcc/config/arm/rtems-eabi.h new file mode 100644 index 0000000..ced98a9 --- /dev/null +++ b/gcc/config/arm/rtems-eabi.h @@ -0,0 +1,29 @@ +/* Definitions for RTEMS based ARM systems using EABI. + Copyright (C) 2011 Free Software Foundation, Inc. + + This file is part of GCC. + + GCC is free software; you can redistribute it and/or modify it + under the terms of the GNU General Public License as published + by the Free Software Foundation; either version 3, or (at your + option) any later version. + + GCC is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY + or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public + License for more details. + + You should have received a copy of the GNU General Public License + along with GCC; see the file COPYING3. If not see + <http://www.gnu.org/licenses/>. */ + +#define HAS_INIT_SECTION + +#undef TARGET_OS_CPP_BUILTINS +#define TARGET_OS_CPP_BUILTINS() \ + do { \ + builtin_define ("__rtems__"); \ + builtin_define ("__USE_INIT_FINI__"); \ + builtin_assert ("system=rtems"); \ + TARGET_BPABI_CPP_BUILTINS(); \ + } while (0) diff --git a/gcc/config/arm/t-rtems-eabi b/gcc/config/arm/t-rtems-eabi new file mode 100644 index 0000000..f0e714a --- /dev/null +++ b/gcc/config/arm/t-rtems-eabi @@ -0,0 +1,8 @@ +# Custom RTEMS EABI multilibs + +MULTILIB_OPTIONS = mthumb march=armv6-m/march=armv7/march=armv7-m +MULTILIB_DIRNAMES = thumb armv6-m armv7 armv7-m +MULTILIB_EXCEPTIONS = march=armv6-m march=armv7 march=armv7-m +MULTILIB_MATCHES = +MULTILIB_EXCLUSIONS = +MULTILIB_OSDIRNAMES = |