OSDN Git Service

2011-11-06 Sebastian Huber <sebastian.huber@embedded-brains.de>
authorcorsepiu <corsepiu@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 7 Nov 2011 03:21:19 +0000 (03:21 +0000)
committercorsepiu <corsepiu@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 7 Nov 2011 03:21:19 +0000 (03:21 +0000)
* config.gcc (arm*-*-rtemseabi*): New target.
* config/arm/rtems-eabi.h: New.
* config/arm/t-rtems-eabi: New.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@181064 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/config.gcc
gcc/config/arm/rtems-eabi.h [new file with mode: 0644]
gcc/config/arm/t-rtems-eabi [new file with mode: 0644]

index 59c4ffc..ddb1ea6 100644 (file)
@@ -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.
index 1f1c545..ccc142e 100644 (file)
@@ -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 (file)
index 0000000..ced98a9
--- /dev/null
@@ -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 (file)
index 0000000..f0e714a
--- /dev/null
@@ -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 =