4110 Commits
Author SHA1 Message Date
Enji Cooper 3fb03fb35b [tests] switch GoogleTest tests to googletest interface
The new `googletest` kyua test interface--added in 0.15.0 and fixed in
0.15.1--allows tests to be executed and handled in a more fine-grained
manner than the way it was prior to this commit.

This change deletes the `capsicum-test` ATF wrapper script,
`functional.sh`, and all supporting logic in `googletest.test.mk` as
well as this change makes that logic unnecessary.

MFC after:	1 month
MFC with:	b68969979d ("contrib/kyua: update to 0.15.1")
2026-10-29 16:32:11 -07:00
Enji Cooper a3214d4e9b share/mk/bsd.confs.mk: fix trivial typo in message
The error message noting that the file should not be included said
"bsd.conf.mk" before this change. Now it correctly says "bsd.confs.mk".

MFC after:	3 days
2026-10-24 19:57:19 -07:00
Ed Maste 39f7dbff60 bsd.dirs.mk: Improve "installing DIRS" message
Some of these messages looked at first glance like they were incorrectly
concatenated, e.g. "installing DIRS testsFILESDIR".  Add a colon to
clarify.

Reviewed by:	brooks, imp
Sponsored by:	The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D60525
2026-10-09 11:38:21 -04:00
Siva Mahadevan b45d14d3d6 sys.mk: CTFMERGE: don't assume objfiles always have CTF sections
There are many instances, e.g. in the kernel, where
object files don't have CTF sections, but still need
to be merged into one that does have a CTF section.

This fixes cases like the following:

--------------------------------------------------------------
>>> stage 3.1: building everything
--------------------------------------------------------------

linking kernel.full
ctfmerge -t -L VERSION -g -o kernel.full ...
ERROR: ctfmerge: Input file force-dynamic-hack.pico was partially built from C sources, but no CTF data was present
Removing kernel.full

    kernel.full ---
    [kernel.full] Error code 1

This partially reverts commit fdd3f6f788.

PR:		299013
Reported by:	markj
Reviewed by:	markj, emaste
Fixes:		fdd3f6f788 ("bsd.lib.mk: only ctfmerge if objfiles have a CTF section")
Differential Revision:	https://reviews.freebsd.org/D60378
2026-10-05 16:13:36 -04:00
Siva Mahadevan fdd3f6f788 bsd.lib.mk: only ctfmerge if objfiles have a CTF section
PR:		299013
Reported by:	[email protected]
Reviewed by:	emaste
Fixes:		222210c6a8 ("libgcc_s: add libgcc_s_asneeded.so wrapper for gcc 16")
MFC after:	3 days
Sponsored by:	The FreeBSD Foundation
Differential Revision:	https://reviews.freebsd.org/D60252
2026-10-05 10:07:44 -04:00
Xiaoqiang Zhao 2f49e40a68 llvm: add LoongArch target support, not enabled by default
Note there is ongoing work to add LoongArch support to the base system,
but having target support in llvm is an essential component.

This must be explicitly enabled using WITH_LLVM_TARGET_LOONGARCH.

Reviewed by:	dim
MFC after:	1 week
Differential Revision: https://reviews.freebsd.org/D59899
2026-09-28 18:13:02 +02:00
Dimitry Andric b5d1e0c5a4 llvm: remove Mips target support
The Mips architecture has been removed from all supported branches now.

MFC after:	1 week
2026-09-24 14:50:47 +02:00
Enji Cooper f6db138f97 src.opts.mk: force the Dtrace tests off if ${MK_DTRACE} == no
Prior to this change Dtrace's tests could be enabled even if
`${MK_DTRACE}` == no. Allowing this doesn't make sense so remove the
tests if `${MK_DTRACE}` is also disabled.

MFC after:	2 weeks
2026-09-21 19:53:03 -07:00
Dimitry Andric d577b4ed58 bsd.sys.mk: make clang 23 -Wunused-but-set-global non-fatal
This warning triggers in a few places in contributed code, and would
therefore be annoying to fix. Use -Wno-error= to at least show the
warnings so there is some incentive to submit them upstream.

MFC after:	3 days
2026-09-17 21:36:46 +02:00
Devin Teske 3fe5961a0b Add sysconf(8) and libbsdconf(3)
Complete the native configuration trinity: sysctl(8) for live kernel
state, sysrc(8) for rc.conf(5), and sysconf(8) for the remaining base
configuration -- loader.conf(5), sysctl.conf(5), and the make.conf(5)
family -- atop libbsdconf(3).

