[libc++][ci] Submit the results of PR benchmarks to LNT in a single job (#237337)
Instead of spawning one submission job per machine, which is wasteful,
download all the artifacts in a single job and submit them.
Sparc: Remove redundant check for +/-0.5 immediates (#237319)
getExactLog2Abs() == -1 already checks for +/-0.5, so drop the
separate isExactlyValue comparisons.
Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
[clang-repl] Add stubs for CUDA runtime and enable tests on CI (#236206)
The tests in test/Interpreter/CUDA run only where clang-repl can launch
a kernel. None of them currently runs in CI: premerge reports the whole
directory as unsupported and no buildbot runs clang's lit tests on a
GPU. clang-repl emits the PTX and the fatbinary itself. A host without
CUDA lacks only the runtime that the JIT'd host code calls.
Each test now builds a stub runtime from Inputs/cudart.c, loads it with
--cuda-path and checks the kernels the host code registers and launches
instead of the values they compute. clang's CodeGenCUDA tests check the
same registration and launch calls in the IR, with a minimal
Inputs/cuda.h and no toolkit. libdevice-math.cu needs libdevice and a
GPU and is removed. DeviceOffloadTest covers its change in
BuiltinBitcodeLinkedIntoEveryModule. The host-supports-cuda probe has no
user left and is removed too.
Assisted-by: Claude Opus 5.5
GlobalISel: Make default lower action smarter for FP constants (#237307)
Add an LLT version of getFPImmAction and use it in the default
expansion, which allows targets to select the integer bitcast or
constant pool strategies without resorting to duplicated custom
lowering.
RISCV soft float f64 and fp128 constants are now materialized from
integers instead of loaded from the constant pool, which matches DAG
behavior.
Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
security/metasploit: Update to 6.5.8
Move to the Rails 8.0 ports, which this release requires.
Disable bootsnap's bytecode cache: its workaround for Ruby bug 22023 reads
source files honouring Encoding.default_internal, which metasploit sets to
binary, so msfconsole does not start. Fixed upstream in bootsnap 1.26.1;
drop the patch once devel/rubygem-bootsnap is updated.
Changelog: https://github.com/rapid7/metasploit-framework/compare/6.4.58...6.5.8
Security: 4488c0db-d45b-11f1-bae2-3497f65b111b
With hat: ports-secteam
Sponsored by: Netzkommune GmbH
(cherry picked from commit d881527a6f777d58dff9bb31e76a42d6bc91ea85)
converters/rubygem-xdr: Use the Rails 8.0 ports
The gemspec caps activesupport and activemodel below 8.0. The bound is
precautionary, the gem only uses basic features of both, and
security/metasploit needs Rails 8.0.
Approved by: antoine (maintainer)
Sponsored by: Netzkommune GmbH
(cherry picked from commit 7c3bff5ce4e31b02604eb587084db65f665c5985)
databases/rubygem-arel-helpers: Use the Rails 8.0 ports
Needed by security/metasploit, which moves to Rails 8.0.
Approved by: antoine (maintainer)
Sponsored by: Netzkommune GmbH
(cherry picked from commit 350790c2020c6514aa26002e3eae34a0b180b4dc)
[compiler-rt] Add 'csan' library for the concurrency sanitizer
Summary:
Adds the runtime for the concurrency sanitizer, both CPU and GPU.
Fundamentally, this works using the following pseudocode:
```c
static u64 watchpoints[N]; // Hash-indexed, zero is empty.
// Emitted before the access, so we never trip on our own write.
void check_access(volatile void *addr, u32 size, u32 type) {
// Every access probes. A read conflicts only with a watched write, a
// write conflicts with either.
if (u64 *wp = find_watchpoint(addr, size, type))
consume(wp, this_pc()); // Hand our location to the owner.
if (!should_sample()) // Wave-uniform, 1-in-N chance.
return;
[17 lines not shown]
[compiler-rt] Remove dlsym interceptor and support `-shared-libsan` for CSan
Summary:
Follow the UBSan offload runtime. Offload now resolves HSA through the
global scope, so the `dlsym` interceptor is no longer needed. The real
HSA entry points are still taken from the loaded HSA library rather than
`RTLD_NEXT`, since every DSO with a static runtime exports the same
wrappers and they would otherwise chain back into each other.
Build `libclang_rt.csan.so` with the offload objects folded in. The
exported HSA wrappers report failure when HSA is absent and warn when HSA
was loaded ahead of the runtime. The preinit hook moves to a separate
`csan_offload-preinit` archive for executables.
[Clang] Support `-shared-libsan` for offload CSan
Summary:
Follow the UBSan handling. The shared runtime embeds the HSA
interceptors, so `csan_offload` is only linked with static runtimes and
executables pull in `csan_offload-preinit` to initialize early.
[Clang] Add support for the `-fsanitize=concurrency` runtime
Summary:
Add the frontend sanitizer kind, function attributes, pass pipeline
integration, predefined macro, driver handling, and documentation for
ConcurrencySanitizer.