aboutsummaryrefslogtreecommitdiff
path: root/gcc/config
diff options
context:
space:
mode:
authorDoug Rupp <rupp@adacore.com>2019-11-14 16:05:08 +0000
committerOlivier Hainque <hainque@gcc.gnu.org>2019-11-14 16:05:08 +0000
commit3004f893b43d48ca72ef1fe676d0930bb49a4f36 (patch)
tree89cee8f851da23848ae0b406832446f6e7751642 /gcc/config
parent36e5f4d4f34dc06bddd1b8047727a1aa9db61a21 (diff)
downloadgcc-3004f893b43d48ca72ef1fe676d0930bb49a4f36.zip
gcc-3004f893b43d48ca72ef1fe676d0930bb49a4f36.tar.gz
gcc-3004f893b43d48ca72ef1fe676d0930bb49a4f36.tar.bz2
Base support for vxworks 7 on aarch64
2019-11-14 Doug Rupp <rupp@adacore.com> Olivier Hainque <hainque@adacore.com> Jerome Lambourg <lambourg@adacore.com> gcc/ * config.gcc: Handle aarch64*-wrs-vxworks7*. * config/aarch64/aarch64-vxworks.h: New file. * config/aarch64/t-aarch64-vxworks: New file. libgcc/ * config.host: Handle aarch64*-wrs-vxworks7*. Co-Authored-By: Jerome Lambourg <lambourg@adacore.com> Co-Authored-By: Olivier Hainque <hainque@adacore.com> From-SVN: r278251
Diffstat (limited to 'gcc/config')
-rw-r--r--gcc/config/aarch64/aarch64-vxworks.h71
-rw-r--r--gcc/config/aarch64/t-aarch64-vxworks22
2 files changed, 93 insertions, 0 deletions
diff --git a/gcc/config/aarch64/aarch64-vxworks.h b/gcc/config/aarch64/aarch64-vxworks.h
new file mode 100644
index 0000000..de3b3c8
--- /dev/null
+++ b/gcc/config/aarch64/aarch64-vxworks.h
@@ -0,0 +1,71 @@
+/* Definitions of target machine for GNU compiler. Vxworks Aarch 64bit
+ version.
+ Copyright (C) 2018-2019 Free Software Foundation, Inc.
+ Contributed by Douglas B Rupp
+
+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/>. */
+
+#undef SUBTARGET_OVERRIDE_OPTIONS
+#define SUBTARGET_OVERRIDE_OPTIONS VXWORKS_OVERRIDE_OPTIONS
+
+#undef LINK_SPEC
+#define LINK_SPEC VXWORKS_LINK_SPEC
+
+#undef LIB_SPEC
+#define LIB_SPEC VXWORKS_LIB_SPEC
+
+#undef STARTFILE_SPEC
+#define STARTFILE_SPEC VXWORKS_STARTFILE_SPEC
+
+#undef ENDFILE_SPEC
+#define ENDFILE_SPEC VXWORKS_ENDFILE_SPEC
+
+#undef CPP_SPEC
+#define CPP_SPEC VXWORKS_ADDITIONAL_CPP_SPEC
+
+#undef CC1_SPEC
+#define CC1_SPEC VXWORKS_CC1_SPEC
+
+#undef FUNCTION_PROFILER
+#define FUNCTION_PROFILER VXWORKS_FUNCTION_PROFILER
+
+#undef TARGET_OS_CPP_BUILTINS
+#define TARGET_OS_CPP_BUILTINS() \
+ do { \
+ if (TARGET_BIG_END) \
+ builtin_define ("ARMEB"); \
+ else \
+ builtin_define ("ARMEL"); \
+ builtin_define ("_VX_CPU=ARMARCH8A"); \
+ VXWORKS_OS_CPP_BUILTINS (); \
+ } while (0)
+
+/* Static stack checking is supported. */
+#define STACK_CHECK_STATIC_BUILTIN 1
+
+#undef STACK_CHECK_PROTECT
+#define STACK_CHECK_PROTECT 16384
+
+/* The VxWorks environment on aarch64 is llvm-based only, uses R18 as
+ a TCB pointer. */
+
+#undef VXWORKS_PERSONALITY
+#define VXWORKS_PERSONALITY "llvm"
+
+#undef TARGET_OS_USES_R18
+#define TARGET_OS_USES_R18 1
+
diff --git a/gcc/config/aarch64/t-aarch64-vxworks b/gcc/config/aarch64/t-aarch64-vxworks
new file mode 100644
index 0000000..33c2510
--- /dev/null
+++ b/gcc/config/aarch64/t-aarch64-vxworks
@@ -0,0 +1,22 @@
+# Multilibs for VxWorks.
+#
+# 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/>.
+
+MULTILIB_OPTIONS += mrtp
+MULTILIB_DIRNAMES += mrtp