This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [PATCH] [RISCV] Add RTEMS support
- From: Kito Cheng <kito dot cheng at gmail dot com>
- To: Sebastian Huber <sebastian dot huber at embedded-brains dot de>, Palmer Dabbelt <palmer at dabbelt dot com>, Andrew Waterman <andrew at sifive dot com>
- Cc: "gcc-patches at gcc dot gnu dot org" <gcc-patches at gcc dot gnu dot org>
- Date: Thu, 27 Jul 2017 22:12:42 +0800
- Subject: Re: [PATCH] [RISCV] Add RTEMS support
- Authentication-results: sourceware.org; auth=none
- References: <20170727110551.26385-1-sebastian.huber@embedded-brains.de>
Hi Sebastian:
LGTM, I've test riscv32-rtems-gcc is buildable.
Thanks for you patch :)
Hi Palmer:
Could you help to commit this patch ?
Thanks.
On Thu, Jul 27, 2017 at 7:05 PM, Sebastian Huber
<sebastian.huber@embedded-brains.de> wrote:
> 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
>