Introduce support for vxworks7r2 on x86 and x86_64
authorOlivier Hainque <hainque@adacore.com>
Wed, 26 Feb 2020 13:47:43 +0000 (13:47 +0000)
committerOlivier Hainque <hainque@adacore.com>
Fri, 30 Oct 2020 08:25:26 +0000 (08:25 +0000)
commit9a835ba4c00bc5f183a26a5335f14a2a428a2b78
treec74b9a1cd40916910151671ef919c49370bdca04
parent71e713209adcb3b7f65d14906eb200317cc1c2ae
Introduce support for vxworks7r2 on x86 and x86_64

This change extends the VxWorks support on intel CPUs to
VxWorks7r2 for x86_64 as well as x86, with a "mcmodel=large"
additional multilib for the 64bit configuration.

The support for fPIC is not functional yet for this model,
so we just don't add the corresponding multilib.

We extend the range of CPU families handled by TARGET_OS_CPP_BUILTINS,
accounting for the fact that archs older than PENTIUM4 are
not supported (any more) by VxWorks 7.

As we did for powerpc, we leverage VX_CPU_PREFIX to emit different
forms of definitions for different families of VxWorks as the system
headers's expectations has evolved between Vx 5, 6 and 7.

2020-10-27  Olivier Hainque  <hainque@adacore.com>

gcc/
* config.gcc: Adjust the ix86/x86_64-wrs-vxworks filters
to apply to VxWorks 7 as well.
* config/i386/t-vxworks (MULTILIB_OPTIONS, MULTILIB_DIRNAMES):
Remove the fPIC multilib and add one for the large code model
on x86_64.
* config/i386/vxworks.h: Separate sections for TARGET_VXWORKS7,
other variants and common bits.
(TARGET_OS_CPP_BUILTINS): Augment to support a range of CPU
families. Leverage VX_CPU_PREFIX.
(CC1_SPEC): Add definition.
(STACK_CHECK_PROTECT): Use conditional expression instead of
heavier to read conditioned macro definitions.

libgcc/
* config.host: Adjust the ix86/x86_64-wrs-vxworks filters
to apply to VxWorks 7 as well.

Co-authored-by: Douglas Rupp <rupp@adacore.com>
Co-authored-by: Pat Bernardi <bernardi@adacore.com>
gcc/config.gcc
gcc/config/i386/t-vxworks
gcc/config/i386/vxworks.h
libgcc/config.host