[SHT_LLVM_BB_ADDR_MAP] Emit the function GUID for local-linkage functions (#237345)
Add the `-basic-block-address-map-emit-func-guid` flag to emit the
function GUID (the `FuncGUID` feature added in #231675) in the
SHT_LLVM_BB_ADDR_MAP section. The GUID is only emitted for functions
with local linkage, whose symbol names may not be unique across
translation units. Other functions can be identified by their symbol
names, so the feature bit is left unset for them.
The GUID assigned by AssignGUIDPass (`!guid` metadata) is used when
available. Otherwise, it is computed from the module's source file name
and the function's current name, since AssignGUIDPass only runs in the
(Thin)LTO pre-link pipelines.
This also bumps the emitted SHT_LLVM_BB_ADDR_MAP version to 6, which is
required for the FuncGUID feature.
Assisted-by: Claude Opus 5.5
devel/java-subversion: fix JAR install path, typo, NLS init duplication, RUN_DEPENDS
Install svn-javahl.jar under JAVAJARDIR (the ports tree's own
convention for JARs) instead of a non-standard lib/svn-javahl/
subdirectory. Fix a --without-siwg-python typo in CONFIGURE_ARGS.
Switch USES=java to java:build: this port installs a native library
and a JAR, it doesn't invoke java itself, so it has no business
pulling a JDK into RUN_DEPENDS -- the caller that actually loads the
library and the JAR decides which JVM to run, not this port.
Add files/patch-native_JNIUtil.cpp: JNIGlobalInit()'s non-Windows NLS
setup hand-rolled a bindtextdomain() call that duplicates
svn_nls_init() (the same helper every svn_cmdline_init()-based CLI
tool uses); call the real function instead, which also picks up
bind_textdomain_codeset() that the duplicated code was missing.
Bump PORTREVISION_LATEST/PORTREVISION_LTS and add an UPDATING entry
for the JAR path change.
[clang][DepScan] Introduce API to find modulemaps without loading
Introduce a way to batch look up the modulemap that defines
each of a set of module names.
`getModuleMapsForModules` builds a compiler instance from the same
command line as a by-name scan, then does every lookup in a separate
header search with lazy modulemap loading turned on and diagnostics
ignored.
The main use case is to let the Swift dependency scanner
invalidate its serialized dependency graph without the cost of loading
the referenced modules.
* Modulemaps passed with `-fmodule-map-file` are parsed first, all
other modules are resolved by by-name header search.
[clang][HeaderSearch] Introduce API to find a module's module map without loading (#235835)
Add a new public interface `lookupModuleMapFileForModule` that behaves
like `lookupModule` but only relies on parsing modulemaps, except in the
inferred framework case.
* Add a public `parseModuleMapFile` that can parse files passed through
`-fmodule-map-file`.
* Both APIs require lazy modulemap loading enablement.
* Introduce several helpers to support the new API.
Merge tag 'thermal-7.4-rc1-2' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm
Pull thermal control fixes from Rafael Wysocki:
"These fix three issues related to thermal control:
- Fix CPU mask truncation in power limit trace event used by the
power allocator thermal governor (Hungyu Lin)
- Fix code indentation in create_s32_tzp_attr() and rearrange it to
use early return when applicable (Thorsten Blum)
- Allow cross builds of the Intel thermal tests (Sasha Levin)"
* tag 'thermal-7.4-rc1-2' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
thermal: sysfs: Fix indentation in create_s32_tzp_attr()
thermal: Fix CPU mask truncation in power limit trace event
selftests/thermal: allow cross builds of the Intel tests
Address review: don't look up a '\01' name without the global prefix
A symbol without the target's global prefix has no C name, so looking it up
by the rest of its name found a different symbol (e.g. "\01printf" on Darwin
called libc's printf). Fall back to the IR name instead, as ORC's
DynamicLibrarySearchGenerator skips such symbols, and reword the comment. In
the test, drop the redundant -jit-kind=mcjit and add a case for this.
Assisted-by: Claude Opus 5.5
Merge tag 'pm-7.4-rc1-2' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm
Pull power management fixes from Rafael Wysocki:
"These address assorted issues in the power management code and update
documentation:
- Fix potential out-of-bounds access in deferred reset in the cpufreq
statistics code (Zhongqiu Han)
- Cancel HWP notify work in the intel_pstate driver cleanup to
prevent possible use-after-free from occurring (Tristan Madani)
- Adjust state names and descriptions for ACPI _LPI idle states in
the intel_idle driver to make them follow the driver's idle state
naming convention (Rafael Wysocki)
- Document the new pm_runtime_use_autosuspend() undo mechanism that
triggers automatically on driver exit (Joshua Crofts)
[14 lines not shown]
[AMDGPU] Avoid illegal types in the zero/any extend to perm combine (#235846)
performZeroOrAnyExtendCombine runs after type legalization and converts
the byte providers of the extended i16 to i32 with
getBitcastedAnyExtOrTrunc.
A provider can be a vector wider than 32 bits, for example a v8i16
bitcast of a v2i64 half of a <4 x i64> kernel argument.
Bitcasting it to an integer of the same width creates an i128, and
LegalizeDAG asserts with "Unexpected illegal type!".
Both bytes come from the first dword of their provider, so extract that
dword with getDWordFromOffset, as matchPERM does.
Providers of up to 32 bits take the same path as before.
AI-assisted.
Merge tag 'acpi-7.4-rc1-2' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm
Pull ACPI support fixes from Rafael Wysocki:
"These address assorted issues in ACPI support code and work around
concurrency-related issues in AML on some platforms:
- Separate handler locking from sysfs lifetime in the ACPI platform
profile driver to avoid possible deadlocks due to sysfs accesses
during driver removal (Daniel Lezcano)
- Introduce additional locking around the evaluation of selected ACPI
control methods in a few places to work around issues related to
concurrency in AML on some platforms (Ali Ahmet Memiş)
- Address two issues reported by Sashiko in the ACPI table data sysfs
interface (Jamie Nguyen)
- Initialize parser_state.aml_end in acpi_install_method() properly
to avoid out-of-bounds accesses during control method installation
[11 lines not shown]
Write the internal link addresses to truenas_smbhad.conf
truenas_smbhad finds its end of the internal link by binding the two HA
heartbeat addresses and keeping the one that succeeds. TrueNAS sets
net.ipv4.ip_nonlocal_bind, so both binds succeed on either controller
and the daemon gives up with "both HA heartbeat addresses on this
controller": the primary serves smbd unprotected and the standby never
connects, so the standby never holds a copy of the durable handles.
Write local_address and peer_address, which the daemon takes over its
own detection, from the node, as failover.local_ip and
failover.remote_ip do.
[AArch64] Support virtual registers in SME clustering (#233892)
Previously we iterated over physical registers and used
`definesRegister` and `readsRegister` to test exact match with virtual
registers which would always be false. This patch changes the method to
test register class membership directly, and adds support for virtual
registers. The new pre-RA test would fail before this patch
(specifically `fuse_z_write`). The behavior is unchanged for physical
registers. We intentionally do not walk sub-regs/super-regs inside the
helpers because we dont need to as the callers provide exact class
lists. The new helpers takes an array of classes to reduce repeated
def/use iteration overhead.
bnxt: Report SR-IOV VF status
Expose the PF-known effective per-VF MAC, allocated transmit and receive
queue counts, and policy state through the iflib VF status method.
Snapshot the state under the SR-IOV lock so concurrent trust and
anti-spoof sysctl updates cannot produce a torn report. Mark known queue
allocations present even when their value is zero.
Cache a VF-selected MAC only after firmware accepts the forwarded
request. Prefer that address in status. Replay the accepted address,
trust state, and MAC anti-spoof policy after firmware recovery.
Record completion of the per-VF configuration callback separately from
firmware resource allocation.
Track successful PCI SR-IOV attachment independently of the active VF
count. This lets a supported but unconfigured PF return an empty status
while unsupported devices and failed attachments omit it.
[2 lines not shown]
[DAG] LowerShiftByScalarImmediate - early out for shift-by-zero cases (#237365)
Also, add assertions to getGFNICtrlImm that we don't try to shift by
zero
Fixes #235663
[Offload] Manage all allocations through PluginCtx (#234758)
The current Memory Manager was making allocations through the
GenericDevice interface. In the cases, where the PlugintContext
interface calls that interface directly didn't matter, but when there's
a plugin implementation of PluginContext allocations they went through a
different path and were not tracked correctly.
In this PR we change the Memory Manager through alwasy allocate (pooled
& unpooled) memory through the PluginContext (still will go to a simple
device allocation by default) and all tracking done by the
GenericInterface and the Plugins is handled there to ensure consistency
through all paths.
Additionaly, libomptarget no longer uses the default context that was
artificially introduced for it as it has a now a context it can use.
Assisted by Claude.
[clang][deps] Fix printing of object-like macros from dep directives (#200458)
Preserve the necessary whitespace between the macro name and the body
when an object-like macro starts with lparen. Otherwise it accidentally
turns into an invalid function-like macro.
Incidentally extend some tests to verify the resulting printed
directives are valid preprocessing input.
mlx5en: Report the configured RSS tuple selections
Derive SIOCGIFRSSHASH's TCP and UDP selections from the same boot-time
hash configuration used by mlx5e_build_tir_ctx(). The query previously
advertised all six IPv4/IPv6 hash types even when the transport-specific
TIRs selected only the IP addresses. In particular, the default RSS
configuration disables UDP four-tuple hashing.
Continue reporting IPv4 and IPv6 two-tuple hashing unconditionally,
matching the driver's IP-only TIRs. Do not report IPv6 extension-header
variants which the query did not previously claim. Leave key selection,
TIR programming, and the receive datapath unchanged. This lets consumers
such as hn(4) match the VF's hash inputs instead of enabling incompatible
UDP four-tuple hashes on their own receive path.
Fixes: a00718e1dfcd ("Implement SIOCGIFRSSKEY and SIOCGIFRSSHASH and mlx5en(4).")
MFC after: 2 weeks
Sponsored by: BBOX.io
Differential Revision: https://reviews.freebsd.org/D59807
[LV] Model memory runtime checks for inner loops of loop nests in VPlan. (#232794)
Remove the restriction that kept the IR-generated memcheck block for
loops with a parent loop. When hoisting runtime checks, they are
rewritten so they hold across the outer loop and are expanded before the
entry block to the VPlan, using the regular IR expander.
This patch exposes getRuntimeCheckBounds, which does the rewrite, and
marks such rewritten bounds as requiring expansion in IR. VPSCEVExpander
takes a loop as optional argument and uses VPExpandSCEVRecipes for
expressions that are invariant in the loop.
PR: https://github.com/llvm/llvm-project/pull/232794
mlx5en: Report SR-IOV VF status
Query each enabled eswitch vport to report its effective MAC and VLAN
configuration and administrative link-state policy. Serialize the
query with vport enable and disable, and hold the interface state lock
so teardown joins an in-progress report.
Propagate firmware errors from MAC, administrative link-state, and
supported VLAN queries instead of returning a partially initialized
configuration. When the hardware lacks CVLAN enforcement, report the
remaining status with no imposed access VLAN.
Reviewed by: kib
Differential Revision: https://reviews.freebsd.org/D58740
Merge branch 'main' into users/void/pbqp-inline-asm-error
bd51cc5c5556 (#226523) made RegAllocBase::RegClassInfo a pointer to the
shared RegisterClassInfo, so the call to assignFailedVirtReg() dereferences it.
Assisted-by: Claude Opus 5.5
tpm20: Preserve all harvested random bytes
The TPM requests 16 random bytes every ten seconds, but a random
harvest event retains at most eight bytes. random_harvest_queue()
reduces a larger input to one 32-bit Jenkins hash, so each successful
TPM request contributed only four bytes to the entropy accumulator.
Split the response into harvest event sized chunks. This preserves all
16 random bytes without increasing the TPM command rate or changing its
high quality source classification.
MFC after: 2 weeks
Sponsored by: BBOX.io
Differential Revision: https://reviews.freebsd.org/D59246