LLVM/project 62b809a.github/workflows libcxx-pr-benchmark.yml libcxx-benchmark-commit.yml

[libc++] Consistently install Python and dependencies across macOS CI jobs (#211659)

On the macOS self-hosted runners, we need to install dependencies via
Homebrew and pinning the Xcode version is good for reproducibility. This
applies the guidelines documented in #211622 to libc++'s CI jobs.
DeltaFile
+20-8.github/workflows/libcxx-pr-benchmark.yml
+14-8.github/workflows/libcxx-benchmark-commit.yml
+7-6.github/workflows/libcxx-build-and-test.yaml
+41-223 files

FreeNAS/freenas 060b8easrc/middlewared/middlewared/plugins/directoryservices_ ipa_join_mixin.py secrets.py, src/middlewared/middlewared/utils/directoryservices ipa_constants.py

Fix IPA SMB machine account setup and self-heal old joins

Set the SMB machine-account password from the generated value when
retrieving the keytab and write that same value to secrets.tdb as raw
bytes, so the keytab and secrets.tdb agree. Report changesecretpw
stderr on failure and drop the unawaited backup() call.

Regenerate smb.conf before creating the SMB service principal so the
machine account uses the current NetBIOS name, and make principal
creation failures fatal so partial joins roll back.

Stamp a credential version in secrets.tdb; the IPA health check
regenerates the SMB machine account in place, via the host credential,
for systems joined by an earlier build that wrote it wrong. Expose the
same regeneration as an explicit recovery action.

Add unit and integration tests.

(cherry picked from commit c7f2fc95fbcaaad81fdf814e03182fb901a85c96)
DeltaFile
+110-42src/middlewared/middlewared/plugins/directoryservices_/ipa_join_mixin.py
+69-0tests/unit/test_directoryservices_secrets.py
+47-0tests/directory_services/test_ipa_join.py
+35-5src/middlewared/middlewared/plugins/directoryservices_/secrets.py
+18-0src/middlewared/middlewared/plugins/directoryservices_/ipa_health_mixin.py
+7-0src/middlewared/middlewared/utils/directoryservices/ipa_constants.py
+286-472 files not shown
+288-488 files

FreeNAS/freenas cd7e42asrc/middlewared/middlewared/plugins/directoryservices_ ipa_join_mixin.py secrets.py, src/middlewared/middlewared/utils/directoryservices ipa_constants.py

Fix IPA SMB machine account setup and self-heal old joins

Set the SMB machine-account password from the generated value when
retrieving the keytab and write that same value to secrets.tdb as raw
bytes, so the keytab and secrets.tdb agree. Report changesecretpw
stderr on failure and drop the unawaited backup() call.

Regenerate smb.conf before creating the SMB service principal so the
machine account uses the current NetBIOS name, and make principal
creation failures fatal so partial joins roll back.

Stamp a credential version in secrets.tdb; the IPA health check
regenerates the SMB machine account in place, via the host credential,
for systems joined by an earlier build that wrote it wrong. Expose the
same regeneration as an explicit recovery action.

Add unit and integration tests.

(cherry picked from commit c7f2fc95fbcaaad81fdf814e03182fb901a85c96)
DeltaFile
+110-42src/middlewared/middlewared/plugins/directoryservices_/ipa_join_mixin.py
+69-0tests/unit/test_directoryservices_secrets.py
+47-0tests/directory_services/test_ipa_join.py
+35-5src/middlewared/middlewared/plugins/directoryservices_/secrets.py
+18-0src/middlewared/middlewared/plugins/directoryservices_/ipa_health_mixin.py
+7-0src/middlewared/middlewared/utils/directoryservices/ipa_constants.py
+286-472 files not shown
+288-488 files

FreeNAS/freenas 2144f16src/middlewared/middlewared/plugins/directoryservices_ ipa_join_mixin.py secrets.py, src/middlewared/middlewared/utils/directoryservices ipa_constants.py

NAS-141875 / 27.0.0-BETA.1 / Fix IPA SMB machine account setup and self-heal old joins (#19357)

Set the SMB machine-account password from the generated value when
retrieving the keytab and write that same value to secrets.tdb as raw
bytes, so the keytab and secrets.tdb agree. Report changesecretpw stderr
on failure and drop the unawaited backup() call.

Regenerate smb.conf before creating the SMB service principal so the
machine account uses the current NetBIOS name, and make principal
creation failures fatal so partial joins roll back.

Stamp a credential version in secrets.tdb; the IPA health check
regenerates the SMB machine account in place, via the host credential,
for systems joined by an earlier build that wrote it wrong. Expose the
same regeneration as an explicit recovery action.

Add unit and integration tests.
DeltaFile
+110-42src/middlewared/middlewared/plugins/directoryservices_/ipa_join_mixin.py
+69-0tests/unit/test_directoryservices_secrets.py
+47-0tests/directory_services/test_ipa_join.py
+35-5src/middlewared/middlewared/plugins/directoryservices_/secrets.py
+18-0src/middlewared/middlewared/plugins/directoryservices_/ipa_health_mixin.py
+7-0src/middlewared/middlewared/utils/directoryservices/ipa_constants.py
+286-472 files not shown
+288-488 files

LLVM/project 82488f0bolt/lib/Core BinarySection.cpp, bolt/lib/Rewrite RewriteInstance.cpp MachORewriteInstance.cpp

[BOLT] Fix pwrite assertion failure via a new safePWrite wrapper (#198569)

Background: Currently, BOLT seems to implicitly assume that the .dynsym
section is located at a low offset within the binary, calling pwrite()
directly to update it.

Issue: In scenarios where the binary has been modified by tools like
patchelf, sections like .dynsym may be moved to a high offset area. This
can lead to a violation of the Offset + Size <= Pos assertion in
pwrite(). A typical scenario is when the previous eh_frame_header update
moves the stream cursor (pos) back to a low
offset([code](https://github.com/llvm/llvm-project/blob/llvmorg-23-init/bolt/lib/Rewrite/RewriteInstance.cpp#L6387)).

Fix: This patch resolves the pwrite assertion failure via a new
safePWrite wrapper, which introduces a defensive check that verifies and
conditionally adjusts the stream position. A corresponding test case has
also been added.
DeltaFile
+89-0bolt/test/X86/dynsym-pwrite.test
+17-20bolt/lib/Rewrite/RewriteInstance.cpp
+22-9bolt/unittests/Core/BinaryContext.cpp
+22-0bolt/lib/Utils/Utils.cpp
+7-7bolt/lib/Rewrite/MachORewriteInstance.cpp
+6-6bolt/lib/Core/BinarySection.cpp
+163-423 files not shown
+168-459 files

LLVM/project b9782d1lldb/docs dil-expr-lang.ebnf, lldb/include/lldb/ValueObject DILAST.h

[lldb] Add sizeof operator to DIL
DeltaFile
+72-0lldb/test/API/commands/frame/var-dil/expr/SizeOf/TestFrameVarDILExprSizeOf.py
+35-0lldb/source/ValueObject/DILEval.cpp
+33-0lldb/test/API/commands/frame/var-dil/expr/SizeOf/main.cpp
+26-0lldb/include/lldb/ValueObject/DILAST.h
+17-1lldb/source/ValueObject/DILParser.cpp
+3-1lldb/docs/dil-expr-lang.ebnf
+186-23 files not shown
+194-29 files

LLVM/project 81cedf1llvm/lib/Transforms/Vectorize VPlan.cpp, llvm/test/Transforms/LoopVectorize/X86 invoke-in-preheader.ll

[VPlan] Fix sentinel assertion when broadcasting invoke results (#210464)

VPTransformState::get broadcasts a scalar value by inserting after the
last scalarized instruction using
std::next(BasicBlock::iterator(LastInst)). When LastInst is a terminator
like invoke, std::next advances past the end of the block, hitting the
!isKnownSentinel() assertion.

Use Instruction::getInsertionPointAfterDef which correctly handles PHIs,
invokes, and regular instructions, matching the pattern already used in
VectorCombine.cpp.

Fixes #210342
DeltaFile
+93-0llvm/test/Transforms/LoopVectorize/X86/invoke-in-preheader.ll
+5-6llvm/lib/Transforms/Vectorize/VPlan.cpp
+98-62 files

OpenBSD/ports 2J0eCERdatabases/recoll Makefile, databases/recoll/pkg PLIST-gui PLIST-main

   Unbreak packaging on archs where -gui isn't built

   While here update HOMEPAGE/SITES. FWIW there's a new release upstream.
VersionDeltaFile
1.36+3-2databases/recoll/Makefile
1.11+1-0databases/recoll/pkg/PLIST-gui
1.16+0-1databases/recoll/pkg/PLIST-main
+4-33 files

OpenBSD/ports roxRYdcdatabases/recoll/patches patch-unac_simdutf_h

   Unbreak build on riscv64: disable RVV code in old simdutf vendored header
VersionDeltaFile
1.1+14-0databases/recoll/patches/patch-unac_simdutf_h
+14-01 files

LLVM/project 2c36989llvm/lib/Target/AMDGPU GCNProcessors.td

AMDGPU: Use ProcessorAlias for legacy arch names

Older targets have aliasing names which were previously implemented
by defining a second copy of the processor, identical except for the name
Use the recently improved tablegen mechanism for defining name-only aliases.
This dedupliates some redundant table entries, like the sched model.

Co-authored-by: Claude (Claude-Opus-4.8) <noreply at anthropic.com>
DeltaFile
+18-60llvm/lib/Target/AMDGPU/GCNProcessors.td
+18-601 files

LLVM/project 0e7006fllvm/include/llvm/MC MCSubtargetInfo.h, llvm/include/llvm/Target Target.td

TableGen: Add first class support for processor aliases

Previously isCPUStringValid was virtual so TableGen could emit an
AArch64 specific hack for recognizing cpu aliases. Teach tablegen
about aliases, and insert each alias into the CPU subtype table as its
own entry (sorted by name, carrying the canonical processor's features
and scheduling model).

There is further opportunity for code sharing improvements. AArch64's
aliases are consumed by ARMTargetDefEmitter to emit a custom inc file
in TargetParser which should be universalized.

Co-authored-by: Claude (Claude-Opus-4.8) <noreply at anthropic.com>
DeltaFile
+54-43llvm/utils/TableGen/SubtargetEmitter.cpp
+34-0llvm/test/TableGen/ProcessorAliasErrors.td
+24-0llvm/test/TableGen/ProcessorAlias.td
+7-0llvm/include/llvm/Target/Target.td
+0-6llvm/lib/Target/AArch64/AArch64Processors.td
+1-1llvm/include/llvm/MC/MCSubtargetInfo.h
+120-506 files

LLVM/project b82563allvm/include/llvm/Frontend/OpenMP OMP.h

[OpenMP] Fix build error after 19857baa71 (#211771)

Some builders using older versions of gcc encounter this issue:

```
llvm/include/llvm/Frontend/OpenMP/OMP.h:138:14: error: ‘Base’ has not been declared
  138 |   assert(Set.Base::test(At));
      |              ^~~~
```

E.g. https://lab.llvm.org/buildbot/#/builders/10/builds/32524
DeltaFile
+2-1llvm/include/llvm/Frontend/OpenMP/OMP.h
+2-11 files

OpenBSD/ports l0J4HgNtextproc/libfyaml Makefile, textproc/libfyaml/patches patch-include_libfyaml_libfyaml-vlsize_h

   fix libfyaml on 32-bit, from upstream
VersionDeltaFile
1.1+35-0textproc/libfyaml/patches/patch-include_libfyaml_libfyaml-vlsize_h
1.5+3-2textproc/libfyaml/Makefile
+38-22 files

LLVM/project 51ba87clldb/docs dil-expr-lang.ebnf, lldb/include/lldb/ValueObject DILAST.h

[lldb] Add sizeof operator to DIL
DeltaFile
+63-0lldb/test/API/commands/frame/var-dil/expr/SizeOf/TestFrameVarDILExprSizeOf.py
+35-0lldb/source/ValueObject/DILEval.cpp
+27-0lldb/test/API/commands/frame/var-dil/expr/SizeOf/main.cpp
+26-0lldb/include/lldb/ValueObject/DILAST.h
+17-1lldb/source/ValueObject/DILParser.cpp
+3-1lldb/docs/dil-expr-lang.ebnf
+171-23 files not shown
+179-29 files

LLVM/project 98195e0mlir/include/mlir-c IR.h, mlir/lib/Bindings/Python IRCore.cpp

[MLIR][Python] Make Python-defined dialect loading context-aware (#210501)

Python-defined dialect loading currently relies on
`Dialect._mlir_module` to infer whether a dialect has already been
loaded. This state belongs to the Python dialect class rather than an
MLIR context.

Consequently, loading the same dialect after switching contexts requires
`reload=True`, while reloading it in a context where it is already
present can hit the operation registration assertion reported in
#210053.

This patch adds `mlirContextGetLoadedDialect` (following
https://github.com/llvm/lighthouse/pull/228#discussion_r3589792891) to
the C API and exposes it as `Context.is_dialect_loaded`.
`Dialect.load()` now queries the active context:
- loading a dialect more than once in the same context raises a
`RuntimeError`;
- loading the same Python-defined dialect in another context succeeds

    [8 lines not shown]
DeltaFile
+75-0mlir/test/python/dialects/ext.py
+17-17mlir/python/mlir/dialects/ext.py
+11-3mlir/lib/Bindings/Python/IRCore.cpp
+7-0mlir/include/mlir-c/IR.h
+5-0mlir/lib/CAPI/IR/IR.cpp
+1-1mlir/test/python/dialects/transform_pattern_descriptor_op_interface.py
+116-211 files not shown
+117-227 files

NetBSD/pkgsrc te5MxqQdoc CHANGES-2026

   doc: Updated textproc/groff to 1.24.1nb2
VersionDeltaFile
1.4734+2-1doc/CHANGES-2026
+2-11 files

NetBSD/pkgsrc 58Mke6Jtextproc/groff options.mk Makefile

   groff: remove default-on netpbm dependency

   This causes a dependency cycle on macOS via cmake -> ... -> groff ->
   netpbm -> libjpeg-turbo -> cmake.

   Add it to existing ghostscript option, since both are needed for
   full-featured grohtml output now.

   Add comments explaining both this and the uchardet option, based on
   the configure output.

   Bump PKGREVISION.
VersionDeltaFile
1.18+9-2textproc/groff/options.mk
1.106+2-3textproc/groff/Makefile
+11-52 files

LLVM/project 9c75661llvm/lib/Transforms/Vectorize LoopVectorize.cpp VPlanHelpers.h

[LV] Simplify VPCostContext ctor by using VFSelectionContext (NFC). (#211765)

VFSelectionContext provides most fields needed. Pass it directly and
access its fields.
DeltaFile
+11-9llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
+3-6llvm/lib/Transforms/Vectorize/VPlanHelpers.h
+7-0llvm/lib/Transforms/Vectorize/LoopVectorizationPlanner.h
+21-153 files

FreeBSD/src d83e422sys/fs/cuse cuse.c

cuse: Fix server reference leak in cuse_client_open()

If the server is closing (or the device node is going away), or if
devfs_set_cdevpriv() fails, cuse_client_open() returns with the server
reference taken at the top of the function still held and the newly
allocated client still linked on pcs->hcli.  Since cuse_client_free()
has not been registered as the cdevpriv destructor at that point,
nothing ever undoes this work: every open() that races the is_closing
window permanently leaks one server reference and one cuse_client.

A leaked reference is fatal on server exit: cuse_server_free()
busy-waits in an uninterruptible pause("W", hz) loop until pcs->refs
drops to 1, which now never happens, so the exiting server process
(e.g. virtual_oss(8)) is left wedged in state "D", immune to SIGKILL,
cuse.ko is pinned (kldunload hangs too), and only a reboot recovers.

Before 634e578ac7b0 the is_closing error path dropped the reference by
calling devfs_clear_cdevpriv(), which ran the cuse_client_free()
destructor.  That commit moved devfs_set_cdevpriv() after the

    [14 lines not shown]
DeltaFile
+10-2sys/fs/cuse/cuse.c
+10-21 files

FreeBSD/src 755685dsys/dev/sound/usb uaudio.c

snd_uaudio: Don't let an idle stream reprogram a shared UAC2 clock

Some UAC2 devices expose a single Clock Source entity that is shared
between their playback and capture interfaces (it appears in both the
output and input clock bitmaps).  On such a device uaudio(4) programs
the sample rate for both directions when a stream starts.  If playback
runs at a 44.1 kHz-family rate while the idle capture channel is left
at its 48 kHz-family default, the capture
SET_CUR(UA20_CS_SAM_FREQ_CONTROL) is issued after the playback one and
overwrites the rate on the shared clock.  The device then runs at
~48 kHz while the playback stream carries 44.1 kHz data.  Consuming
samples faster than they arrive, the device repeatedly runs out of
data, loses sync with the playback stream, and re-locks onto it
(audible dropouts, front-panel play/idle flicker).  The 48 kHz family
is unaffected because both directions then agree on the rate.

Fix it in three parts:

- Add a shared-clock guard: before issuing SET_CUR to a clock id, if

    [28 lines not shown]
DeltaFile
+95-8sys/dev/sound/usb/uaudio.c
+95-81 files

OpenBSD/ports XU7ey5reditors/vim distinfo Makefile, editors/vim/pkg PLIST

   update to vim-9.2.843
VersionDeltaFile
1.30.2.3+11-0editors/vim/pkg/PLIST
1.159.2.4+2-2editors/vim/distinfo
1.306.2.4+1-1editors/vim/Makefile
+14-33 files

OpenBSD/ports DwDe3T8editors/vim distinfo Makefile, editors/vim/pkg PLIST

   update to vim-9.2.843
VersionDeltaFile
1.35+11-0editors/vim/pkg/PLIST
1.166+2-2editors/vim/distinfo
1.314+1-1editors/vim/Makefile
+14-33 files

LLVM/project 5ae98c1llvm/lib/Target/RISCV RISCVTargetTransformInfo.cpp, llvm/lib/Transforms/Scalar ExpandMemCmp.cpp

[ExpandMemCmp] Check misaligned access per overlapping/tail load (#210707)

Overlapping loads place a power-of-two load at an offset that need not be
a multiple of its size, so the access can be misaligned even when the base
pointers are aligned. Rather than have each target gate
`AllowOverlappingLoads` on unaligned support, give `MemCmpExpansion`
the target info and check the overlapping load against its actual alignment
`(commonAlignment(baseAlign, offset))` via
`TargetTransformInfo::allowsMisalignedMemoryAccesses`. It is only formed when
the target can access it; otherwise the expansion falls back to the greedy
(naturally aligned) sequence.

Tail expansions are different: they merge already-legal adjacent loads
covering the same bytes, and the backend always legalizes the merged
(possibly non-power-of-two) load into aligned power-of-two pieces, so
they need no alignment gate. The one real constraint is size: a merged load
wider than `MaxLoadSize` can only be emitted when it is the sole load
(`getMemCmpOneBlock`). In a multi-block expansion, `emitLoadCompareBlock`
and the result-block phis are sized to `MaxLoadSize` and assume every

    [6 lines not shown]
DeltaFile
+326-0llvm/test/Transforms/ExpandMemCmp/RISCV/memcmp-misaligned-access.ll
+84-39llvm/lib/Transforms/Scalar/ExpandMemCmp.cpp
+3-14llvm/lib/Target/RISCV/RISCVTargetTransformInfo.cpp
+413-533 files

OpenBSD/ports 3k4yMsLnet/snort Makefile

   missed bump
VersionDeltaFile
1.126+1-1net/snort/Makefile
+1-11 files

LLVM/project f8ad1cdllvm/lib/Target/AArch64 AArch64MacroFusion.cpp AArch64Features.td, llvm/test/CodeGen/AArch64 misched-fusion-apple-sme-compute.mir

[AArch64] Add Apple SME compute clustering macro-fusion (#211483)

This patch adds a subtarget feature that controls scheduling SME compute
instructions back to back. Enabled on Apple CPU.
DeltaFile
+181-0llvm/test/CodeGen/AArch64/misched-fusion-apple-sme-compute.mir
+72-0llvm/lib/Target/AArch64/AArch64MacroFusion.cpp
+5-0llvm/lib/Target/AArch64/AArch64Features.td
+3-1llvm/lib/Target/AArch64/AArch64Processors.td
+1-1llvm/lib/Target/AArch64/AArch64Subtarget.h
+2-0llvm/test/TableGen/aarch64-apple-tuning-features.td
+264-26 files

OpenBSD/src 07TMzmNshare/man/man4/man4.riscv64 aplic.4 imsic.4

   aplic(4) and imsic(4)
VersionDeltaFile
1.1+47-0share/man/man4/man4.riscv64/aplic.4
1.1+47-0share/man/man4/man4.riscv64/imsic.4
1.20+2-2share/man/man4/man4.riscv64/Makefile
+96-23 files

NetBSD/pkgsrc-wip 3c35dcelean4 Makefile

lean4: update HOMEPAGE
DeltaFile
+2-1lean4/Makefile
+2-11 files

LLVM/project 2e272fbllvm/lib/Target/X86 X86ISelLowering.cpp, llvm/test/CodeGen/X86 fmsubadd-combine.ll fmaddsub-combine.ll

[X86] Match (FM)ADDSUB patterns from target shuffles as well as ISD::VECTOR_SHUFFLE (#211764)

Allows us to match X86ISD::ADDSUB/FMSUBADD/FMADDSUB after shuffle lowering
DeltaFile
+17-17llvm/lib/Target/X86/X86ISelLowering.cpp
+14-19llvm/test/CodeGen/X86/fmsubadd-combine.ll
+3-9llvm/test/CodeGen/X86/fmaddsub-combine.ll
+34-453 files

LLVM/project 3d69acellvm/lib/Frontend/OpenMP OMPIRBuilder.cpp, mlir/test/Target/LLVMIR omptarget-debug-reduc-fn-loc.mlir

Reland [OMPIRBuilder] Don't use invalid debug loc in reduction fn. (#211566)

This fixes https://github.com/llvm/llvm-project/issues/211385. This was
initially landed in https://github.com/llvm/llvm-project/pull/148284.

We have this pattern of code in OMPIRBuilder for many functions that are
used in reduction operations.

 ```
 Function *LtGRFunc = Function::Create
  BasicBlock *EntryBlock = BasicBlock::Create(Ctx, "entry", LtGRFunc);
  Builder.SetInsertPoint(EntryBlock);
```

The insertion point is moved to the new function but the debug location
is not updated. This means that reduction function will use the debug
location that points to another function. This problem gets hidden
because these functions gets inlined but the potential for failure
exists.

    [8 lines not shown]
DeltaFile
+71-0mlir/test/Target/LLVMIR/omptarget-debug-reduc-fn-loc.mlir
+18-12llvm/lib/Frontend/OpenMP/OMPIRBuilder.cpp
+89-122 files

LLVM/project 862a390flang/lib/Semantics check-omp-structure.cpp check-omp-structure.h, llvm/include/llvm/Frontend/OpenMP OMP.td

[flang][OpenMP] Switch TableGen generation to use llvm::EnumSet (#211327)

Replace the remaining uses of the common::EnumSet-based OmpClauseSet to
llvm::omp::ClauseSet.
DeltaFile
+20-19flang/lib/Semantics/check-omp-structure.cpp
+4-9flang/lib/Semantics/check-omp-structure.h
+1-1llvm/include/llvm/Frontend/OpenMP/OMP.td
+25-293 files