From f50df1d58f9ae1f46cf23bc5446eb91175f67851 Mon Sep 17 00:00:00 2001 From: John David Anglin Date: Thu, 3 Oct 2002 04:05:54 +0000 Subject: [PATCH] pa-linux.h (FUNCTION_OK_FOR_SIBCALL): Delete macro. * pa-linux.h (FUNCTION_OK_FOR_SIBCALL): Delete macro. * pa32-linux.h (FUNCTION_OK_FOR_SIBCALL): Define. From-SVN: r57758 --- gcc/ChangeLog | 5 +++++ gcc/config/pa/pa-linux.h | 4 ---- 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 + + * pa-linux.h (FUNCTION_OK_FOR_SIBCALL): Delete macro. + * pa32-linux.h (FUNCTION_OK_FOR_SIBCALL): Define. + 2002-10-02 Richard Henderson 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 -- 2.30.2