# DP: Add .note.GNU-stack sections for gcc's crt files, libffi and boehm-gc # DP: Taken from FC. gcc/ 2004-09-20 Jakub Jelinek * config/rs6000/ppc-asm.h: Add .note.GNU-stack section also on ppc64-linux. * config/ia64/lib1funcs.asm: Add .note.GNU-stack section on ia64-linux. * config/ia64/crtbegin.asm: Likewise. * config/ia64/crtend.asm: Likewise. * config/ia64/crti.asm: Likewise. * config/ia64/crtn.asm: Likewise. 2004-05-14 Jakub Jelinek * config/ia64/linux.h (TARGET_ASM_FILE_END): Define. boehm-gc/ 2005-02-08 Jakub Jelinek * ia64_save_regs_in_stack.s: Moved to... * ia64_save_regs_in_stack.S: ... this. Add .note.GNU-stack on Linux. libffi/ 2007-05-11 Daniel Jacobowitz * src/arm/sysv.S: Fix ARM comment marker. 2005-02-08 Jakub Jelinek * src/alpha/osf.S: Add .note.GNU-stack on Linux. * src/s390/sysv.S: Likewise. * src/powerpc/linux64.S: Likewise. * src/powerpc/linux64_closure.S: Likewise. * src/powerpc/ppc_closure.S: Likewise. * src/powerpc/sysv.S: Likewise. * src/x86/unix64.S: Likewise. * src/x86/sysv.S: Likewise. * src/sparc/v8.S: Likewise. * src/sparc/v9.S: Likewise. * src/m68k/sysv.S: Likewise. * src/ia64/unix.S: Likewise. * src/arm/sysv.S: Likewise. --- boehm-gc/ia64_save_regs_in_stack.S | 15 +++++++++++++++ boehm-gc/ia64_save_regs_in_stack.s | 12 ------------ gcc/config/ia64/linux.h | 3 +++ gcc/config/rs6000/ppc-asm.h | 2 +- libgcc/config/ia64/crtbegin.S | 4 ++++ libgcc/config/ia64/crtend.S | 4 ++++ libgcc/config/ia64/crti.S | 4 ++++ libgcc/config/ia64/crtn.S | 4 ++++ libgcc/config/ia64/lib1funcs.S | 4 ++++ 9 files changed, 39 insertions(+), 13 deletions(-) Index: b/src/boehm-gc/ia64_save_regs_in_stack.s =================================================================== --- a/src/boehm-gc/ia64_save_regs_in_stack.s +++ /dev/null @@ -1,12 +0,0 @@ - .text - .align 16 - .global GC_save_regs_in_stack - .proc GC_save_regs_in_stack -GC_save_regs_in_stack: - .body - flushrs - ;; - mov r8=ar.bsp - br.ret.sptk.few rp - .endp GC_save_regs_in_stack - Index: b/src/boehm-gc/ia64_save_regs_in_stack.S =================================================================== --- /dev/null +++ b/src/boehm-gc/ia64_save_regs_in_stack.S @@ -0,0 +1,15 @@ + .text + .align 16 + .global GC_save_regs_in_stack + .proc GC_save_regs_in_stack +GC_save_regs_in_stack: + .body + flushrs + ;; + mov r8=ar.bsp + br.ret.sptk.few rp + .endp GC_save_regs_in_stack + +#ifdef __linux__ + .section .note.GNU-stack,"",@progbits +#endif Index: b/src/libgcc/config/ia64/crtbegin.S =================================================================== --- a/src/libgcc/config/ia64/crtbegin.S +++ b/src/libgcc/config/ia64/crtbegin.S @@ -252,3 +252,7 @@ __do_jv_register_classes: .weak __cxa_finalize #endif .weak _Jv_RegisterClasses + +#ifdef __linux__ +.section .note.GNU-stack; .previous +#endif Index: b/src/libgcc/config/ia64/crtend.S =================================================================== --- a/src/libgcc/config/ia64/crtend.S +++ b/src/libgcc/config/ia64/crtend.S @@ -119,3 +119,7 @@ __do_global_ctors_aux: br.ret.sptk.many rp .endp __do_global_ctors_aux + +#ifdef __linux__ +.section .note.GNU-stack; .previous +#endif Index: b/src/libgcc/config/ia64/crti.S =================================================================== --- a/src/libgcc/config/ia64/crti.S +++ b/src/libgcc/config/ia64/crti.S @@ -51,3 +51,7 @@ _fini: .body # end of crti.S + +#ifdef __linux__ +.section .note.GNU-stack; .previous +#endif Index: b/src/libgcc/config/ia64/crtn.S =================================================================== --- a/src/libgcc/config/ia64/crtn.S +++ b/src/libgcc/config/ia64/crtn.S @@ -41,3 +41,7 @@ br.ret.sptk.many b0 # end of crtn.S + +#ifdef __linux__ +.section .note.GNU-stack; .previous +#endif Index: b/src/libgcc/config/ia64/lib1funcs.S =================================================================== --- a/src/libgcc/config/ia64/lib1funcs.S +++ b/src/libgcc/config/ia64/lib1funcs.S @@ -793,3 +793,7 @@ __floattitf: .endp __floattitf #endif #endif + +#ifdef __linux__ +.section .note.GNU-stack; .previous +#endif Index: b/src/gcc/config/ia64/linux.h =================================================================== --- a/src/gcc/config/ia64/linux.h +++ b/src/gcc/config/ia64/linux.h @@ -86,5 +86,8 @@ do { \ #undef TARGET_INIT_LIBFUNCS #define TARGET_INIT_LIBFUNCS ia64_soft_fp_init_libfuncs +#undef TARGET_ASM_FILE_END +#define TARGET_ASM_FILE_END file_end_indicate_exec_stack + /* Define this to be nonzero if static stack checking is supported. */ #define STACK_CHECK_STATIC_BUILTIN 1 Index: b/src/gcc/config/rs6000/ppc-asm.h =================================================================== --- a/src/gcc/config/rs6000/ppc-asm.h +++ b/src/gcc/config/rs6000/ppc-asm.h @@ -375,7 +375,7 @@ GLUE(.L,name): \ #endif #endif -#if defined __linux__ && !defined __powerpc64__ +#if defined __linux__ .section .note.GNU-stack .previous #endif