libbsdconf resurrects figpar as a unified reader/writer.  Callbacks own
semantics; statements may span multiple lines via backslash continuation;
non-seekable input is spooled; writes are atomic (mkstemp, fsync, rename)
with mode/owner preservation.  Format descriptors name each target, its
files, and quoting rules without private parsers.  Multi-file targets
follow boot sourcing order; loader chases loader_conf_files as the boot
loader does.

sysconf(8) is the operator-facing tool: name / name=value on a required
target, sysrc-style list edits, make append and list-strike where they
belong, jail/altroot, and a capsicum sandbox for read-only use.

Sysctl writes validate against the running kernel first -- unknown and
read-only OIDs, CTLFLAG_TUN (pointing at the loader target), and CTLTYPE
range checks -- so a typo or overflow does not land in sysctl.conf.

Make and src treat WITH_/WITHOUT_ as presence knobs (as bsd.mkopt.mk /
src.conf(5) do) and warn on the WITH_*=no form that does not disable the
option, so a bad assignment is caught before an /usr/src build surfaces
it.

The rc target passes through to sysrc(8).

Defaults querying (-d/-D/-A) mirrors sysrc for dumps and descriptions on
targets that have a defaults file; named reads already see defaults, and
-A only widens dump scope.

Manuals are split pkg(8)-style (bsdconf/put/format; sysconf plus
per-target pages).  ATF coverage exercises the frontend.

Co-authored-by:	Faraz Vahedi <[email protected]>
Reviewed by:	fuz, kfv
Differential Revision:	https://reviews.freebsd.org/D58066
2026-09-16 14:28:14 -07:00
Mark Johnston 1b8ccb02ac lib9p: Make it a private library
lib9p was imported to add a 9p server to bhyve (and I believe this was
the original motivation for writing it in the first place).  Its
external interfaces are kind of strange (from first-hand experience
using it to implement an inetd-based 9p server) and undocumented.
Moreover, upstream has been inactive for over five years.

I suspect there are no third-party consumers.  Let's make it a private
library for now, so as to make it easier to rework external interfaces.
If we get more code written against it, symbol versioning, and some
documentation, we can revisit this decision.

PR:		297499
Reviewed by:	jhb, emaste
Differential Revision:	https://reviews.freebsd.org/D58828
2026-09-01 15:28:28 +00:00
Robert Clausecker 9496457f23 bsd.init.mk: always define _gid when MK_INSTALL_AS_USER is set
A recent commit started to use _uid and _gid in <bsd.dirs.mk> to
mangle the user and group for newly installed directories when
MK_INSTALL_AS_USER is set.  However, _gid was previously only set
when _uid was not 0, causing the group to be set to the empty
string.

Set _uid and _gid together to avoid this problem.

Fixes:		541e6e2d51
PR:		297841
Reviewed by:	emaste, imp
Reported by:	Ralph Zitz <[email protected]>
Differential Revision: https://reviews.freebsd.org/D59150
2026-08-25 01:01:01 +02:00
Kevin Bowling a6999a1c94 net: Revert the ioctl SR-IOV VF status interface
A native route Netlink interface will replace this stack.

Requested by:	glebius

This reverts commit 1ccf543b21.

This reverts commit 2c04cfa148.

This reverts commit 2d6114f6d2.

This reverts commit d15f2551b2.

This reverts commit ceb282bbd6.

This reverts commit c30021fe0d.

This reverts commit fb1820d23a.

This reverts commit 8696cc600f.
2026-08-10 15:49:55 -07:00
Kevin Bowling 2d6114f6d2 libifconfig: Add an SR-IOV VF status query
Provide a public helper which retrieves, unpacks, and validates the
versioned VF status nvlist.  Validate the required VF indices and the
shape and version of driver-specific extension namespaces while allowing
unknown optional fields.

The ioctl argument is not copied back when the command returns EFBIG.
Start with a practical buffer and grow it geometrically rather than
relying on the required length being observable.

