aboutsummaryrefslogtreecommitdiff
path: root/gcc/config/vxworks.h
diff options
context:
space:
mode:
authorOlivier Hainque <hainque@adacore.com>2018-09-21 13:03:25 +0000
committerOlivier Hainque <hainque@gcc.gnu.org>2018-09-21 13:03:25 +0000
commitf509691b96daa3f7d28a1feefb2f5db982b44972 (patch)
tree9d9d4cdba68a5fa5e54c33499038303c108d8965 /gcc/config/vxworks.h
parentaa56e87e1f6024021e56a7086f8a56bba6f43b9c (diff)
downloadgcc-f509691b96daa3f7d28a1feefb2f5db982b44972.zip
gcc-f509691b96daa3f7d28a1feefb2f5db982b44972.tar.gz
gcc-f509691b96daa3f7d28a1feefb2f5db982b44972.tar.bz2
Leverage STARTFILE_PREFIX_SPEC for VxWorks7
2018-09-21 Olivier Hainque <hainque@adacore.com> * config/vxworks.h (STARTFILE_PREFIX_SPEC): Define. (VXWORKS_LIBS_DIR_RTP): Remove definition and use. From-SVN: r264476
Diffstat (limited to 'gcc/config/vxworks.h')
-rw-r--r--gcc/config/vxworks.h11
1 files changed, 6 insertions, 5 deletions
diff --git a/gcc/config/vxworks.h b/gcc/config/vxworks.h
index a7de802..bbe0a7c 100644
--- a/gcc/config/vxworks.h
+++ b/gcc/config/vxworks.h
@@ -77,16 +77,18 @@ along with GCC; see the file COPYING3. If not see
/* On Vx6 and previous, the libraries to pick up depends on the architecture,
so cannot be defined for all archs at once. On Vx7, a VSB is always needed
and its structure is fixed and does not depend on the arch. We can thus
- tell gcc where to look for when linking with RTP libraries. */
+ tell gcc where to look for when linking with RTP libraries. Use
+ STARTFILE_PREFIX_SPEC for this, instead of explicit -L options in LIB_SPEC,
+ so they survive -nodefaultlibs. */
/* On Vx7 RTP, we need to drag the __tls__ symbol to trigger initialization of
tlsLib, responsible for TLS support by the OS. */
#if TARGET_VXWORKS7
-#define VXWORKS_LIBS_DIR_RTP "-L%:getenv(VSB_DIR /usr/lib/common)"
+#undef STARTFILE_PREFIX_SPEC
+#define STARTFILE_PREFIX_SPEC "%:getenv(VSB_DIR /usr/lib/common)"
#define TLS_SYM "-u __tls__"
#else
-#define VXWORKS_LIBS_DIR_RTP ""
#define TLS_SYM ""
#endif
@@ -95,8 +97,7 @@ along with GCC; see the file COPYING3. If not see
"%{mrtp:%{shared:-u " USER_LABEL_PREFIX "__init -u " USER_LABEL_PREFIX "__fini} \
%{!shared:%{non-static:-u " USER_LABEL_PREFIX "_STI__6__rtld -ldl} \
" TLS_SYM " \
- --start-group " VXWORKS_LIBS_RTP " --end-group} \
- " VXWORKS_LIBS_DIR_RTP "}"
+ --start-group " VXWORKS_LIBS_RTP " --end-group}}"
/* The no-op spec for "-shared" below is present because otherwise GCC
will treat it as an unrecognized option. */