aboutsummaryrefslogtreecommitdiff
path: root/gcc/config
diff options
context:
space:
mode:
authorOlivier Hainque <hainque@adacore.com>2022-03-10 11:02:11 +0000
committerOlivier Hainque <hainque@adacore.com>2022-10-02 09:12:34 +0000
commit6ed7eee30f4c5e7a4ae0119bbc93a1487751cbc7 (patch)
tree1f543f951e0223216440a37cc7fe831b763326a0 /gcc/config
parent3290dcf14994cee3f86abd8cc7d38ddedaaec062 (diff)
downloadgcc-6ed7eee30f4c5e7a4ae0119bbc93a1487751cbc7.zip
gcc-6ed7eee30f4c5e7a4ae0119bbc93a1487751cbc7.tar.gz
gcc-6ed7eee30f4c5e7a4ae0119bbc93a1487751cbc7.tar.bz2
Refine guard for vxworks crtstuff spec
Working on the reintroduction of shared libraries support (and of modules depending on shared libraries) exposed a few test failures of simple c++ constructor tests on arm-vxworks7r2. Investigation revealed that we were not linking the crtstuff objects as needed from a compiler configured not to have shared libs support, because of the ENABLE_SHARED_LIBGCC guard in this piece of vxworks.h: /* Setup the crtstuff begin/end we might need for dwarf EH registration and/or INITFINI_ARRAY support for shared libs. */ #if (HAVE_INITFINI_ARRAY_SUPPORT && defined(ENABLE_SHARED_LIBGCC)) \ || (DWARF2_UNWIND_INFO && !defined(CONFIG_SJLJ_EXCEPTIONS)) #define VX_CRTBEGIN_SPEC "%{!shared:vx_crtbegin.o%s;:vx_crtbeginS.o%s}" crtstuff initfini array support is meant to be leveraged for constructors regardless of whether the compiler also happens to be configured with shared library support, so the guard on ENABLE_SHARED_LIBGCC here is inappropriate. This change just removes it, 2022-09-30 Olivier Hainque <hainque@adacore.com> gcc/ * config/vxworks.h (VX_CRTBEGIN_SPEC, VX_CRTEND_SPEC): If HAVE_INITFINI_ARRAY_SUPPORT, pick crtstuff objects regardless of ENABLE_SHARED_LIBGCC.
Diffstat (limited to 'gcc/config')
-rw-r--r--gcc/config/vxworks.h9
1 files changed, 4 insertions, 5 deletions
diff --git a/gcc/config/vxworks.h b/gcc/config/vxworks.h
index 6a88fb2..f2103de 100644
--- a/gcc/config/vxworks.h
+++ b/gcc/config/vxworks.h
@@ -120,7 +120,7 @@ along with GCC; see the file COPYING3. If not see
-lc_internal after -lc -lgcc.
- libc_internal also contains __init/__fini functions for
- USE_INITFINI_ARRAY support. However, the system expects these in
+ INITFINI_ARRAY support. However, the system expects these in
every shared lib as well, with slightly different names, and it is
simpler for us to provide our own versions through vxcrtstuff.
@@ -225,10 +225,9 @@ along with GCC; see the file COPYING3. If not see
#endif
/* Setup the crtstuff begin/end we might need for dwarf EH registration
- and/or INITFINI_ARRAY support for shared libs. */
-
-#if (HAVE_INITFINI_ARRAY_SUPPORT && defined(ENABLE_SHARED_LIBGCC)) \
- || (DWARF2_UNWIND_INFO && !defined(CONFIG_SJLJ_EXCEPTIONS))
+ and/or INITFINI_ARRAY support. */
+#if (HAVE_INITFINI_ARRAY_SUPPORT \
+ || (DWARF2_UNWIND_INFO && !defined(CONFIG_SJLJ_EXCEPTIONS)))
#define VX_CRTBEGIN_SPEC "%{!shared:vx_crtbegin.o%s;:vx_crtbeginS.o%s}"
#define VX_CRTEND_SPEC "%{!shared:vx_crtend.o%s;:vx_crtendS.o%s}"
#else