[libcxx][libc] Update LLVM-libc link list (#224164)
LLVM-libc provides all the libc functions in `libc.a` and `libm.a`, so
this PR adds the configuration flags that prevent linking
`libpthread.a` and `librt.a` (inside `libc.a`) and `libatomic.a` (inside
compiler-rt).
Assisted-by: Automated tooling, human reviewed.
[libc++] Automatically detect the OS in benchmark jobs (#224386)
This simplifies the machines.json definition: we don't have to
explicitly say what OS we're running on, the job just figures it out.
NAS-143860 / 26.0.0-RC.1 / Restart the S3 service when the license changes (by anodos325) (#19790)
The S3 daemon asks truenas.entitlements.check for S3_VERSIONING and
S3_AUDIT once, before it registers a bucket, and holds the answer for
the life of the process. A reload re-reads its files and not the license
-- by design, so every registration-consumed fact arrives the same way,
a restart. Nothing performed that restart: no system.post_license_update
subscriber reached the service, and the license reconcile pass carried
no S3 delegate.
So a revoked versioning entitlement went on minting versions until
someone restarted the service by hand, and -- the direction that reaches
a customer -- a granted one left every object-lock bucket the daemon had
excluded at start answering 503 after the license that would serve it
was installed.
Register a RESTART delegate for the service, ordered after the user
delegate since the credentials file the restart renders resolves every
access key through NSS. It runs only while the service is up: RESTART
[5 lines not shown]
[hexagon] Add `hexagon_hmx` function attribute. (#222340)
- [x] Add `hexagon_hmx` function attribute to be used to annotate hmx
functions.
- [x] Add logic to prevent hmx functions being inlined into hvx
functions to avoid unintended accidental vectorization.
Revert "Mix bits in FileID::getHashValue() (#223794)" (#224394)
This reverts commit 9bc655d2852ec31199f2dba25d6f0749953fbe51.
It broke a couple of tests in clang/test/Analysis/html_diagnostics.
[Flang][OpenMP] Improve use_device_addr code generation (#221265)
Currently, the `use_device_addr` implementation reuses the standard
mapping mechanism, which is suboptimal for code like:
```
SUBROUTINE device_addr_func(x)
INTEGER, TARGET, INTENT(IN) :: x(:)
!$omp target data use_device_addr (x)
CALL bar_offload(c_loc(x))
```
For such code, Flang maps the temporary descriptor for the x array to
the GPU. This unnecessary mapping is time-consuming and can be a large
bottleneck for Fortran-to-C function wrappers that use `use_device_addr`
to pass a C pointer for offload code.
For `use_device_addr`, we only need to update the base address in the
descriptor that is used inside `use_device_addr`. This is cheaper than
[11 lines not shown]
[AMDGPU] Have rewrite candidate defer to cost model for tied operands
RewriteMFMAFormStage::isRewriteCandidate rejects any MFMA whose result
has a non-MFMA, non-copy user, because such a user forces an unavoidable
AGPR->VGPR bridge copy. While that is reasonable for the untied form, it
is too coarse for the tied form.
In the tied form the destination and src2 are the same register, so a
single vreg spans the entire accumulator chain:
%acc = V_MFMA_F32_32X32X8F16_mac_vgprcd_e64 %a, %b, %acc
%acc = V_MFMA_F32_32X32X8F16_mac_vgprcd_e64 %a, %b, %acc
...
%acc = V_MFMA_F32_32X32X8F16_mac_vgprcd_e64 %a, %b, %acc
%cvt:vgpr_32 = V_CVT_PK_BF16_F32_e64 %acc.sub0
%acc's use list contains the V_CVT, so isRewriteCandidate returns false
for all the MFMAs, though the result of only the last one reaches the
consumer. For a similar dataflow in untied form, only the last one is
[6 lines not shown]
devel/papi: update to 7.2.0, un-expire
Most patches are from the PR, minor changes from me:
- update to final 7.2.0 version
- update MASTER_SITES and WWW
- shebang for python:env
PR: 284575
Approved by: maintainer timeout (never replied)
MFH: 2026Q3
18451 loader mb2 indexed color setup is buggy
Reviewed by: Andy Fiddaman <illumos at fiddaman.net>
Approved by: Dan McDonald <danmcd at oxide.computer>
Merge commit 1f332ae4f1b3 from llvm-project (by Alexander Kornienko):
Fix -Wformat diagnostic after #190965 (#193704)
Fixes libunwind compiler diagnostic when building with clang after
034d4dcad6396d1241e8262e69871b8d61da7e4f:
```
In file included from libunwind/src/libunwind.cpp:31:
In file included from libunwind/src/UnwindCursor.hpp:52:
libunwind/src/CompactUnwinder.hpp:339:46: error: format specifies type 'unsigned long long' but the argument has type 'uint64_t' (aka 'unsigned long') [-Werror,-Wformat]
338 | "function starting at 0x%llX",
| ~~~~
| %lX
339 | compactEncoding, functionStart);
| ^~~~~~~~~~~~~
libunwind/src/config.h:215:63: note: expanded from macro '_LIBUNWIND_DEBUG_LOG'
215 | #define _LIBUNWIND_DEBUG_LOG(msg, ...) _LIBUNWIND_LOG(msg, __VA_ARGS__)
| ~~~ ^~~~~~~~~~~
libunwind/src/config.h:181:45: note: expanded from macro '_LIBUNWIND_LOG'
[21 lines not shown]
kern.mk: make clang 23 -Wunused-but-set-global non-fatal
This warning triggers in a few places in contributed code, and would
therefore be annoying to fix. Use -Wno-error= to at least show the
warnings so there is some incentive to submit them upstream.
MFC after: 3 days
bsd.sys.mk: make clang 23 -Wunused-but-set-global non-fatal
This warning triggers in a few places in contributed code, and would
therefore be annoying to fix. Use -Wno-error= to at least show the
warnings so there is some incentive to submit them upstream.
MFC after: 3 days
NAS-143860 / 26.0.0 / Restart the S3 service when the license changes (by anodos325) (#19789)
The S3 daemon asks truenas.entitlements.check for S3_VERSIONING and
S3_AUDIT once, before it registers a bucket, and holds the answer for
the life of the process. A reload re-reads its files and not the license
-- by design, so every registration-consumed fact arrives the same way,
a restart. Nothing performed that restart: no system.post_license_update
subscriber reached the service, and the license reconcile pass carried
no S3 delegate.
So a revoked versioning entitlement went on minting versions until
someone restarted the service by hand, and -- the direction that reaches
a customer -- a granted one left every object-lock bucket the daemon had
excluded at start answering 503 after the license that would serve it
was installed.
Register a RESTART delegate for the service, ordered after the user
delegate since the credentials file the restart renders resolves every
access key through NSS. It runs only while the service is up: RESTART
[5 lines not shown]
18420 vioif relies on the device's initial receive filtering mode
Reviewed by: Bill Sommerfeld <sommerfeld at hamachi.org>
Reviewed by: Jason King <jason.brian.king+illumos at gmail.com>
Approved by: Dan McDonald <danmcd at oxide.computer>
18375 bhyve: viona feature_mask option cannot be parsed
18373 want unsigned strtonum variants
Reviewed by: Gordon Ross <Gordon.W.Ross at gmail.com>
Reviewed by: Toomas Soome <tsoome at me.com>
Approved by: Dan McDonald <danmcd at oxide.computer>
[AArch64][PAC] Reset `killed` operand flags in outlined functions
Presently, MachineOutliner does not take `killed` operand flags into
account when merging instruction sequences. While it sounds perfectly
reasonable not to inhibit merging of the instruction sequences that
only differ in `killed` flags (for N flags there is technically 2^N
valid ways to drop some subset of them), copying these flags from
an arbitrarily chosen representative instruction may result in
incorrect codegen of PAuth-related pseudo instructions on AArch64.
To keep `killed` flags conservatively correct as if `OUTLINED_FUNCTION`s
are virtually re-inserted at every call site, this patch takes the
simplest approach of resetting every `killed` flag inside the
outlined functions.
[SPIR-V] Correct predicated load/store opcode values (#220062)
This PR fixes the `SPV_INTEL_predicated_io` extension instruction
opcodes to match the SPIR-V header definitions.
tools: Compute the module DataLayout from the triple, not the TargetMachine (#224259)
TargetMachine::createDataLayout is an unreliable cache given the
existence of module flags which change the datalayout, so this should be removed.
Migrate tool users to directly compute the datalayout.
Co-authored-by: Claude (Claude-Opus-4.8) <noreply at anthropic.com>
for getexecpath() in execve(), the addition of REALPATH to the namei LOOKUP
operation can now fail if the buffer generated becoes too long. What we want
is for the LOOKUP to succeed and and for the REALPATH 'request' to be
abandoned. Then the LOOKUP attempt can stil proceed, and execve() can
succeed at running the binary (and not provide getexecpath information).
This creates a seperate identifiable EXECPATH request which can be abandoned
easier.
issue found by dgl, change ok dgl