FreeNAS/freenas f7ee5fasrc/middlewared/middlewared job.py, src/middlewared/middlewared/utils asyncio_.py

Fix `JobProgressBuffer.set_progress` not being thread-safe
DeltaFile
+159-0tests/unit/test_job_progress_buffer.py
+29-0src/middlewared/middlewared/utils/asyncio_.py
+4-3src/middlewared/middlewared/job.py
+192-33 files

FreeBSD/src 801c0f3tests/sys/kern ktls_test.c

tests/ktls: merge two sysctl checking helpers into one

No functional change.
DeltaFile
+8-27tests/sys/kern/ktls_test.c
+8-271 files

FreeBSD/src 698e0c4sys/contrib/openzfs/module/zfs zvol.c

zvol: Fix uses of uninitialized variables in zvol_rename_minors_impl()

Reported-by: GitHub Copilot
Reviewed-by: Brian Behlendorf <behlendorf1 at llnl.gov>
Reviewed-by: Alexander Motin <alexander.motin at TrueNAS.com>
Signed-off-by: Mark Johnston <markj at FreeBSD.org>
Closes #18191
(cherry picked from commit 943a05528494b2f4585541089606796476fb229e)
DeltaFile
+3-0sys/contrib/openzfs/module/zfs/zvol.c
+3-01 files

FreeBSD/src f674550sys/contrib/openzfs/module/os/freebsd/zfs zvol_os.c, sys/contrib/openzfs/module/zfs zvol.c

Make zvol_set_common() block until the operation has completed

This is motivated by a FreeBSD AIO test case which create a zvol with -o
volmode=dev, then immediately tries to open the zvol device file.  The
open occasionally fails with ENOENT.

When a zvol is created without the volmode setting, zvol_create_minors()
blocks until the task is finished, at which point OS-dependent code will
have created a device file.  However, zvol_set_common() may cause the
device file to be destroyed and re-created, at least on FreeBSD, if the
voltype switches from GEOM to DEV.  In this case, we do not block
waiting for the operation to finish, causing the test failure.

Fix the problem by making zvol_set_common() block until the operation
has finished.  In FreeBSD zvol code, use g_waitidle() to block until
asynchronous GEOM operations are done.  This fixes a secondary race
where zvol_os_remove_minor() does not block until the zvol device file
is removed, and the subsequent zvol_os_create_minor() fails because the
(to-be-destroyed) device file already exists.

    [6 lines not shown]
DeltaFile
+42-4sys/contrib/openzfs/module/zfs/zvol.c
+3-1sys/contrib/openzfs/module/os/freebsd/zfs/zvol_os.c
+45-52 files

FreeBSD/src bde2908sys/contrib/openzfs/module/os/freebsd/zfs zvol_os.c, sys/contrib/openzfs/module/os/linux/zfs zvol_os.c

zvol: Hold the zvol state writer lock when renaming

Otherwise nothing serializes updates to the global zvol hash table.

Reviewed-by: Brian Behlendorf <behlendorf1 at llnl.gov>
Reviewed-by: Alexander Motin <alexander.motin at TrueNAS.com>
Signed-off-by: Mark Johnston <markj at FreeBSD.org>
Closes #18191
(cherry picked from commit d7b8eef9d281f6831ac7d9cb27362509ec434fb2)
DeltaFile
+1-1sys/contrib/openzfs/module/os/linux/zfs/zvol_os.c
+1-1sys/contrib/openzfs/module/zfs/zvol.c
+1-1sys/contrib/openzfs/module/os/freebsd/zfs/zvol_os.c
+3-33 files

FreeBSD/src ae6db85sys/contrib/openzfs/module/os/freebsd/zfs zvol_os.c

FreeBSD: Fix zvol teardown races

zvol_geom_open() may be called to taste an orphaned provider.  The test
for pp->private == NULL there is racy as no locks are synchronizing the
test.

Use the GEOM topology lock to interlock the pp->private == NULL test
with the zvol state checks.  This establishes a new lock order but I
believe this is necessary.  Set pp->private = NULL under the GEOM
topology lock instead of the per-zvol state lock.  Modify
zvol_os_rename_minor() to drop the zvol state lock to avoid a lock order
reversal with the topology lock.

