NAS-144806 / 27.0.0 / Handle webshare sidecar units rate limits (#20038)
Discovered while working on
https://github.com/truenas/middleware/pull/20034
We reset rate limits on the systemd units (so that our explicit commands
are not rejected), but not on their auxiliary services. This might
result in partial webshare startup.
ports-mgmt/portlint: warn when depending on openldap-client directly
Add a check that flags direct dependencies on
net/openldap2*-client or databases/openldap2*-client,
suggesting USES+=ldap instead. The corresponding
-server port is exempted since that dependency is expected.
PR: ports/297834
Approved by: maintainer timeout
[BPF] Lower the atomic operations that there is no insn for (#235215)
BPF has add, and, or, xor, xchg and cmpxchg on 32 and 64 bits, load
acquire
and store release. The rest is an error:
atomicrmw xchg ptr %p, i8 %v seq_cst
unsupported atomic operation, please use 32/64 bit version
atomicrmw max ptr %p, i64 %v seq_cst
Cannot select: AtomicLoadMax
load atomic i64, ptr %p seq_cst, align 8
sequentially consistent (seq_cst) atomic load/store is not supported
fence acquire
Runtime fence is not supported at the moment
With load acquire and store release, -mcpu=v4:
- 8 and 16 bits: the minimal size of cmpxchg is 32 bits. AtomicExpand
widens
and, or, xor, and turns the others into a loop around cmpxchg of the
[26 lines not shown]
[BPF] Select undef and poison as zero (#235216)
An undef or poison value is selected as IMPLICIT_DEF: no insn, the
register
holds what it happens to hold. The verifier rejects a read of a register
that
was not written, whatever is done with the value.
Such values are not a sign of a bug in the source. In
%e = zext i64 %b to i128
%m = mul i128 %a, %e
with bits 0-63 of %m in use the upper halves of the operands don't
matter.
They are passed to __multi3() in r2 and r4, which nobody sets: "R4
!read_ok".
Select ISD::UNDEF and ISD::POISON of i32 and i64 as 'rX = 0'. Both get
[7 lines not shown]
lang/rust: Fix build with CPUTYPE and the WASM option
cc-rs appends the target specific CFLAGS_<target> to the generic CFLAGS
instead of replacing them, so the -march that CPUTYPE adds for the host
was also passed when compiler-builtins' C code is built for
wasm32-unknown-unknown, where clang rejects it:
clang: error: unsupported option '-march=' for target
'wasm32-unknown-unknown'
Clear CFLAGS/CXXFLAGS for the bootstrap and pass the flags per target
only, without -march/-mtune/-mcpu for wasm32. The flags for the host
target are unchanged.
Tested with lang/rust-nightly and CPUTYPE=skylake-avx512.
PR: ports/299355
Approved by: maintainer timeout
[BPF] Set the call frame size of the blocks that a select expands to (#236250)
A select is expanded to a branch and two new blocks. When that happens
between ADJCALLSTACKDOWN and ADJCALLSTACKUP of a call that passes
arguments on the stack, the new blocks have to say how big the call
frame is at their entry. ARM, AVR, LoongArch, M68k, PowerPC, RISC-V do
that. BPF didn't:
*** Bad machine code: Call frame size on entry does not match value
computed from predecessor ***
- function: f
- basic block: %bb.5 go
Call frame size on entry 0 does not match value computed from
predecessor 8
unwind-select-arg.ll of #235217 is the first test with such a call. It
fails with -verify-machineinstrs, which is the default in a build with
LLVM_ENABLE_EXPENSIVE_CHECKS. The invoke has nothing to do with it: a
call with six arguments, one of them a bool that is computed, fails the
[7 lines not shown]
[mlir][vector] Check the written dims when folding a write mask (#233244)
`isMaskTriviallyFoldable` compares dest dim `rankDiff + i` with index
`i`, so when the vector has fewer dims than the destination, it checks
dims against the wrong indices. `createWriteOrMaskedWrite` therefore did
not call it when given a permutation map, and kept the mask even when it
is all true. It now passes only the sizes and indices of the dims that
the map selects, and the mask shape, so the check runs for every map.
For example, vectorizing this with `vector_sizes [4, 4]`:
```mlir
%r = tensor.insert_slice %src into %dest[2, 6, 0] [4, 1, 4] [1, 1, 1]
: tensor<4x4xi32> into tensor<8x8x8xi32>
```
gave a write masked with `vector.create_mask` of sizes 6 and 8 on a
`vector<4x4xi1>`, which is all true. The write is now unmasked.
[9 lines not shown]
[SandboxVec][LoadStoreVec] Propagate Metadata (#236274)
This patch implements metatdata porpagation to the vectorized
instructions. This is the expected behavior according to the
LoadStoreVectorizer.
[ADT] Make BitmaskEnum compound assignment operators constexpr (#236003)
`~ | & ^ << >>` were already `constexpr` in `BitmaskEnum.h` while `|= &=
^= <<= >>=` were not.
Addresses build failures from
https://github.com/llvm/llvm-project/pull/220606
AI Disclosure:
I used Claude Opus 5 to help write the tests and implement the changes.
[libc][math] Fix `sinpif` and `sinpif16` error handling (#235780)
Follow up of https://github.com/llvm/llvm-project/pull/235296, tested
both functions with CORE-MATH's exhaustive checker in all four rounding
modes. With `CORE_MATH_SUPPORT_ERRNO` and `CORE_MATH_CHECK_INEXACT`
enabled.
- Set ERANGE for underflow in sinpif and sinpif16.
- Raise missing underflow exceptions in sinpif16.
- Return exact half-integer results in sinpif16 without raising
FE_INEXACT.
[AArch64][MachineOutliner] Fix up SP add/sub immediates in outlined sequences (#191120)
Extend the AArch64 machine outliner to handle ADDXri/SUBXri instructions
that read SP when the outlined function saves LR on the stack, shifting
SP down by 16.
Previously only loads/stores with an SP base were adjusted. This patch
adds support for ADDXri and SUBXri with an SP source operand, correctly
re-encoding the adjusted offset and changing the opcode when the sign
flips. Unencodable adjusted offsets cause the candidate to be rejected
during the safety check, preventing illegal outlining.
security/openpgp-card-tools: [NEW PORT] CLI tool for interacting with OpenPGP cards
The openpgp-card-tools package provides 'oct', a command-line tool for
interacting with OpenPGP cards (YubiKey, Nitrokey and other
OpenPGP-compliant smart cards and security tokens). It supports listing
card information, managing PINs, generating and importing keys, and
performing cryptographic operations directly on the hardware.
WWW: https://codeberg.org/openpgp-card/openpgp-card-tools
PR: 293960
Co-authored-by: alven@
Take the FreeBSD kexts from nextbsd-kernel-extensions (#591)
IntelWiFi and IntelEthernet now build in the new nextbsd-kernel-extensions
and ship as freebsd-kexts-amd64.tar.gz (nextbsd/nextbsd#554); fetch that
instead of the two Intel tarballs from the graphics repo.
Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
[mlir][VCIX] Check legalized type before use in math.tan test pattern (#236051)
`MathTanToVCIX` called `getElementType()` on the result of
`legalizeVectorType()` before checking whether legalization failed. For
types it can't legalize (scalars, multi-dimensional vectors, scalable
vectors with unsupported element types) that result is null, so the
pattern crashed instead of leaving the op alone like the cos, sin and
log patterns do.
This moves the null check above the first use and adds tests for a
scalar `math.tan` and a `vector<2x4xf32>` one.
Fixes #231844
Merge tag 'm68knommu-for-v7.4' of git://git.kernel.org/pub/scm/linux/kernel/git/gerg/m68knommu
Pull m68knommu updates from Greg Ungerer:
"Platform code added for the ColdFire 54418 RNG hardware block. Also
PWM address definitions for the 54418. A fix for seccomp filter
processing during system call entry and a fix for compiling the
Cleopatra board target. A config update for the stmark board, and
lastly a couple of typo fixes"
* tag 'm68knommu-for-v7.4' of git://git.kernel.org/pub/scm/linux/kernel/git/gerg/m68knommu:
m68k: coldfire: Add RNG support for MCF54418
m68k: mcf5441x: add PWM defines
m68knommu: fix compile breakage for 5407 cleopatra board
m68k: defconfig: update stmark2 defconfig
m68k: Fix seccomp filtering on ColdFire and 68000
m68k: remove unused <asm/quicc_simple.h> header
m68k: fix typo "eanble" in comment
m68k: coldfire: fix typos in reset.c comment
Merge tag 'trace-v7.4' of git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace
Pull tracing updates from Steven Rostedt:
- Add "within" to filter logic
Add a way to trace events by what function they fall in.
echo 'within == "vfs_read" > events/sched/sched_switch/filter
Will only trigger sched_switch events that happen within the vfs_read
function. It uses a stacktrace at the event and checks if any entry
is within the specified function and if so, it prints the event.
- Remove a duplicate definition of ftrace_set_clr_event() from the
header
- Do not have ftrace_set_clr_event() modify its input buffer
[118 lines not shown]
libthr/thr_mutex.c: make mutex asserts more useful
Print the file and line number of the caller where the assert fired.
Use _thread_exitf() directly for this.
Sponsored by: The FreeBSD Foundation
MFC after: 1 week