ZTS: redundancy_draid_spare{1,3} exceptions
Update the redundancy_draid_spare1 exception to reference an issue
which describes the failure.
Remove the exception for the redundancy_draid_spare3 test. I have
not observed it in local testing. If it reproduces in the CI we
can create a new issue for it and put back the exception.
Signed-off-by: Brian Behlendorf <behlendorf1 at llnl.gov>
Closes #18308
Fix TranslateOpenMPTargetArgs dropping -mlinker-version (#186208)
TranslateOpenMPTargetArgs drops OPT_m_Group options, including
`-mlinker-version`, when the device triple differs from the host triple.
This can cause an assertion failure in MachO::getLinkerVersion when
running `offload-Xarch.c` and `openmp-offload-gpu.c` on Darwin as it
expects the linker version obtained via `-mlinker-version` and the
version cached during a previous invocation to match.
Fix this by preserving `-mlinker-version` when filtering OPT_m_Group
options.
The tests currently pass because 6758becb8f19 ("[ObjC] Support emission
of selector stubs calls instead of objc_msgSend."), which triggered the
assertion, was reverted. This fix is a prerequisite for reapplying that
commit.
ZVOL: Restrict cloning with different properties
While technically its not a problem to clone between ZVOLs with
different properties, it might create expectation of new properties
being applied during data move, while actually it won't happen.
For copies and checksum it may mean incorrect safety expectations.
For dedup, compression and special_small_blocks -- performance and
space usage.
This is a replica of #18180 from FS.
Reviewed-by: Ameer Hamza <ahamza at ixsystems.com>
Reviewed-by: Brian Behlendorf <behlendorf1 at llnl.gov>
Signed-off-by: Alexander Motin <alexander.motin at TrueNAS.com>
Closes #18315
ZVOL: Add encryption key check for block cloning
Somehow during block cloning porting from file systems was missed
the check for identical encryption keys. As result, blocks cloned
between unrelated ZVOLs produced authentication errors on later
reads. Having same or different encryption root does not matter.
This patch copies dmu_objset_crypto_key_equal() call from FS side.
Reviewed-by: Ameer Hamza <ahamza at ixsystems.com>
Reviewed-by: Brian Behlendorf <behlendorf1 at llnl.gov>
Signed-off-by: Alexander Motin <alexander.motin at TrueNAS.com>
Closes #18315
[compiler-rt] Add ASan/UBSan runtime support for Hexagon Linux (#183982)
Add the architecture-specific pieces needed for the ASan and UBSan
sanitizer runtimes to build and run on hexagon-unknown-linux-musl.
Without this patch, building sanitizer runtimes for Hexagon Linux fails
with:
sanitizer_linux.cpp: error: member access into incomplete type
'struct stat64'
because musl libc does not provide struct stat64. This patch routes
Hexagon through the statx() syscall path (like LoongArch) to avoid the
stat64 dependency entirely.
Changes:
* asan_mapping.h: Add ASAN_SHADOW_OFFSET_CONST (0x20000000) for Hexagon
with shadow layout documentation.
[11 lines not shown]
[support][blake3][nfc]Expose init_keyed to BLAKE3 llvm wrapper. (#185939)
Our use case requires making two (or more) hashes for the same input but
with different keys.
The library already supports this - we just need to expose the API
Fix unveil to handle a mount point on a mount point
When traversing upward to find a covering unveil, we always
looked to ascend in the mount point filesystem when we encounter
the root of a mounted filesystem.
We missed the case where the mount point was also the root
of another mounted filesystem, causing us to then fail to ascend,
potentially not finding an unveil above that point.
Found by naddy by mounting an mfs /usr/obj on /usr/obj which
was also a mounted filesystem, which then missed the unveil
in "/".
testing naddy, me and others,
ok deraadt@
compat32: Zero struct to avoid stack disclosure
Reported by: Adam Crosser, Praetorian
Reviewed by: philip
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D55811
MIPS/expandAtomicBinOp: Remove tailing kill dead register operands (#186055)
Some trailing kill/dead register operands may added by
MachineInstr::addRegisterKilled or MachineInstr::addRegisterDead, which
uses the overlap registers same with the operand 1-4.
Let's remove them here as only 5 operands are assert existing.
Switch from bundled minizip to system minizip-ng
aja and tb pointed out bulk build failures due to missing <zip.h>.
tdesktop builds fine with the bundle and both archivers/{mini,lib}zip
uninstalled, so this smells like tdesktop configure picking up one of
them only for build to fail once it gets junked.
minizip-ng used to be incompatible, now upstream works fine with it.
Sync PLIST (forgotten during previous update) while here.
[CIR] Implement array delete for destructed types (#186248)
This extends the cir.delete_array lowering code to introduce a loop that
calls destructors when the array being deleted represents a destructed
type. The lowering introduces the destructors by way of a cir.array.dtor
operation, which is further expanded during LoweringPrepare. This also
required updating the cir.array.dtor operation to accept a raw pointer
to the element type and a value representing the number of elements to
be destructed.
This does not yet handle the possibility of destructors throwing
exceptions.
devel/gcc-arm-embedded: fix build with clang 21
With clang 21 devel/gcc-arm-embedded fails to build, with errors similar
to:
/wrkdirs/usr/ports/devel/gcc-arm-embedded/work-default/src/binutils-gdb/binutils/readelf.c:23278:37: error: pointer comparison always evaluates to false [-Werror,-Wtautological-compare]
23278 | || inote.namedata + inote.namesz < inote.namedata)
| ^
and later many instances of:
In file included from <built-in>:1:
In file included from /wrkdirs/usr/ports/devel/gcc-arm-embedded/work-default/src/binutils-gdb--gdb/gdb/defs.h:63:
/wrkdirs/usr/ports/devel/gcc-arm-embedded/work-default/src/binutils-gdb--gdb/gdb/../gdbsupport/enum-flags.h:97:34: error: non-type
template argument is not a constant expression
97 | integer_for_size<sizeof (T), static_cast<bool>(T (-1) < T (0))>::type
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/wrkdirs/usr/ports/devel/gcc-arm-embedded/work-default/src/binutils-gdb--gdb/gdb/../gdbsupport/enum-flags.h:134:20: note: in
instantiation of template class 'enum_underlying_type<ui_out_flag>' requested here
[27 lines not shown]
devel/gcc-arm-embedded: fix build with clang 21
With clang 21 devel/gcc-arm-embedded fails to build, with errors similar
to:
/wrkdirs/usr/ports/devel/gcc-arm-embedded/work-default/src/binutils-gdb/binutils/readelf.c:23278:37: error: pointer comparison always evaluates to false [-Werror,-Wtautological-compare]
23278 | || inote.namedata + inote.namesz < inote.namedata)
| ^
and later many instances of:
In file included from <built-in>:1:
In file included from /wrkdirs/usr/ports/devel/gcc-arm-embedded/work-default/src/binutils-gdb--gdb/gdb/defs.h:63:
/wrkdirs/usr/ports/devel/gcc-arm-embedded/work-default/src/binutils-gdb--gdb/gdb/../gdbsupport/enum-flags.h:97:34: error: non-type
template argument is not a constant expression
97 | integer_for_size<sizeof (T), static_cast<bool>(T (-1) < T (0))>::type
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/wrkdirs/usr/ports/devel/gcc-arm-embedded/work-default/src/binutils-gdb--gdb/gdb/../gdbsupport/enum-flags.h:134:20: note: in
instantiation of template class 'enum_underlying_type<ui_out_flag>' requested here
[25 lines not shown]
devel/gcc-arm-embedded: fix build with clang 21
With clang 21 devel/gcc-arm-embedded fails to build, with errors similar
to:
/wrkdirs/usr/ports/devel/gcc-arm-embedded/work-default/src/binutils-gdb/binutils/readelf.c:23278:37: error: pointer comparison always evaluates to false [-Werror,-Wtautological-compare]
23278 | || inote.namedata + inote.namesz < inote.namedata)
| ^
and later many instances of:
In file included from <built-in>:1:
In file included from /wrkdirs/usr/ports/devel/gcc-arm-embedded/work-default/src/binutils-gdb--gdb/gdb/defs.h:63:
/wrkdirs/usr/ports/devel/gcc-arm-embedded/work-default/src/binutils-gdb--gdb/gdb/../gdbsupport/enum-flags.h:97:34: error: non-type
template argument is not a constant expression
97 | integer_for_size<sizeof (T), static_cast<bool>(T (-1) < T (0))>::type
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/wrkdirs/usr/ports/devel/gcc-arm-embedded/work-default/src/binutils-gdb--gdb/gdb/../gdbsupport/enum-flags.h:134:20: note: in
instantiation of template class 'enum_underlying_type<ui_out_flag>' requested here
[25 lines not shown]
Preserve PR state across failover device transition
Set pr_dump_dir on the dev_disk handler before tearing down HA sessions
so the kernel dumps PR state at unregister time. After the replacement
vdisk_blockio devices are created, restore the saved state and swap the
LUNs in without generating a device-replacement UA.
[clang-tidy] Correctly handle attributes in readability-inconsistent-ifelse-braces (#184095)
Improved the check to correctly handle `[[likely]]` and `[[unlikely]]`
attributes placed between the if/else keyword and the opening brace.
As of AI Usage: Gemini 3 is used for pre-commit reviewing.
Closes https://github.com/llvm/llvm-project/issues/184081
(cherry picked from commit ca1eefdfc061fc062b6b9dc4149ca4a0e51bde08)