libgcc, i386: Add .note.GNU-stack sections to the ms sse/avx sav/res
authorJakub Jelinek <jakub@redhat.com>
Wed, 27 Jan 2021 10:49:23 +0000 (11:49 +0100)
committerJakub Jelinek <jakub@redhat.com>
Wed, 27 Jan 2021 10:50:13 +0000 (11:50 +0100)
On Linux, GCC emits .note.GNU-stack sections when compiling code to mark
the code as not needing or needing executable stack, missing section means
unknown.  But assembly files need to be marked manually.  We already
mark various *.S files in libgcc manually, but the
avx_resms64f.o
avx_resms64fx.o
avx_resms64.o
avx_resms64x.o
avx_savms64f.o
avx_savms64.o
sse_resms64f.o
sse_resms64fx.o
sse_resms64.o
sse_resms64x.o
sse_savms64f.o
sse_savms64.o
files aren't marked, so when something links it in, it will require
executable stack.  Nothing in the assembly requires executable stack though.

2021-01-27  Jakub Jelinek  <jakub@redhat.com>

* config/i386/savms64.h: Add .note.GNU-stack section on Linux.
* config/i386/savms64f.h: Likewise.
* config/i386/resms64.h: Likewise.
* config/i386/resms64f.h: Likewise.
* config/i386/resms64x.h: Likewise.
* config/i386/resms64fx.h: Likewise.

libgcc/config/i386/resms64.h
libgcc/config/i386/resms64f.h
libgcc/config/i386/resms64fx.h
libgcc/config/i386/resms64x.h
libgcc/config/i386/savms64.h
libgcc/config/i386/savms64f.h

index f56c85c10b20ddbe6c4b7f59aed137eceb92d9c3..71f04b380e5e0fb6ba7dc7c05537fe641dbc6d9d 100644 (file)
@@ -57,3 +57,8 @@ MS2SYSV_STUB_END(resms64_17)
 MS2SYSV_STUB_END(resms64_18)
 
 #endif /* __x86_64__ */
+
+#if defined(__ELF__) && defined(__linux__)
+       .section .note.GNU-stack,"",@progbits
+       .previous
+#endif
index 99b6f9a8fafc574ba639880edbb9611e3b432a05..004f7978f193b31ed61566fab353b894baf3b5dd 100644 (file)
@@ -55,3 +55,8 @@ MS2SYSV_STUB_END(resms64f_16)
 MS2SYSV_STUB_END(resms64f_17)
 
 #endif /* __x86_64__ */
+
+#if defined(__ELF__) && defined(__linux__)
+       .section .note.GNU-stack,"",@progbits
+       .previous
+#endif
index e46425762052b464a4982568db889fc71f583c50..6dc0019a78429a74b6d942e08ff2fef752a7b58b 100644 (file)
@@ -62,3 +62,8 @@ MS2SYSV_STUB_END(resms64fx_16)
 MS2SYSV_STUB_END(resms64fx_17)
 
 #endif /* __x86_64__ */
+
+#if defined(__ELF__) && defined(__linux__)
+       .section .note.GNU-stack,"",@progbits
+       .previous
+#endif
index 73d83e6a79e1d53ba6e9d6c9dd7862b8bbbae795..fa32093f21400a1ff9dfe6900cd8d6671b0ec590 100644 (file)
@@ -63,3 +63,8 @@ MS2SYSV_STUB_END(resms64x_17)
 MS2SYSV_STUB_END(resms64x_18)
 
 #endif /* __x86_64__ */
+
+#if defined(__ELF__) && defined(__linux__)
+       .section .note.GNU-stack,"",@progbits
+       .previous
+#endif
index b6c91d5df712a79cefc9efab86719b3bc5eea2e2..885880060aee596a5ec731c9cf54b7b44d49cf30 100644 (file)
@@ -57,3 +57,8 @@ MS2SYSV_STUB_END(savms64_17)
 MS2SYSV_STUB_END(savms64_18)
 
 #endif /* __x86_64__ */
+
+#if defined(__ELF__) && defined(__linux__)
+       .section .note.GNU-stack,"",@progbits
+       .previous
+#endif
index 605dbc04827867fef94d77226a5b390e6fe420c8..9c80bb802471f460a1104d808743d4d5d5971e68 100644 (file)
@@ -55,3 +55,8 @@ MS2SYSV_STUB_END(savms64f_16)
 MS2SYSV_STUB_END(savms64f_17)
 
 #endif /* __x86_64__ */
+
+#if defined(__ELF__) && defined(__linux__)
+       .section .note.GNU-stack,"",@progbits
+       .previous
+#endif