Hello, As mentioned in the thread rooted at https://gcc.gnu.org/ml/gcc-patches/2017-07/msg00720.html,
the arm-vxworks port needs refreshing. As mentioned earlier in other vxworks related threads, it was on my list of things to do and this patch implements a first batch of changes to this effect. It both cleans-up the original "arm-wrs-vxworks" configuration for VxWorks 6 and 5 essentially, and introduces support for VxWorks 7, with a significant change of ABI (moving from the old ARM ABI to BPABI, from DWARF2 to ARM EH). Apart from the Vx6/Vx7 differences, a significant change is the removal of old specs introduced long ago to mimic the command line interface of another family of compilers, introduced for several targets at the time and removed in at least a few since then. One effect is the removal of a harcoded default -march, so better integration with the existing mechanisms allowing the selection of such defaults at configure time. We leverage this immediately by adjusting target_cpu_name providing the default CPU from config.gcc, to arm8 so it is at least archv4. We also adjust TARGET_OS_CPP_BUILTIN to handle the more recent versions of architectures known to be supported by current versions of VxWorks. Tested by verifying success of an in-house build and proper execution of ACATS tests with a gcc-7 based compiler for arm-vxworks and arm-vxworks7, and checking that a build for arm-wrs-vxworks proceeds to completion on mainline. With Kind Regards, Olivier 2017-08-01 Jerome Lambourg <lambo...@adacore.com> Doug Rupp <r...@adacore.com> Olivier Hainque <hain...@adacore.com> gcc/ * config.gcc (arm-wrs-vxworks*): Rework to handle arm-wrs-vxworks7 as well as arm-wrs-vxworks. Update target_cpu_name from arm6 (arch v3) to arm8 (arch v4). * config/arm/vxworks.h (MAYBE_TARGET_BPABI_CPP_BUILTINS): New, helper for TARGET_OS_CPP_BUILTIN. (TARGET_OS_CPP_BUILTIN): Invoke MAYBE_TARGET_BPABI_CPP_BUILTINS(), refine CPU definitions for arm_arch5 and add those for arm_arch6 and arm_arch7. (MAYBE_ASM_ABI_SPEC): New, helper for SUBTARGET_EXTRA_ASM_SPEC, passing required abi options to the assembler for EABI configurations. (EXTRA_CC1_SPEC): New macro, to help prevent the implicit production of .text.hot and .text.unlikely sections for kernel modules when using ARM style exceptions. (CC1_SPEC): Remove obsolete attempt at mimicking Diab toolchain options. Add EXTRA_CC1_SPEC. (VXWORKS_ENDIAN_SPEC): Adjust comment and remove handling of Diab toolchain options. (DWARF2_UNWIND_INFO): Redefine to handle the pre/post VxWorks 7 transition. (ARM_TARGET2_DWARF_FORMAT): Define. * config/arm/t-vxworks: Adjust multilib control to removal of the Diab command line options. libgcc/ * config.host (arm-wrs-vxworks*): Rework to handle arm-wrs-vxworks7 as well as arm-wrs-vxworks. * config/arm/t-vxworks7: New file. Add unwind-arm-vxworks.c to LIB2ADDEH. * config/arm/unwind-arm-vxworks.c: New file. Provide dummy __exidx_start and __exidx_end for downloadable modules.
0003-Improved-support-for-arm-vxworks-and-arm-vxworks7.patch
Description: Binary data