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.

From-SVN: r256342
This commit is contained in:
Sebastian Huber 2018-01-08 13:39:11 +00:00 committed by Sebastian Huber
parent 871fb7e343
commit 2fc75a03b0
5 changed files with 58 additions and 6 deletions

View File

@ -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

View File

@ -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"
;;

View File

@ -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)

View File

@ -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

View File

@ -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)