Use the helper in ifconfig so other consumers share the same transport
and validation behavior.
2026-08-08 23:46:41 -07:00
Enji Cooper f2e6a8b9e5 libproc: link against libctf if MK_CTF != no instead of MK_CDDL != no
Logic prior to this change would incorrectly try linking when MK_CDDL != no,
instead of MK_CTF != no, which could result in the library and the tests being
broken if/when MK_CTF == no and MK_CDDL != no (an uncommon, but possible
combination with today's build knobs).

This change updates the conditional to correctly track the value of MK_CTF, which
in turn is properly toggled to no if/when MK_CDDL == no as it's a dependent build
knob.

This [niche] build bug has been present in FreeBSD since 2014.

MFC after:	1 week
2026-07-16 14:56:29 -07:00
Andrew Turner f1e8b0ff4e bsd.cpu.mk: Add a workaround for erratum 843419
Add a workaround for the Arm Cortex-A53 erratum 843419. This has been
targeted when the build is either unoptimised for any CPU/architecture
or targets the Cortex-A53 or ARMv8.0 architecture.

PR:		296240
PR:		296395
Reported by:	Hal Murray <[email protected]>
Reported by:	Andreas Schuh <[email protected]>
Reviewed by:	cognet, mmel
Sponsored by:	Arm Ltd
Differential Revision:	https://reviews.freebsd.org/D58212
2026-07-14 16:47:15 +01:00
Warner Losh 541e6e2d51 bsd.dirs.mk: Fix MK_INSTALL_AS_USER for directories
Sponsored by:		Netflix
2026-07-11 13:52:17 -06:00
Ed Maste ae0a3632b5 build: Retire LLVM_COV src.conf knob
I introduced it in commit 1b49115a40 ("Promote llvm-cov to a
standalone option").  llvm-cov was previously enabled as part of the
CLANG_EXTRAS option.  I made it a standalone, default-enabled option for
parity with the tools provided by the GCC-based toolchain.

We no longer provide an in-tree GCC toolchain.  Now, just build llvm-cov
along with Clang to simplify build infrastructure.

Reviewed by:	dim
Sponsored by:	The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D58155
2026-07-10 11:20:34 -04:00
Warner Losh bcb1b157fd loader: Add two new build knobs for x86 BIOS loaders
We have two sets of BIOS loaders: One that lives in stand/i386 and one
that lives in stand/userboot. Add knows to turn these on/off, with the
default being on. These often aren't needed when creating a minimal UEFI
system, so add knobs to turn them off.  Given light-weight VMs have
created a new use cases for these loaders, there's no plans at all to
eliminate them.

Sponsored by:		Netflix
Differential Revision:	https://reviews.freebsd.org/D58072
2026-07-09 22:13:07 -06:00
Dag-Erling Smørgrav 134a4c78d0 Retire the GNU subtree
With GNU diff and cdialog gone, this is now an empty shell.

Reviewed by:	markj
Differential Revision:	https://reviews.freebsd.org/D55425
2026-07-07 08:47:40 +02:00
Dag-Erling Smørgrav af202a5052 Retire dialog
This is the last remaining piece of GPL software in the base system.
The installer transitioned to bsddialog four years ago, and the last
remaining dialog consumer, dpv, was turned off more than two years ago.
Retire dpv, libdpv, libfigpar (used only by dpv), and dialog itself.

Reviewed by:	dteske
Differential Revision:	https://reviews.freebsd.org/D55424
2026-07-07 08:47:36 +02:00
Dag-Erling Smørgrav 2b9f382361 Revert "Retire dialog"
This reverts commit 5b2bdadeb6.
2026-06-29 17:53:51 +02:00
Dag-Erling Smørgrav 7aa0fb6181 Revert "Retire the GNU subtree"
This reverts commit 9cc87ca23d.
2026-06-29 17:53:48 +02:00
Dag-Erling Smørgrav 9cc87ca23d Retire the GNU subtree
With GNU diff and cdialog gone, this is now an empty shell.

(cherry picked from commit 151dd62e005119dda24b8ff9b14aa5beaaa681ac)
2026-06-29 13:49:23 +00:00
Dag-Erling Smørgrav 5b2bdadeb6 Retire dialog
This is the last remaining piece of GPL software in the base system.
The installer transitioned to bsddialog four years ago, and the last
remaining dialog consumer, dpv, was turned off more than two years ago.
Retire dpv, libdpv, libfigpar (used only by dpv), and dialog itself.

(cherry picked from commit 73bb4a92985d747462d866248c1e7623f7ff1a7f)
2026-06-29 13:49:22 +00:00
Warner Losh 198637a686 vgrind: Tear down vgrind support
vgrind has been disconnected from the build for a while.  Remove from
the build, and gc vgrid support in the few remaining places.

Reviewed by:		jhb
Sponsored by:		Netflix
Differential Revision:	https://reviews.freebsd.org/D57648
2026-06-22 17:06:14 -06:00
Simon J. Gerraty c37839dc7b meta.autodep.mk remove extra }
remove extra } from GENDIRDEPS_ENV

