18536 door servers should use DOOR_PARAM_DATA_MIN to reject undersized requests
Reviewed by: Bill Sommerfeld <sommerfeld at hamachi.org>
Reviewed by: Dan McDonald <danmcd at oxide.computer>
Approved by: Gordon Ross <gordon.w.ross at gmail.com>
[HLSL][Driver][SPIRV] Default -fspv-extension to the DXC extension set (#239374)
Without `-fspv-extension`, `clang-dxc -spirv` passes `-spirv-ext=all`,
which causes Vulkan modules to declare extensions such as `SPV_KHR_fma`,
`SPV_KHR_float_controls2` and `SPV_EXT_long_vector`. Applications that
did not enable the matching features fail validation. This does not
happen to DXC's modules for the same shaders.
This change passes the list that `-fspv-extension=DXC` produces instead.
`-fspv-extension=all` restores the old behavior.
`dxc_fspv_extension.hlsl` checks the default list and
`-fspv-extension=all`.
Fixes [#237364](https://github.com/llvm/llvm-project/issues/237364).
[Offload] Remove unused helper and include dir (#242352)
Removed one liboffload helper that somehow I missed before (only RR
remain and adjust the comment to reflect that).
Removed an include path for the plugins directory from the kernel
languages directory that was unnecessary.
[AArch64][COST]Split aligned non-pow2 loads/stores too
Aligned non-pow2 vectors are decomposed into pow2 pieces just like
unaligned ones, so drop the align-1 restriction. A load aligned to
the widened tail size reads the whole tail at once.
Required to support non-power-of-2 vectorization in SLP
Assisted-by: Cursor
Pull-request: https://github.com/llvm/llvm-project/pull/238379
Reviewers: davemgreen, david-arm, huntergr-arm, john-brawn-arm, paulwalker-arm, sdesmalen-arm
Reviewed-by: john-brawn-arm
[dsymutil] Undo prefix mapping before resolving paths for ODR uniquing
The classic linker resolves the declaration file of a type with
realpath() to tell apart types with the same name, line and size. For
paths remapped by compilation caching, which don't exist on disk,
realpath() fails and only the file name is left, so different types
declared in headers with the same name in different directories were
merged. Undo the prefix mapping from compilation-prefix-map.json first.
[dsymutil] Support compilation-prefix-map.json from compilation caching
Compilation caching can prefix map the paths that the compiler sees, so
that cache keys don't depend on where the build happens, for example
/path/to/project becomes /^src. The build system records the mapping in
a compilation-prefix-map.json file in a parent directory of the object
files, as a JSON object from each remapped prefix to the original one.
dsymutil didn't support it, so it used the remapped paths from the
debug info as is: it failed to copy the Swift interfaces that the debug
info refers to, didn't recognize interfaces from the SDK or the
toolchain that it should skip, and wrote the remapped paths into the
dSYM.
Load the compilation-prefix-map.json closest to each object file, and
use it to find Swift interfaces and Clang modules, and to restore the
original paths in the path attributes and line tables of the linked
debug info. Clang modules use the map of the object file that refers to
them. -object-prefix-map still only applies to looking up Clang
[6 lines not shown]
[X86][KCFI] Check indirect calls that are invokes (#242471)
Without this, `try { p(); } catch (...) { f(); }` compiles to a bare
`callq *%rdi` under `-fsanitize=kcfi -fexceptions`, where the same call
outside of the `try` is checked.
This changes X86 to match other architectures and pass the kCFI type on
both `call` and `invoke`.
There are other things looking at indirect calls only for `CallInst` in
this routine, and they should probably be checked to see if they should
change in a similar way, but the only place where I have a clear test
case is for kCFI so this is a narrow change just to address that.
The existing test of an invoke, `f9` in `llvm/test/CodeGen/X86/kcfi.ll`
(from #148742), doesn't notice: its landing pad only resumes, so the
invoke is turned into a call before instruction selection.
Assisted-by: Antigravity with Gemini
mancheck: locate the script in the source tree
Use top_srcdir so manual checks also work in an out-of-tree build.
Assisted-by: OpenAI Codex
Reviewed-by: Brian Behlendorf <behlendorf1 at llnl.gov>
Signed-off-by: ooonea <ooonea at gmail.com>
Closes #19784
kernel: Add -mindirect-branch-cs-prefix for WITH_KERNEL_RETPOLINE
-mindirect-branch-cs-prefix adds a CS segment-override prefix (0x2e)
to each call or jmp to a retpoline thunk. The CPU ignores the prefix,
but it extends the instruction to six bytes instead of five. This
leaves enough room for a future kernel change to patch all of the call
sites at boot time to disable retpoline if not required.
Support for this option arrived in GCC 12 and Clang/LLVM 16.
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D61514
if_media: Add 100BASE-T1 and 1000BASE-T1 media types
100BASE-T1 (IEEE 802.3bw) and 1000BASE-T1 (IEEE 802.3bp) are Single-Pair
Ethernet (SPE) standards intended for use in automotive and industrial
applications.
Reviewed by: kbowling
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D60864
(cherry picked from commit f69099fc0fc55262741621451a52de50f164271a)
[Support] Add vfs::findFileInParentDirectories()
Several tools look for a file in a directory and its parent
directories, for example clang-format for .clang-format and clang-tidy
for .clang-tidy, and each has its own loop for that. Add a function for
it, which dsymutil will use to find the compilation-prefix-map.json
files that compilation caching writes.
print/pdfcpu: Fix build with WITH_PIE
The port is built without cgo and cannot be linked as PIE.
PR: 300434
Reported by: nimaje+fbz at bureaucracy.de
Approved by: portmgr (build fix blanket)
Sponsored by: Netzkommune GmbH
Linux: initialize tq_ksp in taskq_create()
taskq_create() allocates the taskq with kmem_alloc(), which does not
zero it, and only sets tq_ksp in taskq_kstats_init(). If starting the
taskq's threads fails, taskq_create() calls taskq_destroy() before
that, and taskq_kstats_fini() then frees whatever tq_ksp contained.
Initialize tq_ksp to NULL along with the other fields.
Reviewed-by: Brian Behlendorf <behlendorf1 at llnl.gov>
Co-Authored-By: Claude Opus 5.5 <noreply at anthropic.com>
Signed-off-by: Matthew Ahrens <matt at mahrens.org>
Closes #19828
Linux: don't use per-taskq kstats in the taskq summary
spl_taskq_kstat_data() walks tq_list under tq_list_sem and reads each
taskq's counters through its kstat, tq_ksp. But taskq_create() adds the
taskq to tq_list before taskq_kstats_init() sets tq_ksp, and
taskq_destroy() deletes the kstat before removing the taskq from
tq_list. Reading /proc/spl/kstat/taskq/summary while a pool is created
or imported can therefore follow tq_ksp before it is set or after it
has been freed, and the oops leaves tq_list_sem held, hanging every
later taskq_create().
The summary only prints counters kept in the taskq itself, which are
valid for as long as the taskq is on tq_list. Read them directly. This
also stops the summary from taking each taskq kstat's lock while
holding its own.
Add a ZTS test that reads the summary during pool create, export,
import and destroy.
[4 lines not shown]
[Support] Add PrefixMapper
Add a utility for remapping path prefixes, along with MappedPrefix for
parsing "old=new" mappings. Mappings are matched on whole path
components and respect the configured path style, so Windows paths are
matched case- and separator-insensitively.
This will be used by dsymutil to undo the path prefix mapping applied
by compilation caching.
Use actual file size when resizing FILE namespaces
save_file decided whether a filesize change was an expansion by comparing
against the stored filesize. That value is None for a namespace created
from an existing file without a filesize, which made a later resize fail
with a TypeError. It can also be stale: if it was smaller than the real
file, a requested "expansion" would truncate the file and lose data.
Compare against the file's actual size instead, and record that size when
an existing file is used without a filesize being supplied.
[SystemZ][z/OS] Restore the frame header on stack restore (#228376)
`@@ALCAXP`, which `lowerDYNAMIC_STACKALLOC_XPLINK` calls for a dynamic
alloca, moves the frame header (register save area at SP + 2048) down
with the stack pointer. Calls made while the stack pointer is lowered
place their arguments over the old header. `lowerSTACKRESTORE` only
reset the stack pointer, so the epilogue and the LE stack walk then used
the clobbered old header; the program ended with abend U4083 RSN 0F.
The current header must therefore be copied to the restored stack
pointer, and no signal may be delivered while the stack pointer is
changed and the header is copied. Language Environment delays signals
while a stub routine runs, so this patch does it in a stub:
- The stub has a stub entry marker (mark type C'4', preceded by 8 bytes
of padding so that the entry is 16 bytes after the start, as for a
normal routine), no PPA1 and no save area. Like the stack extension
routine it does not follow the XPLINK calling convention: it is called
with `BASR 3,3` and returns with `B 2(3)`. It gets the new stack pointer
[31 lines not shown]