Hello, This change introduces configury infrastructure allowing the production of shared libraries for VxWorks, amenable to use with non-static rtps (linked with "-non-static").
The ability to produce PIC code is not a given on all VxWorks configurations, so activating this has to be explicitly requested by configuring with --enable-shared (https://gcc.gnu.org/pipermail/gcc-patches/2022-September/602523.html). This requirement is then leveraged to factorize the configuration processing in a mostly cpu independant manner, which makes maintenance a lot easier. When activated, shared libs are built for the rtp mode only (the only kind of entity for which they are supported by the VxWorks environment), for code model != large at this stage as large and PIC still don't play well together. We have been using this for about a year with gcc-11 based toolchains, with support activated for aarch64, x86_64 and ppc64-vxworks7r2, and not activated for the corresponding 32bit variants (arm, i686, ppc). Aarch64 proved an interesting challenge with the gcc/gcc_eh split for lse features. I obtained good test results with a gcc-12 based compiler for ppc64 and could get a successful sanity check build with mainline for that cpu as well. Will commit to mainline shortly. Cheers, Olivier 2022-10-09 Olivier Hainque <hain...@adacore.com> gcc/ * config.gcc (*vxworks*): Add t-slibgcc fragment if enable_shared. libgcc/ * config.host (*vxworks*): When enable_shared, add libgcc and crtstuff "shared" fragments for rtp except large code model. (aarch64*-wrs-vxworks7*): Remove t-slibgcc-libgcc from the list of fragments. toplevel/ * libtool.m4 (*vxworks*): When enable_shared, set dynamic_linker and friends for rtp !large. Assume the linker has the required abilities and set lt_cv_deplibs_check_method. Then, regenerating configure scripts to reflect the libtool.m4 update. 2022-10-09 Olivier Hainque <hain...@adacore.com> gcc/ * configure: Regenerate. libatomic/ * configure: Regenerate. libbacktrace/ * configure: Regenerate. libcc1/ * configure: Regenerate. libffi/ * configure: Regenerate. libgfortran/ * configure: Regenerate. libgomp/ * configure: Regenerate. libitm/ * configure: Regenerate. libobjc/ * configure: Regenerate. liboffloadmic/ * configure: Regenerate. liboffloadmic/ * plugin/configure: Regenerate. libphobos/ * configure: Regenerate. libquadmath/ * configure: Regenerate. libsanitizer/ * configure: Regenerate. libssp/ * configure: Regenerate. libstdc++-v3/ * configure: Regenerate. libvtv/ * configure: Regenerate. lto-plugin/ * configure: Regenerate. zlib/ * configure: Regenerate.
0002-Generic-configury-support-for-shared-libs-on-VxWorks.patch
Description: Binary data