mirror of
https://git.FreeBSD.org/src.git
synced 2024-12-20 11:11:24 +00:00
Emit .note.GNU-stack for the syscall stubs generated by libc only on
architectures that support this .note. In particular, do not unneccessary emit the notes on ia64 and sparc64, which ABI require non-executable stacks. Tested by: marcel
This commit is contained in:
parent
4503c8f7bd
commit
f1410015f0
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=217850
@ -53,16 +53,23 @@ SYM_MAPS+= ${.CURDIR}/sys/Symbol.map
|
||||
# Generated files
|
||||
CLEANFILES+= ${SASM} ${SPSEUDO}
|
||||
|
||||
.if ${MACHINE_CPUARCH} == "amd64" || ${MACHINE_CPUARCH} == "i386" || \
|
||||
${MACHINE_CPUARCH} == "powerpc"
|
||||
NOTE_GNU_STACK='\t.section .note.GNU-stack,"",%%progbits\n'
|
||||
.else
|
||||
NOTE_GNU_STACK=''
|
||||
.endif
|
||||
|
||||
${SASM}:
|
||||
printf '#include "compat.h"\n' > ${.TARGET}
|
||||
printf '#include "SYS.h"\nRSYSCALL(${.PREFIX})\n' >> ${.TARGET}
|
||||
printf '\t.section .note.GNU-stack,"",%%progbits\n' >>${.TARGET}
|
||||
printf ${NOTE_GNU_STACK} >>${.TARGET}
|
||||
|
||||
${SPSEUDO}:
|
||||
printf '#include "compat.h"\n' > ${.TARGET}
|
||||
printf '#include "SYS.h"\nPSEUDO(${.PREFIX:S/_//})\n' \
|
||||
>> ${.TARGET}
|
||||
printf '\t.section .note.GNU-stack,"",%%progbits\n' >>${.TARGET}
|
||||
printf ${NOTE_GNU_STACK} >>${.TARGET}
|
||||
|
||||
MAN+= abort2.2 accept.2 access.2 acct.2 adjtime.2 \
|
||||
aio_cancel.2 aio_error.2 aio_read.2 aio_return.2 \
|
||||
|
Loading…
Reference in New Issue
Block a user