[compiler-rt][libc][GPU] Fix 7 builtin unit test build failure for spirv64 targets (#236324)
When building compiler-rt builtin unit test for spirv64 target, we
encountered a bunch of build failure due to missing symbols from libm
and libc. This PR adds part of required symbols needed by those tests
which can make 7 failed unit tests to build pass.
Using following command to build llvm-project:
cmake ../llvm -G Ninja -DLLVM_ENABLE_PROJECTS="clang"
-DRUNTIMES_spirv64-unknown-unknown_LLVM_ENABLE_RUNTIMES="compiler-rt;libc"
-DLLVM_RUNTIME_TARGETS="default;spirv64-unknown-unknown"
-DRUNTIMES_spirv64-unknown-unknown_COMPILER_RT_INCLUDE_TESTS=ON
-DRUNTIMES_spirv64-unknown-unknown_COMPILER_RT_EMULATOR=/bin/true
ninja all
ninja check-compiler-rt-spirv64-unknown-unknown
Before the fix, the build result was:
Total Discovered Tests: 275
Unsupported: 125 (45.45%)
Passed : 123 (44.73%)
Failed : 27 (9.82%)
[14 lines not shown]
usb: support SSP and SSPx2 xHCI
Only the default PSI IDs are supported, other controllers fall back to
USB 3.0. Record the speed IDs the controller has: the root hub BOS
lists those, and a link without one uses the closest lower ID.
Per xHCI 6.2.2, take the parent hub slot ID and port number of SS and
SSP devices from the closest higher-rank hub.
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D52347
usb: Add support for SSP and SSPx2 hubs
An SSP hub reports its sublink speeds in the BOS descriptor, and
Extended Port Status tells which one each port uses. Read it based on
bcdUSB, since the ports of a hub can be faster than its upstream link.
Without it, the ports are treated as SuperSpeed.
Read the speed again in usbd_req_re_enumerate(), since a link can come
back at another speed.
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D57204
usb: Implement usbd_req_get_bos_descriptor helper
Get the header or the complete BOS descriptor of SS+ devices.
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D57202
usb: Add get_ext_port_status helper function
usbd_req_get_ext_port_status() wraps the Get Extended Port Status
request.
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D57201
usb: Add usbd_bos_foreach helper
Iterate the capabilities of a BOS descriptor.
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D57199
usb: Add SSPlus device capability descriptor
Add the SuperSpeedPlus USB Device Capability descriptor and its field
macros.
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D57203
usb: Add extended port status struct
Extended Port Status reports the speed and lane count of SS and SSP
links.
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D57200
usb: support SSP/SSPx2 devices in all-speed consumers
Handle the new speeds wherever USB_SPEED_SUPER was checked. Most
consumers treat them as SS.
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D57198
usbdump: Support SSP and SSPx2 speed display
Add the SuperSpeedPlus speed names.
Reviewed by: bz
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D57197
libusb: Add SSP and SSPx2 enum support
Report the new kernel speeds as LIBUSB20_SPEED_SUPER_PLUS.
Reviewed by: bz
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D57195
usb: Add SSP and SSPx2 speed and move USB_*_MAX into enum
Add the USB 3.1 and 3.2 speeds and revisions. The speeds are in USB
3.2 rank order, so they can be compared directly.
Also, move USB_*_MAX into the enums.
Reviewed by: bz
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D57194
usbconfig: Add SSPx2 support
libusb has one speed for all SSP links, so print "SUPER+ (>=10Gbps)".
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D57196
Revise patch submission guidelines in Contributing.md (#235729)
There have been a few people who have been confused by the single commit
rule in this document.
Meaning they think they need to rebase/squash on every commit. This
hopefully clarifies it is only for the first commit. I also took the
liberty while in this file to just remove some duplication and link to
the actual areas that provide more detail.
[BOLT] Avoid temporary sections during symbol discovery (#237150)
`discoverFileObjects()` constructs a temporary `BinarySection` for every
candidate symbol merely to test allocation flags. This is expensive for
binaries with tens of millions of symbols (e.g. large RISC-V binaries
linked with `--emit-relocs,` which retain many local symbols referenced
by relocations needed to support linker relaxation). Inspect the ELF
section flags directly and reuse the retrieved symbol flags.
[SimplifyCFG] Thread loop header edges when the loop remains canonical (#232541)
When NeedCanonicalLoop is set, foldCondBranchOnValueKnownInPredecessor
rejected all loop headers to avoid redirecting a backedge into the
middle
of a loop and forming a cycle that bypasses the header.
Allow threading when every threaded predecessor is dominated by the
header and the destination cannot reach those predecessors without
passing through the header (e.g. a latch edge branching to a loop exit).
ufshci: fix the WLUN peripheral lookup timeout
The timeout in ufshci_sim_find_periph() is uint64_t, making the
comparison of timeout - ticks with zero always false. If the requested
peripheral does not become available, the lookup can wait indefinitely.
Use an sbintime_t deadline based on sbinuptime() and mstosbt(), and
compare the current uptime directly with the deadline. Preserve the
successful lookup path and existing timeout cleanup.
On an HP 15-fd0118ca with Intel N150 and Samsung UFS 3.1 storage, a
kernel built from stable/15 revision 84aa3cb3204d with this change
logged the missing-WLUN timeout, attached da0 and mounted root in two
boot trials.
Signed-off-by: Denis Lemire <denis at lemire.name>
Reviewed by: jaeyoon
Fixes: 31407551c3d4 ("ufshci: Add a check for WLUN during driver initialization")
MFC after: 3 days
[3 lines not shown]
pkg: Enable FreeBSD-base by default
Enable the FreeBSD-base repository in all of the /etc/pkg/FreeBSD.conf
variants, and remove code from various install paths which enabled the
repository via /usr/local/etc/pkg/repos/FreeBSD.conf.
Relnotes: yes
Differential Revision: https://reviews.freebsd.org/D60946
release: No distribution sets by default
Remove the "NODISTSETS" option and add a "DISTSETS" option. This
option will remain, disabled by default, for the duration of the
16.x branch but will be removed in 17.0.
With hat: re
Relnotes: yes
Differential Revision: https://reviews.freebsd.org/D60945
GCE: Copy /usr/{src,ports} directly
Distribution sets are going away, so we can't extract those into GCE
images for all-source-code-included compliance purposes.
Differential Revision: https://reviews.freebsd.org/D60944
[clang][OpenMP] Don't declare HIP's ::min and ::max in an OpenMP TU (#225162)
`__clang_hip_math.h` declares templated `::min` and `::max` as a CUDA
source-compatibility extension. `openmp_wrappers/math.h` includes that
header inside the `amdgcn` declare variant, so the amdgcn device pass of
an *OpenMP* translation unit — ordinary C++ that never opted into HIP or
CUDA — also gets them.
An unqualified `min(a, b)` after `using namespace std` is then ambiguous
against `std::min`, so the TU fails to compile in the device pass while
compiling fine in the host pass:
```c++
#include <algorithm>
using namespace std;
long f(long a, long b) { return min(a, b); } // error: call to 'min' is ambiguous
```
`::min` and `::max` are not names the implementation may reserve in a
[17 lines not shown]
iavf: Handle queue disable during reset recovery
Some PFs reject a redundant DISABLE_QUEUES request after queues have
already stopped. The historical driver retried the request but
continued. The mailbox recovery change instead treated this NACK as a
transport failure, tore down the Admin Queue without a VF reset, and
could not recover the interface during API rediscovery.
Track a PF's pre-reset warning separately from an observed reset and
from exclusive ownership of polled AdminQ replies. RESET_IMPENDING
leaves asynchronous AdminQ processing available so a concurrent stop
can consume its DISABLE_QUEUES reply. VC_POLLING protects VERSION and
GET_VF_RESOURCES rediscovery without blocking that reply. Record
completed resets so subsequent stop/init operations do not issue a
redundant queue-disable request.
If queue disable is not confirmed, wait for an observed reset or request
a VF reset and wait for completion. Give queue shutdown a separate
60-second monotonic deadline to accommodate slow PF reset recovery.
[21 lines not shown]
fibers: Update to 2.0.0
fibers 2.0.0 -- 2026-10-31
==========================
* Use a monotonic clock for ‘sleep’ to gracefully handle real-time clock jumps
https://codeberg.org/guile/fibers/issues/89
* Incompatible change: ‘timer-operation’ has been removed due to the above
* New module ‘(fibers ivars)’ providing write-once, read-many
synchronous variables.
https://codeberg.org/guile/fibers/issues/100
* Fix potential infinite loop in timer wheels on choice operations
https://codeberg.org/guile/fibers/issues/183
* New #:init-thunk parameter of ‘run-server’ from (fibers web server)