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.

Attachment: 0007-Update-the-arm-vxworks-support.patch
Description: Binary data


Reply via email to