gcc/
        * config.gcc (riscv*-*-elf*): Add (riscv*-*-rtems*).
        * config/riscv/rtems.h: New file.
---
 gcc/config.gcc           |  7 ++++++-
 gcc/config/riscv/rtems.h | 31 +++++++++++++++++++++++++++++++
 2 files changed, 37 insertions(+), 1 deletion(-)
 create mode 100644 gcc/config/riscv/rtems.h

diff --git a/gcc/config.gcc b/gcc/config.gcc
index aab7f65c1df..f28164646c3 100644
--- a/gcc/config.gcc
+++ b/gcc/config.gcc
@@ -2040,7 +2040,7 @@ riscv*-*-linux*)
        # automatically detect that GAS supports it, yet we require it.
        gcc_cv_initfini_array=yes
        ;;
-riscv*-*-elf*)
+riscv*-*-elf* | riscv*-*-rtems*)
        tm_file="elfos.h newlib-stdint.h ${tm_file} riscv/elf.h"
        case "x${enable_multilib}" in
        xno) ;;
@@ -2053,6 +2053,11 @@ riscv*-*-elf*)
        # Force .init_array support.  The configure script cannot always
        # automatically detect that GAS supports it, yet we require it.
        gcc_cv_initfini_array=yes
+       case ${target} in
+       riscv*-*-rtems*)
+         tm_file="${tm_file} rtems.h riscv/rtems.h"
+         ;;
+       esac
        ;;
 mips*-*-netbsd*)                       # NetBSD/mips, either endian.
        target_cpu_default="MASK_ABICALLS"
diff --git a/gcc/config/riscv/rtems.h b/gcc/config/riscv/rtems.h
new file mode 100644
index 00000000000..221e2f69815
--- /dev/null
+++ b/gcc/config/riscv/rtems.h
@@ -0,0 +1,31 @@
+/* Definitions for RISC-V RTEMS systems with ELF format.
+   Copyright (C) 2017 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.
+
+   Under Section 7 of GPL version 3, you are granted additional
+   permissions described in the GCC Runtime Library Exception, version
+   3.1, as published by the Free Software Foundation.
+
+   You should have received a copy of the GNU General Public License and
+   a copy of the GCC Runtime Library Exception along with this program;
+   see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#undef TARGET_OS_CPP_BUILTINS
+#define TARGET_OS_CPP_BUILTINS()               \
+    do {                                       \
+       builtin_define ("__rtems__");           \
+       builtin_define ("__USE_INIT_FINI__");   \
+       builtin_assert ("system=rtems");        \
+    } while (0)
-- 
2.12.3

Reply via email to