mirror of
https://github.com/opnsense/src.git
synced 2026-06-11 09:41:03 -04:00
Use .pieo extension for WITH_PIE bsd.prog.mk output
When object files for programs are built using bsd.prog.mk, and WITH_PIE is enabled, the extension used is still plain ".o". To be consistent with bsd.lib.mk, and to allow changes in WITH_PIE settings to propagate correctly, the extension should be ".pieo" instead. MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D49966
This commit is contained in:
parent
532b45fe10
commit
245bb01106
2 changed files with 9 additions and 8 deletions
|
|
@ -4,7 +4,7 @@
|
|||
.include <bsd.compiler.mk>
|
||||
.include <bsd.linker.mk>
|
||||
|
||||
.SUFFIXES: .out .o .bc .c .cc .cpp .cxx .C .m .y .l .ll .ln .s .S .asm
|
||||
.include <bsd.suffixes-extra.mk>
|
||||
|
||||
# XXX The use of COPTS in modern makefiles is discouraged.
|
||||
.if defined(COPTS)
|
||||
|
|
@ -47,13 +47,14 @@ LDFLAGS+= -Wl,-znorelro
|
|||
LDFLAGS+= -Wl,-zrelro
|
||||
.endif
|
||||
.endif
|
||||
.if ${MK_PIE} != "no"
|
||||
# Static PIE is not yet supported/tested.
|
||||
.if !defined(NO_SHARED) || ${NO_SHARED:tl} == "no"
|
||||
.if ${MK_PIE} != "no" && (!defined(NO_SHARED) || ${NO_SHARED:tl} == "no")
|
||||
CFLAGS+= -fPIE
|
||||
CXXFLAGS+= -fPIE
|
||||
LDFLAGS+= -pie
|
||||
.endif
|
||||
OBJ_EXT=pieo
|
||||
.else
|
||||
OBJ_EXT=o
|
||||
.endif
|
||||
.if ${MK_RETPOLINE} != "no"
|
||||
.if ${COMPILER_FEATURES:Mretpoline} && ${LINKER_FEATURES:Mretpoline}
|
||||
|
|
@ -161,7 +162,7 @@ PROGNAME?= ${PROG}
|
|||
|
||||
.if defined(SRCS)
|
||||
|
||||
OBJS+= ${SRCS:N*.h:${OBJS_SRCS_FILTER:ts:}:S/$/.o/g}
|
||||
OBJS+= ${SRCS:N*.h:${OBJS_SRCS_FILTER:ts:}:S/$/.${OBJ_EXT}/g}
|
||||
|
||||
# LLVM bitcode / textual IR representations of the program
|
||||
BCOBJS+=${SRCS:N*.[hsS]:N*.asm:${OBJS_SRCS_FILTER:ts:}:S/$/.bco/g}
|
||||
|
|
@ -197,10 +198,10 @@ SRCS= ${PROG}.c
|
|||
# - the name of the object gets put into the executable symbol table instead of
|
||||
# the name of a variable temporary object.
|
||||
# - it's useful to keep objects around for crunching.
|
||||
OBJS+= ${PROG}.o
|
||||
OBJS+= ${PROG}.${OBJ_EXT}
|
||||
BCOBJS+= ${PROG}.bc
|
||||
LLOBJS+= ${PROG}.ll
|
||||
CLEANFILES+= ${PROG}.o ${PROG}.bc ${PROG}.ll
|
||||
CLEANFILES+= ${PROG}.${OBJ_EXT} ${PROG}.bc ${PROG}.ll
|
||||
|
||||
.if target(beforelinking)
|
||||
beforelinking: ${OBJS}
|
||||
|
|
|
|||
|
|
@ -110,7 +110,7 @@ _PROGS_ALL_SRCS+= ${s}
|
|||
.if !empty(_PROGS_COMMON_SRCS)
|
||||
_PROGS_COMMON_OBJS= ${_PROGS_COMMON_SRCS:M*.[dhly]}
|
||||
.if !empty(_PROGS_COMMON_SRCS:N*.[dhly])
|
||||
_PROGS_COMMON_OBJS+= ${_PROGS_COMMON_SRCS:N*.[dhly]:${OBJS_SRCS_FILTER:ts:}:S/$/.o/g}
|
||||
_PROGS_COMMON_OBJS+= ${_PROGS_COMMON_SRCS:N*.[dhly]:${OBJS_SRCS_FILTER:ts:}:S/$/.${OBJ_EXT}/g}
|
||||
.endif
|
||||
.endif
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue