Import bmake-20260704
Intersting/relevant changes since bmake-20260508
ChangeLog since bmake-20260508
2026-07-04 Simon J Gerraty <sjg at beast.crufty.net>
* VERSION (_MAKE_VERSION): 20260704
2026-07-03 Simon J Gerraty <sjg at beast.crufty.net>
* VERSION (_MAKE_VERSION): 20260703
Merge with NetBSD make, pick up
o meta.c: do a better job of resolving relative paths
o var.c: add alternation support to :M
eg. :M*{Makefile*,.mk} matches any *Makefile* or *.mk
2026-07-02 Simon J Gerraty <sjg at beast.crufty.net>
[56 lines not shown]
[LifetimeSafety] Support container interior paths and invalidations
This patch completes the implementation of path-sensitive lifetime tracking by supporting container interior paths (`.*`) and deep-nested invalidation.
- Enables `PathElement::getInterior` generation in `FactsGenerator` for GSL Owners and Views (e.g. member functions, function parameters, lambda captures).
- Removes bypass checks in `FactsGenerator::handleInvalidatingCall` to track container invalidation on fields.
- Updates `Checker` to use strict prefix comparison (`isStrictPrefixOf`) for container invalidations, ensuring invalidation of container contents (interior) correctly invalidates iterators but not other sibling fields.
- Reorganizes tests in `invalidations.cpp` by resolving duplicates and distributing them logically.
- Updates unit tests and sema tests with correct expectations for interior paths.
TAG=agy
CONV=2cfd8d00-18d7-4a03-8d78-2aba2f9a8f23
sysutils/conky{-awesome}: Update to 1.24.2
ChangeLog: https://github.com/brndnmtthws/conky/releases/tag/v1.24.1
* fix(x11): fix cursor event stealing
* fix: various small bugs
ChangeLog https://github.com/brndnmtthws/conky/releases/tag/v1.24.2
Features
* feat: wayland improvements
* Add querying of Nvidia GPUs with Nvidia's NVML API to 'nvidia' variable
Bug fixes
* fix: wayland double-buffer management and release listener
Since upstream broke the root button propagation, build from the branch that
contains the fix.
handbook/zfs: Add new section about ZFS native encryption
This change adds a new section describing how to use ZFS native
encryption including examples to the handbook. It is based on my own
training material, the open-zfs.org documentation on the subject and the
corresponding man pages (zfs-load-key(8), zfs-unload-key(8)).
I ran my writeup through an AI for grammar, typo and active voice fixes,
instructing it to not make any changes to the text itself.
PR: 264531
Reviewed by: michaelo@
Event: Halifax Hackathon 202606
Differential Revision: https://reviews.freebsd.org/D57889
[LifetimeSafety] Support container interior paths and invalidations
This patch completes the implementation of path-sensitive lifetime tracking by supporting container interior paths (`.*`) and deep-nested invalidation.
- Enables `PathElement::getInterior` generation in `FactsGenerator` for GSL Owners and Views (e.g. member functions, function parameters, lambda captures).
- Removes bypass checks in `FactsGenerator::handleInvalidatingCall` to track container invalidation on fields.
- Updates `Checker` to use strict prefix comparison (`isStrictPrefixOf`) for container invalidations, ensuring invalidation of container contents (interior) correctly invalidates iterators but not other sibling fields.
- Reorganizes tests in `invalidations.cpp` by resolving duplicates and distributing them logically.
- Updates unit tests and sema tests with correct expectations for interior paths.
TAG=agy
CONV=2cfd8d00-18d7-4a03-8d78-2aba2f9a8f23
[GlobalISel] Remove LegacyLegalizerInfo (#197308)
After #197238, #197370, #197371, #197374, #197375, #197377, #197378 and
#197379, this removes the legacy rules from global isel.
The above patches attempt to make all _tested_ operations legal, but
have only gone through the operations that have llvm tests. If more
fallbacks are now found to be happening, the other operations from
#197238 might be needed.
[libc++] Add an ABI flag to optimize mersenne_twister_engine (#206423)
Instead of updating the status array every time `operator()` is called,
we can instead update it once every time the entire array has been read.
That allows the compiler to vectorize the updating code, improving
performance.
Apple M4:
```
Benchmark old new Difference % Difference
---------------------------------------- ------- ------- ------------ --------------
std::mt19937::operator() 1.39 0.65 -0.74 -53.26%
std::mt19937::operator()_(into_array) 172.92 80.69 -92.23 -53.34%
std::mt19937_64::operator() 1.46 0.99 -0.47 -31.99%
std::mt19937_64::operator()_(into_array) 187.31 108.10 -79.21 -42.29%
```
Fixes #197221
[libc++] Use std::to_chars to format thread::id and canonicalize the representation across platforms (#181624)
This makes printing `thread::id` faster, since we avoid a bunch of
boilerplate code that isn't optimized away. It also avoids including
`<sstream>` and `<__locale>`, cutting the time to parse `<thread>` in
half.
This also changes the output when printing the id on a platform that
uses a pointer as the underlying type. I don't think that's a problem,
since the thread id isn't in any way stable. It also makes the output
consistent across all platforms we support.
[libcxxabi] Re-enable `thread_local_destruction_order.pass.cpp` on FreeBSD (#186129)
The underlying bug has been fixed in https://reviews.freebsd.org/D55826.
Increase size of bpfjit interal stack, follow bpf_validate() closely.
Increase a size of M[] array allocated on the stack by bpfjit.
When bpf_validate() fails, bpfjit now fails too:
- Fail to validate/compile BVF_DIV+BPF_K and BPF_MOD+BPF_K with K=0.
- Fail unless the last instruction is BPF_RET+BPF_A or BPF_RET+BPF_K.
If a program contains additional BPF_RET instructions, it is accepted
by bpf_validate() and it compiles fine by bpfjit but both bpf_filter()
and bpfjit reject it (return 0) at runtime.
Adjust existing bpfjit test to follow the changes, add new tests.
textproc/languagetool: Harden HTTP server against OOM
A single pathological check request (e.g. a very long sentence hitting
the OpenNLP chunker) can exhaust the Java heap, leaving the JVM alive
but with its HTTP dispatcher thread dead. Make OutOfMemoryError fatal,
have daemon(8) restart the server after 10 seconds, and bound
per-request work in the sample configuration.
Sponsored by: The FreeBSD Foundation
[InstCombine] Fold fpto{u,s}i of int-cast fdiv into {u,s}div (#205853)
Fixes #205305.
Adds an InstCombine fold for the pattern `fpto{u,s}i (fdiv ({u,s}itofp
X), C)` to `{u,s}div X, C`.
Safe when
- Unsigned: C > 0 and the integer width N <= the FP mantissa width p.
- Signed: C != 0 and N - 1 <= p, excluding (X == INT_MIN, C == -1).
See linked issue for detailed reasoning.
security/py-kdcproxy: Add new Port
kdcproxy is a WSGI module for proxying Kerberos KDC requests over
HTTP and HTTPS. It is required by the upcoming FreeIPA server port.
WWW: https://github.com/latchset/kdcproxy
Sponsored by: Netzkommune GmbH
[InstCombine] Fold commuted add of udiv/urem by two (#206272) (#207462)
Fixes #206272.
`SimplifyAddWithRemainder` folds `(X / C0) * C1 + (X % C0) * C2`,
treating `and X, lowmask` as a remainder and `lshr X, N` as a division.
The commuted form `add (and X, C), (lshr X, N)` was missed because the
operand-order swap only recognized a real `urem`/`srem`.
Now the fold is tried with both operand orders instead of relying on
that swap. Verified with Alive2.
Supersedes #207249 (re-opened from the correct account; already
incorporates the both-operand-orders refactor suggested there by
nikic).
Prepared with AI assistance per the [LLVM AI Tool
Policy](https://llvm.org/docs/AIToolPolicy.html); not a "good first
issue".
[3 lines not shown]
[MC][NFC] Store SubTypeKV names as string table (#207580)
This moves the large SubTypeKV arrays to .rodata, as they no longer
contain the key pointers that need to be relocated.
Additionally, remove the largely redundant CPUNames arrays and integrate
the AArch64 aliases into the sorted string table. There was really no
need to introduce these 17 kiB arrays solely for including AArch64
aliases in help output.... (added in b6c22a4)
defflag M68K_MMU_CUSTOM. Checks for this were added a while ago, but
the defflag was missed. It's not expected to be used directly by
configus, but is there as something other MMU options can add as a
dependency.
net-im/(pidgin,libpurple): Remove SILC and make Evolution optional
The port of silc-toolkit was removed in 2025. Evolution is not required
to build Pidgin -- and is not necessary for many -- leave it optional,
defaulting to off (raise PORTREVISION).
games/battletanks: fix version detection against modern Python
- Use correct function to open files, file() is an old method,
which also makes version.replace() below work as intended
- Drop needless copy of env.Append(CPPDEFINES=['ENABLE_LUA'])
ports-mgmt/portlint: Update to 2.25.0
* fix: Warn on late use of macros in the rest of the Makefile [1]
* feat: Do not throw errors for metaports [2]
PR: 295710 [1]
Reported by: des [2]