diff options
author | Jerome Lambourg <lambourg@adacore.com> | 2019-11-14 16:11:30 +0000 |
---|---|---|
committer | Olivier Hainque <hainque@gcc.gnu.org> | 2019-11-14 16:11:30 +0000 |
commit | 27204060db51ed0637e394dff387c66c6b944726 (patch) | |
tree | ed26512bbc98d251f21922b5a76f51784fd65d14 /gcc/config | |
parent | 071ef254a8a9ad947e72b37cd4aa695b57e5b031 (diff) | |
download | gcc-27204060db51ed0637e394dff387c66c6b944726.zip gcc-27204060db51ed0637e394dff387c66c6b944726.tar.gz gcc-27204060db51ed0637e394dff387c66c6b944726.tar.bz2 |
Update the arm-*-vxworks* support
2019-11-13 Jerome Lambourg <lambourg@adacore.com>
Doug Rupp <rupp@adacore.com>
Olivier Hainque <hainque@adacore.com>
gcc/
* config.gcc: Collapse the arm-vxworks entries into
a single arm-wrs-vxworks7* one, bpabi based. Update
the default cpu from arm8 to armv7-a
* config/arm/vxworks.h (CC1_SPEC): Simplify, knowing that
we always use ARM_UNWIND_INFO.
(DWARF2_UNWIND_INFO): Remove redefinition.
(ARM_TARGET2_DWARF_FORMAT): Likewise.
(VXWORKS_PERSONALITY): Define, to "llvm".
(VXWORKS_EXTRA_LIBS_RTP): Define, to "-lllvm".
libgcc/
* config.host: Collapse the arm-vxworks entries into
a single arm-wrs-vxworks7* one.
* config/arm/unwind-arm-vxworks.c: Update comments. Provide
__gnu_Unwind_Find_exidx and a weak dummy __cxa_type_match for
kernel modules, to be overriden by libstdc++ when we link with
it. Rely on externally provided __exidx_start/end.
Co-Authored-By: Doug Rupp <rupp@adacore.com>
Co-Authored-By: Olivier Hainque <hainque@adacore.com>
From-SVN: r278253
Diffstat (limited to 'gcc/config')
-rw-r--r-- | gcc/config/arm/t-vxworks | 7 | ||||
-rw-r--r-- | gcc/config/arm/vxworks.h | 26 |
2 files changed, 14 insertions, 19 deletions
diff --git a/gcc/config/arm/t-vxworks b/gcc/config/arm/t-vxworks index 504d5cc..865eabc 100644 --- a/gcc/config/arm/t-vxworks +++ b/gcc/config/arm/t-vxworks @@ -16,7 +16,8 @@ # along with GCC; see the file COPYING3. If not see # <http://www.gnu.org/licenses/>. -MULTILIB_OPTIONS = mrtp fPIC +# Multilibs for ARM VxWorks. With the move to VxWorks 7, we only +# support -mrtp variation on top of the default settings at this +# stage, without PIC. -# -fPIC alone is not supported, only together with -mrtp -MULTILIB_EXCEPTIONS = fPIC +MULTILIB_OPTIONS = mrtp diff --git a/gcc/config/arm/vxworks.h b/gcc/config/arm/vxworks.h index f03b19a..8118e6e 100644 --- a/gcc/config/arm/vxworks.h +++ b/gcc/config/arm/vxworks.h @@ -84,15 +84,8 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see /* .text.hot and .text.unlikely sections are badly handled by the VxWorks kernel mode loader for ARM style exceptions. */ - -#if ARM_UNWIND_INFO -#define EXTRA_CC1_SPEC "%{!mrtp:-fno-reorder-functions}" -#else -#define EXTRA_CC1_SPEC -#endif - #undef CC1_SPEC -#define CC1_SPEC "" EXTRA_CC1_SPEC +#define CC1_SPEC VXWORKS_CC1_SPEC " %{!mrtp:-fno-reorder-functions}" /* Translate an explicit -mbig-endian as an explicit -EB to assembler and linker, and pass abi options matching the target expectations @@ -121,14 +114,6 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see #undef ENDFILE_SPEC #define ENDFILE_SPEC VXWORKS_ENDFILE_SPEC -/* For exceptions, pre VX7 uses DWARF2 info, VX7 uses ARM unwinding. */ -#undef DWARF2_UNWIND_INFO -#define DWARF2_UNWIND_INFO (!TARGET_VXWORKS7) - -#undef ARM_TARGET2_DWARF_FORMAT -#define ARM_TARGET2_DWARF_FORMAT \ - (TARGET_VXWORKS_RTP ? (DW_EH_PE_pcrel | DW_EH_PE_indirect) : DW_EH_PE_absptr) - /* There is no default multilib. */ #undef MULTILIB_DEFAULTS @@ -160,3 +145,12 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see /* Unless overridded by the target options, the default is little-endian. */ #define TARGET_ENDIAN_DEFAULT 0 + +/* The VxWorks environment on ARM is llvm based and we need to link + against libllvm.a to resolve __aeabi_memcpy4. */ + +#undef VXWORKS_PERSONALITY +#define VXWORKS_PERSONALITY "llvm" + +#undef VXWORKS_EXTRA_LIBS_RTP +#define VXWORKS_EXTRA_LIBS_RTP "-lllvm" |