NAS-141089 / 27.0.0-BETA.1 / Fix FILESYSTEM duplicate-target check for path variants (#18969)
## Problem
The container `FILESYSTEM` device uniqueness check compares the `target`
field as a raw string. As a result, paths that differ only by trivial
formatting differences—such as trailing slashes, duplicate slashes, or
`./` segments—are treated as distinct values.
This allows multiple `FILESYSTEM` devices to be added with effectively
the same mount target (e.g. `/mnt/tank` and `/mnt/tank/`), bypassing
duplicate-target validation in `FilesystemDelegate.validate_middleware`.
## Solution
Canonicalize filesystem targets using `os.path.normpath` before
returning them from `_extract_identity`, ensuring equivalent paths
resolve to the same identity.
Also preserve the existing `str | None` contract by guarding against
missing or empty target values.
[AMDGPU][NFCI] Change MCSubtargetInfo references in AMDGPUBaseInfo.h/.cpp to be const ref instead of pointers (#197038)
Change all `AMDGPU::IsaInfo` functions and `initDefaultAMDKernelCodeT`
to take `const MCSubtargetInfo &` instead of `const MCSubtargetInfo *`.
These functions never accept null, so a reference better expresses the
contract.
Also change `AMDGPUMCKernelCodeT::initDefault` to take a const reference
for consistency, and convert local `MCSubtargetInfo` pointer variables
to references in `AMDGPUMCExpr.cpp` where the pointer is always
dereferenced.
Requested by @arsenm in
https://github.com/llvm/llvm-project/pull/192306#discussion_r2076113671.
Co-authored-by: Claude Opus 4 (1M context) <noreply at anthropic.com>
[Utils] Examine debug info type instead of alloca type to guess the debug behavior of the alloca uses (#177480)
Replace `isArray` and `isStructure` helpers that queried alloca IR type
with a `isCompositeType` helper that checks the debug variable's
source-level type from debug info metadata to decide if this seems
perhaps profitable to convert to this debug info from #debug_declare to
a #debug_value.
This changes behavior: the lowering decision is now based on the
source-level type from debug info rather than the IR alloca type, which
is more semantically correct for debug info processing. This should
have minimal effect on clang, but may change behavior more
significantly on front-ends like rust that have not used semantically
meaningful alloca element types.
Removes all uses of getAllocatedType() from Utils/Local.cpp.
This seemed slightly more semantically correct to me, though it is
slightly challenging to enumerate all of the possible scalar debug
[7 lines not shown]
[VPlan] Simplify select x, (i1 y | z), y -> y | (x && z) (#190196)
Fixes https://github.com/llvm/llvm-project/issues/189553
This adds a canonicalization `select x, (i1 y | z), y -> y | (x && z)`,
[Alive2]( https://alive2.llvm.org/ce/z/qcQRn6). InstCombine already
performs this.
This adds a canonicalization which causes the `lhs | (headermask && rhs)
-> vp.merge rhs, true, lhs, evl` pattern in optimizeMasksToEVL to match,
improving the RISC-V codegen for an anyof select reduction.
interfaces: add prefix range option for Kea dynamic PD
This extends the prefix ID selection to be able to reserve a
range of IDs in order to automatically hand them out via Kea.
The accepted value is between 1 and the end of the PD ID range
and also validates against other IDs and their ranges.
This approach differs from the old ISC DHCPv6 in that we can
make room for delegation to avoid later surprises. It might
force a user to reshuffle his ID range, but Kea wants a IA-NA
subnet that is within the pool reserved here.
tests/if_carp: Run all tests with execenv=jail
Otherwise failures can occur when running tests in parallel since some
tests reuse jail names.
MFC after: 1 week
multimedia/totem: port plugins to libsoup-2
https://gitlab.gnome.org/GNOME/totem/-/merge_requests/373
as one unified diff, as some affected files do not exist in the tarball
Also pull in some commits for functionality and to allow the unified
diff to apply:
- preferences: Modernise preferences UI
- preferences: Allow to disable hardware acceleration
- plugins: Remove support for configurable plugins
- plugins: Simplify TOTEM_PLUGIN_REGISTER() macro
- preferences: Move the plugins settings
- preferences: Simplify video widget refcounting
- skipto: Remove skipto plugin
- main: Document digits 1 through 9 skipping 10% to 90%
- opensubtitles: Use GResource for loading UI file
- opensubtitles: Move treeview columns creation to GtkBuilder
- opensubtitles: Use GtkComboBoxText instead GtkComboBox
- opensubtitles: Move GtkTreeModelSort to GtkBuilder
[3 lines not shown]
x86-assembly: generate/update .po files
Following the move of this chapter to a separate article.
I ran `tools/update_translate_template.sh` and discarded the irrelevant
changes.
Discussed with: ziaee, carlavilla
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D56430
x86-assembly: fix broken links
- For pages on the author's website (no longer active), use archive.org links
- For the textbook referenced, just give the title
- Use the 'link' macro everywhere
Reviewed by: 0mp, emaste (previous version)
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D45963
[flang] Inline scalar-to-array hlfir.assign at -O0 (#197092)
At `-O0`, Flang can lower trivial scalar-to-array broadcasts such as `c
= a(1) + 1.0` through `_FortranAAssign`. That runtime path can call
`free()`, which is not valid in OpenMP GPU device code.
This patch teaches `InlineHLFIRAssign` to handle trivial scalar RHS
values. At `-O0`, the pipeline runs it in a scalar-RHS-only mode, so
only scalar-to-array broadcasts are inlined. Array-to-array assignments
still fall back to `_FortranAAssign` at `-O0`.
Scalar RHS values are materialized before the generated loop with
`loadTrivialScalar`, preserving intrinsic assignment ordering for cases
like `a = a(1)`. At `O1+`, the full `InlineHLFIRAssign` pass still runs
as before, now also supporting scalar RHS.
The remaining files are test updates from scalar-to-array assignments
now being inlined at `-O0` instead of lowering through
`_FortranAAssign`.
[5 lines not shown]
x86-assembly: update the article a bit
Minor tweaks for consistency/readability. Actual content is not touched.
- Replace references to "chapter" with "article".
- Add a NOTE of the historical nature of the document.
- Clarify assemblers available on FreeBSD.
- List the trademarks used in the article, and reduce the (R) symbol
usage. Per the Doc Primer, it only needs to be emitted with the first
usage of the trademark.
- Add more tags for SEO
Reviewed by: 0mp, emaste (previous version)
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D45962
dev-handbook: Split x86 assembly chapter into new article
The content of this chapter is niche, and has not been significantly
altered since its initial authorship in 2001. Still, it contains highly
detailed information that is still accurate on a largely
undocumented/esoteric topic. Therefore, it is worth preserving.
Move this to a standalone article. This allows us to continue publishing
it while removing any expectation that the text should evolve or stay
up-to-date.
Discussed with: ziaee, carlavilla
Reviewed by: emaste (previous version)
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D45961
[lldb][windows] Fix second-chance exception delivery on lldb-server (#197956)
Currently, all tests that wait for the debugger to stop when the process
crashes time out on Windows under `LLDB_USE_LLDB_SERVER=1` because of 2
issues:
1. The `if (!first_chance) SetState(eStateStopped, false)` before the
switch silently advances `m_state` on every second-chance event. The
`default:` branch later calls `SetState(eStateStopped, true)` but this
is never reached because `state == m_state`. The client is waiting for a
reply that is never sent.
2. The `default:` branch's first-chance handling stops all threads and
then returns `SendToApplication`, which tells Windows
`DBG_EXCEPTION_NOT_HANDLED`. This hangs the process, the second-chance
event never arrives. `ProcessWindows` is a no-op on first-chance
non-breakpoint exceptions because of this: it just returns
`ExceptionResult::SendToApplication` with no `StopThread/SetState`.
[11 lines not shown]
libufs: Avoid using param.h constants in libufs.h
MAXBSIZE is defined in param.h, which defines many other things. To
avoid forcing all consumers of libufs.h to include param.h, let's
instead redefine it and verify the definition in inode.c.
Reviewed by: kib
MFC after: 1 week
Differential Revision: https://reviews.freebsd.org/D56859
(cherry picked from commit 271d25a066b59df1e2bb774990948c985382126a)
fsck_ffs: Avoid relying on param.h pollution from libufs.h
- gjournal.c needs param.h to get a definition of isclr().
- fsck.h needs signal.h for sig_atomic_t.
Sort includes while here.
Reviewed by: kib
MFC after: 1 week
Differential Revision: https://reviews.freebsd.org/D56858
(cherry picked from commit 3cd3900b690d8296094921cec844da3f72d30cbb)
cpuset: Move userspace declarations out of _cpuset.h
The _*.h headers are for structure definitions and should avoid
dependencies on other headers. This convention is violated by using
__BEGIN_DECLS/__END_DECLS.
Move the declarations to cpuset.h, I see no reason they can't be there.
Reviewed by: olce, brooks, kib
MFC after: 1 week
Differential Revision: https://reviews.freebsd.org/D56856
(cherry picked from commit 8b4b995effb7911cc13706dc309d5e03c83b9a94)
vmem: Include param.h in the userspace port as well
It is required at least for NBBY.
MFC after: 1 week
(cherry picked from commit fab4acbb7db8ffc7082d1b60b3c8e446a7cfef90)