[CIR] Implement local 'cleanup' attribute (#238501)
This patch fixes an 'NYI' for the cleanup attribute and adds tests. This
required a new cleanup scope object (see CallCleanupFunction), but
otherwise was pretty trivial of an implementation. One less NYI :)
[NFC][tsan] Move thread create/start/join/detach bookkeeping into helpers (#238276)
Move the parts of the pthread_create, pthread_join and pthread_detach
interceptors, and of __tsan_thread_start_func, that don't depend on the
pthread API into ThreadCreateCommon, ThreadStartCommon, ThreadJoinCommon
and ThreadDetachCommon.
This prepares for intercepting the C11 thrd_* functions on glibc
(#199585). glibc's thrd_create, thrd_join and thrd_detach call its
internal pthread functions directly, so they bypass these interceptors.
Assisted-by: Claude
Attributor: Only reanalyze functions that may gain call graph references
Reanalyzing the function of every replaced use could remove a call graph
edge before another function added the same reference, failing the trivial
edge assertion with EXPENSIVE_CHECKS in cgscc-new-ref-edge.ll. Only
reanalyze the user's function if the new value may reference a function.
Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
[Demangle] Allow template arguments on the type of a conversion expression
A conversion expression 'cv <type> <expression>' parsed its type with
template-argument parsing disabled, so a template template parameter or
substitution followed by template arguments, as in S1_IT0_E, was not
accepted. No <expression> starts with 'I', so there is no ambiguity.
GCC emits the same form for decltype(S1<T>().~U()); clang's own
mangling of CodeGenCXX/mangle.cpp test51 fun3 hit this and could not be
demangled.
Part of #111345.
LLM-aided
textproc/markterm: Update to 0.17.0
- bump the rebased litehtml submodule at d908f3f8
- regenerate patches against the new sources
Sponsored by: SkunkWerks, GmbH
ports-mgmt/git-proxy: New port - generic caching repository proxy
- serve pkg(8) repositories at /freebsd/${ABI}/${set}/
- serve custom repositories from upstream.freebsd_repositories at
/freebsd/{name}/
- https://github.com/git-pkgs/proxy
- cache many different types of asset and package registries
Sponsored by: SkunkWerks, GmbH
sched: Fix building kernel independently of world
Regular '-I' directives must be passed to ${CPP} so that when
pre-processed, 'sched_ns.h' can find the files it includes in the proper
places, instead of relying on what is in ${WORLDTMP}, i.e., nothing if
'_includes' was not executed, which happens, e.g., when using 'make
kernel-toolchain' and then 'make buildkernel' without having executed
a 'make buildworld', or possibly some outdated copy not matching an
updated source.
Reported by: Claude Opus 5.5, imp
Fixes: 510331fa3763 ("sched: Automatically namespace schedulers' implementation functions")
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D61167
www/monolith: Update to 2.11.6 and take maintainership
While here, claim maintainership after three consecutive maintainer
timeouts.
Changelog: https://github.com/Y2Z/monolith/releases/tag/v2.11.6
PR: 299625
Approved by: lcook (former maintainer, timeout 2 weeks)
[ci] Keep the test-suite checkout alive in the LLVM test-suite LNT runs (#238560)
Due to the K8s issue #226230, downloading the LLVM Test Suite can time
out. Note that it's not sufficient to use the usual GIT_TRACE
workaround, since that only produces output around the download, not
during the download, which seems to be over 5 minutes on bad days for
the LLVM Test Suite.
Assisted by Claude
RuntimeLibcalls: Add signatures for vector stret libcalls
The vector modf, sincos and sincospi stret functions return a pair of
vectors, so describe them with a struct of two vectors.
Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
[Support] Use a 64-bit byte count in SHA1 and SHA256 (#230385)
Change the byte count in SHA1 and SHA256 from `uint32_t` to `uint64_t`:
1. Fix silently wrong SHA1 digests for inputs of 4 GiB or more
2. Fix silently wrong SHA256 digests for inputs of 512 MiB or more
3. Add tests for both cases (only run with
`LLVM_ENABLE_EXPENSIVE_CHECKS`, since they take a few seconds)
Assisted-by: Opus 5.5
Reload lio_ha as STANDBY when demoted without a reboot
vrrp_backup started iscsitarget in LIO mode, which does not reload a
loaded lio_ha. A node demoted without a reboot kept the lio_ha it had
as ACTIVE, with forwarding cleared: as BACKUP it did not forward, and
lio_ha now refuses to set forwarding again. Restart iscsitarget in
that case, which reloads lio_ha with default_forward_active=1.
Check S22's holder by access, not by READ FULL STATUS port
check_s22 looked for the holding registration by its RELATIVE TARGET
PORT IDENTIFIER in READ FULL STATUS. For an ALL_TG_PT registration that
field is not defined (SPC-5 6.16.4) and LIO reports 0, so the check
failed in every phase although the state was correct.
Assert instead that every registration belongs to the ALL_TG_PT
initiator port and that exactly one holds the reservation, and identify
the holding port by access: through the STANDBY port the nexus has a
holder's access, through the ACTIVE port a registered non-holder's.
Add LIO per-I_T-nexus UA/PR and HA failover tests
test_266: LIO ALUA, single node and HA, including hard failover.
test_267: unit attentions are queued and reported per I_T nexus.
test_268: PR identity: ISID, ports, unregistered nexuses.
test_269: PR state across failover and failback (S7 to S22).
conftest.py and iscsi_ua_pr_utils.py hold the shared fixtures and
helpers; the fixtures are opt-in and the existing tests are unaffected.
Set the peer's ALUA group when LIO becomes ACTIVE
On takeover, set_alua_active() wrote only the local controller group.
The peer's group kept the value this node had given it while STANDBY,
ACTIVE/OPTIMIZED. Nothing else rewrote it until the peer came back,
reached lio_ha 'synced' and called refresh_alua_states() on this node.
Until then, REPORT TARGET PORT GROUPS advertised the down peer as the
optimized path. If that remote call failed, the wrong state stayed,
because the failure is only logged.
set_alua_active() now writes both groups. The local group becomes
OPTIMIZED, and the peer's group gets the state the ACTIVE node gives
for the current ha_state: NONOPTIMIZED when synced, UNAVAILABLE when
disconnected, otherwise TRANSITIONING.
refresh_alua_states() uses the same table, so the disconnected case now
writes UNAVAILABLE rather than TRANSITIONING. That matches the table in
utils/lio/config.py, so the reconciler and the event handlers no longer
disagree about the peer's state.
Add context_params to iscsi_scsi_connect()
Pass an optional context_params dict through to python-scsi's
init_device(), so a test can set pre-login iscsi.Context options such
as an explicit ISID. context_params_supported() lets callers skip when
the installed python-scsi predates it.
Also ruff.