On Wed, Jan 27, 2021 at 10:26 AM Jakub Jelinek <ja...@redhat.com> wrote:
>
> Hi!
>
> 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.
>
> Fixed thusly, bootstrapped/regtested on x86_64-linux and i686-linux, ok for
> trunk?
>
> 2021-01-27  Jakub Jelinek  <ja...@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.

LGTM.

Thanks,
Uros.

>
> --- libgcc/config/i386/savms64.h.jj     2021-01-04 10:25:53.912063080 +0100
> +++ libgcc/config/i386/savms64.h        2021-01-26 19:22:12.371719078 +0100
> @@ -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
> --- libgcc/config/i386/savms64f.h.jj    2021-01-04 10:25:53.906063148 +0100
> +++ libgcc/config/i386/savms64f.h       2021-01-26 19:22:18.064654821 +0100
> @@ -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
> --- libgcc/config/i386/resms64.h.jj     2021-01-04 10:25:53.904063171 +0100
> +++ libgcc/config/i386/resms64.h        2021-01-26 19:21:45.486022557 +0100
> @@ -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
> --- libgcc/config/i386/resms64f.h.jj    2021-01-04 10:25:53.910063103 +0100
> +++ libgcc/config/i386/resms64f.h       2021-01-26 19:21:54.024926172 +0100
> @@ -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
> --- libgcc/config/i386/resms64x.h.jj    2021-01-04 10:25:53.901063205 +0100
> +++ libgcc/config/i386/resms64x.h       2021-01-26 19:22:07.017779514 +0100
> @@ -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
> --- libgcc/config/i386/resms64fx.h.jj   2021-01-04 10:25:53.901063205 +0100
> +++ libgcc/config/i386/resms64fx.h      2021-01-26 19:22:00.943848074 +0100
> @@ -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
>
>         Jakub
>

Reply via email to