diff options
author | Szabolcs Nagy <szabolcs.nagy@arm.com> | 2024-01-29 09:30:50 +0000 |
---|---|---|
committer | Szabolcs Nagy <szabolcs.nagy@arm.com> | 2024-02-01 09:10:23 +0000 |
commit | d85c17a2b628b7e783716ac376bdb60ddc2afb9a (patch) | |
tree | a5977df89cb8e8e99dad2cdc0396f9dc281f6d70 | |
parent | ceb242f5302027c44a7dca86c344863004b6fec4 (diff) | |
download | gcc-d85c17a2b628b7e783716ac376bdb60ddc2afb9a.zip gcc-d85c17a2b628b7e783716ac376bdb60ddc2afb9a.tar.gz gcc-d85c17a2b628b7e783716ac376bdb60ddc2afb9a.tar.bz2 |
aarch64: libgcc: Cleanup ELF marking in asm
Use aarch64-asm.h in asm code consistently, this was started in
commit c608ada288ced0268bbbbc1fd4136f56c34b24d4
Author: Zac Walker <zacwalker@microsoft.com>
CommitDate: 2024-01-23 15:32:30 +0000
Ifdef `.hidden`, `.type`, and `.size` pseudo-ops for `aarch64-w64-mingw32` target
But that commit failed to remove some existing markings from asm files,
which means some objects got double marked with gnu property notes.
libgcc/ChangeLog:
* config/aarch64/crti.S: Remove stack marking.
* config/aarch64/crtn.S: Remove stack marking, include aarch64-asm.h
* config/aarch64/lse.S: Remove stack and GNU property markings.
-rw-r--r-- | libgcc/config/aarch64/crti.S | 6 | ||||
-rw-r--r-- | libgcc/config/aarch64/crtn.S | 6 | ||||
-rw-r--r-- | libgcc/config/aarch64/lse.S | 40 |
3 files changed, 1 insertions, 51 deletions
diff --git a/libgcc/config/aarch64/crti.S b/libgcc/config/aarch64/crti.S index b6805b8..52ca1bb 100644 --- a/libgcc/config/aarch64/crti.S +++ b/libgcc/config/aarch64/crti.S @@ -23,12 +23,6 @@ #include "aarch64-asm.h" -/* An executable stack is *not* required for these functions. */ -#if defined(__ELF__) && defined(__linux__) -.section .note.GNU-stack,"",%progbits -.previous -#endif - # This file creates a stack frame for the contents of the .fini and # .init sections. Users may put any desired instructions in those # sections. diff --git a/libgcc/config/aarch64/crtn.S b/libgcc/config/aarch64/crtn.S index 59f2441..67bcfab 100644 --- a/libgcc/config/aarch64/crtn.S +++ b/libgcc/config/aarch64/crtn.S @@ -21,11 +21,7 @@ # see the files COPYING3 and COPYING.RUNTIME respectively. If not, see # <http://www.gnu.org/licenses/>. -/* An executable stack is *not* required for these functions. */ -#if defined(__ELF__) && defined(__linux__) -.section .note.GNU-stack,"",%progbits -.previous -#endif +#include "aarch64-asm.h" # This file just makes sure that the .fini and .init sections do in # fact return. Users may put any desired instructions in those sections. diff --git a/libgcc/config/aarch64/lse.S b/libgcc/config/aarch64/lse.S index cee1e88..ecef470 100644 --- a/libgcc/config/aarch64/lse.S +++ b/libgcc/config/aarch64/lse.S @@ -315,43 +315,3 @@ STARTFN NAME(LDNM) ENDFN NAME(LDNM) #endif - -/* GNU_PROPERTY_AARCH64_* macros from elf.h for use in asm code. */ -#define FEATURE_1_AND 0xc0000000 -#define FEATURE_1_BTI 1 -#define FEATURE_1_PAC 2 - -/* Supported features based on the code generation options. */ -#if defined(__ARM_FEATURE_BTI_DEFAULT) -# define BTI_FLAG FEATURE_1_BTI -#else -# define BTI_FLAG 0 -#endif - -#if __ARM_FEATURE_PAC_DEFAULT & 3 -# define PAC_FLAG FEATURE_1_PAC -#else -# define PAC_FLAG 0 -#endif - -/* Add a NT_GNU_PROPERTY_TYPE_0 note. */ -#define GNU_PROPERTY(type, value) \ - .section .note.gnu.property, "a"; \ - .p2align 3; \ - .word 4; \ - .word 16; \ - .word 5; \ - .asciz "GNU"; \ - .word type; \ - .word 4; \ - .word value; \ - .word 0; - -#if defined(__linux__) || defined(__FreeBSD__) -.section .note.GNU-stack, "", %progbits - -/* Add GNU property note if built with branch protection. */ -# if (BTI_FLAG|PAC_FLAG) != 0 -GNU_PROPERTY (FEATURE_1_AND, BTI_FLAG|PAC_FLAG) -# endif -#endif |