Annotate arm userspace assembler sources stating their tolerance to
the non-executable stack. Reviewed by: andrew Sponsored by: The FreeBSD Foundation
This commit is contained in:
parent
3e10dd1049
commit
96cdb0ab9d
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=288373
@ -18,3 +18,5 @@ END_COMPILERRT_FUNCTION(__aeabi_memcmp)
|
|||||||
|
|
||||||
DEFINE_AEABI_FUNCTION_ALIAS(__aeabi_memcmp4, __aeabi_memcmp)
|
DEFINE_AEABI_FUNCTION_ALIAS(__aeabi_memcmp4, __aeabi_memcmp)
|
||||||
DEFINE_AEABI_FUNCTION_ALIAS(__aeabi_memcmp8, __aeabi_memcmp)
|
DEFINE_AEABI_FUNCTION_ALIAS(__aeabi_memcmp8, __aeabi_memcmp)
|
||||||
|
|
||||||
|
.section .note.GNU-stack,"",%progbits
|
||||||
|
@ -18,3 +18,5 @@ END_COMPILERRT_FUNCTION(__aeabi_memcpy)
|
|||||||
|
|
||||||
DEFINE_AEABI_FUNCTION_ALIAS(__aeabi_memcpy4, __aeabi_memcpy)
|
DEFINE_AEABI_FUNCTION_ALIAS(__aeabi_memcpy4, __aeabi_memcpy)
|
||||||
DEFINE_AEABI_FUNCTION_ALIAS(__aeabi_memcpy8, __aeabi_memcpy)
|
DEFINE_AEABI_FUNCTION_ALIAS(__aeabi_memcpy8, __aeabi_memcpy)
|
||||||
|
|
||||||
|
.section .note.GNU-stack,"",%progbits
|
||||||
|
@ -18,3 +18,5 @@ END_COMPILERRT_FUNCTION(__aeabi_memmove)
|
|||||||
|
|
||||||
DEFINE_AEABI_FUNCTION_ALIAS(__aeabi_memmove4, __aeabi_memmove)
|
DEFINE_AEABI_FUNCTION_ALIAS(__aeabi_memmove4, __aeabi_memmove)
|
||||||
DEFINE_AEABI_FUNCTION_ALIAS(__aeabi_memmove8, __aeabi_memmove)
|
DEFINE_AEABI_FUNCTION_ALIAS(__aeabi_memmove8, __aeabi_memmove)
|
||||||
|
|
||||||
|
.section .note.GNU-stack,"",%progbits
|
||||||
|
@ -32,3 +32,4 @@ END_COMPILERRT_FUNCTION(__aeabi_memclr)
|
|||||||
DEFINE_AEABI_FUNCTION_ALIAS(__aeabi_memclr4, __aeabi_memclr)
|
DEFINE_AEABI_FUNCTION_ALIAS(__aeabi_memclr4, __aeabi_memclr)
|
||||||
DEFINE_AEABI_FUNCTION_ALIAS(__aeabi_memclr8, __aeabi_memclr)
|
DEFINE_AEABI_FUNCTION_ALIAS(__aeabi_memclr8, __aeabi_memclr)
|
||||||
|
|
||||||
|
.section .note.GNU-stack,"",%progbits
|
||||||
|
@ -60,6 +60,8 @@
|
|||||||
|
|
||||||
.file "crti.asm"
|
.file "crti.asm"
|
||||||
|
|
||||||
|
.section .note.GNU-stack,"",%progbits
|
||||||
|
|
||||||
.section ".init"
|
.section ".init"
|
||||||
.align 2
|
.align 2
|
||||||
.global _init
|
.global _init
|
||||||
|
@ -68,6 +68,8 @@
|
|||||||
|
|
||||||
.file "crtn.asm"
|
.file "crtn.asm"
|
||||||
|
|
||||||
|
.section .note.GNU-stack,"",%progbits
|
||||||
|
|
||||||
.section ".init"
|
.section ".init"
|
||||||
;;
|
;;
|
||||||
FUNC_END
|
FUNC_END
|
||||||
|
@ -1305,3 +1305,5 @@ LSYM(Lchange_\register):
|
|||||||
#include "ieee754-sf.S"
|
#include "ieee754-sf.S"
|
||||||
#include "bpabi.S"
|
#include "bpabi.S"
|
||||||
#endif /* __symbian__ */
|
#endif /* __symbian__ */
|
||||||
|
|
||||||
|
.section .note.GNU-stack,"",%progbits
|
||||||
|
@ -19,3 +19,4 @@ _fini:
|
|||||||
stmdb sp!, {fp, ip, lr, pc}
|
stmdb sp!, {fp, ip, lr, pc}
|
||||||
sub fp, ip, #4
|
sub fp, ip, #4
|
||||||
|
|
||||||
|
.section .note.GNU-stack,"",%progbits
|
||||||
|
@ -8,3 +8,5 @@ __FBSDID("$FreeBSD$");
|
|||||||
.section .fini,"ax",%progbits
|
.section .fini,"ax",%progbits
|
||||||
ldmea fp, {fp, sp, pc}
|
ldmea fp, {fp, sp, pc}
|
||||||
mov pc, lr
|
mov pc, lr
|
||||||
|
|
||||||
|
.section .note.GNU-stack,"",%progbits
|
||||||
|
@ -117,3 +117,5 @@ ENTRY(__aeabi_cdcmpeq)
|
|||||||
msr cpsr_c, ip
|
msr cpsr_c, ip
|
||||||
RET
|
RET
|
||||||
END(__aeabi_cdcmpeq)
|
END(__aeabi_cdcmpeq)
|
||||||
|
|
||||||
|
.section .note.GNU-stack,"",%progbits
|
||||||
|
@ -108,3 +108,5 @@ ENTRY(__aeabi_cfcmpeq)
|
|||||||
msr cpsr_c, ip
|
msr cpsr_c, ip
|
||||||
RET
|
RET
|
||||||
END(__aeabi_cfcmpeq)
|
END(__aeabi_cfcmpeq)
|
||||||
|
|
||||||
|
.section .note.GNU-stack,"",%progbits
|
||||||
|
@ -201,3 +201,4 @@ AEABI_ENTRY(dsub)
|
|||||||
RET
|
RET
|
||||||
AEABI_END(dsub)
|
AEABI_END(dsub)
|
||||||
|
|
||||||
|
.section .note.GNU-stack,"",%progbits
|
||||||
|
@ -188,3 +188,4 @@ AEABI_ENTRY(fsub)
|
|||||||
RET
|
RET
|
||||||
AEABI_END(fsub)
|
AEABI_END(fsub)
|
||||||
|
|
||||||
|
.section .note.GNU-stack,"",%progbits
|
||||||
|
@ -45,3 +45,4 @@ END(__aeabi_read_tp)
|
|||||||
.word ARM_TP_ADDRESS
|
.word ARM_TP_ADDRESS
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
.section .note.GNU-stack,"",%progbits
|
||||||
|
@ -8,3 +8,5 @@ ENTRY(_ctx_start)
|
|||||||
bl _C_LABEL(ctx_done)
|
bl _C_LABEL(ctx_done)
|
||||||
bl _C_LABEL(abort)
|
bl _C_LABEL(abort)
|
||||||
END(_ctx_start)
|
END(_ctx_start)
|
||||||
|
|
||||||
|
.section .note.GNU-stack,"",%progbits
|
||||||
|
@ -157,3 +157,5 @@ botch:
|
|||||||
b .
|
b .
|
||||||
#endif
|
#endif
|
||||||
END(_longjmp)
|
END(_longjmp)
|
||||||
|
|
||||||
|
.section .note.GNU-stack,"",%progbits
|
||||||
|
@ -44,3 +44,5 @@ ENTRY(alloca)
|
|||||||
mov r0, sp /* r0 = base of new space */
|
mov r0, sp /* r0 = base of new space */
|
||||||
RET
|
RET
|
||||||
END(alloca)
|
END(alloca)
|
||||||
|
|
||||||
|
.section .note.GNU-stack,"",%progbits
|
||||||
|
@ -389,3 +389,5 @@ ENTRY(__divsi3)
|
|||||||
mov r0, r3
|
mov r0, r3
|
||||||
RET
|
RET
|
||||||
END(__divsi3)
|
END(__divsi3)
|
||||||
|
|
||||||
|
.section .note.GNU-stack,"",%progbits
|
||||||
|
@ -158,3 +158,5 @@ ENTRY(__longjmp)
|
|||||||
bl PIC_SYM(_C_LABEL(abort), PLT)
|
bl PIC_SYM(_C_LABEL(abort), PLT)
|
||||||
1: b 1b /* Cannot get here */
|
1: b 1b /* Cannot get here */
|
||||||
END(__longjmp)
|
END(__longjmp)
|
||||||
|
|
||||||
|
.section .note.GNU-stack,"",%progbits
|
||||||
|
@ -66,3 +66,5 @@ ENTRY(siglongjmp)
|
|||||||
beq PIC_SYM(_C_LABEL(_longjmp), PLT)
|
beq PIC_SYM(_C_LABEL(_longjmp), PLT)
|
||||||
b PIC_SYM(_C_LABEL(longjmp), PLT)
|
b PIC_SYM(_C_LABEL(longjmp), PLT)
|
||||||
END(siglongjmp)
|
END(siglongjmp)
|
||||||
|
|
||||||
|
.section .note.GNU-stack,"",%progbits
|
||||||
|
@ -84,3 +84,5 @@ ENTRY(ffs)
|
|||||||
RET
|
RET
|
||||||
#endif
|
#endif
|
||||||
END(ffs)
|
END(ffs)
|
||||||
|
|
||||||
|
.section .note.GNU-stack,"",%progbits
|
||||||
|
@ -181,3 +181,5 @@ ENTRY(memcmp)
|
|||||||
RET
|
RET
|
||||||
#endif
|
#endif
|
||||||
END(memcmp)
|
END(memcmp)
|
||||||
|
|
||||||
|
.section .note.GNU-stack,"",%progbits
|
||||||
|
@ -334,3 +334,5 @@ ENTRY(memcpy)
|
|||||||
sub r1, r1, #1
|
sub r1, r1, #1
|
||||||
b .Lmemcpy_l4
|
b .Lmemcpy_l4
|
||||||
END(memcpy)
|
END(memcpy)
|
||||||
|
|
||||||
|
.section .note.GNU-stack,"",%progbits
|
||||||
|
@ -1784,3 +1784,5 @@ ENTRY(memcpy)
|
|||||||
bx lr
|
bx lr
|
||||||
#endif /* !_STANDALONE */
|
#endif /* !_STANDALONE */
|
||||||
END(memcpy)
|
END(memcpy)
|
||||||
|
|
||||||
|
.section .note.GNU-stack,"",%progbits
|
||||||
|
@ -609,3 +609,5 @@ END(memmove)
|
|||||||
#else
|
#else
|
||||||
END(bcopy)
|
END(bcopy)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
.section .note.GNU-stack,"",%progbits
|
||||||
|
@ -263,3 +263,5 @@ END(bzero)
|
|||||||
#else
|
#else
|
||||||
END(memset)
|
END(memset)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
.section .note.GNU-stack,"",%progbits
|
||||||
|
@ -43,3 +43,5 @@ ENTRY(strcmp)
|
|||||||
sub r0, r2, r3
|
sub r0, r2, r3
|
||||||
RET
|
RET
|
||||||
END(strcmp)
|
END(strcmp)
|
||||||
|
|
||||||
|
.section .note.GNU-stack,"",%progbits
|
||||||
|
@ -83,3 +83,5 @@ ENTRY(strlen)
|
|||||||
mov r0, r1
|
mov r0, r1
|
||||||
RET
|
RET
|
||||||
END(strlen)
|
END(strlen)
|
||||||
|
|
||||||
|
.section .note.GNU-stack,"",%progbits
|
||||||
|
@ -56,3 +56,5 @@ ENTRY(strncmp)
|
|||||||
sub r0, r2, r3
|
sub r0, r2, r3
|
||||||
RET
|
RET
|
||||||
END(strncmp)
|
END(strncmp)
|
||||||
|
|
||||||
|
.section .note.GNU-stack,"",%progbits
|
||||||
|
@ -53,3 +53,5 @@ ENTRY(vfork)
|
|||||||
and r0, r0, r1 /* r0 == 0 if child, else unchanged */
|
and r0, r0, r1 /* r0 == 0 if child, else unchanged */
|
||||||
mov r15, r2
|
mov r15, r2
|
||||||
END(vfork)
|
END(vfork)
|
||||||
|
|
||||||
|
.section .note.GNU-stack,"",%progbits
|
||||||
|
@ -91,3 +91,5 @@ ENTRY(_brk)
|
|||||||
.Lcurbrk:
|
.Lcurbrk:
|
||||||
.word PIC_SYM(CURBRK, GOT)
|
.word PIC_SYM(CURBRK, GOT)
|
||||||
END(_brk)
|
END(_brk)
|
||||||
|
|
||||||
|
.section .note.GNU-stack,"",%progbits
|
||||||
|
@ -47,3 +47,5 @@ ASENTRY(CERROR)
|
|||||||
mvn r1, #0x00000000
|
mvn r1, #0x00000000
|
||||||
ldmfd sp!, {r4, pc}
|
ldmfd sp!, {r4, pc}
|
||||||
END(CERROR)
|
END(CERROR)
|
||||||
|
|
||||||
|
.section .note.GNU-stack,"",%progbits
|
||||||
|
@ -49,3 +49,5 @@ ENTRY(_pipe)
|
|||||||
mov r0, #0x00000000
|
mov r0, #0x00000000
|
||||||
RET
|
RET
|
||||||
END(_pipe)
|
END(_pipe)
|
||||||
|
|
||||||
|
.section .note.GNU-stack,"",%progbits
|
||||||
|
@ -47,3 +47,5 @@ ENTRY(ptrace)
|
|||||||
bcs PIC_SYM(CERROR, PLT)
|
bcs PIC_SYM(CERROR, PLT)
|
||||||
RET
|
RET
|
||||||
END(ptrace)
|
END(ptrace)
|
||||||
|
|
||||||
|
.section .note.GNU-stack,"",%progbits
|
||||||
|
@ -78,3 +78,5 @@ ENTRY(_sbrk)
|
|||||||
.Lcurbrk:
|
.Lcurbrk:
|
||||||
.word PIC_SYM(CURBRK, GOT)
|
.word PIC_SYM(CURBRK, GOT)
|
||||||
END(_sbrk)
|
END(_sbrk)
|
||||||
|
|
||||||
|
.section .note.GNU-stack,"",%progbits
|
||||||
|
@ -5,3 +5,5 @@ __FBSDID("$FreeBSD$");
|
|||||||
#include "SYS.h"
|
#include "SYS.h"
|
||||||
|
|
||||||
RSYSCALL(shmat)
|
RSYSCALL(shmat)
|
||||||
|
|
||||||
|
.section .note.GNU-stack,"",%progbits
|
||||||
|
@ -40,3 +40,5 @@ __FBSDID("$FreeBSD$");
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
RSYSCALL(sigreturn)
|
RSYSCALL(sigreturn)
|
||||||
|
|
||||||
|
.section .note.GNU-stack,"",%progbits
|
||||||
|
@ -36,3 +36,5 @@ __FBSDID("$FreeBSD$");
|
|||||||
#include "SYS.h"
|
#include "SYS.h"
|
||||||
|
|
||||||
RSYSCALL(syscall)
|
RSYSCALL(syscall)
|
||||||
|
|
||||||
|
.section .note.GNU-stack,"",%progbits
|
||||||
|
@ -102,7 +102,7 @@ SYM_MAPS+= ${LIBC_SRCTOP}/sys/Symbol.map
|
|||||||
CLEANFILES+= ${SASM} ${SPSEUDO}
|
CLEANFILES+= ${SASM} ${SPSEUDO}
|
||||||
|
|
||||||
.if ${MACHINE_CPUARCH} == "amd64" || ${MACHINE_CPUARCH} == "i386" || \
|
.if ${MACHINE_CPUARCH} == "amd64" || ${MACHINE_CPUARCH} == "i386" || \
|
||||||
${MACHINE_CPUARCH} == "powerpc"
|
${MACHINE_CPUARCH} == "powerpc" || ${MACHINE_ARCH:Marmv6*}
|
||||||
NOTE_GNU_STACK='\t.section .note.GNU-stack,"",%%progbits\n'
|
NOTE_GNU_STACK='\t.section .note.GNU-stack,"",%%progbits\n'
|
||||||
.else
|
.else
|
||||||
NOTE_GNU_STACK=''
|
NOTE_GNU_STACK=''
|
||||||
|
@ -230,7 +230,7 @@ SYMLINKS+=libcompiler_rt_p.a ${LIBDIR}/libgcc_p.a
|
|||||||
.endif
|
.endif
|
||||||
|
|
||||||
.if ${MACHINE_CPUARCH} == "amd64" || ${MACHINE_CPUARCH} == "i386" || \
|
.if ${MACHINE_CPUARCH} == "amd64" || ${MACHINE_CPUARCH} == "i386" || \
|
||||||
${MACHINE_CPUARCH} == "powerpc"
|
${MACHINE_CPUARCH} == "powerpc" || ${MACHINE_ARCH:Marmv6*}
|
||||||
AFLAGS+=--noexecstack
|
AFLAGS+=--noexecstack
|
||||||
ACFLAGS+=-Wa,--noexecstack
|
ACFLAGS+=-Wa,--noexecstack
|
||||||
.endif
|
.endif
|
||||||
|
@ -97,3 +97,4 @@ _rtld_bind_start:
|
|||||||
ldmia sp!,{r0-r5,sl,fp,lr} /* restore the stack */
|
ldmia sp!,{r0-r5,sl,fp,lr} /* restore the stack */
|
||||||
mov pc, ip /* jump to the new address */
|
mov pc, ip /* jump to the new address */
|
||||||
|
|
||||||
|
.section .note.GNU-stack,"",%progbits
|
||||||
|
Loading…
Reference in New Issue
Block a user