Also reverse the order of tests in zvol_geom_open() and zvol_cdev_open()
as at least zvol_geom_open() may race with zvol_os_remove_minor(), which
sets zv->zv_zso = NULL.  Testing for ZVOL_REMOVING first avoids a race
which can lead to a NULL pointer dereference.

Add a new OS-specific flag to handle the case where zvol_geom_open()

    [9 lines not shown]
DeltaFile
+44-34sys/contrib/openzfs/module/os/freebsd/zfs/zvol_os.c
+44-341 files

LLVM/project 41a5357clang/docs ReleaseNotes.md, clang/lib/Sema SemaType.cpp

[clang][Sema] Allow abstract declarators to specify cv-qualified function types as per CWG1417 (#209836)

Abstract declarator contexts (specifically `DeclaratorContext::TypeName`) now properly bypass this restricted rule, allowing cv-qualified function types in `__typeof__` while maintaining restrictions in other contexts like `typeid`, `sizeof`, C-style casts, and `new` expressions per CWG1417.
DeltaFile
+46-0clang/test/SemaCXX/qualified-function-typeof.cpp
+12-0clang/test/CXX/drs/cwg14xx.cpp
+2-1clang/lib/Sema/SemaType.cpp
+1-1clang/www/cxx_dr_status.html
+2-0clang/docs/ReleaseNotes.md
+63-25 files

FreeNAS/freenas 61b56b2src/middlewared/middlewared job.py, src/middlewared/middlewared/utils asyncio_.py

Fix `JobProgressBuffer.set_progress` not being thread-safe
DeltaFile
+159-0tests/unit/test_job_progress_buffer.py
+31-0src/middlewared/middlewared/utils/asyncio_.py
+3-2src/middlewared/middlewared/job.py
+193-23 files

FreeBSD/ports 7042c53www/firefox distinfo Makefile

www/firefox: update to 153.0.1 (rc2)

Release Notes (soon):
  https://www.firefox.com/en-US/firefox/153.0.1/releasenotes/
DeltaFile
+3-3www/firefox/distinfo
+2-2www/firefox/Makefile
+5-52 files

LLVM/project b8bd63cflang/include/flang/Optimizer/OpenACC Passes.td, flang/lib/Optimizer/OpenACC/Transforms ACCEmitNYIFlang.cpp ACCPipeline.cpp

[flang][acc] Emit NYI messages for unsupported directives (#211894)

Add an OpenACC MLIR pass that emits not-yet-implemented messages for
unsupported directives immediately after HLFIR generation. This allows
OpenACC dialect operations to be emitted with -emit-hlfir while making
full compilation fail early with clear diagnostics, instead of later
when unhandled OpenACC operations reach LLVM dialect conversion.
DeltaFile
+199-0flang/test/Driver/openacc-nyi.f90
+128-0flang/test/Transforms/OpenACC/acc-emit-nyi-flang.fir
+112-0flang/lib/Optimizer/OpenACC/Transforms/ACCEmitNYIFlang.cpp
+21-0flang/lib/Optimizer/OpenACC/Transforms/ACCPipeline.cpp
+15-1flang/include/flang/Optimizer/OpenACC/Passes.td
+7-3flang/lib/Optimizer/OpenACC/Transforms/ACCInitializeFIRAnalyses.cpp
+482-45 files not shown
+495-411 files

LLVM/project 2a323d5llvm/include/llvm/ProfileData SampleProf.h, llvm/lib/ProfileData SampleProf.cpp

[ProfileData] Make FunctionSamples profile-format flags atomic (#208964)

`lld/test/ELF/lto/sample-profile.ll` is failing in ThreadSanitizer
build.

In a parallel in-process ThinLTO link, each backend thread reads the
sample profile in SampleProfileLoader::doInitialization and writes these
globals.

Make the variables std::atomic<bool> so the same-value writes are
well-defined. An architectural ideal solution that holds these states in
a container seems very intrusive.
DeltaFile
+12-9llvm/include/llvm/ProfileData/SampleProf.h
+6-6llvm/lib/ProfileData/SampleProf.cpp
+18-152 files

LLVM/project e59df8ellvm/lib/Target/SPIRV SPIRVNonSemanticDebugHandler.cpp SPIRVNonSemanticDebugHandler.h, llvm/test/CodeGen/SPIRV/debug-info debug-type-array.ll debug-type-array-skip-element-not-in-regs.ll

[SPIRV] Emit NonSemantic DebugTypeArray. (#211537)

This PR adds `DebugTypeArray` to `SPIRVNonSemanticDebugHandler`:

1. `partitionTypes` buckets `DICompositeType` nodes tagged
`DW_TAG_array_type` without `DINode::FlagVector` (vectors are emitted
separately).
2. `emitNonSemanticGlobalDebugInfo` emits one `DebugTypeArray` per node
after the pointer types and records the id in `DebugTypeRegs`.
3. `emitDebugTypeArray` appends one `OpConstant` component count per
`DISubrange`, in subrange order. A subrange with no constant count emits
0, matching `OpTypeRuntimeArray`. An array whose element type is not in
`DebugTypeRegs` is skipped.

Clang lowers a matrix to a `DW_TAG_array_type` with two subranges in
`CGDebugInfo::CreateType(const ConstantMatrixType *)`, so an HLSL
`float4x4` emits as a `DebugTypeArray` with two counts.
`DebugTypeMatrix` needs a distinguishing flag from the frontend.


    [8 lines not shown]
DeltaFile
+70-4llvm/lib/Target/SPIRV/SPIRVNonSemanticDebugHandler.cpp
+68-0llvm/test/CodeGen/SPIRV/debug-info/debug-type-array.ll
+35-0llvm/test/CodeGen/SPIRV/debug-info/debug-type-array-skip-element-not-in-regs.ll
+18-0llvm/lib/Target/SPIRV/SPIRVNonSemanticDebugHandler.h
+191-44 files

NetBSD/pkgsrc-wip d3fa8b9CodeWhale distinfo cargo-depends.mk

Update misc/CodeWhale to v.0.9.1.
DeltaFile
+156-36CodeWhale/distinfo
+51-11CodeWhale/cargo-depends.mk
+1-1CodeWhale/Makefile
+208-483 files

NetBSD/pkgsrc-wip 2fcba0afresh distinfo Makefile

Update editors/fresh to v.0.4.5
DeltaFile
+33-3fresh/distinfo
+11-1fresh/Makefile
+10-0fresh/cargo-depends.mk
+2-2fresh/COMMIT_MSG
+56-64 files

LLVM/project 07aa3b7llvm/lib/Transforms/Vectorize SLPVectorizer.cpp, llvm/test/Transforms/SLPVectorizer/AArch64 buildvector-used-by-insertvalue.ll

[SLP] Only consider BuildVector inserts into the same object. (#212269)

When following insertelement instruction for a BuildVector sequence, we
may discover a user that inserts into a different vector.

Bail out when that happens instead of crashing.

PR: https://github.com/llvm/llvm-project/pull/212269
DeltaFile
+59-0llvm/test/Transforms/SLPVectorizer/AArch64/buildvector-used-by-insertvalue.ll
+3-1llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
+62-12 files

LLVM/project 3c6d9cd.github/workflows release-binaries.yml

workflows/release-binaries: Add missing action to checkout (#211720)

The upload-release-artifact action uses the require-team-membership
action so we need to make sure that latter is checkout out when calling
upload-release-artifact.
DeltaFile
+1-0.github/workflows/release-binaries.yml
+1-01 files

LLVM/project 7baccdallvm/include/llvm/Support GenericLoopInfoImpl.h GenericLoopInfo.h, llvm/lib/CodeGen LazyMachineBlockFrequencyInfo.cpp XRayInstrumentation.cpp

[LoopInfo] Build dominator tree only for irreducible CFG (#212098)

analyze() requires a dominator tree, so LoopAnalysis and
MachineLoopAnalysis request one for every function, though only an
irreducible CFG queries it. Clients that build their own, from
InlineCost to XRayInstrumentation, need it for nothing else.

Take the function and a callback returning the tree instead, and call it
when an edge re-enters a loop. Add an analyze(F) overload for a client
that holds no tree.

The number of dominator tree builds does not change in an -O2 pipeline
building sqlite3.bc, where SROA and InstCombine cache one before
LoopAnalysis runs.

Tests that observed the tree through LoopAnalysis now require it
explicitly.

MachineLoopInfoWrapperPass keeps requiring one: the legacy pass manager

    [2 lines not shown]
DeltaFile
+20-1llvm/include/llvm/Support/GenericLoopInfoImpl.h
+10-10llvm/lib/CodeGen/LazyMachineBlockFrequencyInfo.cpp
+10-9llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp
+9-8llvm/lib/CodeGen/XRayInstrumentation.cpp
+13-1llvm/lib/CodeGen/MachineLoopInfo.cpp
+12-1llvm/include/llvm/Support/GenericLoopInfo.h
+74-3012 files not shown
+108-5718 files

LLVM/project 5a6364cllvm/test/TableGen ProcessorAlias.td, llvm/utils/TableGen SubtargetEmitter.cpp

sort
DeltaFile
+10-3llvm/utils/TableGen/SubtargetEmitter.cpp
+2-1llvm/test/TableGen/ProcessorAlias.td
+12-42 files

LLVM/project 7b7ed88llvm/include/llvm/MC MCSubtargetInfo.h, llvm/lib/CodeGen TargetSubtargetInfo.cpp

TableGen: Use a compact table for CPU aliases

Previously each ProcessorAlias was emitted as a full SubtargetSubTypeKV
entry in the processor subtype table, duplicating the canonical
processor's feature masks and scheduling model index. At 104 bytes per
entry: AArch64's 18 aliases added ~1.8KB, and X86 will add more as aliases
are introduced.

Emit aliases into a separate SubtargetSubTypeAliasKV table instead. Each
alias is just a name string offset plus the index of the canonical
processor it resolves to.

Co-authored-by: Claude (Claude-Opus-4.8) <noreply at anthropic.com>
DeltaFile
+88-46llvm/utils/TableGen/SubtargetEmitter.cpp
+29-6llvm/include/llvm/MC/MCSubtargetInfo.h
+21-9llvm/lib/MC/MCSubtargetInfo.cpp
+18-11llvm/test/TableGen/ProcessorAlias.td
+6-6llvm/lib/CodeGen/TargetSubtargetInfo.cpp
+3-3llvm/unittests/CodeGen/MFCommon.inc
+165-814 files not shown
+172-8710 files

FreeBSD/src b68f2fecontrib/llvm-project/lld/ELF Thunks.cpp Thunks.h, contrib/llvm-project/lld/ELF/Arch PPC.cpp PPC64.cpp

Merge commit 26bf39cdba0b from llvm-project (by Jessica Clarke):

  [ELF][PowerPC] Don't assume TOC pointer is valid in IPLT entries (#207555)

  Unlike normal PLT entries, IPLT entries can be called indirectly even
  when in PIEs/DSOs, and so there's no guarantee on what's in the TOC
  pointer register at that time. Therefore we must emit variants of the
  existing code that work without it, whether r12-relative (playing the
  same role as MIPS's $25) in the same number of instructions, or first
  retrieving PC in an i386-like manner, being careful not to clobber LR.
  On 32-bit PowerPC even direct calls to IPLT entries face the same issue,
  since we'd use the TOC base of the resolver, which may not be the same
  as the caller, even within the same object.

  Normal canonical PLTs still look broken on 64-bit PowerPC as they use
  the TOC pointer register too, and similarly on 32-bit PowerPC for PIEs.
  We should probably treat these cases the same as PIE on i386 (except
  including PDEs for 64-bit PowerPC), where it's an error due to the use
  of %ebx in PLT entries.

    [7 lines not shown]
DeltaFile
+50-19contrib/llvm-project/lld/ELF/Thunks.cpp
+7-6contrib/llvm-project/lld/ELF/Arch/PPC.cpp
+6-3contrib/llvm-project/lld/ELF/Thunks.h
+3-2contrib/llvm-project/lld/ELF/Arch/PPC64.cpp
+1-1lib/clang/include/lld/Common/Version.inc
+67-315 files

FreeBSD/src bcbcd73contrib/llvm-project/lld/ELF Thunks.cpp Thunks.h, contrib/llvm-project/lld/ELF/Arch PPC64.cpp

Merge commit cbf48349e3e1 from llvm-project (by Jessica Clarke):

  [NFC][ELF][PPC64] Pass address not offset to writePPC64LoadAndBranch (#212275)

  Every caller currently subtracts the TOC base in its argument, so move
  that into common code inside writePPC64LoadAndBranch. This will also
  allow a different computation to be used in some cases in a future
  commit.

  Note that offset is now unsigned not signed; even previously, all
  arguments were uint64_t, and all uses are unsigned, so making it signed
  doesn't make much sense.

MFC after:      1 week
DeltaFile
+9-11contrib/llvm-project/lld/ELF/Thunks.cpp
+1-2contrib/llvm-project/lld/ELF/Arch/PPC64.cpp
+1-1contrib/llvm-project/lld/ELF/Thunks.h
+11-143 files

LLVM/project d53cb74llvm/lib/Target/X86 X86.td

X86: Use ProcessorAlias for duplicated processor names (#211953)

Many X86 processors were defined multiple times under different names,
emitting an identical ProcessorModel for each spelling and duplicating
the feature masks, tune features, and scheduling model index in the
subtype table.

Define each processor once under its canonical name and express the
alternate spellings with ProcessorAlias, using the tablegen alias
mechanism. This deduplicates the redundant subtype table entries and
saves about 4.6k with the new alias table (#211952)

Co-Authored-By: Claude (Claude-Opus-4.8) <noreply at anthropic.com>
DeltaFile
+118-133llvm/lib/Target/X86/X86.td
+118-1331 files

FreeBSD/ports d1c3627misc/nanocoder pkg-plist distinfo, misc/nanocoder/files package-lock.json

misc/nanocoder: update 1.28.1 → 1.29.0
DeltaFile
+771-14misc/nanocoder/pkg-plist
+386-96misc/nanocoder/files/package-lock.json
+3-3misc/nanocoder/distinfo
+1-1misc/nanocoder/Makefile
+1,161-1144 files

LLVM/project 58a6567llvm/lib/Target/AMDGPU GCNProcessors.td

AMDGPU: Use ProcessorAlias for legacy arch names (#211776)

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 ec96f85llvm/include/llvm/MC MCSubtargetInfo.h, llvm/include/llvm/Target Target.td

TableGen: Add first class support for processor aliases (#211775)

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
+44-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
+110-506 files

FreeBSD/ports eee1929science Makefile, science/py-libwignernj Makefile pkg-descr

science/py-libwignernj: New port: Python bindings for libwignernj
DeltaFile
+30-0science/py-libwignernj/Makefile
+16-0science/py-libwignernj/files/patch-pyproject.toml
+5-0science/py-libwignernj/pkg-descr
+3-0science/py-libwignernj/distinfo
+1-0science/Makefile
+55-05 files

FreeBSD/ports 8fe854cscience/openmolcas Makefile distinfo

science/openmolcas: update 26.02 → 26.06
DeltaFile
+6-4science/openmolcas/Makefile
+3-3science/openmolcas/distinfo
+1-0science/openmolcas/pkg-plist
+10-73 files

FreeBSD/ports df719ffmisc/py-lazrs distinfo Makefile

misc/py-lazrs: update 0.8.1 → 0.8.2
DeltaFile
+35-43misc/py-lazrs/distinfo
+18-23misc/py-lazrs/Makefile
+53-662 files

FreeBSD/ports ef8072ascience Makefile, science/libwignernj Makefile pkg-plist

science/libwignernj: New port: Library for exact evaluation of Wigner/Clebsch-Gordan coefficients
DeltaFile
+44-0science/libwignernj/Makefile
+16-0science/libwignernj/pkg-plist
+5-0science/libwignernj/pkg-descr
+3-0science/libwignernj/distinfo
+1-0science/Makefile
+69-05 files

FreeBSD/ports 3cf0100www/ghostunnel distinfo Makefile

www/ghostunnel: update 1.11.1 → 1.11.2
DeltaFile
+5-5www/ghostunnel/distinfo
+1-1www/ghostunnel/Makefile
+6-62 files