pkgng/pkgng af3c693libpkg pkg_elf.c, tests/frontend musl.bin create-parsebin.sh

pkg_elf: detect Linux from musl ELF interpreter

musl binaries (e.g. on Alpine Linux) do not carry the glibc GNU ABI
tag note, so pkg could not determine the OS from the ELF and aborted
with "Unable to determine ABI, /bin/sh cannot be parsed".  The host
uname fallback is unsuitable as it breaks cross-rootdir operation.

Detect Linux from the binary itself by matching the PT_INTERP loader
path: glibc (ld-linux) and musl (ld-musl) loaders identify a Linux
target, unlike FreeBSD (ld-elf) or NetBSD (ld.elf_so).  The version
stays 0.0 for musl since no ABI version is embedded.

Add a musl.bin fixture and wire it into the ELF parse and
create-parsebin tests.  Make the native test tolerate a missing
GNU ABI tag by defaulting the version to 0.0.
DeltaFile
+46-0libpkg/pkg_elf.c
+6-1tests/frontend/abi.sh
+1-1tests/frontend/create-parsebin.sh
+0-0tests/frontend/musl.bin
+53-24 files

LLVM/project 3aa2a68flang/lib/Evaluate fold-integer.cpp fold-implementation.h, flang/lib/Semantics expression.cpp

Conversion to KindsEnum
DeltaFile
+123-120flang/unittests/Evaluate/IntegerValueTest.cpp
+124-114flang/unittests/Evaluate/RealValueTest.cpp
+94-89flang/lib/Evaluate/fold-implementation.h
+90-72flang/lib/Semantics/expression.cpp
+70-65flang/unittests/Evaluate/intrinsics.cpp
+65-57flang/lib/Evaluate/fold-integer.cpp
+566-51795 files not shown
+2,056-1,686101 files

OPNSense/core 0b3c513src/opnsense/mvc/app/models/OPNsense/Wireguard Server.xml

wireguard: FreeBSD 15 no longer allows addresses without netmasks; closes #10746

> The command </sbin/ifconfig 'wg0' 'inet' '10.0.0.2' alias> returned
> exit code 1 and the output was "ifconfig: ERROR: setting interface
> address without mask is no longer supported."

In 0fdb755 we did a similar change for the client side, but left the
server side as is.  Since this no longer works in FreeBSD we can simply
tighten the validation instead of trying to guess what FreeBSD ifconfig
would have guessed from the IP address.

Still don't think this was a thing that should have been broken, but
it is what it is.
DeltaFile
+1-0src/opnsense/mvc/app/models/OPNsense/Wireguard/Server.xml
+1-01 files

LLVM/project 625f7e5llvm/lib/Target/RISCV RISCVInstrInfo.td, llvm/lib/Target/RISCV/Disassembler RISCVDisassembler.cpp

