OpenZFS/src 7dcb3fe — .github/workflows unit-tests.yml, .github/workflows/scripts qemu-3-deps.sh debian-user-deps.sh

CI: install userspace build dependencies for unit tests

The unit job uses VM preparation that upgrades installed packages,
installs kernel and ZTS dependencies, and removes packaged ZFS modules.
None of that machine preparation is needed for the userspace unit build.

Share the Debian userspace build packages between the unit job and the
full VM installer, leaving the latter's other dependencies and setup in
place. Deliver the shared installer alongside the VM script when it runs
before the repository is copied into the guest.

Use the native unit target in the documented minimum-build example.

Reviewed-by: Brian Behlendorf <behlendorf1 at llnl.gov>
Signed-off-by: Kamil Monicz <kamil at monicz.dev>
Closes #19456
DeltaFile
+8-18.github/workflows/scripts/qemu-3-deps-vm.sh
+7-0.github/workflows/scripts/debian-user-deps.sh
+2-1.github/workflows/unit-tests.yml
+1-1tests/unit/README.md
+1-1.github/workflows/scripts/qemu-3-deps.sh
+19-215 files

LLVM/project 32d5348 — llvm/include/llvm/Transforms/IPO Attributor.h, llvm/lib/Transforms/IPO Attributor.cpp

Attributor: Check for a fixpoint state with a single virtual call

Checking whether an abstract attribute is at a fixpoint took two virtual
calls, getState and isAtFixpoint. Add isStateAtFixpoint, which
StateWrapper implements with a direct call, and use it in the fixpoint
iteration.

attributor-light instruction counts (callgrind): -0.62% median over 68
llvm-test-suite TUs, the full attributor -0.70%.

Co-authored-by: Johannes Doerfert <jdoerfert.llvm at gmail.com>
Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
DeltaFile
+7-8llvm/lib/Transforms/IPO/Attributor.cpp
+8-0llvm/include/llvm/Transforms/IPO/Attributor.h
+15-82 files

NetBSD/pkgsrc-wip e53b1ec — . Makefile, automake distinfo DESCR

automake: remove, used for updating pkgsrc
DeltaFile
+0-126automake/PLIST
+0-28automake/Makefile
+0-24automake/patches/patch-configure
+0-6automake/distinfo
+0-6automake/DESCR
+0-1Makefile
+0-1916 files

FreeNAS/freenas 1d265b4 — src/middlewared/middlewared/api/v27_0_0 truesearch.py, src/middlewared/middlewared/plugins truesearch.py

