[llvm][clang] Sandbox filesystem reads (#165350)
This PR introduces a new mechanism for enforcing a sandbox around
filesystem reads coming from the compiler. A fatal error is raised
whenever the `llvm::sys::fs`, `llvm::MemoryBuffer::getFile*()` APIs get
used directly instead of going through the "blessed" virtual interface
of `llvm::vfs::FileSystem`.
emulators/fmsx: minor update to pkg-message
Update URL in pkg-message to be usable with modern web browsers
changing FTP to HTTP site. Note that http:// is used deliberately
instead of https:// because its SSL certificate does not cover
"ftp.komkon.org" for the moment.
[libc] Refactor static polymorphism in WriteBuffer (NFC). (#169089)
There are three flavors of WriteBuffer currently, all of which could be
passed into `printf_core::Writer` class. It's a tricky class, since it
chooses a flavor-specific logic either based on runtime dispatch (to
save code size and prevent generating three versions of the entirety of
printf_core), or based on template arguments (to avoid dealing with
function pointers in codegen for `FILL_BUFF_AND_DROP_OVERFLOW` path).
Refactor this somewhat convoluted logic to have three concrete
subclasses inheriting from the templated base class, and use static
polymorphism with `reinterpret_cast` to implement dispatching above. Now
we can actually have flavor-specific fields, constructors, and methods
(e.g. `flush_to_stream` is now a method of `FlushingBuffer`), and the
code on the user side is cleaner: the complexity of enabling/disabling
runtime-dispatch and using proper template arguments is now localized in
`writer.h`.
This code will need to be further templatized to support buffers of type
`wchar_t` to implement `swprintf()` and friends. This change would make
it (ever so slightly) easier.
[scudo] Show the resident pages from the secondary cache. (#170568)
Move the test utility to get the resident pages into linux.cpp.
Add some specific tests for this function.
Add displaying of resident pages from in the secondary cache when
calling getStats.
net/wifi-firmware-iwlwifi-kmod: update firmware to 20251021
Intel firmware for BE200 ("bz" chipsets) requires more modern firmware
than we provide. [1]
The firmware file for iwlwifi-so-a0-gf4-a0 was missing in a recent
version; we only had the pnvm file. [2]
Update the Intel iwlwifi firmware to the latest tree
which brings a few changes:
(1) on linux-firmware.git the firmware got moved into a subdirectory
so we need to strip that path before installing as the driver
still expects the firmware in the top-level directory.
(2) the "bz" firmware gets bumped to 101, we keep the old version for
14.3-R around as well.
(3) while the other files keep their revisions, Intel may have updated
them with rebuilds. This is hard to discover given not only the
hashes but also the paths have changed in distinfo.
(4) we now generate the firmware list from the WHENCE file in
linux-firmware.git given the driver firmware name creation is too
[7 lines not shown]
net/wifi-firmware-kmod: allow ONLY_FOR_ARCHS to be set by child ports
mtw(4) is built along USB for all architectures so we need firmware
on all architectures -- unlike the LinuxKPI based wireless drivers
which are restricted by default.
Allow ONLY_FOR_ARCHS to be set in a child port; maintaing a full list
of supported ARCHes seems unreasonable though so allow NOT_FOR_ARCHS
to disable the ONLY_FOR_ARCHS logic in Makefile.inc. That way
wifi-firmware-mt7601u-kmod can define an empty NOT_FOR_ARCHS and
it should build on all ARCHes.
Sponsored by: The FreeBSD Foundation
Reviewed by: jrm
Differential Revision: https://reviews.freebsd.org/D53788
net/wifi-firmware-kmod: remove obsolete kernel module build code
All supported FreeBSD versions either shipped firmware along with
source and do not need this, or they support plain firmware file
loading.
Remove the now obsolete kernel module build code to simplify the
logic in the file. Further cleanup will be done once 13.5-R is
out of support in a few months.
Sponsored by: The FreeBSD Foundation
Reviewed by: jrm
Differential Revision: https://reviews.freebsd.org/D53679
net/wifi-firmware-kmod: generalize iwlwifi specific tunable writing
Currently iwlwifi(4) is the only LinuxKPI based wireless driver able
to enable 11n/11ac. bz has added tunables to rtw88 and rtw89 in order
to allow them to gradually enable more modern standards as well.
Generalize the ports framework to not be iwlwifi-specifc anymore
in order to prepare for Realtek and others to gain 11n and 11ac
support.
At some point in time, along with a kernel change, we will then flip
the defaults and make this a "disable" rather than an enable option.
Sponsored by: The FreeBSD Foundation
Reviewers: jrm
Differential Revision: https://reviews.freebsd.org/D53789
net/wifi-firmware-kmod: add STRIP_FWSUBDIR logic
iwlwififw(4) got moved into a subdirectory in the linux-firmware.git
but the driver still expects the firmware at the toplevel.
The longer-term solution would be to create symlinks as the WHENCE
file indicates but for the moment use the less intrusive version
simply stripping the subdir during 'extract'.
Sponsored by: The FreeBSD Foundation
Reported by: jrm
Differential Revision: https://reviews.freebsd.org/D53680
workflows/upload-release-artifact: Upload a separate attestation for each artifact (#171525)
This will simplify the process of verifying the assets, because the
attestation file for $file will be $file.jsonl. Otherwise, it's not
clear which attestation file goes with which asset.
The C++ dynamic typing tests are failing on Windows, skip for now. (#171922)
This is a follow-on to:
https://github.com/llvm/llvm-project/pull/168611
which added a bunch of tests for detecting dynamic types of C++ result
variables. I don't actually know how well dynamic type detection works
on Windows if at all. It would require Windows support, since the
Linux/Darwin version is specific to the Itanium ABI.
[RISCV] Remove now unused ixlenimm Operand. NFC (#171896)
Going forward I think we should add Operands with specific OperandType
so we no longer need a generic immediate Operand.
[BOLT][AArch64] Tweak heuristics for epilogue recognition (#169584)
If a basic block contains a load into LR from stack and has no
instruction saving LR onto stack, we just assume the basic block
is an epilogue.
This is not meant to accurately recognize epilogue in all possible
cases, but to have BOLT be conservative on treating basic block as
epilogue and then turning indirect branch with unknown control flow
to tail call.
[CIR] Make CIR-to-LLVM a one shot conversion
This had to fix memory and conversion bugs due to now immediate
conversion patterns and no longer present original MLIR.
[M68k] Emit MOV16ds for moves from CCR on 68000 (#171703)
This also marks CCR as a subregister of SR, which allows the value of SR
to be tracked with respect to CCR. Finally, removes the 68010
requirement from moves from SR; this is a user mode instruction on
68000.
Fixes #85686
[Hexagon] Add HVX patterns for vector arithmetic (#170704)
This patch Introduces instruction selection patterns to generate the
vsub, vadd, vmpy, vmin, and vmax HVX vector instructions. These patterns
match on standard IR-level vector operations and lower them to the
corresponding Hexagon HVX intrinsics.
Patch By: Fateme Hosseini
Co-authored-by: Jyotsna Verma <jverma at qti.qualcomm.com>