[RISCV][Disassembler] Symbolize UImm20 and SImm12Lo operands (#217550)

he RISC-V disassembler currently decodes operands represented by
`UImm20OperandMaybeSym` and `Simm12LoOp` directly into immediate
operands. As a result, an installed `MCSymbolizer` has no opportunity to
recover relocation-backed symbolic expressions for these operands.

Enable `MCSymbolizer` handling for RISC-V `UImm20` and `SImm12Lo`
operands. Fall back to the original immediate when symbolization is not
available. `SImm12Lo` values are sign-extended, while `UImm20` values
remain unchanged.

This enables clients such as BOLT to reconstruct symbolic operands for
HI20/LO12, PC-relative, and GOT relocations during instruction decoding.

This change only adds symbolizer hooks for these operands; the actual
symbolization is delegated to the installed `MCSymbolizer`. When no
symbolizer is installed, the existing immediate-based disassembly
behavior is preserved. Test coverage may need to be added after
RISCVMCSymbolizer is implemented in BOLT.
DeltaFile
+46-0llvm/lib/Target/RISCV/Disassembler/RISCVDisassembler.cpp
+2-0llvm/lib/Target/RISCV/RISCVInstrInfo.td
+48-02 files

OPNSense/core d1cc040src/opnsense/mvc/app/controllers/OPNsense/Wireguard/forms dialogConfigBuilder.xml dialogEditWireguardClient.xml, src/opnsense/mvc/app/models/OPNsense/Wireguard Server.xml Client.xml

VPN: Wireguard: preserve peer generator state for existing peers (#10745)

The peer generator was originally designed as a one-shot workflow. Once a
peer had been created, the generated client configuration could no longer be
reconstructed because part of the required state was not retained.

Extend the generator so existing peers can be opened again when their private
key was explicitly stored. Generator defaults that belong to an instance are
kept with that instance, while peer-specific values remain with the peer.

Reference mode reuses the existing peer generator to rebuild the client
configuration and QR code instead of introducing a separate export path.

Private key storage remains opt-in to preserve the existing security and
persistence behavior for users who do not need this functionality.
DeltaFile
+202-74src/opnsense/mvc/app/views/OPNsense/Wireguard/general.volt
+36-0src/opnsense/mvc/app/controllers/OPNsense/Wireguard/forms/dialogEditWireguardServer.xml
+18-0src/opnsense/mvc/app/controllers/OPNsense/Wireguard/forms/dialogEditWireguardClient.xml
+8-2src/opnsense/mvc/app/controllers/OPNsense/Wireguard/forms/dialogConfigBuilder.xml
+2-0src/opnsense/mvc/app/models/OPNsense/Wireguard/Client.xml
+1-0src/opnsense/mvc/app/models/OPNsense/Wireguard/Server.xml
+267-761 files not shown
+268-767 files

LLVM/project 4b95627llvm/lib/IR RuntimeLibcalls.cpp, llvm/test/Transforms/Util/DeclareRuntimeLibcalls divmod.ll

RuntimeLibcalls: Describe register-returning divmod libcall ABIs

Teach RuntimeLibcallsInfo::getFunctionTy about the ARM AEABI
(__aeabi_*divmod) and Windows (__rt_*div*) divmod sigantures. Currently
the custom lowering to these calls hardcodes the call signature information,
but in the future this should be automatically handled.

Co-authored-by: Claude (Claude-Opus-4.8) <noreply at anthropic.com>
DeltaFile
+57-0llvm/lib/IR/RuntimeLibcalls.cpp
+26-0llvm/test/Transforms/Util/DeclareRuntimeLibcalls/divmod.ll
+83-02 files

OPNSense/core fc043e8src/opnsense/mvc/app/controllers/OPNsense/Wireguard/Api ClientController.php, src/opnsense/mvc/app/controllers/OPNsense/Wireguard/forms dialogEditWireguardClient.xml dialogEditWireguardServer.xml

Expose the peer generator storage in instance and peers so users can change the defaults even without creating a new peer. Since we now have a reference mode, that otherwise would be awkward without implementing two different save actions there.
DeltaFile
+36-0src/opnsense/mvc/app/controllers/OPNsense/Wireguard/forms/dialogEditWireguardServer.xml
+18-10src/opnsense/mvc/app/controllers/OPNsense/Wireguard/forms/dialogEditWireguardClient.xml
+19-6src/opnsense/mvc/app/views/OPNsense/Wireguard/general.volt
+2-2src/opnsense/mvc/app/models/OPNsense/Wireguard/Client.xml
+1-0src/opnsense/mvc/app/models/OPNsense/Wireguard/Server.xml
+1-0src/opnsense/mvc/app/controllers/OPNsense/Wireguard/Api/ClientController.php
+77-186 files

LLVM/project 9687b66clang/lib/CodeGen CodeGenFunction.h CGExpr.cpp, clang/test/CodeGen attr-sized-by-for-pointers.c attr-counted-by-or-null-for-pointers.c

[CodeGen] Fix -fsanitize=array-bounds for __sized_by / _or_null pointers

`EmitCountedByBoundsChecking()` assumed a CountAttributedType is always
a __counted_by pointer. That isn't true, there are four versions of the
attribute:

* `__counted_by`: Already handled correctly.
* `__counted_by_or_null`: Incorectly handled.
* `__sized_by`: Incorreclty handled.
* `__sized_by_or_null`: Incorreclty handled.

In particular:

* __sized_by / __sized_by_or_null: the loaded bound is a byte count, but the
  element index was compared against it directly, so an access was only
  flagged once the index exceeded the byte count -- missing out-of-bounds
  accesses for a pointee larger than one byte. Scale the index to bytes
  ('index * sizeof(element)') before comparing. counted_by counts elements
  and is unchanged; a void (or otherwise zero-sized) pointee uses the GNU

    [15 lines not shown]
DeltaFile
+396-173clang/test/CodeGen/attr-sized-by-or-null-for-pointers.c
+295-98clang/test/CodeGen/attr-counted-by-or-null-for-pointers.c
+291-81clang/test/CodeGen/attr-sized-by-for-pointers.c
+43-9clang/lib/CodeGen/CGExpr.cpp
+2-1clang/lib/CodeGen/CodeGenFunction.h
+1,027-3625 files

LLVM/project 54a930fclang/lib/CodeGen CGBuiltin.cpp, clang/test/CodeGen attr-counted-by-for-pointers.c attr-sized-by-for-pointers.c

[CodeGen] Fix __builtin_dynamic_object_size for __sized_by / _or_null pointers (#213794)

`emitCountedByPointerSize()` assumed a CountAttributedType is always
a __counted_by pointer. That isn't true, there are four versions of the
attribute:

* `__counted_by`: Already handled correctly.
* `__counted_by_or_null`: Incorectly handled.
* `__sized_by`: Incorreclty handled.
* `__sized_by_or_null`: Incorreclty handled.

In particular:

* __sized_by / __sized_by_or_null: the attribute argument is a byte count, but
the object size was computed as count * sizeof(*ptr), over-reporting by the
element size for any pointee larger than one byte. Use the count directly for
the byte-counting variants.

* __counted_by_or_null / __sized_by_or_null: a null pointer describes no

    [20 lines not shown]
DeltaFile
+655-0clang/test/CodeGen/attr-sized-by-or-null-for-pointers.c
+514-0clang/test/CodeGen/attr-counted-by-or-null-for-pointers.c
+401-2clang/test/CodeGen/attr-sized-by-for-pointers.c
+169-5clang/test/CodeGen/attr-counted-by-for-pointers.c
+98-43clang/lib/CodeGen/CGBuiltin.cpp
+1,837-505 files

LLVM/project fb7a341llvm/lib/Target/AMDGPU VOP3Instructions.td

[AMDGPU] Update the comment regarding opsel[0] for v_cvt_sr_fp8/bf8_f16, NFC (#217796)

To be consistent with the actual implementation, OPSEL[0] can be
non-zero to select high 16-bit of src0.
DeltaFile
+2-1llvm/lib/Target/AMDGPU/VOP3Instructions.td
+2-11 files

LLVM/project d2c4cedllvm/lib/Transforms/Vectorize LoopVectorizationPlanner.h VPlanTransforms.cpp, llvm/test/Transforms/LoopVectorize/RISCV tail-folding-complex-mask.ll

[VPlan] Append recipes created via builder to worklist

The previous PR appended the top most created recipe to the worklist, and this PR extends it to any other nested recipes that were created, similar to InstCombine.

This removes the header mask in a good few more places on RISC-V as measured on SPEC CPU 2017, e.g. for the following loop:

```c
long f(const int *p, const int *q, long n) {
  long a = 0, b = 0;
  for (long i = 0;; i++) {
    if (p[i] && q[i]) { a += i; b += i; }
    if (i + 1 == n) break;
  }
  return a + b;
}
```

Before:


    [49 lines not shown]
DeltaFile
+24-7llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp
+11-4llvm/lib/Transforms/Vectorize/LoopVectorizationPlanner.h
+5-7llvm/test/Transforms/LoopVectorize/RISCV/tail-folding-complex-mask.ll
+40-183 files

LLVM/project 3769d38llvm/test/Transforms/LoopVectorize/RISCV tail-folding-complex-mask.ll

Precommit test
DeltaFile
+163-0llvm/test/Transforms/LoopVectorize/RISCV/tail-folding-complex-mask.ll
+163-01 files

LLVM/project 5b7cd73llvm/test/Transforms/LoopVectorize blend-i1.ll

Precommit test
DeltaFile
+58-0llvm/test/Transforms/LoopVectorize/blend-i1.ll
+58-01 files

LLVM/project 09a2a83llvm/lib/Transforms/Vectorize VPlanTransforms.cpp

[VPlan] Make simplifyRecipe more like InstCombine

Most combines in simplifyRecipe RAUW a value, but not all of them erase the old recipe.
Unify them and bring it in line with InstCombine by having it return a VPValue, which simplifyRecipes can then call RAUW with, and automatically erase the old recipe.

Similarly to InstCombine, combines that modify a recipe should return the same recipe.
DeltaFile
+1-0llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp
+1-01 files

LLVM/project dc8bf36llvm/lib/Transforms/Vectorize VPlanTransforms.cpp, llvm/test/Transforms/LoopVectorize blend-i1.ll dont-fold-tail-for-divisible-TC.ll

[VPlan] Process simplifyRecipes in a worklist

This brings simplifyRecipes further in line with InstCombine, and asides from unlocking more simplifications it also helps avoid spurious test churn whenever passes are moved around simplifyRecipes.

For now just push the new recipe onto the worklist, not its users.
This uses a post order traversal so we maintain the same simplification order as before.

I've gone through and checked every simplification we do is a canonicalisation that converges, and I checked on llvm-test-suite + SPEC CPU 2017 in various configurations that we don't hit any cycles.
DeltaFile
+23-14llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp
+4-8llvm/test/Transforms/LoopVectorize/dont-fold-tail-for-divisible-TC.ll
+2-3llvm/test/Transforms/LoopVectorize/blend-i1.ll
+29-253 files

LLVM/project ff040a9llvm/lib/Transforms/Vectorize VPlanTransforms.cpp

Update trunc combine, fix m_Not return position
DeltaFile
+4-4llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp
+4-41 files

LLVM/project e4ff683llvm/lib/Transforms/Vectorize VPlanTransforms.cpp, llvm/test/Transforms/LoopVectorize/VPlan constant-fold.ll

[VPlan] Make simplifyRecipe more like InstCombine

Most combines in simplifyRecipe RAUW a value, but not all of them erase the old recipe.
Unify them and bring it in line with InstCombine by having it return a VPValue, which simplifyRecipes can then call RAUW with, and automatically erase the old recipe.

Similarly to InstCombine, combines that modify a recipe should return the same recipe.
DeltaFile
+116-153llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp
+6-9llvm/test/Transforms/LoopVectorize/X86/funclet.ll
+0-11llvm/test/Transforms/LoopVectorize/VPlan/constant-fold.ll
+122-1733 files

LLVM/project 9632bb8llvm/test/Transforms/LoopVectorize/X86 funclet.ll

[LV] Add back constant-folded operand bundle libcall test. NFC (#217255)
DeltaFile
+59-0llvm/test/Transforms/LoopVectorize/X86/funclet.ll
+59-01 files

HardenedBSD/src f8da3a5sys/dev/dpaa qman.c qman_portals.c, sys/dev/sdhci fsl_sdhci.c sdhci_fsl_fdt.c

Merge remote-tracking branch 'rad/hardened/current/master' into hardened/current/pledge
DeltaFile
+121-23sys/dev/sdhci/sdhci_fsl_fdt.c
+96-39sys/dev/dpaa/dpaa_eth.c
+111-0sys/dev/dpaa/qman_portals.c
+5-77sys/dev/sdhci/fsl_sdhci.c
+59-8sys/powerpc/powerpc/busdma_bounce.c
+26-38sys/dev/dpaa/qman.c
+418-18512 files not shown
+517-19918 files

HardenedBSD/src 75e7074sys/dev/dpaa qman.c qman_portals.c, sys/dev/sdhci fsl_sdhci.c sdhci_fsl_fdt.c

Merge branch 'freebsd/current/main' into hardened/current/master
DeltaFile
+121-23sys/dev/sdhci/sdhci_fsl_fdt.c
+96-39sys/dev/dpaa/dpaa_eth.c
+111-0sys/dev/dpaa/qman_portals.c
+5-77sys/dev/sdhci/fsl_sdhci.c
+59-8sys/powerpc/powerpc/busdma_bounce.c
+26-38sys/dev/dpaa/qman.c
+418-18512 files not shown
+517-19918 files

HardenedBSD/src 50c0aa0share/man/man4 pci.4, sys/dev/ixgbe ixgbe_sriov.h ixgbe_mbx.c

Merge branch 'freebsd/15-stable/main' into hardened/15-stable/main
DeltaFile
+825-69sys/dev/ixgbe/if_sriov.c
+392-42sys/dev/pci/pci.c
+107-31sys/dev/ixgbe/if_ix.c
+81-6sys/dev/ixgbe/ixgbe_mbx.c
+28-9sys/dev/ixgbe/ixgbe_sriov.h
+31-0share/man/man4/pci.4
+1,464-15710 files not shown
+1,538-16916 files

HardenedBSD/ports e8fdf73misc/qt6-examples pkg-plist, security/bitwarden-cli/files/packagejsons package-lock.json

Merge branch 'freebsd/main' into hardenedbsd/main
DeltaFile
+1,201-4,024www/qt6-webengine/files/patch-security-rollup
+418-2,910www/opencart/pkg-plist
+1,522-0security/vuxml/vuln/2026.xml
+1,007-86security/bitwarden-cli/files/packagejsons/package-lock.json
+174-157misc/qt6-examples/pkg-plist
+149-99security/dogtag-pki/files/patch-base_CMakeLists.txt
+4,471-7,276390 files not shown
+6,495-8,799396 files

LLVM/project 85666a5clang-tools-extra/docs/clang-tidy/checks/altera single-work-item-barrier.md struct-pack-align.md, clang-tools-extra/docs/clang-tidy/checks/boost use-ranges.md

[clang-tidy][docs] Rewrite check docs in six modules to Markdown
DeltaFile
+187-188clang-tools-extra/docs/clang-tidy/checks/cert/err33-c.md
+155-155clang-tools-extra/docs/clang-tidy/checks/boost/use-ranges.md
+71-73clang-tools-extra/docs/clang-tidy/checks/altera/unroll-loops.md
+38-39clang-tools-extra/docs/clang-tidy/checks/altera/struct-pack-align.md
+34-36clang-tools-extra/docs/clang-tidy/checks/altera/single-work-item-barrier.md
+31-33clang-tools-extra/docs/clang-tidy/checks/concurrency/mt-unsafe.md
+516-5244 files not shown
+621-63310 files

LLVM/project 3a21307clang/lib/CIR/Lowering/DirectToLLVM LowerToLLVM.cpp, clang/test/CIR/CodeGen vector-bool.cpp

[CIR] Support Vector of bool ty in VecCmpOp (#216400)

Support the Vector of bool in VecCmpOp
DeltaFile
+81-0clang/test/CIR/CodeGen/vector-bool.cpp
+9-2clang/lib/CIR/Lowering/DirectToLLVM/LowerToLLVM.cpp
+90-22 files

FreeBSD/ports a464a70sysutils/vm-bhyve Makefile distinfo

sysutils/vm-bhyve: Update to 1.7.5

Changes:        https://github.com/freebsd/vm-bhyve/releases/tag/v1.7.5
(cherry picked from commit 0dd4ea4c1b76c38d9b10a7bbcda4c5009c83842f)
DeltaFile
+3-3sysutils/vm-bhyve/distinfo
+1-1sysutils/vm-bhyve/Makefile
+4-42 files

FreeBSD/ports 0dd4ea4sysutils/vm-bhyve Makefile distinfo

sysutils/vm-bhyve: Update to 1.7.5

Changes:        https://github.com/freebsd/vm-bhyve/releases/tag/v1.7.5
DeltaFile
+3-3sysutils/vm-bhyve/distinfo
+1-1sysutils/vm-bhyve/Makefile
+4-42 files

HardenedBSD/ports 0dd4ea4sysutils/vm-bhyve Makefile distinfo

sysutils/vm-bhyve: Update to 1.7.5

Changes:        https://github.com/freebsd/vm-bhyve/releases/tag/v1.7.5
DeltaFile
+3-3sysutils/vm-bhyve/distinfo
+1-1sysutils/vm-bhyve/Makefile
+4-42 files

FreeBSD/ports e4f8f96filesystems/ltfs Makefile

filesystems/ltfs: Fix portscout version detection

GitHub tags are vX.Y.Z.W-NNNNN. Portscout normalizes the IBM
build suffix as an extra version component and reports the
current tag as a new release. Skip that tag in both forms.
DeltaFile
+4-0filesystems/ltfs/Makefile
+4-01 files

HardenedBSD/ports e4f8f96filesystems/ltfs Makefile

filesystems/ltfs: Fix portscout version detection

GitHub tags are vX.Y.Z.W-NNNNN. Portscout normalizes the IBM
build suffix as an extra version component and reports the
current tag as a new release. Skip that tag in both forms.
DeltaFile
+4-0filesystems/ltfs/Makefile
+4-01 files

LLVM/project e4ab7d4lldb/source/Plugins/Process/Linux NativeRegisterContextLinux_x86.h NativeRegisterContextLinux_x86.cpp, lldb/source/Plugins/Process/gdb-remote GDBRemoteCommunicationServerLLGS.cpp

[lldb] Support i386 Linux TLS thread pointers (DW_OP_form_tls_address) (#216463)

Fixes #211473.

On i386 Linux, `gs` contains a segment selector rather than the
thread-pointer address. LLDB's i386 native register context did not
expose `LLDB_REGNUM_GENERIC_TP`, so
`DynamicLoaderPOSIXDYLD::GetThreadLocalData` could not locate the
current thread's DTV and module TLS block. As a result, valid
`DW_OP_form_tls_address` and `DW_OP_GNU_push_tls_address` expressions
failed to evaluate.

Mapping the existing `gs` register to the generic thread pointer would
be incorrect because it would expose the selector as an address. The
selector's GDT entry must instead be resolved by the Linux process
tracing the inferior.

## Fix


    [38 lines not shown]
DeltaFile
+112-5lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_x86.cpp
+46-0lldb/test/API/linux/i386/tls-address/TestI386TLSAddress.py
+11-0lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_x86.h
+6-0lldb/test/API/linux/i386/tls-address/main.c
+3-0lldb/test/API/linux/i386/tls-address/Makefile
+2-0lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerLLGS.cpp
+180-56 files