From e8dca53aa06ed7a06a83e666c4c303692f8fdbbe Mon Sep 17 00:00:00 2001 From: Warner Losh Date: Wed, 2 Jun 2021 10:35:01 -0600 Subject: [PATCH] kmod.mk: Allow extra objects to be specified in modules OBJS are automatically added to CLEANFILES. For pre-built objects, this is not desirable since it will delete the object from the source tree. Introduce EXTRA_OBJS which list these object files, but aren't added to clean files. Sponsored by: Netflix Reviewed by: emaste@ Differential Revision: https://reviews.freebsd.org/D30615 --- sys/conf/kmod.mk | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/sys/conf/kmod.mk b/sys/conf/kmod.mk index c0d4441af02..c0ad352bf62 100644 --- a/sys/conf/kmod.mk +++ b/sys/conf/kmod.mk @@ -44,10 +44,12 @@ # # DESTDIR The tree where the module gets installed. [not set] # -# KERNBUILDDIR -# Set to the location of the kernel build directory where +# KERNBUILDDIR Set to the location of the kernel build directory where # the opt_*.h files, .o's and kernel winds up. # +# BLOB_OBJS Prebuilt binary blobs .o's from the src tree to be linked into +# the module. These are precious and not removed in make clean. +# # +++ targets +++ # # install: @@ -241,14 +243,14 @@ LDSCRIPT_FLAGS?= -T ${SYSDIR}/conf/ldscript.kmod.${MACHINE_ARCH} .endif .if ${__KLD_SHARED} == yes -${KMOD}.kld: ${OBJS} +${KMOD}.kld: ${OBJS} ${BLOB_OBJS} .else -${FULLPROG}: ${OBJS} +${FULLPROG}: ${OBJS} ${BLOB_OBJS} .endif ${LD} -m ${LD_EMULATION} ${_LDFLAGS} ${LDSCRIPT_FLAGS} -r -d \ - -o ${.TARGET} ${OBJS} + -o ${.TARGET} ${OBJS} ${BLOB_OBJS} .if ${MK_CTF} != "no" - ${CTFMERGE} ${CTFFLAGS} -o ${.TARGET} ${OBJS} + ${CTFMERGE} ${CTFFLAGS} -o ${.TARGET} ${OBJS} ${BLOB_OBJS} .endif .if defined(EXPORT_SYMS) .if ${EXPORT_SYMS} != YES