summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorsh <sh@138bc75d-0d04-0410-961f-82ee72b054a4>2018-01-08 13:39:11 +0000
committersh <sh@138bc75d-0d04-0410-961f-82ee72b054a4>2018-01-08 13:39:11 +0000
commit4b4bc4aad1b41c818ccad1bdebba22e26404d72e (patch)
tree94ca61d1df08789a79ea8b25d00d18a4d12329ed
parentc8381f026bfd1de53bea48a082b692f45a0efb6b (diff)
RTEMS/EPIPHANY: Add RTEMS support
gcc/ * config.gcc (epiphany-*-elf*): Add (epiphany-*-rtems*) configuration. * config/epiphany/rtems.h: New file. libgcc/ * config.host (epiphany-*-elf*): Add (epiphany-*-rtems*) configuration. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-7-branch@256342 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--gcc/ChangeLog8
-rw-r--r--gcc/config.gcc16
-rw-r--r--gcc/config/epiphany/rtems.h28
-rw-r--r--libgcc/ChangeLog8
-rw-r--r--libgcc/config.host4
5 files changed, 58 insertions, 6 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 4404a4196636..d5ab8bc9a101 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,11 @@
+2018-01-08 Sebastian Huber <sebastian.huber@embedded-brains.de>
+
+ Backported from mainline
+ 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 Uros Bizjak <ubizjak@gmail.com>
PR target/83628
diff --git a/gcc/config.gcc b/gcc/config.gcc
index 2a6d6430594d..6e75bd45fb9d 100644
--- a/gcc/config.gcc
+++ b/gcc/config.gcc
@@ -1235,11 +1235,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
index 000000000000..a9971f8c0b61
--- /dev/null
+++ b/gcc/config/epiphany/rtems.h
@@ -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)
diff --git a/libgcc/ChangeLog b/libgcc/ChangeLog
index c6b8cde3b5ee..86fd102d3207 100644
--- a/libgcc/ChangeLog
+++ b/libgcc/ChangeLog
@@ -1,3 +1,11 @@
+2018-01-08 Sebastian Huber <sebastian.huber@embedded-brains.de>
+
+ Backport from mainline
+ 2018-01-05 Sebastian Huber <sebastian.huber@embedded-brains.de>
+
+ * config.host (epiphany-*-elf*): Add (epiphany-*-rtems*)
+ configuration.
+
2017-11-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
Backport from mainline
diff --git a/libgcc/config.host b/libgcc/config.host
index 92430ae90358..8beb492b5fa1 100644
--- a/libgcc/config.host
+++ b/libgcc/config.host
@@ -484,8 +484,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)