xtensa: add .note.GNU-stack section on linux

gcc/
	* config/xtensa/linux.h (TARGET_ASM_FILE_END): New macro.

libgcc/
	* config/xtensa/crti.S: Add .note.GNU-stack section on linux.
	* config/xtensa/crtn.S: Likewise.
	* config/xtensa/lib1funcs.S: Likewise.
	* config/xtensa/lib2funcs.S: Likewise.
This commit is contained in:
Max Filippov 2023-03-02 09:45:41 -08:00
parent 538a0d0f29
commit 6360bf9a2d
5 changed files with 26 additions and 0 deletions

View File

@ -69,3 +69,5 @@ along with GCC; see the file COPYING3. If not see
#define XTENSA_ALWAYS_PIC 1
#undef DEBUGGER_REGNO
#define TARGET_ASM_FILE_END file_end_indicate_exec_stack

View File

@ -26,6 +26,12 @@
#include "xtensa-config-builtin.h"
/* An executable stack is *not* required for these functions. */
#if defined(__ELF__) && defined(__linux__)
.section .note.GNU-stack,"",%progbits
.previous
#endif
.section .init
.globl _init
.type _init,@function

View File

@ -27,6 +27,12 @@
#include "xtensa-config-builtin.h"
/* An executable stack is *not* required for these functions. */
#if defined(__ELF__) && defined(__linux__)
.section .note.GNU-stack,"",%progbits
.previous
#endif
.section .init
#if XCHAL_HAVE_WINDOWED && !__XTENSA_CALL0_ABI__
retw

View File

@ -25,6 +25,12 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
#include "xtensa-config-builtin.h"
/* An executable stack is *not* required for these functions. */
#if defined(__ELF__) && defined(__linux__)
.section .note.GNU-stack,"",%progbits
.previous
#endif
/* Define macros for the ABS and ADDX* instructions to handle cases
where they are not included in the Xtensa processor configuration. */

View File

@ -25,6 +25,12 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
#include "xtensa-config-builtin.h"
/* An executable stack is *not* required for these functions. */
#if defined(__ELF__) && defined(__linux__)
.section .note.GNU-stack,"",%progbits
.previous
#endif
/* __xtensa_libgcc_window_spill: This function flushes out all but the
current register window. This is used to set up the stack so that
arbitrary frames can be accessed. */