AMDGPU/GlobalISel: Switch to extended LLTs
Switch is required to be able to translate bfloat.
After the switch most of the codegen patterns now require explicit
type on register to match instead of LLT::scalar.
So we can still use LLT::scalar for type checks but new instructions
created during lowerings/combines need to use propper extended LLT.
inst select test sources fully switched to i32/f32 so patterns can match
for legalizer and regbanklegalize left as is (should probably be switched
as well)
New functionality worth noting is f16 and bitcast lowering to i32
f16 = g_bitcast i16
->
i32 = g_anyext i16
f16 = g_trunc i32
f16 = trunc i32 is legal
[libc] Pass -c to compiler when detecting target (#197012)
Follow-up to #176680 where I claimed having done this, but apparantly
didn't actually add it to the commit.
Hopefully no observable behavior change; will tell the compiler to omit
linker info in its output, which we don't need for this detection step.
bsdinstall: do pkgbase installations with the "script" command
"bsdinstall script" will now do a pkgbase installation by default. The
system components to install can be specified in the COMPONENTS
variable, and have the same names as those used in the interactive
installer. bsdinstall will still do a legacy distset installation if
DISTRIBUTIONS is defined in the installerconfig file.
MFC: 1 week
PR: 290375
Sponsored by: ConnectWise
Reviewed by: ziaee, ivy, jduran
Differential Revision: https://reviews.freebsd.org/D56717
kicad-*: Update to 10.0.1
KiCad 10.0.1 (2026-04-15)
The 10.0.1 stable version contains critical bug fixes and other minor
improvements since the previous release.
A list of all of the fixed issues since the 10.0.1 release can be
found on the KiCad 10.0.1 milestone page.
KiCad 10.0.0 (2026-03-20)
Most, if not all, of the new features as well as usability
improvements in KiCad 10 are described in a running thread on the
KiCad user forum. Wayne Stambaugh also presented them in his FOSDEM
2026 talk which is available to watch on the FOSDEM website. This post
highlights some of the most exciting changes, but make sure to check
out the forum post for a full list. There were also hundreds of bug
fixes, performance improvements, and other smaller changes since KiCad
9. A full list of issues addressed in KiCad 10 can be found on the
[8 lines not shown]
libspnav: Add libspnav-1.2
Libspnav is a C library for receiving input from 6 degrees-of-freedom
(6dof) input devices, also known as spacemice, spaceballs, etc. 6dof
input is very useful for fluidly manipulating objects or viewpoints in
3D space, and fundamendally comprises of relative movement
(translation) across 3 axes (TX/TY/TZ), and rotation about 3 axes
(RX/RY/RZ).
Libspnav is a counterpart to the free spacenav driver (spacenavd),
which runs as a system daemon, and handles all the low level
interfacing with the actual devices. However, it can also communicate
with the proprietary 3Dconnexion driver (3dxsrv), with reduced
functionality.
if_eqos_starfive: Read MAC address from device tree
u-boot/opensbi determines the ethernet MAC address from ROM and passes
it to the OS in the device tree. This change sets the correct MAC
address from this source. This prevents the eqos class driver from
generating random MAC addresses at each boot.
Tested on Starfive VisionFive 2, riscv64 SBC.
Reviewed by: mhorne
MFC after: 1 week
Differential Revision: https://reviews.freebsd.org/D56782
g_part,mkimg: Add additional GPT partition types
Add the hifive-fsbl, hifive-bbl, and xbootldr aliases to mkimg(1).
Add the xbootldr alias to geom(4), and thus gpart(8).
The "hifive" partition types are defined and used by various RISC-V SBCs
for locating firmware.
"xbootldr", or the Extended Boot Loader Partition is defined here:
https://uapi-group.org/specifications/specs/boot_loader_specification/
Reviewed by: emaste, markj, mhorne
MFC after: 1 week
Differential Revision: https://reviews.freebsd.org/D56784
[Support] Add a function to print the debug log (#197184)
With `EnableDebugBuffering`, the debug log is stored in a circular
buffer and printed, with a nice banner, on program termination - this is
achieved via a signal handler. For in-process tool execution, such as
for running the regression tests using daemon versions of the tools, we
need to be able to trigger the printing/flushing of the debug log from
the process itself. This PR just adds a small function `printDebugLog`
which checks if debug output and debug log buffering are enabled and, if
so, prints the debug log.
The code for printing the debug log in the signal handler is moved to a
new function `printDebugLogImpl` which is called by the signal handler
and `printDebugLog` - the reason this is separate from `printDebugLog`
is to avoid running the option check in the signal handler
implementation, in case options were reset before the signal handler is
called, as this would be an unintentional behavioral change.
[Clang] Fix assertion when __block is used on global variables in C mode (#194856)
This is a reland PR, related to #183988
I added an extra check in handleBlocksAttr to ensure that illegal Decl
values are not passed to downstream functions.
And remove unnecessary check in `CheckCompleteVariableDeclaration`.
Also added a extra regression test.
Fixes #183974
[AMDGPU] Optimize fneg and fsub with packed fp16 ops (#196659)
The work optimize fneg and fsub when packed half math instructions are supported.
On global isel path, for wider vectors of G_FSUB with element type of f16, we should
split them to v2f16 for v_pk_add_f16 to be selected.
On SelectionDAG path, we make FNEG legal, and also make sure to split wider vectors
to v2f16. In this way, we can fold fneg into the source modifiers for packed half ops.
[libc] Build with -Wshadow (#196519)
This way, clients including libc/shared/math.h don't need to `#pragma
GCC diagnostic ignored "-Wshadow"` around the include.
This works locally after #196337 #196342 #196346.
CI also needed #196529 #196810 #196850 #196851 #196852 #196853 #196855
#196857 #196858 #196859 #196860.
[AArch64][ISel] Add custom lowering for clmul nxv8i16 (#195893)
When sve2/sme are available, this sequence provides faster and smaller
codegen than the current lowering:
```
clmul.i16(a, b) = xor(pmullb(a_lo, b_lo),
lsl(xor(pmul(a_hi, b_lo),
pmul(a_lo, b_hi)),
8))
```
Assisted-by: codex with gpt-5.5
update python/3 to 3.14.4, ok tb (who also helped with build tests and
fixing up other ports etc), daniel
a few changes to follow
_MODPY_SYSTEM_VERSION bumped rather than bumping ERANGE ports
[z/OS] Add z/OS archive reading support (#187110)
Add support for reading `z/OS` archives, which use EBCDIC-encoded header
fields and an EBCDIC magic string. The `z/OS` archive format shares the
same structural layout as traditional Unix archives but all text fields
(member names, timestamps, permissions, and symbol names) are in EBCDIC.
This patch adds:
- `K_ZOS` archive kind
- `ZOSArchiveMemberHeader`: converts EBCDIC header fields to ASCII on
read
- `ZOSArchive`: parses the __.SYMDEF symbol table, converting EBCDIC
symbol names to ASCII
- Updates to symbol table traversal for `K_ZOS`, which uses big-endian
4-byte offsets paired with 4-byte attribute words per symbol
This is part 2 of a patch series adding `z/OS` archive support to LLVM.
Part 1: #186854
[AMDGPU] Handle high element extraction with G_UNMERGE_VALUES (#188287)
This allows to detect when G_UNMERGE_VALUES extracts a hi16 element and
select `s_cvt_hi_f32_f16` removing need for a shift.
[clang][NFC] Mark CWG743 and CWG950 as implemented and add tests (#197015)
[CWG743](https://wg21.link/cwg743) allows using `decltype` in a
*nested-name-specifier*, i.e.: `decltype(foo)::type`.
[CWG950](https://wg21.link/cwg950) allows using it as a
*base-specifier*, i.e.: `struct B : decltype(foo)`. Both these DRs were
resolved by [N3049](https://wg21.link/n3049).
Clang supports both of these since 3.1: https://godbolt.org/z/aohPs5zaa