VxWorks config fixes for shared objects
This strengthens the VxWorks configuration files for the support of shared objects, which encompasses a VxWorks specific "non-static" mode for RTPs (in addition to -static and -shared). 2020-11-06 Fred Konrad <konrad@adacore.com> Olivier Hainque <hainque@adacore.com> gcc/ * config/vx-common.h: Define REAL_LIBGCC_SPEC since the '-non-static' option is not standard. * config/vxworks.h (VXWORKS_LIBGCC_SPEC): Implement the LIBGCC_SPEC since REAL_LIBGCC_SPEC is used now. (STARTFILE_PREFIX_SPEC): Use the PIC VSB when building shared libraries or non-static binaries.
This commit is contained in:
parent
0ecb48d753
commit
0515c95d5f
@ -23,8 +23,11 @@ along with GCC; see the file COPYING3. If not see
|
||||
/* Most of these will probably be overridden by subsequent headers. We
|
||||
undefine them here just in case, and define VXWORKS_ versions of each,
|
||||
to be used in port-specific vxworks.h. */
|
||||
#undef LIBGCC_SPEC
|
||||
#define LIBGCC_SPEC VXWORKS_LIBGCC_SPEC
|
||||
|
||||
/* REAL_LIBGCC_SPEC needs to be used since the non-static option is not
|
||||
handled in gcc.c. */
|
||||
#undef REAL_LIBGCC_SPEC
|
||||
#define REAL_LIBGCC_SPEC VXWORKS_LIBGCC_SPEC
|
||||
#undef STARTFILE_SPEC
|
||||
#undef ENDFILE_SPEC
|
||||
|
||||
|
@ -143,11 +143,21 @@ along with GCC; see the file COPYING3. If not see
|
||||
tlsLib, responsible for TLS support by the OS. */
|
||||
|
||||
#if TARGET_VXWORKS7
|
||||
|
||||
/* For static links, /usr/lib/common has everything. For dynamic links,
|
||||
/usr/lib/common/PIC has the static libs and objects that might be needed
|
||||
in the closure (e.g. crt0.o), while the shared version of standard deps
|
||||
(e.g. libc.so) are still in /usr/lib/common. */
|
||||
#undef STARTFILE_PREFIX_SPEC
|
||||
#define STARTFILE_PREFIX_SPEC "/usr/lib/common"
|
||||
#define STARTFILE_PREFIX_SPEC \
|
||||
"%{shared|non-static:/usr/lib/common/PIC} /usr/lib/common"
|
||||
|
||||
#define TLS_SYM "-u __tls__"
|
||||
|
||||
#else
|
||||
|
||||
#define TLS_SYM ""
|
||||
|
||||
#endif
|
||||
|
||||
#undef VXWORKS_LIB_SPEC
|
||||
@ -177,7 +187,14 @@ along with GCC; see the file COPYING3. If not see
|
||||
%{non-static:--force-dynamic --export-dynamic}}}"
|
||||
|
||||
#undef VXWORKS_LIBGCC_SPEC
|
||||
#if defined(ENABLE_SHARED_LIBGCC)
|
||||
#define VXWORKS_LIBGCC_SPEC \
|
||||
"%{!mrtp:-lgcc -lgcc_eh} \
|
||||
%{mrtp:%{!static-libgcc:%{shared|non-static:-lgcc_s;:-lgcc -lgcc_eh}} \
|
||||
%{static-libgcc:-lgcc -lgcc_eh}}"
|
||||
#else
|
||||
#define VXWORKS_LIBGCC_SPEC "-lgcc"
|
||||
#endif
|
||||
|
||||
/* Setup the crtstuff begin/end we might need for dwarf EH registration. */
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user