NAS-145200 / 27.1.0 / Replace the TrueSearch program with truesearchd (by anodos325) (#20196)

- The `truesearch` service runs two units, `truesearchd` and
`truesearch-indexer`. Samba uses `spotlight backend = truesearch`.
truesearchd handles client requests. truesearch-indexer does the actual
file indexing and fs watching.
- Middleware writes `/etc/truesearchd/truesearch.conf` while the index
dataset is mounted. A dataset gets one `[target]` row if it holds an SMB
share with Spotlight search on or a WebShare share with search on, or if
it is mounted beneath such a share. Time Machine shares, home shares and
private datasets shares are not indexed.
- Encrypted datasets are now indexed due to changes in default index
dataset encryption posture.
- `.system/truesearchd` replaces `.system/truesearch`. On a data pool,
it is encrypted with the pwenc secret as a raw key. Middleware does not
mount a copy that is not encrypted or that the secret does not unlock,
and TrueSearch then reports that it is not mounted. A move of the system
dataset does not copy it, and the indexes are built again. It has the
properties of the tiering dataset.

    [14 lines not shown]
DeltaFile
+729-110src/middlewared/middlewared/plugins/truesearch.py
+345-19tests/api2/test_truesearch.py
+262-0src/middlewared/middlewared/utils/truesearch_filters.py
+155-0tests/unit/test_truesearch.py
+0-151src/middlewared/middlewared/pytest/unit/plugins/test_truesearch.py
+150-0src/middlewared/middlewared/api/v27_0_0/truesearch.py
+1,641-28029 files not shown
+2,428-40835 files

LLVM/project 6ff6e60 — llvm/lib/Transforms/IPO FunctionImport.cpp

address review comments

Created using spr 1.3.7
DeltaFile
+7-6llvm/lib/Transforms/IPO/FunctionImport.cpp
+7-61 files

FreeBSD/ports 204619a — textproc/codebook Makefile Makefile.crates

textproc/codebook: Update to 0.4.0
DeltaFile
+289-291textproc/codebook/distinfo
+143-144textproc/codebook/Makefile.crates
+1-2textproc/codebook/Makefile
+433-4373 files

LLVM/project 8621950 — llvm/lib/Transforms/IPO FunctionImport.cpp, llvm/test/ThinLTO/X86 reduce-promotion-same-local-name-distributed.ll reduce-promotion-distributed.ll

[ThinLTO] Attach GUID to pre-existing declarations of imported declarations (#241395)

When a function is imported as a declaration, FunctionImporter creates
the declaration by hand and records the original GUID of the function as
!guid metadata, so that it can be located by GUID even if it was a
promoted local whose name no longer hashes to its GUID (e.g. by MemProf
ICP for cloning). However, if a declaration with that name already
existed in the destination module, the import was skipped entirely.

That declaration may have been created by the IRMover as a side effect
of linking an imported definition that references the function, e.g. a
vtable or a method table whose initializer references it. In that case
the declaration does not carry the original GUID, and MemProf's ThinLTO
backend cannot match the thin link's synthesized callsite record for an
indirect tail call to the promoted local target. The backend then does
not create the expected clone of the caller, while the callers of the
caller were already redirected to the clone by the thin link, resulting
in an undefined .memprof.N symbol at link time.


    [3 lines not shown]
DeltaFile
+152-0llvm/test/ThinLTO/X86/memprof-tailcall-indirect-local-imported-ref.ll
+25-9llvm/lib/Transforms/IPO/FunctionImport.cpp
+4-1llvm/test/ThinLTO/X86/import_callee_declaration.ll
+1-1llvm/test/ThinLTO/X86/reduce-promotion-same-local-name-distributed.ll
+1-1llvm/test/ThinLTO/X86/reduce-promotion-distributed.ll
+183-125 files

FreeBSD/ports fdba74f — www/py-google-api-python-client distinfo Makefile

www/py-google-api-python-client: Update to 2.202.0

- Update list of test dependencies

ChangeLog:

1. https://github.com/googleapis/google-api-python-client/releases/tag/v2.202.0

Reported by:    "release-please[bot]" <notifications at github.com>
DeltaFile
+3-3www/py-google-api-python-client/distinfo
+4-2www/py-google-api-python-client/Makefile
+7-52 files

LLVM/project a7cbbc2 — clang/docs ReleaseNotes.md, clang/lib/CodeGen MicrosoftCXXABI.cpp

[clang][MS ABI] Use image-relative throw info on 32-bit Arm (#240571)

MSVC's runtime reads the throw information (ThrowInfo, CatchableTypeArray and
CatchableType) as offsets from the image base on every target but 32-bit x86,
and _CxxThrowException looks up the image base from the ThrowInfo. clang wrote
these tables with absolute pointers on 32-bit Arm, so a throw crashed in the
runtime there. Make them image-relative on Arm, as on 64-bit targets.
The RTTI stays absolute, as on MSVC.

Assisted-by: Claude Opus 5.5 (Anthropic)
DeltaFile
+57-31clang/lib/CodeGen/MicrosoftCXXABI.cpp
+11-0clang/test/CodeGenCXX/microsoft-abi-throw.cpp
+4-0clang/docs/ReleaseNotes.md
+1-0clang/test/CodeGenCXX/microsoft-abi-rtti.cpp
+73-314 files

NetBSD/pkgsrc-wip 036bf36 — automake TODO distinfo, automake/patches patch-configure

automake: finish update
DeltaFile
+24-0automake/patches/patch-configure
+0-1automake/TODO
+1-0automake/distinfo
+1-0automake/PLIST
+26-14 files

LLVM/project ad73202 — llvm/lib/Target/AMDGPU SIMachineFunctionInfo.h

Fixed format issue
DeltaFile
+1-2llvm/lib/Target/AMDGPU/SIMachineFunctionInfo.h
+1-21 files

FreeBSD/src 9d2cdb3 — sys/net/route nhgrp_ctl.c

routing: Fix buffer size in merge_nhgrps()

merge_nhgrps() sized its temporary nexthop array as twice
the existing group instead of the sum of both groups.

Fixes:  dd945c6ba4ff ("routing: Implement merge of nhgrp in new multipath route")
DeltaFile
+1-1sys/net/route/nhgrp_ctl.c
+1-11 files

LLVM/project fb67244 — llvm/lib/Transforms/Vectorize SLPVectorizer.cpp, llvm/test/Transforms/SLPVectorizer/X86 minbw-terminator-vector-external-insert.ll

[SLP]Fix crash on MinBW cast of callbr/invoke result vector

A demoted no-op cast node may reuse a callbr/invoke result as its
vector, and the cast for external insertelement users was then
inserted after a terminator. Insert it at the def's insertion point
(normal dest for invoke) or in the scalars' block for callbr. Reuse
a cached cast only where it dominates the user.

Fixes #241488

Pull-request: https://github.com/llvm/llvm-project/pull/241563
DeltaFile
+133-0llvm/test/Transforms/SLPVectorizer/X86/minbw-terminator-vector-external-insert.ll
+9-3llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
+142-32 files

LLVM/project ed7d20a — llvm/lib/Transforms/Vectorize VPlanTransforms.cpp, llvm/test/Transforms/LoopVectorize/AArch64 partial-reduce-usabs.ll

[VPlan] Don't narrow recipes without underlying instr to single scalars. (#241546)

narrowToSingleScalarRecipes creates the single-scalar replacement from
the underlying instruction of the recipe. Recipes created by VPlan
transforms may not have one. Skip such recipes, like
legalizeAndOptimizeInductions already does.

Fixes https://github.com/llvm/llvm-project/issues/241474
DeltaFile
+54-0llvm/test/Transforms/LoopVectorize/AArch64/partial-reduce-usabs.ll
+4-2llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp
+58-22 files

LLVM/project 44429ee — llvm/lib/Transforms/Vectorize VPlanRecipes.cpp

[VPlan] Compute cost of FNeg, Freeze and BitCast natively. (NFC) (#241489)

Compute the cost of replicated FNeg and Freeze recipes using
getCostForRecipeWithOpcode, like for the other unary and binary
operations, and the cost of replicated BitCast recipes like for the
other casts, instead of falling back to the legacy cost model.

Replicated recipes with these opcodes currently either have their costs
pre-computed by the legacy cost model or are single scalars with
matching costs, so no test changes.
DeltaFile
+3-0llvm/lib/Transforms/Vectorize/VPlanRecipes.cpp
+3-01 files

LLVM/project 91aa7e6 — utils/bazel/llvm-project-overlay/lldb/test/Shell BUILD.bazel, utils/bazel/llvm-project-overlay/lldb/test/Shell/Breakpoint BUILD.bazel

[bazel][lldb] Run lldb Shell tests that build with clang (#240988)

Follow up to #238182. Let the Shell tests build inferiors with %clang,
%clang_host and %build, and run the ones that don't also need %lldb:
BuildScript, Expr/TestIRMemoryMap.test, two Breakpoint tests and 49 more
SymbolFile tests.

//clang finds its builtin headers relative to its resolved path in
bazel-out, but bazel stages them in clang/staging, so anything that
includes a header like stddef.h fails. lit_tools/clang is now a script
that runs //clang with -resource-dir pointing there. build.py also looks
for clang++ and clang-cl in the tools directory and otherwise falls back
to the host gcc, so add scripts with those names as well; exec -a keeps
the name, which selects clang's driver mode. Inferiors use the host's
libc and C++ standard library, as they do in CMake builds.

lit_data gains llvm-dwarfdump, which one of the SymbolFile tests uses.
The comments on the tests that are still excluded now only mention
%lldb.
DeltaFile
+57-6utils/bazel/llvm-project-overlay/lldb/test/Shell/SymbolFile/BUILD.bazel
+37-3utils/bazel/llvm-project-overlay/lldb/test/Shell/BUILD.bazel
+17-0utils/bazel/llvm-project-overlay/lldb/test/Shell/Expr/BUILD.bazel
+16-0utils/bazel/llvm-project-overlay/lldb/test/Shell/BuildScript/BUILD.bazel
+4-8utils/bazel/llvm-project-overlay/lldb/test/Shell/Breakpoint/BUILD.bazel
+3-4utils/bazel/llvm-project-overlay/lldb/test/Shell/Settings/BUILD.bazel
+134-211 files not shown
+136-237 files

LLVM/project d8c325e — utils/bazel/llvm-project-overlay/lldb/test/Shell BUILD.bazel

[bazel] Add missing lldb test input file (#241494)
DeltaFile
+1-0utils/bazel/llvm-project-overlay/lldb/test/Shell/BUILD.bazel
+1-01 files

LLVM/project 9128501 — lldb/tools/lldb-dap/extension package-lock.json

[lldb-dap][ext] Use public npm registry in package-lock.json (#241559)

57f05c5ee419 (#240863) resolved yargs from an internal registry mirror,
which breaks `npm install` in the llvm/vscode-lldb CI.
DeltaFile
+2-2lldb/tools/lldb-dap/extension/package-lock.json
+2-21 files

LLVM/project 6edae7e — mlir/lib/Conversion/GPUToSPIRV WmmaOpsToSPIRV.cpp, mlir/test/Conversion/GPUToSPIRV wmma-ops-to-spirv-khr-coop-matrix.mlir

[mlir][GPUToSPIRV] Preserve signed integer MMA accumulation (#241347)

gpu.subgroup_mma_compute encodes integer A/B signedness in their
component types, but uses a signless i32 accumulator with signed
semantics. Checking only isSigned() therefore omitted CSigned and
ResultSigned when lowering integer MMA operations.

OpCooperativeMatrixMulAddKHR interprets integer components as unsigned
unless the corresponding SignedComponentsKHR operand flag is present.
Treat signed and signless integer components as signed when selecting
these flags, while leaving explicitly unsigned and floating-point
components unflagged.

Update the signed i8 test to require CSigned and ResultSigned, and add
coverage for unsigned i8 inputs with a signed accumulator. Tighten the
floating-point check so unexpected signedness flags cannot match.

Assisted-by: Codex
DeltaFile
+26-2mlir/test/Conversion/GPUToSPIRV/wmma-ops-to-spirv-khr-coop-matrix.mlir
+9-6mlir/lib/Conversion/GPUToSPIRV/WmmaOpsToSPIRV.cpp
+35-82 files

LLVM/project b3cd7fd — libc/cmake/modules LLVMLibCCompileOptionRules.cmake LLVMLibCTestRules.cmake, libc/src/__support CMakeLists.txt

[libc] Fix GCC allocation diagnostics and sized delete[] (#241533)

AllocChecker's operator new overloads inline malloc and aligned_alloc
while C++ forbids marking replaceable operator delete inline, causing
GCC 11+ to emit false-positive -Wmismatched-new-delete warnings at
delete sites. Hermetic tests compiled with GCC also trigger
-Wsized-deallocation and exception-specification errors in
HermeticTestUtils.cpp.

Pass -Wno-mismatched-new-delete on GCC 11+ in libc and test compile
options so AllocChecker preserves full malloc alias provenance without
inline-assembly barriers, while Clang continues checking new/delete
pairing. Mark placement operator new and all operator delete overloads
noexcept across CPP/new.h and HermeticTestUtils.cpp while adding the
missing aligned operator new and sized/aligned operator delete[]
definitions. Also align alloc_checker's direct includes with its CMake
and Bazel target dependencies.



    [2 lines not shown]
DeltaFile
+26-4libc/test/UnitTest/HermeticTestUtils.cpp
+7-0libc/cmake/modules/LLVMLibCTestRules.cmake
+6-0libc/src/__support/CMakeLists.txt
+6-0libc/cmake/modules/LLVMLibCCompileOptionRules.cmake
+2-2libc/src/__support/CPP/new.h
+1-1utils/bazel/llvm-project-overlay/libc/BUILD.bazel
+48-71 files not shown
+49-77 files

NetBSD/src I7BBNC2 — sys/arch/i386/stand/lib exec_multiboot1.c

   x86/multiboot2: unify iterator with exec_multiboot2.c and exec.c by moving
   `bim' increment into the loop header.  No functional change intended.
VersionDeltaFile
1.4+2-3sys/arch/i386/stand/lib/exec_multiboot1.c
+2-31 files

LLVM/project 7a8cbbb — llvm/test/CodeGen/AArch64 ldexp.ll, llvm/test/CodeGen/PowerPC ldexp-libcall.ll

DAG: Remove special case ldexp libcall recognition (#241467)

InstCombine now turns the eligible cases into the intrinsic.

Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
DeltaFile
+2-74llvm/test/CodeGen/AArch64/ldexp.ll
+0-54llvm/test/CodeGen/X86/ldexp-wrong-signature.ll
+0-50llvm/test/CodeGen/X86/ldexp-not-readonly.ll
+9-41llvm/test/CodeGen/X86/ldexp-libcall.ll
+0-49llvm/test/CodeGen/X86/ldexp-wrong-signature2.ll
+3-9llvm/test/CodeGen/PowerPC/ldexp-libcall.ll
+14-2772 files not shown
+16-2878 files

LLVM/project 782b86d — llvm/lib/Transforms/Vectorize SLPVectorizer.cpp, llvm/test/Transforms/SLPVectorizer ordered-reduction-undef-splat-root-gather.ll

[SLP]Fix crash on undef splat root gather in ordered reduction

Fixes #241486

Pull-request: https://github.com/llvm/llvm-project/pull/241552
DeltaFile
+21-0llvm/test/Transforms/SLPVectorizer/ordered-reduction-undef-splat-root-gather.ll
+3-3llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
+24-32 files

LLVM/project 6403e6f — lldb/include/lldb/Target Process.h, lldb/source/Target Process.cpp

[LLDB] Guard Process::m_instrumentation_runtimes with a mutex

This patch is the sixth part in a patch series that will allow
enabling/disabling InstrumentationRuntime plugins in a running debug
session.

`Process::m_instrumentation_runtimes` can be accessed from multiple
threads. For example, a plugin can be enabled/disabled in a process
from the command thread (or from another debugger when using the
`global` domain) while `Process::ModulesDidLoad()` iterates over the
plugins on another thread, or while an SB API client calls
`Process::GetInstrumentationRuntime()`. These accesses were
unsynchronized.

Now every access to `m_instrumentation_runtimes` is guarded by the new
`m_instrumentation_runtimes_mutex`:

* `Process::Finalize()` and `Process::DidExec()` clear the map while
  holding the mutex.

    [13 lines not shown]
DeltaFile
+25-10lldb/source/Target/Process.cpp
+2-0lldb/include/lldb/Target/Process.h
+27-102 files

LLVM/project a107985 — lldb/include/lldb/Target InstrumentationRuntime.h, lldb/source/Plugins/InstrumentationRuntime/ASan InstrumentationRuntimeASan.cpp

[LLDB] Keep InstrumentationRuntime plugins alive during breakpoint callbacks

This patch is the fifth part in a patch series that will allow
enabling/disabling InstrumentationRuntime plugins in a running debug
session.

InstrumentationRuntime plugins passed a raw `this` pointer as the baton
for their breakpoint callbacks. Now that disabling a plugin in a process
destroys the plugin instance, a plugin could be destroyed (e.g. by
`plugin disable` running on the command thread) while one of its
breakpoint callbacks was running on another thread (e.g. the thread
handling the stop event), causing a use-after-free.

Try to partially fix this by keeping a plugin alive while the baton is being
used.  Now the plugins use a baton created by
`InstrumentationRuntime::CreateBreakpointBaton()` which only holds a weak
reference to the plugin. In a callback,
`InstrumentationRuntime::GetRuntimeFromBaton()` gets a strong reference to the
plugin which keeps the plugin alive until the callback finishes.  If the plugin

    [13 lines not shown]
DeltaFile
+6-13lldb/source/Target/Process.cpp
+14-0lldb/source/Target/InstrumentationRuntime.cpp
+12-0lldb/include/lldb/Target/InstrumentationRuntime.h
+8-3lldb/source/Plugins/InstrumentationRuntime/TSan/InstrumentationRuntimeTSan.cpp
+8-3lldb/source/Plugins/InstrumentationRuntime/ASan/InstrumentationRuntimeASan.cpp
+8-2lldb/source/Plugins/InstrumentationRuntime/MainThreadChecker/InstrumentationRuntimeMainThreadChecker.cpp
+56-212 files not shown
+71-258 files

LLVM/project 8b4b325 — lldb/source/Core PluginManager.cpp, lldb/source/Target Process.cpp

[LLDB] Support enabling/disabling InstrumentationRuntime plugins in a debug session

This patch is the fourth part in a patch series that will allow
enabling/disabling InstrumentationRuntime plugins in a running debug
session.

This is a rework of an older now abandoned patch:
https://github.com/llvm/llvm-project/pull/193334

Previously enabling/disabling an instrumentation runtime plugin via the
`plugin enable/disable instrumentation-runtime.<name>` command was only
supported using the `global` domain. This only toggled the plugin's
enablement state in the PluginManager. This would affect the enablement
in newly launched processes but not in any existing processes. In
practice what this meant is that:

1. If the plugin was activated when the inferior process was launched it
   could not be disabled even if requested. This meant it was impossible
   to prevent LLDB from stopping at the breakpoint set by an

    [106 lines not shown]
DeltaFile
+575-0lldb/test/API/functionalities/ubsan/plugin_enable_disable/TestUbsanPluginEnableDisable.py
+555-6lldb/test/API/lang/BoundsSafety/soft_trap/TestBoundsSafetyInstrumentationPlugin.py
+183-13lldb/source/Core/PluginManager.cpp
+171-0lldb/test/Shell/Commands/command-plugin-enable-disable-domain-flag-two-targets.test
+119-0lldb/test/Shell/Commands/command-plugin-enable-disable-domain-flag-one-target.test
+73-2lldb/source/Target/Process.cpp
+1,676-2115 files not shown
+2,072-6821 files

FreeBSD/ports 887dd4f — security/vuxml/vuln 2026.xml

security/vuxml: FreeBSD private sqlite3 is not vulnerable

Although the FreeBSD base system does ship the vulnerable version of
sqlite3, it is only used internally as a private library.  None of the
use cases in the base system is realistically vulnerable.

Approved by:    so (gordon)
Discussed with: secteam
Fixes:          2d614195fc56 ("security/vuxml: Add FreeBSD (base) to the
sqlite3 entry")
DeltaFile
+1-6security/vuxml/vuln/2026.xml
+1-61 files

LLVM/project 2b8287f — lldb/include/lldb/Target Process.h, lldb/source/Target Process.cpp

[LLDB] Guard Process::m_instrumentation_runtimes with a mutex

This patch is the sixth part in a patch series that will allow
enabling/disabling InstrumentationRuntime plugins in a running debug
session.

`Process::m_instrumentation_runtimes` can be accessed from multiple
threads. For example, a plugin can be enabled/disabled in a process
from the command thread (or from another debugger when using the
`global` domain) while `Process::ModulesDidLoad()` iterates over the
plugins on another thread, or while an SB API client calls
`Process::GetInstrumentationRuntime()`. These accesses were
unsynchronized.

Now every access to `m_instrumentation_runtimes` is guarded by the new
`m_instrumentation_runtimes_mutex`:

* `Process::Finalize()` and `Process::DidExec()` clear the map while
  holding the mutex.

    [13 lines not shown]
DeltaFile
+25-10lldb/source/Target/Process.cpp
+2-0lldb/include/lldb/Target/Process.h
+27-102 files

LLVM/project e482069 — lldb/include/lldb/Target InstrumentationRuntime.h, lldb/source/Plugins/InstrumentationRuntime/ASan InstrumentationRuntimeASan.cpp

[LLDB] Keep InstrumentationRuntime plugins alive during breakpoint callbacks

This patch is the fifth part in a patch series that will allow
enabling/disabling InstrumentationRuntime plugins in a running debug
session.

InstrumentationRuntime plugins passed a raw `this` pointer as the baton
for their breakpoint callbacks. Now that disabling a plugin in a process
destroys the plugin instance, a plugin could be destroyed (e.g. by
`plugin disable` running on the command thread) while one of its
breakpoint callbacks was running on another thread (e.g. the thread
handling the stop event), causing a use-after-free.

Try to partially fix this by keeping a plugin alive while the baton is being
used.  Now the plugins use a baton created by
`InstrumentationRuntime::CreateBreakpointBaton()` which only holds a weak
reference to the plugin. In a callback,
`InstrumentationRuntime::GetRuntimeFromBaton()` gets a strong reference to the
plugin which keeps the plugin alive until the callback finishes.  If the plugin

    [13 lines not shown]
DeltaFile
+6-13lldb/source/Target/Process.cpp
+14-0lldb/source/Target/InstrumentationRuntime.cpp
+12-0lldb/include/lldb/Target/InstrumentationRuntime.h
+8-3lldb/source/Plugins/InstrumentationRuntime/TSan/InstrumentationRuntimeTSan.cpp
+8-3lldb/source/Plugins/InstrumentationRuntime/ASan/InstrumentationRuntimeASan.cpp
+8-2lldb/source/Plugins/InstrumentationRuntime/MainThreadChecker/InstrumentationRuntimeMainThreadChecker.cpp
+56-212 files not shown
+71-258 files

LLVM/project 531774b — lldb/source/Core PluginManager.cpp, lldb/source/Target Process.cpp

[LLDB] Support enabling/disabling InstrumentationRuntime plugins in a debug session

This patch is the fourth part in a patch series that will allow
enabling/disabling InstrumentationRuntime plugins in a running debug
session.

This is a rework of an older now abandoned patch:
https://github.com/llvm/llvm-project/pull/193334

Previously enabling/disabling an instrumentation runtime plugin via the
`plugin enable/disable instrumentation-runtime.<name>` command was only
supported using the `global` domain. This only toggled the plugin's
enablement state in the PluginManager. This would affect the enablement
in newly launched processes but not in any existing processes. In
practice what this meant is that:

1. If the plugin was activated when the inferior process was launched it
   could not be disabled even if requested. This meant it was impossible
   to prevent LLDB from stopping at the breakpoint set by an

    [106 lines not shown]
DeltaFile
+575-0lldb/test/API/functionalities/ubsan/plugin_enable_disable/TestUbsanPluginEnableDisable.py
+555-6lldb/test/API/lang/BoundsSafety/soft_trap/TestBoundsSafetyInstrumentationPlugin.py
+183-13lldb/source/Core/PluginManager.cpp
+171-0lldb/test/Shell/Commands/command-plugin-enable-disable-domain-flag-two-targets.test
+119-0lldb/test/Shell/Commands/command-plugin-enable-disable-domain-flag-one-target.test
+73-2lldb/source/Target/Process.cpp
+1,676-2115 files not shown
+2,072-6821 files