This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.
| Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
|---|---|---|
| Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
| Other format: | [Raw text] | |
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 <lambourg@adacore.com>
Doug Rupp <rupp@adacore.com>
Olivier Hainque <hainque@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.
Attachment:
0003-Improved-support-for-arm-vxworks-and-arm-vxworks7.patch
Description: Binary data
| Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
|---|---|---|
| Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |