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.
0002-Introduce-vxworks-specific-crtstuff-support.patch
Description: Binary data