git: e4f2a3509554 - main - bsd.prog.mk: Skip warnings if compiler.mk was not included

From: Ed Maste <emaste_at_FreeBSD.org>
Date: Sat, 01 Nov 2025 01:18:47 UTC
The branch main has been updated by emaste:

URL: https://cgit.FreeBSD.org/src/commit/?id=e4f2a350955406ffd58dd3f0bb7610df0f36d647

commit e4f2a350955406ffd58dd3f0bb7610df0f36d647
Author:     Ed Maste <emaste@FreeBSD.org>
AuthorDate: 2025-10-31 15:53:42 +0000
Commit:     Ed Maste <emaste@FreeBSD.org>
CommitDate: 2025-11-01 01:17:11 +0000

    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
---
 share/mk/bsd.prog.mk | 4 ++++
 1 file changed, 4 insertions(+)

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"