Hello, The pre VxWorks 7 ports are now obsolete, as pre VxWorks 7 on ARM rely on the long deprecated APCS ABI. VxWorks 7, post SR600, is now llvm based and always uses ARM unwinding.
This change updates the GCC support accordingly, tightening the set of accepted triplets from config.gcc to vx7 variants only, always bpabi based. We also add an implementation of __gnu_Unwind_Find_exidx for kernel modules, as it is used by some paths in the common unwinding code and is not provided by VxWorks any more. Finally, we remove the fPIC multilib, as the option has been dysfunctional for a while now and, to our knowledge, is unused anyway. We have tested this with in-hous builds and runs of various C+Ada testsuites on a couple of architecture variations, with mixed kernel and RTP modules, with both gcc-8 and gcc-9 based toolchains. The patch applies untouched on mainline and I have verified that I could successfully build a VxWorks compiler with this source base as well. Olivier 2019-11-13 Jerome Lambourg <lambo...@adacore.com> Doug Rupp <r...@adacore.com> Olivier Hainque <hain...@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.
0007-Update-the-arm-vxworks-support.patch
Description: Binary data