FreeBSD/src cb1ee0csys/kern vfs_lookup.c

vfs_lookup_cross_mount(): fix missing LK_CANRECURSE

This was a rather dumb miss on my part in commit 42442d7a6e.
LK_CANRECURSE is clearly needed in any case in which the covered vnode
is held exclusive across the call to VFS_ROOT(), regardless of whether
it was initially held exclusive or upgraded.  The commit message for
that change also noted that unionfs lookup only worked without
LK_CANRECURSE due to a coincidence of the then-current unionfs
implementation.  As it happens, said coincidence was recently removed
in commit b952606b4f ("unionfs_lock(): eliminate LK_CANRECURSE special-
case").

PR:             298201
Reported by:    olivier
Fixes:          42442d7a6e "Generalize the VV_CROSSLOCK logic in
vfs_lookup"
Reviewed by:    kib, markj, pho
Tested by:      pho
Differential Revision:  https://reviews.freebsd.org/D59494

    [2 lines not shown]
DeltaFile
+8-4sys/kern/vfs_lookup.c
+8-41 files

FreeBSD/src 23152casys/kern vfs_lookup.c

vfs_lookup_cross_mount(): fix missing LK_CANRECURSE

This was a rather dumb miss on my part in commit 42442d7a6e.
LK_CANRECURSE is clearly needed in any case in which the covered vnode
is held exclusive across the call to VFS_ROOT(), regardless of whether
it was initially held exclusive or upgraded.  The commit message for
that change also noted that unionfs lookup only worked without
LK_CANRECURSE due to a coincidence of the then-current unionfs
implementation.  As it happens, said coincidence was recently removed
in commit b952606b4f ("unionfs_lock(): eliminate LK_CANRECURSE special-
case").

PR:             298201
Reported by:    olivier
Fixes:          42442d7a6e "Generalize the VV_CROSSLOCK logic in
vfs_lookup"
Reviewed by:    kib, markj, pho
Tested by:      pho
Differential Revision:  https://reviews.freebsd.org/D59494

    [2 lines not shown]
DeltaFile
+8-4sys/kern/vfs_lookup.c
+8-41 files

LLVM/project 5e9e32dllvm/lib/Target/LoongArch LoongArchExpandPseudoInsts.cpp LoongArchRegisterInfo.cpp, llvm/test/CodeGen/LoongArch emergency-spill-slot.ll stack-clash-prologue.ll

[LoongArch] Introduce PseudoAddUpperImm to deduplicate stack-frame base address materialization (#217250)

This is largely inspired by
https://github.com/llvm/llvm-project/pull/211748, except some LoongArch
specific changes, which includes merge 12-bit signed immediate into
`ld/st` instructions while materializing the frame index first to
generate a `lu12i.w + add` combo if we could, instead of a `lu12i.w +
ori + add`. So that we could use a `PseudoAddUpperImm` to replace them
for `MachineLateInstrsCleanup` to deduplicate them later on.
 
This patch improves SPEC CPU2026 `709.cactus_r` performance by 27% (from
1.64 to 2.09).

**edit:** After replacing some `ld/st` with `ldptr/stptr` as long as
their address offset could not fit in 12-bit imm but could fit in 14-bit
one, the `709.cactus_r` slightly improved from **2.09** to **2.16**,
however this is done by `-O3 -mlasx`, with `-O3 -mlsx`, the score
remains at **2.31**, which shows its bottleneck is no longer on address
materialization.
DeltaFile
+249-0llvm/test/CodeGen/LoongArch/frame-base-dedup-la64.mir
+82-9llvm/lib/Target/LoongArch/LoongArchRegisterInfo.cpp
+80-0llvm/test/CodeGen/LoongArch/frame-base-dedup-la32.mir
+31-0llvm/lib/Target/LoongArch/LoongArchExpandPseudoInsts.cpp
+3-5llvm/test/CodeGen/LoongArch/stack-clash-prologue.ll
+1-6llvm/test/CodeGen/LoongArch/emergency-spill-slot.ll
+446-201 files not shown
+453-207 files

FreeBSD/ports 5a5bdd1www/py-binarycookies distinfo Makefile

www/py-binarycookies: update the port to version 2.5.0

- Fix serializer so written files match Apple's format
- Preserve full cookie fidelity on round trips

Reported by:    portscout
DeltaFile
+5-4www/py-binarycookies/Makefile
+3-3www/py-binarycookies/distinfo
+8-72 files

LLVM/project 5005bb7clang/lib/AST/ByteCode Interp.cpp

[clang][bytecode] Check diagnosing() before calling diagnoseUnknownDecl() (#224906)

We can save some small preparations this way, e.g. calling
`getRootVarDecl()`.
DeltaFile
+11-6clang/lib/AST/ByteCode/Interp.cpp
+11-61 files

NextBSD/src 55b8294tests img-boot-test.sh iso-boot-test.sh

iso/img-test: fail on the #467 strings (FSTAB-ROOT-REMOUNT)

Once nextbsd-overlays#5 stops shipping /etc/fstab, launchctl's boot-time
mount -vat nonfs is skipped, so neither 'Cannot union mount root
filesystem' nor launchctl's 'fwexec(mount_tool' assert should appear.
Gate both harnesses on it so the root remount can't come back unnoticed.

The ISO verdict now checks pivot+login first, then the gate, so a boot
that never completes still reports as a boot failure.

Red until nextbsd-overlays#5 is in the image: merge together with it.

Refs #472, #467

Co-Authored-By: Claude Opus 5 (1M context) <noreply at anthropic.com>
DeltaFile
+13-5tests/iso-boot-test.sh
+8-0tests/img-boot-test.sh
+21-52 files

NextBSD/src e7a728d. build.sh

build.sh: stop describing the overlay fstab as the source of the root entry

Root comes from the kernel's baked-in ROOTDEVNAME (#188), not from an
fstab line or loader.conf.d, and nextbsd-overlays#5 (E15 A1) stops
shipping /etc/fstab. Rewrite the three comments that said otherwise and
drop the doubled "the the".

Refs #472

Co-Authored-By: Claude Opus 5 (1M context) <noreply at anthropic.com>
DeltaFile
+9-7build.sh
+9-71 files

NextBSD/src 6dce612tests img-boot-test.sh

img-test: gate on noatime for / and match the whole mount line

Adds ROOT-NOATIME to the verdict: the serial transcript must show
' on / (ufs, local, noatime'. noatime moves from the fstab root line into
launchd's own remount (nextbsd-userland#185, E15 A2), and the overlay
stops shipping fstab (nextbsd-overlays#5, A1). This gate catches a
build where A1 ships before A2.

The ROOT-IS-UFS step matched "ufs" in the echoed device name
(/dev/ufs/...), so it said nothing about mount flags, and it sent
halt -p before the line finished. It now waits for the whole
'on / (ufs...)' line. The verdict checks login first, so a boot that
never reaches login still reports as a boot failure.

Refs nextbsd/nextbsd-userland#185

Co-Authored-By: Claude Opus 5 (1M context) <noreply at anthropic.com>
DeltaFile
+16-6tests/img-boot-test.sh
+16-61 files

OpenBSD/src od1IsmMsys/kern sysv_sem.c

   Avoid sleeping while recording SEM_UNDO information

   sys_semop(), by way of semundo_adjust() and semu_alloc(), could sleep in
   pool_get(PR_WAITOK) after it had already applied the semaphore operations.
   Another process can remove the set with IPC_RMID while we sleep; we then write
   sempid and sem_otime through the freed semid_ds_kern and sem_base, and record
   an undo entry for a set semundo_clear() has already swept, which panics
   semexit() when the process exits.

   This was introduced as a fallback in rev 1.14, after moving the
   structures from a static array to a pool made the allocation able to
   fail at all.  semop(2) documents ENOSPC, so drop the fallback with the
   extra complexity to work around the sleep.

   semundo_adjust() must then stop freeing an emptied structure in the middle of
   an operation: sys_semop()'s rollback can need it again, and re-creating it
   there is allowed to fail, which is a panic.  Keep it until done2.  That also
   takes a second sleeping pool_put() out of the done: region.


    [7 lines not shown]
VersionDeltaFile
1.72+41-44sys/kern/sysv_sem.c
+41-441 files

NetBSD/src 7b3pJOHsys/kern vfs_bio.c

   vfs_bio: retry fresh buffer allocation if recycling fails

   getnewbuf() uses buf_lotsfree() to choose whether to
   allocate a fresh buffer before trying BQ_AGE and BQ_LRU.

   If fresh allocation is skipped and no buffer can actually be
   recycled, it sleeps on needbuffer_cv even when the buffer cache
   is still below its high water mark.

   In that situation, a thread which could release a buffer may
   itself need another buffer, resulting in a deadlock.

   To avoid this, if recycling finds no usable buffer and bufmem is
   still below bufmem_hiwater, make one more PR_NOWAIT fresh allocation
   attempt before sleeping.  See PR kern/60584 for details.

   Worth to pullup to netbsd-11.
VersionDeltaFile
1.309+23-2sys/kern/vfs_bio.c
+23-21 files

FreeBSD/ports 8d49a16net-p2p/libtorrent-rasterbar2 distinfo pkg-plist, net-p2p/qbittorrent/files patch-src_base_bittorrent_customstorage.h patch-src_base_bittorrent_customstorage.cpp

net-p2p/libtorrent-rasterbar2: revert "net-p2p/libtorrent-rasterbar2: update 2.0.13 → 2.1.1"

There are run-time issues that need to be investigated.

This reverts commit 7c412d80f232eb225c1d48ff72d5fab1dd8769e9.
DeltaFile
+62-83net-p2p/libtorrent-rasterbar2/pkg-plist
+0-59net/arrowdl/files/patch-src_torrent_utils.cpp
+0-43net-p2p/qbittorrent/files/patch-src_base_bittorrent_customstorage.cpp
+0-22net/arrowdl/files/patch-src_torrent_torrentcontext.cpp
+0-15net-p2p/qbittorrent/files/patch-src_base_bittorrent_customstorage.h
+3-11net-p2p/libtorrent-rasterbar2/distinfo
+65-2334 files not shown
+71-24310 files

FreeBSD/ports 211738cwww/immich Makefile, www/immich/files immich_server.in pkg-message.in

www/immich: Set the machine learning URL

Immich defaults to the Docker hostname immich-machine-learning, which
never resolves outside a container, so the service ran unnoticed while
the server reported it unhealthy.  The rc script now sets
IMMICH_MACHINE_LEARNING_URL, adjustable with immich_server_ml_url.

Sponsored by:   Netzkommune GmbH
DeltaFile
+3-3www/immich/files/pkg-message.in
+1-1www/immich/Makefile
+2-0www/immich/files/immich_server.in
+6-43 files

LLVM/project 328836bclang/lib/CIR/Dialect/Transforms CallConvLoweringPass.cpp

[CIR][ABI] Honor abi::ArgInfo::CanBeFlattened in the call-conv lowering (#220579)

**Summary:**
- CanBeFlattened landed on abi::ArgInfo in main
(llvm/llvm-project#220558).
- Consume the abi::ArgInfo::CanBeFlattened flag in the CIR
call-convention lowering bridge.

Assisted by: Claude Opus 4.8
DeltaFile
+8-4clang/lib/CIR/Dialect/Transforms/CallConvLoweringPass.cpp
+8-41 files

LLVM/project bf73ea1llvm/include/llvm/CodeGen RegAllocPriorityAdvisor.h, llvm/lib/CodeGen RegAllocEvictionAdvisor.cpp MLRegAllocPriorityAdvisor.cpp

[MLGO] Diagnose unavailable ML advisors under the new pass manager (#224585)

Without an ML model there is no release or development advisor

The legacy pass manager says so and uses the default advisor, but the
new one just crashed
DeltaFile
+7-6llvm/lib/CodeGen/RegAllocPriorityAdvisor.cpp
+5-7llvm/lib/CodeGen/RegAllocEvictionAdvisor.cpp
+9-3llvm/lib/CodeGen/MLRegAllocPriorityAdvisor.cpp
+5-2llvm/test/CodeGen/MLRegAlloc/default-priority-advisor.ll
+3-0llvm/test/CodeGen/MLRegAlloc/default-eviction-advisor.ll
+1-1llvm/include/llvm/CodeGen/RegAllocPriorityAdvisor.h
+30-191 files not shown
+31-207 files

NetBSD/src lgspOLmusr.bin/make make.1 meta.c

   make: allow for a lot more unique temp files
VersionDeltaFile
1.227+3-3usr.bin/make/meta.c
1.670+3-3usr.bin/make/main.c
1.396+2-2usr.bin/make/make.1
+8-83 files

FreeBSD/ports 6edff70www/linux-brave pkg-descr distinfo, www/linux-brave/files brave-widevine-seed.in brave-browser.in

www/linux-brave: DRM out of the box, GPU auto-detection

Add a WIDEVINE option (default on) so DRM playback works with no
browser-side setup once the CDM is present. The option links
${PREFIX}/lib/WidevineCdm into the Brave install directory, where the
component updater discovers it as a preinstalled component, and runs a
pre-launch seed script that sets brave.widevine_opted_in and maintains
the Widevine component hint file: Chromium registers the CDM at
startup from the hint and never repairs it itself, so the script
plants the hint before the first launch and repoints it when its
target no longer holds a CDM (e.g. after the CDM port is reinstalled),
while leaving intact hints -- including one naming a newer
component-updated CDM -- alone.

The option adds no dependency: Google's license permits fetching the
CDM but not redistributing it (www/linux-widevine-cdm is
no-pkg-mirror), so a RUN_DEPENDS would keep linux-brave itself off the
package mirrors. Everything the option installs is inert until the
user builds www/linux-widevine-cdm from ports -- the symlink dangles

    [39 lines not shown]
DeltaFile
+108-4www/linux-brave/files/brave-browser.in
+79-0www/linux-brave/files/brave-widevine-seed.in
+32-25www/linux-brave/Makefile
+31-0www/linux-brave/pkg-message
+3-3www/linux-brave/distinfo
+2-1www/linux-brave/pkg-descr
+255-332 files not shown
+259-348 files

FreeBSD/ports a4e80cbmisc/antigravity-cli Makefile distinfo

misc/antigravity-cli: update 1.2.6 → 1.2.7
DeltaFile
+5-5misc/antigravity-cli/distinfo
+2-2misc/antigravity-cli/Makefile
+7-72 files

FreeBSD/ports 7c412d8net-p2p/libtorrent-rasterbar2 distinfo pkg-plist, net-p2p/qbittorrent/files patch-src_base_bittorrent_customstorage.h patch-src_base_bittorrent_customstorage.cpp

net-p2p/libtorrent-rasterbar2: update 2.0.13 → 2.1.1

- net/arrowdl is patched and patches upstreamed: https://github.com/setvisible/ArrowDL/pull/250
- net-p2p/qbittorrent is patched and patches upstreamed: https://github.com/qbittorrent/qBittorrent/issues/24942
DeltaFile
+83-62net-p2p/libtorrent-rasterbar2/pkg-plist
+59-0net/arrowdl/files/patch-src_torrent_utils.cpp
+43-0net-p2p/qbittorrent/files/patch-src_base_bittorrent_customstorage.cpp
+22-0net/arrowdl/files/patch-src_torrent_torrentcontext.cpp
+15-0net-p2p/qbittorrent/files/patch-src_base_bittorrent_customstorage.h
+11-3net-p2p/libtorrent-rasterbar2/distinfo
+233-654 files not shown
+243-6710 files

FreeBSD/ports 306c05bmisc/netron Makefile distinfo

misc/netron: update 9.2.8 → 9.2.9
DeltaFile
+3-3misc/netron/distinfo
+1-1misc/netron/Makefile
+4-42 files

NetBSD/src d7k5YKAsys/arch/atari/atari atari_init.c

   atari: Fix 68030 SRP setup across kernel relocation

   protorp[1] is currently updated after the kernel has been copied to
   TT-RAM in RELOC_KERNEL case.  The following PMOVE reads the ST-RAM
   copy while the MMU is disabled, so this happens to work when enabling
   the MMU.  After the MMU is enabled, however, protorp refers to the
   relocated copy, where protorp[1] still contains its old value.

   Fortunately, this is not currently fatal because later uses of
   protorp overwrite protorp[1] with the root table address before
   loading the root pointer.  However, any writes to global variables
   after relocation leave the reloacated kernel state inconsistent.

   Set protorp[1] before copying the kernel so that the relocated copy
   also contains the root table address.  This matches the ordering used
   by amiga.

   The PMOVE inline asm also specifies only the address of protorp as an
   input, even though it reads both words of the SRP prototype from memory.

    [2 lines not shown]
VersionDeltaFile
1.122+11-6sys/arch/atari/atari/atari_init.c
+11-61 files

OpenBSD/src 8Tfr7F0usr.sbin/rtrd rtrd.c

   Daemonize rtrd correctly.
   OK job@
VersionDeltaFile
1.7+5-8usr.sbin/rtrd/rtrd.c
+5-81 files

FreeBSD/ports 1f9a6e6japanese Makefile, japanese/mozc-modeless distinfo pkg-descr

japanese/mozc-modeless: New port: Modeless Japanese input with Mozc for Emacs

PR:             298515
Approved by:    osa (mentor)
DeltaFile
+38-0japanese/mozc-modeless/Makefile
+11-0japanese/mozc-modeless/pkg-message
+4-0japanese/mozc-modeless/pkg-descr
+3-0japanese/mozc-modeless/distinfo
+1-0japanese/Makefile
+57-05 files

FreeBSD/ports 44babf6textproc Makefile, textproc/google-translate pkg-descr distinfo

textproc/google-translate: New port: Emacs interface to Google Translate

PR:             298459
Approved by:    osa (mentor)
DeltaFile
+33-0textproc/google-translate/Makefile
+21-0textproc/google-translate/files/pkg-message.in
+7-0textproc/google-translate/pkg-plist
+3-0textproc/google-translate/distinfo
+2-0textproc/google-translate/pkg-descr
+1-0textproc/Makefile
+67-06 files

FreeBSD/ports 3a886a5misc/edfbrowser Makefile distinfo

misc/edfbrowser: Update to 2.15

Take maintainership due to multiple consecutive timeouts.

Changelog: https://www.teuniz.net/edfbrowser/version.txt

PR:             297858
Approved by:    osa (mentor)
DeltaFile
+3-3misc/edfbrowser/distinfo
+2-2misc/edfbrowser/Makefile
+5-52 files

OpenBSD/src tIKZHJLlib/libcrypto/x509 x509_verify.c

   x509_verify: plug memleak in previous

   CID 656293

   ok joshua
VersionDeltaFile
1.81+2-2lib/libcrypto/x509/x509_verify.c
+2-21 files

OpenBSD/ports wJHOLU4sysutils/libgudev distinfo Makefile, sysutils/libgudev/patches patch-gudev_meson_build

   Import libgudev-237

   libgudev is a library with GObject bindings to libudev <...>
   NOT linked to the build yet

   ok robert@
VersionDeltaFile
1.1+33-0sysutils/libgudev/Makefile
1.1+17-0sysutils/libgudev/pkg/PLIST
1.1+12-0sysutils/libgudev/patches/patch-gudev_meson_build
1.1+2-0sysutils/libgudev/pkg/DESCR
1.1+2-0sysutils/libgudev/distinfo
1.1.1.1+0-0sysutils/libgudev/pkg/PLIST
+66-04 files not shown
+66-010 files

LLVM/project 316d12dcompiler-rt/lib/builtins truncsfhf2.c extendhfsf2.c, llvm/include/llvm/IR RuntimeLibcalls.td

[compiler-rt] Use integers for __gnu_h2f_ieee and __gnu_f2h_ieee (#220167)

In libgcc, these conversion routines use integers in the signature. In
practice compiler-rt's definition has worked because the AAPCS calling
convention passes and returns floats the same as the same-sized integer,
but this may not be the case on all platforms. Thus, update the
signatures to match GCC.

This new version calls the inlined functions directly., changing the
generated code from:

    00000000 <__extendhfsf2>:
       0:   ee100a10        vmov    r0, s0
       4:   e1a01000        mov     r1, r0
      <snip>
      60:   e1800001        orr     r0, r0, r1
      64:   ee000a10        vmov    s0, r0
      68:   e12fff1e        bx      lr


    [28 lines not shown]
DeltaFile
+17-1compiler-rt/lib/builtins/fp_trunc.h
+17-1compiler-rt/lib/builtins/fp_extend.h
+6-4compiler-rt/lib/builtins/truncsfhf2.c
+6-4compiler-rt/lib/builtins/extendhfsf2.c
+4-0llvm/include/llvm/IR/RuntimeLibcalls.td
+50-105 files

LLVM/project f970f59clang/lib/AST Type.cpp, clang/test/Modules concept-specialization-deserialization.cppm

[C++20] [Modules] Profiling non dependent noexcept expression by pointer (#224528)

Another approach to solve
https://github.com/llvm/llvm-project/issues/191361 and
https://github.com/llvm/llvm-project/issues/224180 than
https://github.com/llvm/llvm-project/pull/222148

I want to avoid competing PR but I do feel the original one's approach
seems too workaround. And I want to emphasize that, in my experience,
finding the root cause is much more harder than find the solution to me.
Many thanks to @ispeters

For the approach itself, I described them in the comments of the PR.

Note that the real problem is we were profiling something is not
completely deserialized, so that even if it is not crash, the logic is
not correct.
DeltaFile
+42-0clang/unittests/Serialization/LoadSpecLazilyTest.cpp
+37-0clang/test/Modules/concept-specialization-deserialization.cppm
+13-1clang/lib/AST/Type.cpp
+92-13 files

OpenBSD/src EWm5mHYetc rc

   Make style in rootdisk_nodes more consistent with rc

   No functional changes, although variables are now localized.
VersionDeltaFile
1.596+22-21etc/rc
+22-211 files

LLVM/project be881abllvm/lib/Target/AMDGPU AMDGPUISelLowering.cpp, llvm/test/CodeGen/AMDGPU llvm.amdgcn.mul.i24.ll

[AMDGPU] Fold 24 bit multiply with zero low bits

Fold `MUL_I24` and `MUL_U24` to zero when either operand has known zero
low 24 bits.

For example:
```
  llvm.amdgcn.mul.i24(x, 0x01000000) -> 0
```
DeltaFile
+21-33llvm/test/CodeGen/AMDGPU/llvm.amdgcn.mul.i24.ll
+5-0llvm/lib/Target/AMDGPU/AMDGPUISelLowering.cpp
+26-332 files