From 13c4e4031a391afb6368d7072217acde07607ff7 Mon Sep 17 00:00:00 2001 From: Doug Rupp Date: Thu, 11 Oct 2018 18:36:34 +0000 Subject: [PATCH] leverage linker relaxation on ppc vxworks RTPs 2018-10-11 Doug Rupp Olivier Hainque * config/rs6000/vxworks.h (VXWORKS_RELAX_LINK_SPEC): New macro. Pass --relax to the linker for RTPs. (LINK_SPEC): Append VXWORKS_RELAX_LINK_SPEC. Co-Authored-By: Olivier Hainque From-SVN: r265054 --- gcc/ChangeLog | 7 +++++++ gcc/config/rs6000/vxworks.h | 9 ++++++++- 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 421a4c3ed27..8172fcd9276 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +2018-10-11 Doug Rupp + Olivier Hainque + + * config/rs6000/vxworks.h (VXWORKS_RELAX_LINK_SPEC): New macro. + Pass --relax to the linker for RTPs. + (LINK_SPEC): Append VXWORKS_RELAX_LINK_SPEC. + 2018-10-11 Andrew Stubbs Jan Hubicka Martin Jambor diff --git a/gcc/config/rs6000/vxworks.h b/gcc/config/rs6000/vxworks.h index b10955f071d..d2033f60c22 100644 --- a/gcc/config/rs6000/vxworks.h +++ b/gcc/config/rs6000/vxworks.h @@ -88,8 +88,15 @@ VXWORKS_ADDITIONAL_CPP_SPEC #undef LIB_SPEC #define LIB_SPEC VXWORKS_LIB_SPEC + +/* For RTPs, leverage linker relaxation. This helps programs referring + to, typically, kernel services too far away for short calls. This is more + precise than -mlongcall and can be overriden with -Wl,--no-relax. */ +#define VXWORKS_RELAX_LINK_SPEC "%{mrtp:--relax}" + #undef LINK_SPEC -#define LINK_SPEC VXWORKS_LINK_SPEC +#define LINK_SPEC VXWORKS_LINK_SPEC " " VXWORKS_RELAX_LINK_SPEC + #undef STARTFILE_SPEC #define STARTFILE_SPEC VXWORKS_STARTFILE_SPEC #undef ENDFILE_SPEC -- 2.30.2