[libc] Add POSIX-mandated transitive header inclusion to three headers. (#237436)
Per POSIX standard:
* `<sys/sem.h>` shall include the `<sys/ipc.h>` header
* Inclusion of the `<threads.h>` header shall make
symbols defined in the header `<time.h>` visible.
* Inclusion of the `<pthread.h>` header shall make symbols
defined in the headers `<sched.h>` and `<time.h>` visible.
There are real-world programs which correctly rely on this
behavior.
Implement all of the above using `public_includes` feature in YAML
config
to add transitive inclusions to generated headers. Technically speaking,
we can "make symbols visible" using other mechanisms, but simple
transitive inclusion is by far the easiest one.
iavf: Reconcile VLAN filters with acknowledged requests
Track desired and acknowledged VLAN membership separately. Retain
pending deletions and uncertain state after failed requests instead of
losing the work when a message is submitted. Make repeated registration
idempotent.
Adapt DPDK's synchronous, single-VID virtchnl request shape and the
bounded desired-state reconciliation used by igbv and ixv. Serialize
VLAN requests under the existing virtchnl mutex, with filter-list
changes under the iflib context lock. Preserve an unresolved
transaction so a late reply cannot be mistaken for a newer operation,
including after the desired state changes.
Reconcile live membership changes without restarting healthy queues.
Limit each pass to 32 requests and a one-second reply deadline,
continuing live batches from the admin task. Down or recovering VFs
apply desired state at initialization; initialization batches continue
through the existing retry callout without rediscovering the mailbox or
[14 lines not shown]
[MachineOutliner] Skip returns_twice functions (#237875)
fixes: #237874
If a function returns twice, or calls a function that can return twice,
skip it. The context saved by functions such as `setjmp` will be
different if they take place within an outlined function. Ex: Saved
stack pointer will be different.
Was able to trigger a crash by outlining a call to a returns_twice
function.
Reject receive transfers whose descriptor frame length exceeds the data
actually transferred. The descriptor carries a 12-bit frame length and
the chip accepts frames up to 4095 bytes, but a receive transfer only has
MCLBYTES minus the descriptor for frame data.
Trusting the descriptor produced an mbuf extending past its cluster.
A fragmented IPv4 datagram then carried it into m_cat(), where a default
kernel panics on a DIAGNOSTIC assertion.
Report and diff from Acts1631.
ok miod@ claudio@ kettenis@
[clang][NFC] Test Linux/Windows Multilib Resource Dirs (#238147)
This is another follow-up to 78820cb91605693b7d768be4ebc8b66181d3e9c3 to
show the behaviour of resource dir resolution after that change.
Assisted-by: AI
x11-themes/ventanas-10: New port: Openbox theme with a look similar to Windows 10
Ventanas-10 is a fork of the B00merang-Project's Windows-10 theme,
but with the following differences:
- The minimize, close, and maximize buttons change color when you
hover over them.
- Dark mode only.
- For Openbox only.
- The max_toggled.xbm image has been implemented to give it a look
similar to Windows 10.
WWW: https://github.com/dtxdf/Ventanas-10/
x11-fonts/selawik: New port: Selawik is an open source replacement for Segoe UI
Selawik is an open source replacement for Segoe UI, the default
system font used in Windows. It is metrically compatible with Segoe UI,
which means that switching between the two fonts will not alter the
layout of documents or interfaces.
WWW: https://github.com/microsoft/Selawik
x11-wm/devilspie2-devel: New port: Window manipulation tool
Devilspie2 is a window-matching utility, allowing the user to perform
scripted actions on windows as they are created. For example, you can
script a terminal program to always be positioned at a specific screen
position, or position a window on a specific workspace.
Devilspie2 is based on the program Devilspie by Ross Burton. The
difference is that Devilspie2 has replaced the symbolic expressions of
the original with a Lua interpreter, making it much easier to maintain
and extend.
Please note that the rules of Devilspie2 are not compatible with the
symbolic expressions of the original Devilspie.
WWW: https://www.nongnu.org/devilspie2/
Join short wrapped RUN lines
Removing -verify-machineinstrs shortened these RUN lines enough to fit
on a single line of at most 100 columns.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply at anthropic.com>
Restore indentation of wrapped RUN line continuations
Removing -verify-machineinstrs from the start of a continuation line
also dropped its indentation.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply at anthropic.com>
CodeGen: Remove -verify-machineinstrs from llc -passes MIR tests
With the new pass manager, -verify-machineinstrs does not add a
verifier after each pass; only -verify-each does. Bizarrely, instead
it suppresses the verifier llc runs at the end of the pipeline, so
removing it enables verification of the output. This is probably a
bug, but I think the plan is to replace this flag in the new PM
anyway.
Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
CodeGen: Remove -verify-machineinstrs from single -run-pass MIR tests (#238144)
Since #228248 / 66366908, llc verifies MIR output by default. MIR
inputs were always verified so for an llc invocation running exactly
one pass with -run-pass, the -verify-machineinstrs flag does nothing
so these flags are pointless. We should more aggressively trim
-verify-machineinstrs uses in the future, but this covers the cases
that don't change behavior. This removal was performed by generated
script.
Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
[InstCombine] Preserve select weights when sinking frexp through a select (#237367)
foldFrexpOfSelect rebuilds the operation using the original condition
and a constant mantissa value. Copy the original select's branch weights
to the replacement to preserve profiling information.
RuntimeLibcalls: Handle int and long size more similarly
Previously we eagerly computed the int size and passed it through all
the various functions to get the type signature. The long cases were
evaluated in the context that need a long. Treat these the same way
which reduces the number of arguments passed around.
[SPIRV] Ensure `MachineIRBuilder` is always in a valid state (#236948)
If `MachineIRBuilder` hasn't yet done any work it doesn't have a valid
insertion point. We were erroneously assuming that this is not the case,
and thus were directly calling `getMBB()` when it was not legal to do
so. This patch makes it so that we only query the old MBB if we get a
valid insertion point.
[MemProf] Resolve alias ValueInfo in ThinLTO backend summary lookup (#238162)
Synthesized MemProf callsite records for missing tail-call frames are
keyed by the callee's summary entry, which for an alias target is its
AliasSummary rather than its aliasee's FunctionSummary.
In the ThinLTO backend, two paths looked up the aliasee instead, missing
those records and leaving callers uncloned with undefined .memprof.*
references at link time:
1. Alias definitions imported via replaceAliasWithAliasee retain the
aliasee's !guid metadata for body-level profile passes, so querying
F.getGUID() matched the aliasee's ValueInfo and could also resolve
the imported alias copy itself to an imported aliasee's
FunctionSummary instead of skipping it.
2. Direct tail calls to a same-module GlobalAlias resolved the callee to
its aliasee Function before looking up its ValueInfo.
Attach thinlto_alias_guid metadata when importing alias definitions,
[4 lines not shown]
CI: stop QEMU dependency preparation on failure
The dependency wrapper continues after failed boot checks, transfers and
remote preparation. It can then wait for a guest that never powers off,
or return success after losing the original error.
Select Bash explicitly and stop on failed commands so the calling
workflow receives the preparation failure immediately.
Reviewed-by: Brian Behlendorf <behlendorf1 at llnl.gov>
Reviewed-by: Tony Hutter <hutter2 at llnl.gov>
Signed-off-by: Kamil Monicz <kamil at monicz.dev>
Closes #19462
[lldb] Name GDB-remote communication channels (#237417)
Give every GDB-remote communication channel a stable name and include
that name in packet logs. This makes simultaneous native and accelerator
connections distinguishable without relying on object addresses.
The existing client broadcaster name is reused for its communication
channel. LLGS instances now identify native and mock-accelerator servers
separately, and lldb-platform has its own server label.
A focused unit test verifies that send and receive packet logs carry the
correct channel identity.
Testing:
- Built lldb-server and ProcessGdbRemoteTests with the mock accelerator
enabled
- All 52 ProcessGdbRemoteTests pass
- LLVM pinned clang-format check passes
- git diff --check passes
[RISCV] Build register pairs directly for byte vector lowering
Use BuildPairGPRVec when lowering RV32 packed byte build vectors.
The PPAIRE sequence only needs the low byte of each scalar register.
Constructing pairs through scalar-to-vector concatenations lets DAG
folding turn them into build vectors that unnecessarily pack undefined
lanes.