diff options
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/config/pa/pa-linux.h | 4 | ||||
-rw-r--r-- | gcc/config/pa/pa32-linux.h | 8 |
3 files changed, 13 insertions, 4 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 3e2af93c1f5..1d6667ba54d 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2002-10-02 John David Anglin <dave@hiauly1.hia.nrc.ca> + + * pa-linux.h (FUNCTION_OK_FOR_SIBCALL): Delete macro. + * pa32-linux.h (FUNCTION_OK_FOR_SIBCALL): Define. + 2002-10-02 Richard Henderson <rth@redhat.com> PR opt/7124 diff --git a/gcc/config/pa/pa-linux.h b/gcc/config/pa/pa-linux.h index 86dfabc77b7..cdc201d5f59 100644 --- a/gcc/config/pa/pa-linux.h +++ b/gcc/config/pa/pa-linux.h @@ -95,10 +95,6 @@ Boston, MA 02111-1307, USA. */ %{!dynamic-linker:-dynamic-linker /lib/ld.so.1}} \ %{static:-static}}" -/* Sibcalls, stubs, and elf sections don't play well. */ -#undef FUNCTION_OK_FOR_SIBCALL -#define FUNCTION_OK_FOR_SIBCALL(x) 0 - /* glibc's profiling functions don't need gcc to allocate counters. */ #define NO_PROFILE_COUNTERS 1 diff --git a/gcc/config/pa/pa32-linux.h b/gcc/config/pa/pa32-linux.h index a5c1da2fa62..c8ea72de828 100644 --- a/gcc/config/pa/pa32-linux.h +++ b/gcc/config/pa/pa32-linux.h @@ -21,3 +21,11 @@ Boston, MA 02111-1307, USA. */ /* Turn off various SOM crap we don't want. */ #undef TARGET_ELF32 #define TARGET_ELF32 1 + +/* Sibcalls are ok when ld is used in single subspace mode. The + multiple subspace mode is not compatible with sibcalls to external + functions because the linker generated stubs store the return + pointer into the frame. This target does not need multiple + subspace stubs, so we allow sibcalls to all functions. */ +#undef FUNCTION_OK_FOR_SIBCALL +#define FUNCTION_OK_FOR_SIBCALL(DECL) 1 |