freebsd-skq/kerberos5/tools/asn1_compile/Makefile
Ed Maste bcf99d2d99 Add WITH_PIE knob to build Position Independent Executables
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
2019-02-15 22:22:38 +00:00

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