bcf99d2d99
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
38 lines
540 B
Makefile
38 lines
540 B
Makefile
# $FreeBSD$
|
|
|
|
PROG= asn1_compile
|
|
MAN=
|
|
LIBROKEN_A= ${.OBJDIR:H:H}/lib/libroken/libroken.a
|
|
LIBADD= vers
|
|
LDADD= ${LIBROKEN_A}
|
|
DPADD= ${LIBROKEN_A}
|
|
MK_PIE:= no
|
|
|
|
SRCS= \
|
|
asn1parse.y \
|
|
gen.c \
|
|
gen_copy.c \
|
|
gen_decode.c \
|
|
gen_encode.c \
|
|
gen_free.c \
|
|
gen_glue.c \
|
|
gen_length.c \
|
|
gen_seq.c \
|
|
gen_template.c \
|
|
hash.c \
|
|
lex.l \
|
|
main.c \
|
|
roken.h \
|
|
symbol.c
|
|
|
|
CFLAGS+=-I${KRB5DIR}/lib/roken -I${KRB5DIR}/lib/asn1 -I.
|
|
|
|
CLEANFILES= roken.h lex.c parse.c
|
|
|
|
roken.h:
|
|
make-roken > ${.TARGET}
|
|
|
|
.include <bsd.prog.mk>
|
|
|
|
.PATH: ${KRB5DIR}/lib/asn1
|