FreeBSD/ports 540a795 — www/py-youtube-transcript-api distinfo Makefile

www/py-youtube-transcript-api: Update to 1.2.5

- Enable tests

ChangeLog:

1. https://github.com/jdepoix/youtube-transcript-api/releases/tag/v1.2.5

Reported by:    "Jonas Depoix" <notifications at github.com>
DeltaFile
+8-2www/py-youtube-transcript-api/Makefile
+3-3www/py-youtube-transcript-api/distinfo
+11-52 files

NetBSD/pkgsrc AzxOD1M — editors/TeXmacs distinfo, editors/TeXmacs/patches patch-src_System_Link_socket__notifier.cpp

   TeXmacs: fix build break on NetBSD 11

   NetBSD does not implicity include
   sys/select.h in some headers like
   earlier versions so include it so
   that select, FD_ISSET and
   "struct timeval" are seen.
VersionDeltaFile
1.1+16-0editors/TeXmacs/patches/patch-src_System_Link_socket__notifier.cpp
1.78+2-1editors/TeXmacs/distinfo
+18-12 files

LLVM/project ba8701e — llvm/include/llvm/Support FileSystem.h, llvm/lib/Support/Unix Path.inc

[Support] Add sys::fs::getRealPathFromHandle (#239019)

The real path of an open file is available only from
`openFileForRead` at open time. A caller that holds an open file
and needs its real path later has no API for it.

Expose that logic as new `sys::fs::getRealPathFromHandle`.
The real path of an open file is asked via a file handle.
API returns `errc::not_supported` when the platform cannot answer
for a handle.

The function comes from `swiftlang/llvm-project`:
https://github.com/swiftlang/llvm-project/pull/5425

---------

Co-authored-by: Steven Wu <stevenwu at apple.com>
DeltaFile
+33-22llvm/lib/Support/Unix/Path.inc
+9-0llvm/unittests/Support/Path.cpp
+9-0llvm/include/llvm/Support/FileSystem.h
+5-0llvm/lib/Support/Windows/Path.inc
+56-224 files

LLVM/project 436daa9 — llvm/lib/Transforms/Vectorize VPlanTransforms.cpp, llvm/test/Transforms/LoopVectorize early-exit-tail-folding.ll

[VPlan] Remove header masks whose tail lanes aren't used

Replace a use of header-mask && x with x if the user, transitively
through freeze, logical-and, not and mask.beforefirst(freeze ...), only
reaches masks that are and'ed with the header mask again. The header
mask is a prefix and lane i of mask.beforefirst only depends on lanes
0..i, so the lanes outside of the header mask are never used.

This avoids the i1 vp.merge that EVL tail folding needs for the inner
header mask, e.g. in the early exit mask.beforefirst(freeze(header-mask
&& c)) and in switch default edges.
DeltaFile
+39-0llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp
+2-4llvm/test/Transforms/LoopVectorize/early-exit-tail-folding.ll
+2-4llvm/test/Transforms/LoopVectorize/RISCV/early_exit_with_stores.ll
+2-4llvm/test/Transforms/LoopVectorize/RISCV/early-exit.ll
+1-2llvm/test/Transforms/LoopVectorize/RISCV/zvl1024b-crash.ll
+46-145 files

LLVM/project e3454ed — llvm/lib/Transforms/Vectorize LoopVectorizationLegality.cpp LoopVectorize.cpp, llvm/test/Transforms/LoopVectorize early_exit_store_legality.ll early-exit-tail-folding.ll

[VPlan] Allow tail folding early exits with side effects

Continues the work in #179595.

This allows us to tail fold e.g. the following loop:

```c
extern char a[1024], b[1024], c[1024], y[1024];
void two_guards(void) {
  for (int i = 0; i < 1000; i++) {
    if (a[i] == 0)
      break;
    if (b[i] > 3) {
      if (c[i] < 9)
        y[i] = 1;
    }
  }
}
```

    [30 lines not shown]
DeltaFile
+40-70llvm/test/Transforms/LoopVectorize/early-exit-tail-folding.ll
+24-41llvm/test/Transforms/LoopVectorize/RISCV/early_exit_with_stores.ll
+18-35llvm/test/Transforms/LoopVectorize/RISCV/early-exit.ll
+24-0llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
+0-7llvm/lib/Transforms/Vectorize/LoopVectorizationLegality.cpp
+2-2llvm/test/Transforms/LoopVectorize/early_exit_store_legality.ll
+108-1552 files not shown
+111-1578 files

LLVM/project f58c233 — llvm/test/Transforms/LoopVectorize early-exit-tail-folding.ll

Precommit tests
DeltaFile
+214-153llvm/test/Transforms/LoopVectorize/early-exit-tail-folding.ll
+214-1531 files

LLVM/project b34b617 — libc/src/__support/OSUtil/linux/syscall_wrappers CMakeLists.txt truncate.h, libc/src/unistd/linux CMakeLists.txt truncate.cpp

[libc] Use a syscall wrapper for truncate
DeltaFile
+44-0libc/src/__support/OSUtil/linux/syscall_wrappers/truncate.h
+10-18libc/src/unistd/linux/truncate.cpp
+18-2utils/bazel/llvm-project-overlay/libc/BUILD.bazel
+14-0libc/src/__support/OSUtil/linux/syscall_wrappers/CMakeLists.txt
+5-5libc/src/unistd/linux/CMakeLists.txt
+91-255 files

LLVM/project 94ac568 — llvm/lib/Transforms/Vectorize VPlanConstruction.cpp, llvm/test/Transforms/LoopVectorize multiple-early-exits.ll early-exit-tail-folding.ll

[VPlan] Support tail folding uncountable early exits

Enables the first step towards #179595. After #237254, the MaskedHandleExitInVectorLoop early exit style uses the CFG to handle masking for early exit loops. This allows it to compose with tail folding which is also handled via the CFG in #176143.

This allows us to tail fold the following loop:

```c
extern char x[256];
int f(char * restrict y) {
  for (int i = 0; i < 256; i++) {
    if (x[i] == 0)
      return i;
  }
  return -1;
}
```

Into this on RISC-V:


    [18 lines not shown]
DeltaFile
+91-164llvm/test/Transforms/LoopVectorize/RISCV/early-exit-live-out.ll
+77-149llvm/test/Transforms/LoopVectorize/RISCV/early-exit.ll
+54-105llvm/test/Transforms/LoopVectorize/early-exit-tail-folding.ll
+108-16llvm/test/Transforms/LoopVectorize/multiple-early-exits.ll
+20-37llvm/test/Transforms/LoopVectorize/RISCV/sink-to-early-exit.ll
+32-18llvm/lib/Transforms/Vectorize/VPlanConstruction.cpp
+382-4894 files not shown
+414-49710 files

LLVM/project 6297425 — llvm/test/Transforms/LoopVectorize early-exit-tail-folding-active-lane-mask.ll early-exit-tail-folding.ll, llvm/test/Transforms/LoopVectorize/RISCV early-exit.ll

Precommit tests
DeltaFile
+552-0llvm/test/Transforms/LoopVectorize/RISCV/early-exit.ll
+524-0llvm/test/Transforms/LoopVectorize/early-exit-tail-folding.ll
+65-0llvm/test/Transforms/LoopVectorize/early-exit-tail-folding-active-lane-mask.ll
+1,141-03 files

LLVM/project 63cec12 — llvm/lib/Transforms/Vectorize VPlanConstruction.cpp LoopVectorize.cpp

[VPlan] Use vputils::findCanonicalIVIncrement in more places. NFC

In a future patch we want to enable more scenarios with early exits and tail folding. In these scenarios the terminator will no longer be a BranchOnCount/BranchOnCond but a BranchOnTwoConds, so a bunch of canonical IV matchers break. Use vputils::findCanonicalIVIncrement instead since it searches the users of the canonical IV instead of looking at the terminator.
DeltaFile
+7-13llvm/lib/Transforms/Vectorize/VPlanEVLTailFolding.cpp
+2-9llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
+2-8llvm/lib/Transforms/Vectorize/VPlanConstruction.cpp
+11-303 files

LLVM/project 3a49a5a — llvm/lib/Transforms/Vectorize VPlan.h VPlanTransforms.cpp, llvm/test/Transforms/LoopVectorize early_exit_with_stores.ll

[VPlan] Allow early exit loops with side effects by masking in the vector loop.

When all blocks with side effects are dominated by every early exit, we can vectorize the loop if we mask off any lanes past the exit. We can do this with control flow:

```mermaid
flowchart TD
  header --> exiting
  exiting -->| exit mask | sideeffects --> latch --> latch.split
  exiting -->| !exit mask | latch.split
```

For every early exiting block we add a branch to the latch on `!mask.beforefirst(exitcond)`. This is implemented in UncountableExitStyle::ReadOnly which is now renamed to MaskedHandleExitInVectorLoop.

This is a complementary exit style to MaskedHandleExitInScalarLoop. If any of the side effects aren't dominated by the early exit it still falls back to the scalar loop style, which is why none of the existing early exit side effect tests changed. Masking in loop is profitable for RISC-V and I'm assuming it's also profitable for AArch64 too, but if not then we can add a TTI hook for a preferred exit style.
DeltaFile
+59-76llvm/test/Transforms/LoopVectorize/early_exit_with_stores.ll
+86-33llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp
+10-8llvm/test/Transforms/LoopVectorize/X86/early_exit_with_stores.ll
+8-7llvm/test/Transforms/LoopVectorize/RISCV/early_exit_with_stores.ll
+5-4llvm/lib/Transforms/Vectorize/VPlan.h
+3-2llvm/unittests/Transforms/Vectorize/VPlanVerifierTest.cpp
+171-1302 files not shown
+176-1328 files

LLVM/project 6f899a7 — llvm/test/Transforms/LoopVectorize early_exit_with_stores.ll

Precommit tests
DeltaFile
+221-0llvm/test/Transforms/LoopVectorize/early_exit_with_stores.ll
+221-01 files

LLVM/project 788af74 — llvm/unittests/Transforms/Vectorize VPlanVerifierTest.cpp

Remove old dominance unit test
DeltaFile
+0-18llvm/unittests/Transforms/Vectorize/VPlanVerifierTest.cpp
+0-181 files

LLVM/project b5c40bb — llvm/lib/Transforms/Vectorize VPlanVerifier.cpp VPlanTransforms.cpp, llvm/test/Transforms/LoopVectorize predicated-single-exit.ll predicated-early-exits-interleave.ll

[VPlan] Preserve SSA in early exit loops

MaskedCond is used to logically-and the condition to early exit with the current block in-mask. However because we use it in the latch block where the condition isn't defined on all paths, we have to workaround it not being in SSA in the verifier.

This fixes this by using reconstructSSA added in #212209 to preserve SSA in both the exit conditions and live outs in the exit blocks. It also means we get the right exit condition without MaskedCond and allows us to remove the MaskedCond exceptions in the verifier. MaskedCond is still kept since a followup PR will still use it.

One subtle point is that we need to freeze any branch conditions. Any lanes after and including the early exiting lane might contain poison and we can have branches on those poison lanes that didn't we didn't previously branch on in the scalar loop.

There's no miscompile on main today because we coincidentally don't keep SSA so exit conditions are read directly without being polluted by poison stemming from a branch past the early exit. But in this PR the exit conditions are polluted and we can end up with poison in the condition operand of a select, which causes an undefined result for AnyOf even if it freezes its operand. The poison in the branch will also cause problems in future if we decide to preserve uniform control flow and emit branches instead of blends. The exit_cond_merged_after_poison_branch test illustrates this.
DeltaFile
+156-36llvm/test/Transforms/LoopVectorize/predicated-multiple-exits.ll
+24-16llvm/test/Transforms/LoopVectorize/predicated-early-exits-interleave.ll
+26-9llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp
+1-18llvm/lib/Transforms/Vectorize/VPlanVerifier.cpp
+12-6llvm/test/Transforms/LoopVectorize/predicated-single-exit.ll
+219-855 files

LLVM/project d23e47a — llvm/lib/Transforms/Vectorize VPlanPredicator.cpp, llvm/test/Transforms/LoopVectorize uniform-blend.ll select-cmp-blend-chain.ll

[VPlan] Peek through nested phi incoming values in computeBlendMasks
DeltaFile
+495-0llvm/test/Transforms/LoopVectorize/predicator.ll
+389-6llvm/test/Transforms/LoopVectorize/VPlan/predicator.ll
+80-11llvm/lib/Transforms/Vectorize/VPlanPredicator.cpp
+81-0llvm/test/Transforms/LoopVectorize/find-last.ll
+13-3llvm/test/Transforms/LoopVectorize/select-cmp-blend-chain.ll
+3-12llvm/test/Transforms/LoopVectorize/uniform-blend.ll
+1,061-326 files

LLVM/project 278a818 — llvm/lib/Transforms/Vectorize VPlanTransforms.cpp, llvm/test/Transforms/LoopVectorize blend-i1.ll

[VPlan] Simplify BLEND X/M, false, ..., false -> M && X

If an i1 blend has false for all but one incoming value, then we can simplify this to the one non-false value. Blends by construction never have any overlapping mask values, so we don't need to worry about the order as the masks can't "shortcut" each other.
DeltaFile
+13-0llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp
+3-8llvm/test/Transforms/LoopVectorize/blend-i1.ll
+16-82 files

LLVM/project 837d18a — llvm/test/Transforms/LoopVectorize blend-i1.ll

Precommit tests
DeltaFile
+69-0llvm/test/Transforms/LoopVectorize/blend-i1.ll
+69-01 files

LLVM/project 3c11636 — llvm/lib/Transforms/Vectorize VPlanTransforms.cpp, llvm/test/Transforms/LoopVectorize interleave_uncountable_exits.ll

[VPlan] Move extract-lane(0, canWideIV) combine before unrolling

Some extract-lane combines can't be performed before unrolling, e.g. the one that combines it to Instruction::ExtractElement can end up extracting from a different part. But the extract-lane(0, canWideIV) can because at index 0 you're always extracting from the first part. Do this before unrolling, which improves codegen of unrolled code.
DeltaFile
+5-80llvm/test/Transforms/LoopVectorize/AArch64/early_exit_with_stores.ll
+16-24llvm/test/Transforms/LoopVectorize/VPlan/early_exit_with_stores_vplan.ll
+4-12llvm/test/Transforms/LoopVectorize/interleave_uncountable_exits.ll
+6-6llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp
+1-8llvm/test/Transforms/PhaseOrdering/AArch64/countable-and-uncountable-exits-combined.ll
+32-1305 files

LLVM/project 359b0aa — llvm/lib/Transforms/Vectorize LoopVectorize.cpp VPlanUnroll.cpp, llvm/test/Transforms/LoopVectorize interleave_uncountable_exits.ll

[VPlan] Support interleaving early exit loops with side effects

We couldn't do this on main previously because the exit mask `active-lane-mask(0, FirstActiveLane(Cond))` doesn't get unrolled properly across parts. Now that we use mask.beforefirst we can unroll it properly in a chain. The unrolled form is:

    unroll(mask.beforefirst, P) = mask.beforefirst(cond[P] | broadcast(anyof(not(unroll(mask.beforefirst, P-1)))))

On AArch64 this can be combined to brkpb in another patch.
DeltaFile
+216-15llvm/test/Transforms/LoopVectorize/AArch64/early_exit_with_stores.ll
+106-7llvm/test/Transforms/LoopVectorize/interleave_uncountable_exits.ll
+35-4llvm/test/Transforms/PhaseOrdering/AArch64/countable-and-uncountable-exits-combined.ll
+10-0llvm/lib/Transforms/Vectorize/VPlanUnroll.cpp
+10-0llvm/lib/Transforms/Vectorize/VPlanLowering.cpp
+0-9llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
+377-356 files

LLVM/project d14765d — llvm/lib/Transforms/Vectorize LoopVectorize.cpp VPlanTransforms.h, llvm/test/Transforms/LoopVectorize/X86 early_exit_with_stores.ll

Expand mask.beforefirst if not cheap
DeltaFile
+34-0llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp
+4-4llvm/test/Transforms/LoopVectorize/X86/early_exit_with_stores.ll
+6-0llvm/lib/Transforms/Vectorize/VPlanTransforms.h
+4-0llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
+48-44 files

LLVM/project ba07c2e — llvm/lib/Transforms/Vectorize VPlan.h VPlanTransforms.cpp, llvm/test/Transforms/LoopVectorize/VPlan early_exit_with_stores_vplan.ll

Emit VPWidenIntrinsicRecipe
DeltaFile
+56-56llvm/test/Transforms/LoopVectorize/VPlan/early_exit_with_stores_vplan.ll
+0-21llvm/lib/Transforms/Vectorize/VPlanRecipes.cpp
+9-0llvm/lib/Transforms/Vectorize/LoopVectorizationPlanner.h
+2-2llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp
+0-3llvm/lib/Transforms/Vectorize/VPlan.h
+67-825 files

LLVM/project e8fc07e — llvm/lib/Transforms/Vectorize VPlanRecipes.cpp, llvm/test/Transforms/LoopVectorize early_exit_combined_exits.ll early_exit_with_stores.ll

[VPlan] Use llvm.mask.beforefirst for computing early exit mask

This makes the cost more accurate and improves codegen for RISC-V. The codegen for an early exit loop with side effects then goes from:

    .LBB0_3:                                # %vector.body
                                            # =>This Inner Loop Header: Depth=1
        vl1r.v  v16, (a3)
        vsetvli zero, zero, e8, m1, ta, ma
        vmseq.vi        v16, v16, 0
        vfirst.m        a7, v16
        srli    t0, a7, 63
        czero.nez       a7, a7, t0
        czero.eqz       t0, a1, t0
        or      a7, t0, a7
        vsetvli zero, zero, e64, m8, ta, ma
        vmsltu.vx       v0, v8, a7
        vle8.v  v17, (a5), v0.t
        vcpop.m t1, v16
        vsetvli zero, zero, e8, m1, ta, ma

    [22 lines not shown]
DeltaFile
+50-50llvm/test/Transforms/LoopVectorize/AArch64/early_exit_with_stores.ll
+40-40llvm/test/Transforms/LoopVectorize/VPlan/early_exit_with_stores_vplan.ll
+23-23llvm/test/Transforms/LoopVectorize/RISCV/early_exit_with_stores.ll
+18-18llvm/test/Transforms/LoopVectorize/early_exit_with_stores.ll
+21-0llvm/lib/Transforms/Vectorize/VPlanRecipes.cpp
+8-8llvm/test/Transforms/LoopVectorize/early_exit_combined_exits.ll
+160-1398 files not shown
+183-16114 files

LLVM/project 7e8ef87 — llvm/test/tools/llvm-strings locale.test, llvm/tools/llvm-strings CMakeLists.txt

Revert "[llvm-strings] Fix build linking against incorrect libiconv" (#241772)

Reverts llvm/llvm-project#241766
DeltaFile
+1-2llvm/tools/llvm-strings/CMakeLists.txt
+1-1llvm/test/tools/llvm-strings/locale.test
+2-32 files

FreeBSD/src 29b2402 — sys/contrib/openzfs/cmd/zfs zfs_main.c, sys/contrib/openzfs/cmd/zpool zpool_main.c

zfs: merge openzfs/zfs at 013c77e66

Notable upstream pull request merges:
 #17567 816804dfd Add support for anyraid vdevsG
 #18826 -multiple FDT: don't extend dedup across RAIDZ expansion
 #18861 1ff8fc14a Fix out-of-bound access when resizing in receive_spill
 #19026 518021947 Add alloc factor logic
 #19091 e056f4df3 don't send spill or oversized blocks as WRITE_EMBEDDED
 #19125 6d5d3f635 Wait for the txg-time database write before setting
                  spa_final_txg
 #19170 b060bcb1d zio: drop a queued scan read only when its block is freed
 #19171 3db7dde41 dsl_scan: resume a scan which suspends at the origin
                  snapshot
 #19178 497f28f07 vdev_raidz: keep unverified dRAID rebuild repairs
                  speculative
 #19188 5f1957a15 spa: number new txgs above every uberblock on disk
 #19190 495d09b51 Export zpool_valid_proplist from libzfs
 #19191 ed07ad74e zdb: Lower eviction timeouts on prefetched data
 #19192 86b3fb1f4 Build the pool stats config without the namespace lock

    [161 lines not shown]
DeltaFile
+1,043-1,051sys/contrib/openzfs/cmd/zpool/zpool_main.c
+1,948-66sys/contrib/openzfs/lib/libnvpair/libnvpair.abi
+1,773-0sys/contrib/openzfs/module/zfs/vdev_anyraid.c
+650-647sys/contrib/openzfs/cmd/zfs/zfs_main.c
+559-650sys/contrib/openzfs/lib/libzfs/libzfs.abi
+501-397sys/contrib/openzfs/lib/libzfs/libzfs_pool.c
+6,474-2,811706 files not shown
+37,206-14,722712 files

LLVM/project d5311d1 — llvm/test/tools/llvm-strings locale.test, llvm/tools/llvm-strings CMakeLists.txt

[llvm-strings] Fix build linking against incorrect libiconv (#241766)

After https://github.com/llvm/llvm-project/pull/221794 the macOS build
breaks
if you have both the system and a GNU libiconv (e.g. from macports) on
the
include path. `#include <iconv.h>` will include the headers from the
package
manager but the link step will link the system library.

Using find_package + Iconv::Iconv passes the explicit library path to
the
linker which fixes the mismatch.

The ja_JP.SJIS test line is skipped on Darwin because the GNU + macOS
libiconvs
diverge on it.
DeltaFile
+2-1llvm/tools/llvm-strings/CMakeLists.txt
+1-1llvm/test/tools/llvm-strings/locale.test
+3-22 files

LLVM/project eccb24d — libc/src/__support/OSUtil/linux/syscall_wrappers CMakeLists.txt fchown.h, libc/src/unistd/linux CMakeLists.txt fchown.cpp

[libc] Use a syscall wrapper for fchown
DeltaFile
+36-0utils/bazel/llvm-project-overlay/libc/BUILD.bazel
+35-0libc/src/__support/OSUtil/linux/syscall_wrappers/fchown.h
+10-9libc/src/unistd/linux/fchown.cpp
+14-0libc/src/__support/OSUtil/linux/syscall_wrappers/CMakeLists.txt
+5-3libc/src/unistd/linux/CMakeLists.txt
+100-125 files

LLVM/project e543765 — libc/src/__support/OSUtil/linux/syscall_wrappers CMakeLists.txt geteuid.h, libc/src/unistd/linux CMakeLists.txt geteuid.cpp

[libc] Use a syscall wrapper for geteuid
DeltaFile
+31-0libc/src/__support/OSUtil/linux/syscall_wrappers/geteuid.h
+16-2utils/bazel/llvm-project-overlay/libc/BUILD.bazel
+8-7libc/src/unistd/linux/geteuid.cpp
+12-0libc/src/__support/OSUtil/linux/syscall_wrappers/CMakeLists.txt
+4-4libc/src/unistd/linux/CMakeLists.txt
+71-135 files

LLVM/project f52dc65 — libc/src/__support/OSUtil/linux/syscall_wrappers CMakeLists.txt chown.h, libc/src/unistd/linux CMakeLists.txt chown.cpp

[libc] Use a syscall wrapper for chown
DeltaFile
+42-0libc/src/__support/OSUtil/linux/syscall_wrappers/chown.h
+37-0utils/bazel/llvm-project-overlay/libc/BUILD.bazel
+10-16libc/src/unistd/linux/chown.cpp
+15-0libc/src/__support/OSUtil/linux/syscall_wrappers/CMakeLists.txt
+5-4libc/src/unistd/linux/CMakeLists.txt
+109-205 files

FreeBSD/src 1ebf46e — sys/kern kern_module.c

modstat: don't copyout while holding a lock

If a user arranges for a page fault to never be filled (e.g., via a
FUSE file system), this can hold the shared lock forever.

To make this all work, refactor kern_modstat and freebsd32_modstat to
malloc a temporary buffer and fill it before copying it out rather
than doing a bunch of copies.

Add COMPAT_* ifdefs around compat code.  The module_stat_v1 code is
really for a.out binaries in practice and thus a bit questionable.

Reviewed by:    markj
Reported by:    llm-postcr
Sponsored by:   Innovate UK
Fixes:          7f8c2056db1e ("modstat: avoid copying from freed memory")
Differential Revision:  https://reviews.freebsd.org/D61432
DeltaFile
+153-108sys/kern/kern_module.c
+153-1081 files

FreeBSD/src f20c712 — sys/kern vfs_extattr.c, sys/sys syscallsubr.h

extattr*(2): add kern_ and user_ implementaions

Effort:         CHERI upstreaming
Sponsored by:   Innovate UK
Pull Request:   https://github.com/freebsd/freebsd-src/pull/2284
DeltaFile
+69-45sys/kern/vfs_extattr.c
+20-0sys/sys/syscallsubr.h
+89-452 files