more debug output for gendirdeps.mk

Reviewed by:	stevek
Differential Revision:	https://reviews.freebsd.org/D57727
2026-06-21 12:19:29 -07:00
Simon J. Gerraty 7386c0675c Update dirdpes.mk et al
Update to latest dirdeps related makefiles.

dirdeps.mk tweaks useful for universe among other corner cases.
	   also additional filtering for bogus paths ending in /

gendirdeps.mk allow more debugging
	   also additional filtering for bogus paths ending in /

install-new.mk fix bug when isPOSIX_SHELL is true

meta2deps.?? handle file names with spaces by ignoring them

Reviewed by: stevek
Differential Revision:	https://reviews.freebsd.org/D57683
2026-06-19 13:29:25 -07:00
Kyle Evans 13184a69fa build: provide a FORTIFY_SOURCE.<src file> override
For native files we can do more minimal fixes to avoid this large of a
hammer, but for third party files it may not be worth the effort to try
and patch them.  NetBSD has the original _FORTIFY_SOURCE implementation
that ours is based on, for instance, but tests sourced from there can't
do an __ssp_real(foo) without being certain that `foo` actually has a
fortified definition.

This change does always define _FORTIFY_SOURCE as a result, so gate it
on CFLAGS not already containing _FORTIFY_SOURCE definitions.

This re-applies c46a0b5907, but without re-defining _FORTIFY_SOURCE
needlessly.

PR:		294881
Reviewed by:	markj, sjg (both previous version)
Differential Revision:	https://reviews.freebsd.org/D57356
2026-06-17 17:40:46 -05:00
Siva Mahadevan b61ab2d693 src.opts.mk: enable OPENSSL_KTLS by default on riscv64
1e649491b8 enabled KERN_TLS in
riscv/conf/GENERIC, but didn't enable OPENSSL_KTLS.

This passes all testcases in the sys/kern/ssl_sendfile suite and
fixes CI failures seen here:
https://ci.freebsd.org/job/FreeBSD-main-riscv64-test/16606/testReport/sys.kern/ssl_sendfile/

PR:	293810
Fixes:	1e649491b8
MFC after:	3 days
Reviewed by:	gallatin, ngie
Differential Revision:	https://reviews.freebsd.org/D57316
2026-06-10 19:30:52 -04:00
Alex Richardson 004b5935a6 bsd.sys.mk: suppress some clang warnings for C++ for >= 19
I just tried building with system clang on one of my Linux systems which
happens to be version 19, and these warning suppressions are needed for
that version too: same errors as in the original commit.

Reviewed by:	imp
MFC after:	1 week
Differential Revision: https://reviews.freebsd.org/D56874
2026-05-26 12:37:06 -07:00
Ed Maste f6178451ee src.opts.mk: Comment about CTF & DTRACE relationship
WITH_CTF enables building userland components with CTF, and not the ctf*
tools as one might expect.  The tools are actually included with the
DTRACE knob.  Add a comment where the dependency is handled, as this has
caused confusion.

Reported by:	ivy
Reviewed by:	markj
Sponsored by:	The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D56977
2026-05-13 09:37:58 -04:00
Stephen J. Kiernan b89155be25 bsd.endian.mk: Avoid use of M_ListToSkip
While the src build works fine with M_ListToSkip, it can break the
ports build. For now, it is safer just to do the actual variable
modifiers in place.

Reported by:	se
Fixes: 		01674e15de ("bsd.endian.mk: Optimize the handling...")
2026-05-03 15:39:50 -04:00
Stephen J. Kiernan 01674e15de bsd.endian.mk: Optimize the handling of big/little endian determination.
Add variables to contain lists of MACHINE_ARCH values to use
to determine little or big endian.

Only error out about not being able to determine endianess if
TARGET_ENDIANNESS is empty and not cross-compiling.

