RTEMS/EPIPHANY: Add RTEMS support
authorSebastian Huber <sebastian.huber@embedded-brains.de>
Fri, 5 Jan 2018 06:17:22 +0000 (06:17 +0000)
committerSebastian Huber <sh@gcc.gnu.org>
Fri, 5 Jan 2018 06:17:22 +0000 (06:17 +0000)
gcc/
* config.gcc (epiphany-*-elf*): Add (epiphany-*-rtems*) configuration.
* config/epiphany/rtems.h: New file.

libgcc/
* config.host (epiphany-*-elf*): Add (epiphany-*-rtems*)
configuration.

From-SVN: r256273

gcc/ChangeLog
gcc/config.gcc
gcc/config/epiphany/rtems.h [new file with mode: 0644]
libgcc/ChangeLog
libgcc/config.host

index 58ec5052483efbcf579eda8d80c7fc3d2d94d6d9..1fcf203c2efd0ae3203505202540e9d5861c2cd8 100644 (file)
@@ -1,3 +1,8 @@
+2018-01-05  Sebastian Huber  <sebastian.huber@embedded-brains.de>
+
+       * config.gcc (epiphany-*-elf*): Add (epiphany-*-rtems*) configuration.
+       * config/epiphany/rtems.h: New file.
+
 2018-01-04  Jakub Jelinek  <jakub@redhat.com>
            Uros Bizjak  <ubizjak@gmail.com>
 
index f19a469d101502b179e500cf5c7c7e76806bffef..4ef52ce8b74a7c2380377e46b8911d0a137c2e7f 100644 (file)
@@ -1269,11 +1269,19 @@ crisv32-*-linux* | cris-*-linux*)
                ;;
        esac
        ;;
-epiphany-*-elf )
-       tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
-       tmake_file="epiphany/t-epiphany"
+epiphany-*-elf | epiphany-*-rtems*)
+       tm_file="${tm_file} dbxelf.h elfos.h"
+       tmake_file="${tmake_file} epiphany/t-epiphany"
+       case ${target} in
+       epiphany-*-rtems*)
+         tm_file="${tm_file} rtems.h epiphany/rtems.h newlib-stdint.h"
+         ;;
+       *)
+         tm_file="${tm_file} newlib-stdint.h"
+         ;;
+       esac
        extra_options="${extra_options} fused-madd.opt"
-       extra_objs="$extra_objs mode-switch-use.o resolve-sw-modes.o"
+       extra_objs="${extra_objs} mode-switch-use.o resolve-sw-modes.o"
        tm_defines="${tm_defines} EPIPHANY_STACK_OFFSET=${with_stack_offset:-8}"
        extra_headers="epiphany_intrinsics.h"
        ;;
diff --git a/gcc/config/epiphany/rtems.h b/gcc/config/epiphany/rtems.h
new file mode 100644 (file)
index 0000000..a9971f8
--- /dev/null
@@ -0,0 +1,28 @@
+/* Definitions for RTEMS based EPIPHANY systems.
+   Copyright (C) 2018 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");        \
+    } while (0)
index f434726a87dbef48e4acdf355ffe447536be3f90..8d659fe8cae05b084798de660253b57cd5c1c562 100644 (file)
@@ -1,3 +1,8 @@
+2018-01-05  Sebastian Huber  <sebastian.huber@embedded-brains.de>
+
+       * config.host (epiphany-*-elf*): Add (epiphany-*-rtems*)
+       configuration.
+
 2018-01-03  Jakub Jelinek  <jakub@redhat.com>
 
        Update copyright years.
index 4c10aa0307cb585cf825f0cc556b70d26a7cb774..96d55a4aaa8c3fd3554cf6887390a5cf1ce8eac1 100644 (file)
@@ -507,8 +507,8 @@ cris-*-elf)
 cris-*-linux* | crisv32-*-linux*)
        tmake_file="$tmake_file cris/t-cris t-softfp-sfdf t-softfp cris/t-linux"
        ;;
-epiphany-*-elf*)
-       tmake_file="epiphany/t-epiphany t-fdpbit epiphany/t-custom-eqsf"
+epiphany-*-elf* | epiphany-*-rtems*)
+       tmake_file="$tmake_file epiphany/t-epiphany t-fdpbit epiphany/t-custom-eqsf"
        extra_parts="$extra_parts crti.o crtint.o crtrunc.o crtm1reg-r43.o crtm1reg-r63.o crtn.o"
        ;;
 fr30-*-elf)