Hello, This is the first of a series of patches evolving the VxWorks support in the compiler.
This particular change prepares the grounds for an evolution of the VxWorks 7 support towards the more recent major upgrade of the base OS, from the SR5xx to the SR6xx series in vendor parlance. The OS updgrade introduces major novelties (additional target platforms, init/fini array and TLS support everywhere) and was rolled out pretty fast after the previous SR5xx series. The general trend is to get the system environment and toolchains as similar as possible to the Linux environment. As this is a fast moving target in the process of converging, we simply map upstream GCC "vxworks7" to the more recent environment. There's no real point in setting up intricate internal parametarizations to account for all intermediate releases on mainline. We know of uses of different triplet names to denote the more recent release, still, (<cpu>-wrs-vxworks7r2 for SR6xx, for example), so will arrange to recognize the new triplets and let the more generic -vxworks7 one behave as a synonym. After this change will come a few others, - some implementing port specific adaptations for existing ports, with cleanups along the way, - some introducing new ports (aarch64 in particular), - some improving common functionalities such as gthreads or crtstuff files for table based unwinding, which we will leverage to strengthen the c++ support afterwards. A number of people contributed to all this, listed as authors in ChangeLog entries (Jerome Lambourg, Corentin Gay, Pat Bernardi and Doug Rupp to name a few here). This was first tested by our internal QA, doing builds and running a variety of testsuites for powerpc-vxworks6, arm-vxworks7 and aarch64-vxworks7, both for kernel modules and RTPs. The patches essentially all apply unchanged on mainline, and I checked that I could build a powerpc-vxworks6 compiler from there. I will apply to mainline shortly. With Kind Regards, Olivier -- 2019-11-06 Pat Bernardi <berna...@adacore.com> Jerome Lambourg <lambo...@adacore.com> Olivier Hainque <hain...@adacore.com> * config.gcc: Add comment to introduce the TARGET_VXWORKS commong macro definitions, conveying VXWORKS7 or 64bit general variations. Add a block to set gcc_cv_initfini_array unconditionally to "yes" for VxWorks7. config/vx-common.h (VXWORKS_CC1_SPEC): New macro, empty string by default. Update some comments. config/vxworks.h (VXWORKS_EXTRA_LIBS_RTP): New macro, empty by default, to be added the end of VXWORKS_LIBS_RTP. (VXWORKS_LIBS_RTP): Replace hardcoded part by VXWORKS_BASE_LIBS_RTP and append VXWORKS_EXTRA_LIBS_RTP, both of which specific ports may redefine. (VXWORKS_NET_LIBS_RTP): Account for VxWorks7 specificities. (VXWORKS_CC1_SPEC): Common base definition, with VxWorks7 variation to account for the now available TLS abilities. (TARGET_LIBC_HAS_FUNCTION): Account for VxWorks7 abilities. (VXWORKS_HAVE_TLS): Likewise.
0001-Common-ground-work-for-vxworks7-ports-updates.patch
Description: Binary data