Reviewed by:	sjg
Obtained from:	Hewlett Packard Enterprise Development LP
Differential Revision:	https://reviews.freebsd.org/D44629
2026-05-02 22:21:56 -04:00
Kyle Evans 8583bcb5b4 Revert "build: provide a FORTIFY_SOURCE.<src file> override"
This reverts commit c46a0b5907.  It broke
the build and I'm not awake yet.
2026-05-01 07:19:17 -05:00
Kyle Evans c46a0b5907 build: provide a FORTIFY_SOURCE.<src file> override
For native files we can do more minimal fixes to avoid this large of a
hammer, but for third party files it may not be worth the effort to try
and patch them.  NetBSD has the original _FORTIFY_SOURCE implementation
that ours is based on, for instance, but tests sourced from there can't
do an __ssp_real(foo) without being certain that `foo` actually has a
fortified definition.

This change does always define _FORTIFY_SOURCE as a result, so gate it
on CFLAGS not already containing _FORTIFY_SOURCE definitions.

PR:		294881
Reviewed by:	markj
Differential Revision:	https://reviews.freebsd.org/D56733
2026-04-30 21:58:48 -05:00
Lexi Winter bb75b0d581 packages: Convert world to a subdir build
Instead of driving the world package build from Makefile.inc1,
use a subdir build where each package has a subdirectory under
packages/ using the new <bsd.pkg.mk>.

Convert some metadata that was previously in the UCL files (e.g.
sets and dependencies) to Makefile variables.

Build the packages under objdir (not repodir), and use the new
stagepackages target to copy them to repodir when creating the
repository.

Determine an explicit list of packages to build in packages/Makefile
based on enabled src.conf options, and add logic to abort the build
if we attempt to build an empty package.  This inverts the previous
logic in Makefile.inc1 which would simply skip empty packages.

There are a few advantages to doing it this way:

* The package build works more like the rest of the build system,
  so it's more accessible to developers.

* We can customise the packages we build based on src.conf options,
  e.g. skipping a package entirely, or adjusting its dependencies
  based on what it actually requires.

* We have a specific list of packages that we want to build, and an
  unexpectedly missing package results in a build error, instead of
  silently producing a broken repository.

* It's possible to build (and in the future, install) an individual
  package without having to rebuild the entire repository.

This doesn't apply to the dtb, kernel-* or src-* packages; those
have their own build systems in Makefile.inc1 and will be converted
later.

MFC after:	4 weeks (stable/15 only)
Reviewed by:	jlduran, sjg, brooks
Sponsored by:	https://www.patreon.com/bsdivy
Differential Revision:	https://reviews.freebsd.org/D56087
2026-04-24 15:10:01 +01:00
Pierre Pronchery b8352da33f pkgconf: import into the base system
This introduces the following option:

* MK_PKGCONF: determines if pkgconf and bomtool should be built

The objective is to allow the creation of SBOM information while
building FreeBSD's src tree. The build system cannot rely on the
presence of bomtool (and eventually also spdxtool) in the build
environment, except for having it as part of the src tree directly.

The framework implementing the generation of SBOM files is under review
in D56474.

This will also help simplifying the build, with the introduction of
another framework relying on the availability of pkgconf.

Sponsored by:		Alpha-Omega, The FreeBSD Foundation
Reviewed by:		bapt, philip
Approved by:		philip (mentor)
Differential Revision:	https://reviews.freebsd.org/D56404
2026-04-22 15:42:56 +02:00
Warner Losh 3d2fd71786 src.opts.mk: Sort options
Sort the options in each of the sections alphabetically.

Sponsored by:		Netflix
2026-04-21 09:30:31 -06:00
Warner Losh 4ed20e0236 kshim/usb: Add build option.
Add WITH{,OUT}_LOADER_USB to build the kshim usb library. Nothing
in-tree uses it, but this will make it easier to keep building. Updated
src.conf.5 with a few extra changes...

Sponsored by:		Netflix
2026-04-17 20:41:43 -06:00
Pouria Mousavizadeh Tehrani 87bea33a67 nd6: Remove DRAFT_IETF_6MAN_IPV6ONLY_FLAG and EXPERIMENTAL options
The draft-ietf-6man-ipv6only-flag has been obsoleted by RFC 8925.
Remove the EXPERIMENTAL compile option from the kernel and remove
DRAFT_IETF_6MAN_IPV6ONLY_FLAG from userland.
This compile option was not enabled by default.
Also regenerate src.conf.5.

