33a9dab77f
Building binaries as PIE allows the executable itself to be loaded at a random address when ASLR is enabled (not just its shared libraries). With this change PIE objects have a .pieo extension and INTERNALLIB libraries libXXX_pie.a. MK_PIE is disabled for some kerberos5 tools, Clang, and Subversion, as they explicitly reference .a libraries in their Makefiles. These can be addressed on an individual basis later. MK_PIE is also disabled for rtld-elf because it is already position-independent using bespoke Makefile rules. Currently only dynamically linked binaries will be built as PIE. Discussed with: dim Reviewed by: kib MFC after: 1 month Relnotes: Yes Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D18423
27 lines
474 B
Makefile
27 lines
474 B
Makefile
# $FreeBSD$
|
|
|
|
PROG= slc
|
|
LIBROKEN_A= ${.OBJDIR:H:H}/lib/libroken/libroken.a
|
|
LIBADD= vers
|
|
LDADD= ${LIBROKEN_A}
|
|
DPADD= ${LIBROKEN_A}
|
|
MAN=
|
|
MK_PIE:= no
|
|
|
|
SRCS= roken.h \
|
|
slc-gram.y \
|
|
slc-lex.l
|
|
|
|
CFLAGS+=-I${KRB5DIR}/lib/roken -I${KRB5DIR}/lib/sl -I${KRB5DIR}/lib/vers -I.
|
|
|
|
CLEANFILES= roken.h slc-gram.c slc-lex.c
|
|
|
|
roken.h:
|
|
${MAKE_ROKEN} > ${.TARGET}
|
|
|
|
# ${.OBJDIR:H}/make-roken/make-roken > ${.TARGET}
|
|
|
|
.include <bsd.prog.mk>
|
|
|
|
.PATH: ${KRB5DIR}/lib/roken ${KRB5DIR}/lib/sl
|