From 1f9e09b55416098b04b3071549cdd53ab95ff8b5 Mon Sep 17 00:00:00 2001 From: Sebastian Huber Date: Thu, 27 Jul 2017 16:41:27 +0000 Subject: [PATCH] Add RTEMS support gcc/ChangeLog 2017-07-27 Sebastian Huber * config.gcc (riscv*-*-elf*): Add (riscv*-*-rtems*). * config/riscv/rtems.h: New file. From-SVN: r250632 --- gcc/ChangeLog | 5 +++++ gcc/config.gcc | 7 ++++++- gcc/config/riscv/rtems.h | 31 +++++++++++++++++++++++++++++++ 3 files changed, 42 insertions(+), 1 deletion(-) create mode 100644 gcc/config/riscv/rtems.h diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 0b37bae243e..d8069d3ac68 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2017-07-27 Sebastian Huber + + * config.gcc (riscv*-*-elf*): Add (riscv*-*-rtems*). + * config/riscv/rtems.h: New file. + 2017-07-27 Kyrylo Tkachov Sudakshina Das diff --git a/gcc/config.gcc b/gcc/config.gcc index 2ae0218b5fc..0224339cfb5 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 + . */ + +#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.30.2