Reviewed by: bz
Differential Revision: https://reviews.freebsd.org/D56228
2026-04-10 23:42:09 +03:30
Simon J. Gerraty b2751d956e We also get _HOST_OSREL from host-target.mk 2026-04-06 11:50:11 -07:00
Lexi Winter ab9257599a Remove WITHOUT_BZIP2, WITHOUT_BZIP2_SUPPORT
WITHOUT_BZIP2_SUPPORT only affects a single binary, gzip(1); it doesn't
remove bzip2 support from other bits (e.g., libarchive) and there are
no similar options for gzip, xz or zstd.

WITHOUT_BZIP2 has not done anything at all since it was first added
in 2007.

MFC after:	never
Discussed on:	arch@
Reviewed by:	imp, des, adrian, delphij, emaste
Differential Revision:	https://reviews.freebsd.org/D56148
Sponsored by:		https://www.patreon.com/bsdivy
2026-04-03 14:50:09 +01:00
Ed Maste 7d82731e43 src.opts.mk: !CROSS_COMPILER implies !LLVM_BINUTILS_BOOTSTRAP
This fixes the build when WITHOUT_CROSS_COMPILER is set.

Reported by: fuz, vishwin
Fixes: 17494c6e6b ("build: Boostrap LLVM_BINUTILS for cross-tools")
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D56219
2026-04-02 08:59:07 -04:00
Jose Luis Duran 0d9676e1ca mk: Disable blacklist when disabling blocklist
WITHOUT_BLOCKLIST, when set, should enforce WITHOUT_BLACKLIST.
This fixes the build when WITHOUT_BLOCKLIST=yes is set.

Reported by:	ivy
Reviewed by:	ivy
Fixes:		7238317403 ("blocklist: Rename blacklist to blocklist")
MFC after:	2 weeks
Differential Revision:	https://reviews.freebsd.org/D56118
2026-03-29 16:14:50 +00:00
Ed Maste 17494c6e6b build: Boostrap LLVM_BINUTILS for cross-tools
Reported by:	vexeduxr, jrtc27
Reviewed by:	imp
Sponsored by:	The FreeBSD Foundation
Pull request:	https://github.com/freebsd/freebsd-src/pull/2084
Differential Revision: https://reviews.freebsd.org/D55923
2026-03-20 09:38:40 -04:00
Baptiste Daroussin b42e852e89 pkg-serve(8): serve pkg repositories over TCP via inetd (8)
Reviewed by:	manu, bdrewery (previous version)
Differential Revision:	https://reviews.freebsd.org/D55895
2026-03-20 13:29:48 +01:00
Mateusz Piotrowski 73f37a69f6 Revert "bsd.own.mk: Deorbit compat include of bsd.compiler.mk"
This reverts commit 0bebad8d07.

It might be that all that's needed to fix this is to add
".include <bsd.compiler.mk>" to some Makefiles. I'll look into it soon
but for now let's unbreak HEAD.

Approved by:		bnovkov (mentor)
Differential Revision:	https://reviews.freebsd.org/D55869
2026-03-15 20:45:29 +01:00
Mateusz Piotrowski 0bebad8d07 bsd.own.mk: Deorbit compat include of bsd.compiler.mk
Commit b946bedd09 ("Previous versions of bsd.own.mk [...]")
mentions that bsd.own.mk included bsd.compiler.mk as a temporary
workaround and was destined to be removed in FreeBSD 12. Do that now.

PR:		203540
Reviewed by:	bnovkov, imp
Approved by:	bnovkov (mentor)
Differential Revision:	https://reviews.freebsd.org/D55867
2026-03-15 19:47:35 +01:00
Bryan Drewery e2ed7ee02f bsd.progs.mk: Fix incremental META_MODE for prog sources
This fixes recursed builds not having meta mode enabled for them which
disabled dependency and and command change tracking.  We only want common
objects marked .NOMETA when recursing, not non-common objects.  The
common code expects _PROGS_COMMON_SRCS does not contain the prog source
or else it will be marked .NOMETA.

Add comments explaining the intent and cases being covered.

Fixes:	4ea5e107b1 ("<bsd.progs.mk>: Allow using SRCS for common sources")
Differential Revision:	https://reviews.freebsd.org/D55711
Reviewed by:	vexeduxr, sjg
2026-03-09 07:38:40 -07:00