aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJessica Clarke <jrtc27@FreeBSD.org>2023-12-13 21:43:10 +0000
committerJessica Clarke <jrtc27@FreeBSD.org>2023-12-13 21:43:10 +0000
commitff7c12c1f17e52337169d8ce48433fae96a9c9db (patch)
treec513fc2d0b86c19ab3a25e1d0a58d56f6571fb98
parente131d3f4f34fdbce465524f7b1093f01acc9de7c (diff)
downloadsrc-ff7c12c1f17e52337169d8ce48433fae96a9c9db.tar.gz
src-ff7c12c1f17e52337169d8ce48433fae96a9c9db.zip
Make kldxref a bootstrap tool and use unconditionally
Now that kldxref is a generic cross tool and can be built on non-FreeBSD we can bootstrap it during the build and thus remove the condition for whether it exists. We also need to make sure to add it to the METALOG for -DNO_ROOT builds. Reviewed by: brooks, imp Differential Revision: https://reviews.freebsd.org/D43051
-rw-r--r--Makefile.inc15
-rw-r--r--sys/conf/kmod.mk9
-rw-r--r--sys/modules/Makefile9
-rw-r--r--tools/build/Makefile2
4 files changed, 17 insertions, 8 deletions
diff --git a/Makefile.inc1 b/Makefile.inc1
index 7b5e7e048a72..e6a6e9d479d3 100644
--- a/Makefile.inc1
+++ b/Makefile.inc1
@@ -2410,8 +2410,12 @@ _bootstrap_tools_links+=m4 lex
_elftoolchain_libs= lib/libelf lib/libdwarf lib/libzstd
${_bt}-lib/libelf: ${_bt_m4_depend}
${_bt}-lib/libdwarf: ${_bt_m4_depend}
+_bt_libelf_depend=${_bt}-lib/libelf
.endif
+_kldxref= usr.sbin/kldxref
+${_bt}-usr.sbin/kldxref: ${_bt_libelf_depend}
+
# flua is required to regenerate syscall files. It first appeared during the
# 13.0-CURRENT cycle, thus needs to be built on -older releases and stable
# branches.
@@ -2673,6 +2677,7 @@ bootstrap-tools: ${_bt}-links .PHONY
${_cat} \
${_kbdcontrol} \
${_elftoolchain_libs} \
+ ${_kldxref} \
lib/libopenbsd \
usr.bin/mandoc \
usr.bin/rpcgen \
diff --git a/sys/conf/kmod.mk b/sys/conf/kmod.mk
index 526872d95dd0..5d4dcd4371bc 100644
--- a/sys/conf/kmod.mk
+++ b/sys/conf/kmod.mk
@@ -359,10 +359,11 @@ afterinstall: _kldxref
.ORDER: realinstall _kldxref
.ORDER: _installlinks _kldxref
_kldxref: .PHONY
- @if type kldxref >/dev/null 2>&1; then \
- ${ECHO} ${KLDXREF_CMD} ${DESTDIR}${KMODDIR}; \
- ${KLDXREF_CMD} ${DESTDIR}${KMODDIR}; \
- fi
+ ${KLDXREF_CMD} ${DESTDIR}${KMODDIR}
+.if defined(NO_ROOT) && defined(METALOG)
+ echo ".${DISTBASE}${KMODDIR}/linker.hints type=file mode=0644 uname=root gname=wheel" | \
+ cat -l >> ${METALOG}
+.endif
.endif
.endif # !target(realinstall)
diff --git a/sys/modules/Makefile b/sys/modules/Makefile
index 112a2f345c94..c14933eebda4 100644
--- a/sys/modules/Makefile
+++ b/sys/modules/Makefile
@@ -911,10 +911,11 @@ SUBDIR:= ${SUBDIR:N${reject}}
.if !defined(NO_XREF)
.MAKEFLAGS+= -DNO_XREF
afterinstall: .PHONY
- @if type kldxref >/dev/null 2>&1; then \
- ${ECHO} ${KLDXREF_CMD} ${DESTDIR}${KMODDIR}; \
- ${KLDXREF_CMD} ${DESTDIR}${KMODDIR}; \
- fi
+ ${KLDXREF_CMD} ${DESTDIR}${KMODDIR}
+.if defined(NO_ROOT) && defined(METALOG)
+ echo ".${DISTBASE}${KMODDIR}/linker.hints type=file mode=0644 uname=root gname=wheel" | \
+ cat -l >> ${METALOG}
+.endif
.endif
SUBDIR:= ${SUBDIR:u:O}
diff --git a/tools/build/Makefile b/tools/build/Makefile
index 78c46dfeacbc..187d5593564d 100644
--- a/tools/build/Makefile
+++ b/tools/build/Makefile
@@ -303,6 +303,8 @@ SYSINCS+= ${SRCTOP}/sys/sys/elf.h
SYSINCS+= ${SRCTOP}/sys/sys/ctf.h
# for kbdcontrol:
SYSINCS+= ${SRCTOP}/sys/sys/kbio.h
+# for kldxref:
+SYSINCS+= ${SRCTOP}/sys/sys/module.h
# We want to run the build with only ${WORLDTMP} in $PATH to ensure we don't
# accidentally run tools that are incompatible but happen to be in $PATH.