.aeabi_subsection selects the current AArch64 build-attribute
subsection, not the current ELF section.  The following .previous
therefore does not return from the build-attribute subsection.  In
aarch64-asm.h it instead switches back to .note.GNU-stack, which was the
previous ELF section after emitting the non-executable stack note.

Remove the .previous from the build-attribute marking path.  Keep it in
the GNU_PROPERTY path, where it matches the explicit switch to
.note.gnu.property.

libgcc/ChangeLog:

        * config/aarch64/aarch64-asm.h (FEATURE_1_AND_MARK): Do not emit
        .previous after AArch64 build attributes.
---
 libgcc/config/aarch64/aarch64-asm.h | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/libgcc/config/aarch64/aarch64-asm.h 
b/libgcc/config/aarch64/aarch64-asm.h
index 5b5feefc342..b9416652174 100644
--- a/libgcc/config/aarch64/aarch64-asm.h
+++ b/libgcc/config/aarch64/aarch64-asm.h
@@ -109,8 +109,7 @@
     .aeabi_attribute Tag_Feature_GCS, 1;                               \
     .else;                                                             \
     .aeabi_attribute Tag_Feature_GCS, 0;                               \
-    .endif;                                                            \
-    .previous
+    .endif;
 #else
 /* Add a NT_GNU_PROPERTY_TYPE_0 note.  */
 # define FEATURE_1_AND_MARK(value) GNU_PROPERTY (FEATURE_1_AND, value)
-- 
2.43.0

Reply via email to