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
@ -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…
x
Reference in New Issue
Block a user