[AArch64][SVE] Promote unpacked 16-bit floats to legal VECTOR_COMPRESS ops (#220268)
This patch promotes f16 and bf16 VECTOR_COMPRESS ops for nxv2/nxv4 to
64-bit or 32-bit operations respectively. This allows lowering them via
`compact` in SVE1.
Assisted-by: Codex (tests)
system: run file and configuration selfchecks
Execute these just before rc.bootup would start bringing
up the system. This would still have to audit-log, but
syslog-ng has not started yet.
fsck_msdosfs: add tests for the 32-bit boot block field decoding
Exercise each of the 32-bit BIOS Parameter Block and FSInfo fields that
readboot() decodes, using values whose most significant byte has its high
bit set. Each case checks two things: that fsck_msdosfs(8) reports the
full unsigned 32-bit value back on stdout, and that nothing writes a
sanitizer runtime error to stderr.
The second check is what catches a byte-at-a-time decode. Shifting such
a byte left by 24 is undefined, but every compiler we use wraps it into
the same bit pattern, so the decoded value alone cannot tell a correct
decode from an overflowing one. In a WITH_UBSAN build bsd.sanitizer.mk
compiles with -fsanitize=undefined and -fsanitize-recover=undefined, so
the shift is reported on stderr and execution continues, which the test
can then assert on. Against the byte-at-a-time decode these cases fail
in a WITH_UBSAN build and pass without it.
Note that the stderr check also fails on unrelated undefined behavior
that these images reach anywhere in fsck_msdosfs(8), which is intended.
[2 lines not shown]
fsck_msdosfs: avoid signed integer overflow in readboot()
readboot() decoded the 32-bit little-endian BIOS Parameter Block and
FSInfo fields by shifting the individual bytes of a u_char array into
place. The u_char operands are promoted to signed int, so shifting a
most significant byte of 0x80 or greater left by 24 overflows int, which
is undefined behavior. Use le32dec() from <sys/endian.h> instead, which
is both well defined and easier to read.
No functional change intended.
MFC after: 1 week
Pull Request: https://github.com/freebsd/freebsd-src/pull/2350
clang/ARM: Derive -pg mcount name from the triple environment
For a glibc/gnueabi ARM and AArch64 targets, GCC's -pg instrumentation
always calls __gnu_mcount_nc (with the caller pushing LR, per the "nc"
no-LR-clobber ABI). clang only produced this when -meabi=gnu was passed
explicitly; a separate gnueabi triple wrongly called plain "mcount".
On ARM, glibc's EABI profiling entry point is __gnu_mcount_nc
(sysdeps/arm/arm-mcount.S, exported since GLIBC_2.8). It does provide plain
mcount/_mcount, but only as a legacy APCS compat alias (__mcount_arm_compat,
gated on GCC_COMPAT(4,3)/SHLIB_COMPAT) that reads an APCS frame-pointer
record rather than following the EABI push-LR convention. Calling it from
EABI -pg code is thus an ABI mismatch, not the intended entry point.
Derive the GNU-vs-plain mcount name from the triple environment in addition
to the explicit -meabi=gnu, so a gnueabi target gets the correct __gnu_mcount_nc
call by default, matching GCC:
push {lr}
[5 lines not shown]
[flang][OpenMP] incorrect handling for local variable in OpenMP parallel workshare firstprivate(P) (#195616)
Changes to handle "!$omp parallel workshare firstprivate(P)" where P is
an array. Handling the creation and initialization of the local copy
properly.
This also Fixes
[195337](https://github.com/llvm/llvm-project/issues/195337) .
---------
Sunil Kuravinakop <koops at hpe.com>
firmware: adjust the incompatible pkg test
"FreeBSD" is now "FreeBSD-ports" and since we know we want
"OPNsense" we can make pin it this way much better.
One downside is the "unknown-repository" when installing
from ports but it's easy enough to circumvent this check
for testing.
examples/jails: Encode ifnames used as derive_mac counters
derive_mac keeps a per-parent branch index in a global named from the
parent interface so the N nibble can increment when the same PHY is
presented more than once. That name must be a POSIX identifier; a
vlan-style parent (em0.20) is not.
Encode the ifname first (alnum unchanged, every other byte as _HH) so
the lookup stays a symbol-table hit and em0.20 does not collide with
em0_20. Same change in jib (9.2) and jng (9.4).
In jng, also address netgraph by node name. ngctl(8) treats `.' and
`:' as control characters, so ng_ether(4) names its node after the
sanitized ifname (vtnet0.20 becomes vtnet0_20). Sanitize the parent
ifname where it enters and use that for every ngctl call; ifconfig(8)
and derive_mac keep the real name. Previously jng failed outright on
such parents where jib did not.
PR: 291143
[4 lines not shown]
[GVN] Enforce MemDep/MemorySSA mutual exclusion for cl::opt overrides (#217896)
parseGVNOptions() already keeps the gvn<...> pass parameters mutually
exclusive, but the -enable-gvn-{memdep,memoryssa} cl::opt overrides
default independently. Two fixes for that path:
- Enabling MemorySSA now implies MemDep is off, so
-enable-gvn-memoryssa=true on its own no longer trips the on-demand
MemorySSA assertion.
- Explicitly enabling both is a contradiction and is now rejected with a
diagnostic instead of resolving it arbitrarily.
[ADT] Invalidate iterators on move and swap in SmallPtrSet and StringMap (#220796)
This patch adds missing incrementEpoch() calls to:
- StringMapImpl's move constructor.
- SmallPtrSetImplBase's moveHelper() (move construction and assignment).
- SmallPtrSetImplBase's swap().
This ensures that existing iterators pointing into moved-from or
swapped containers are properly invalidated in debug mode.
Assisted-by: Antigravity
py-setuptools_scm: updated to 10.2.2
10.2.2 (2026-09-01)
Miscellaneous
- The `pkginfo` workdir discovery entry point moved to vcs-versioning; `vcs-versioning>=2.3.2` is now required (the workspace pin carries a `.dev0` suffix so in-tree builds resolve, matching the existing convention). `setuptools_scm._integration._discover.discover_pkginfo` remains as a re-export.
- Stop shipping a per-package `uv.lock` in the sdist. It could not be generated correctly whenever `setuptools-scm` required an unreleased `vcs-versioning`, which broke the release proposal workflow.