aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEd Maste <emaste@FreeBSD.org>2025-10-31 15:53:42 +0000
committerEd Maste <emaste@FreeBSD.org>2025-11-01 01:17:11 +0000
commite4f2a350955406ffd58dd3f0bb7610df0f36d647 (patch)
tree0503b0a32bf48b6f14346bf10b2c7eab7a70134d
parentc6e02892bbca1237546e3943c0971768822e1745 (diff)
bsd.prog.mk: Skip warnings if compiler.mk was not included
We emit a warning if src.conf options WITH_RETPOLINE or INIT_ALL are in use, and the compiler or linker does not support the feature. For targets like `cleandir` we skip including bsd.compiler.mk, which leaves COMPILER_FEATURES unset and spurious warnings were emitted in early buildworld stages, if these options are in use. Commit 0837b2ebd570 ("pkg: Die if make -V BRANCH fails") added -W to usr.sbin/pkg's make flags, causing it to exit on warnings. As a result buildworld failed when these src.conf options were in use. Clean this up by omitting the warning if the magic _NO_INCLUDE_COMPILERMK flag is set, which indicates that COMPILER_FEATURES is not set. Reviewed by: imp Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D53501
-rw-r--r--share/mk/bsd.prog.mk4
1 files changed, 4 insertions, 0 deletions
diff --git a/share/mk/bsd.prog.mk b/share/mk/bsd.prog.mk
index 10e1c177e2b2..5697845079e2 100644
--- a/share/mk/bsd.prog.mk
+++ b/share/mk/bsd.prog.mk
@@ -49,9 +49,11 @@ CXXFLAGS+= -mretpoline
LDFLAGS+= -Wl,-zretpolineplt
.endif
.else
+.if !defined(_NO_INCLUDE_COMPILERMK)
.warning Retpoline requested but not supported by compiler or linker
.endif
.endif
+.endif
# LLD sensibly defaults to -znoexecstack, so do the same for BFD
LDFLAGS.bfd+= -Wl,-znoexecstack
.if ${MK_BRANCH_PROTECTION} != "no"
@@ -71,9 +73,11 @@ CFLAGS+= -enable-trivial-auto-var-init-zero-knowing-it-will-be-removed-from-clan
CXXFLAGS+= -enable-trivial-auto-var-init-zero-knowing-it-will-be-removed-from-clang
.endif
.else
+.if !defined(_NO_INCLUDE_COMPILERMK)
.warning INIT_ALL (${OPT_INIT_ALL}) requested but not supported by compiler
.endif
.endif
+.endif
# Zero used registers on return (mitigate some ROP)
.if ${MK_ZEROREGS} != "no"