This is the second patch of the first set evolving the
VxWorks support before we move on to more c++ specific
capabilities.

This change generalizes a mechanism we have been using in a
ad-hoc manner for Ada for quite a while now, so C++ can also
benefit from it.

The general idea is to introduce VxWorks specific versions
of the crtstuff facilities dealing with dwarf table registration
and deregistration for EH, accounting for differences in
the underlying OS support across versions and across the kind
of module one is building (kernel vs rtp).

Tested as the other patches in the set, first with gcc-9 based
builds and testsuite runs for kernel and RTP on a few targets, then
with a sanity-check build of a powerpc-vxworks6 toolchain using
mainline sources, where the patch just applies.

Olivier

2019-11-06  Jerome Lambourg  <lambo...@adacore.com>
            Olivier Hainque  <hain...@adacore.com>

        libgcc/
        * config/vxcrtstuff.c: New file.
        * config/t-vxcrtstuff: New Makefile fragment.
        * config.host: Append t-vxcrtstuff to the tmake_file list
        on all VxWorks ports using dwarf for table based EH.

        gcc/
        * config/vx-common.h (USE_TM_CLONE_REGISTRY): Remove
        definition, pointless with a VxWorks specific version
        of crtstuff.
        (DWARF2_UNWIND_INFO): Conditionalize on !ARM_UNWIND_INFO.
        * config/vxworks.h (VX_CRTBEGIN_SPEC, VX_CRTEND_SPEC):
        New local macros, controlling the addition of vxworks specific
        crtstuff objects depending on the EH mechanism and kind of
        module being linked.
        (VXWORKS_STARTFILE_SPEC, VXWORKS_ENDFILE_SPEC): Use them.

Attachment: 0002-Introduce-vxworks-specific-crtstuff-support.patch
Description: Binary data

Reply via email to