* gcc/config.gcc, libgcc/config.host: Add aarch64-*-rtems*. * gcc/config/aarch64/rtems.h: New file. --- gcc/config.gcc | 11 +++++++++-- gcc/config/aarch64/rtems.h | 28 ++++++++++++++++++++++++++++ libgcc/config.host | 2 +- 3 files changed, 38 insertions(+), 3 deletions(-) create mode 100644 gcc/config/aarch64/rtems.h
diff --git a/gcc/config.gcc b/gcc/config.gcc index e26742e..3b280e0 100644 --- a/gcc/config.gcc +++ b/gcc/config.gcc @@ -906,11 +906,18 @@ case ${target} in esac case ${target} in -aarch64*-*-elf) +aarch64*-*-elf | aarch64*-*-rtems*) tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h" tm_file="${tm_file} aarch64/aarch64-elf.h aarch64/aarch64-elf-raw.h" tmake_file="${tmake_file} aarch64/t-aarch64" - use_gcc_stdint=wrap + case $target in + aarch64-*-elf*) + use_gcc_stdint=wrap + ;; + aarch64-*-rtems*) + tm_file="${tm_file} rtems.h aarch64/rtems.h" + ;; + esac case $target in aarch64_be-*) tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1" diff --git a/gcc/config/aarch64/rtems.h b/gcc/config/aarch64/rtems.h new file mode 100644 index 0000000..a166034 --- /dev/null +++ b/gcc/config/aarch64/rtems.h @@ -0,0 +1,28 @@ +/* Definitions for RTEMS based AARCH64 system. + Copyright (C) 2016 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/config.host b/libgcc/config.host index ef7dfd0..1f85c46 100644 --- a/libgcc/config.host +++ b/libgcc/config.host @@ -327,7 +327,7 @@ i[34567]86-*-mingw* | x86_64-*-mingw*) esac case ${host} in -aarch64*-*-elf) +aarch64*-*-elf | aarch64*-*-rtems*) extra_parts="$extra_parts crtbegin.o crtend.o crti.o crtn.o" extra_parts="$extra_parts crtfastmath.o" tmake_file="${tmake_file} ${cpu_type}/t-aarch64" -- 1.8.3.1