From: Olivier Hainque Date: Fri, 21 Sep 2018 13:03:25 +0000 (+0000) Subject: Leverage STARTFILE_PREFIX_SPEC for VxWorks7 X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=f509691b96daa3f7d28a1feefb2f5db982b44972;p=gcc.git Leverage STARTFILE_PREFIX_SPEC for VxWorks7 2018-09-21 Olivier Hainque * config/vxworks.h (STARTFILE_PREFIX_SPEC): Define. (VXWORKS_LIBS_DIR_RTP): Remove definition and use. From-SVN: r264476 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index a47cb79d973..b94b4c0ecc1 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2018-09-21 Olivier Hainque + + * config/vxworks.h (STARTFILE_PREFIX_SPEC): Define. + (VXWORKS_LIBS_DIR_RTP): Remove definition and use. + 2018-09-21 Olivier Hainque * config/vxworks.h (SIZE_TYPE): Account for TARGET_VXWORKS64. diff --git a/gcc/config/vxworks.h b/gcc/config/vxworks.h index a7de802762a..bbe0a7cb02d 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. */