multimedia/jellyfin: Update to 12.4
- Depend on multimedia/jellyfin-ffmpeg instead of multimedia/ffmpeg and
point the rc script at its ffmpeg binary (jellyfin_ffmpeg, set it to an
empty string to fall back to the PATH lookup)
- Depend on devel/libunwind-devel, which is what the bundled .NET runtime
is linked against
- Pass --allow-remote to npm, which is required since npm 12 to fetch the
classlist.js tarball dependency
PR: 298699, 298827
[LangRef] Fix the documentation of wchar_size/min_enum_size metadata (#241540)
5dc2934b introduced these metadata module flags, but documented
something else -- `short_wchar` and `short_enum`, which not only differ
in names, but also in the meaning of their values.
The text also presented the flags as ARM-specific. This has changed for
`wchar_size` long ago (it has been used by TLI for quite a while).
Still true for `min_enum_size`.
Assisted-by: Claude
[clang] Add check in SemaChecking for multiple unsequenced volatile accesses (#180955)
According to standards volatile accesses is a side effect and multiple
unsequenced volatile accesses same variable is UB.
graphics/libskiasharp: Update to 119
Update to the SkiaSharp 3.119 native library. multimedia/jellyfin 12.4
uses SkiaSharp 3.119.4, which needs the matching native library.
PR: 300147
lang/dotnet: adapt to the relocated libunwind-devel files
devel/libunwind-devel now installs its development files under
${PREFIX}/libunwind11 with only the versioned shared libraries left in the
default library path and no longer conflicts with devel/libunwind.
Depend on the libunwind.so.11 shared library instead of the unversioned
development symlink, and point the build at the relocated files: CMake
search paths for both the library and the headers, and CPATH for the
headers since the build overrides the compiler flags.
devel/libunwind-devel: allow installation alongside libunwind
Only install the share library in the library path in order to be able
to have both libunwind-devel and libunwind installed at the same time.
[AArch64] Fold away scalar_to_vector / extract_elt around bitwise ops (#234955)
Given `scalar_to_vector(and(x, extract(y)))`, we would generate a number
of expensive cross-register bank moves. We can instead generate
`and(scalar_to_vector(x), y)` as vector operations, saving one of the
copies. This comes up in the lowering of pdep/pext using clmul
operations, saving expensive operations on the critical chain.
Comes from #227292.
[CIR] Make LoweringPrepare safe to rerun on poison aggregate stores (#239847)
CallConvLowering runs after LoweringPrepare and materializes ignored and
empty-record arguments as stores of a `#cir.poison` aggregate. Running
the pipeline again on its own output, e.g. on an emitted .cir file, made
LoweringPrepare rewrite those stores into a copy from a new `__const.*`
global holding poison. Nothing errors, but the output changes on every
rerun.
I believe the previous result was still correct, but it results into
redundant code.
graphics/qgis-ltr: Fix pkg-plist entry
Build error due to an incorrect entry in pkg-plist when the QGIS Server
option is disabled.
No increase in PORTREVISION is needed.
PR: 300693
MFH: 2026Q4
(cherry picked from commit 4a43deb2f8996cfd942bf4b562fb40b41eb14895)
[X86] LowerIntVSETCC_AVX512 - add fallback handling for vXi8/vXi16 comparisons without BWI (#237723)
Normally we handle NoBWI comparisons in combineSetCC with
truncateAVX512SetCCNoBWI, but if we end up expanding to SETCC/VSELECT
nodes during lowering we might not get the chance.
This patch adds fallback handling - splitting v32i16/v64i8 cases and
handling v8i16/v16i16/v16i8/v32i8 as AVX2 comparisons before truncating
the result back to vXi1 types - we rely on existing lowering to handle
v32i1/v64i1 types without BWI.
Fixes #235912
[AArch64](NFC) Set accurate liveness information on all MIR tests (#241306)
Now that `tracksRegLiveness` is true by default, we want to deprecate
`tracksRegLiveness: false` and have accurate, verified liveness
information on as many MIR tests as possible. Update the AArch64 MIR
tests with accurate live-in lists and drop any incorrect liveness
information. Check lines change slightly in most tests, but only because
of the added live-ins and / or additional liveness information. This
process actually revealed an undefined virtual in one test that wasn't
caught previously, I've fixed this too.
graphics/qgis-ltr: Fix pkg-plist entry
Build error due to an incorrect entry in pkg-plist when the QGIS Server
option is disabled.
No increase in PORTREVISION is needed.
PR: 300693
MFH: 2026Q4
[mlir][LLVM] Include LLVM dialect partition headers instead of LLVMDialect.h
Most includers of `LLVMDialect.h` use only a few LLVM dialect ops, or none at all, but still pay for all 323 op declarations. Widely included headers such as `OpenMPDialect.h`, `NVVMDialect.h` and `GPUCommonPass.h` include it as well, spreading the cost to TUs that never use the LLVM dialect.
Building on #242301, this patch makes every file include what it uses: the partition headers of the ops it uses, `LLVMDialectDecl.h`, `LLVMTypes.h`, `LLVMAttrs.h` or `LLVMInterfaces.h` if it only uses the dialect, types, attributes or interfaces, and forward declarations where a declaration suffices. Headers no longer include LLVM dialect headers on behalf of their includers. Files that use ops from at least 8 of the 14 partitions keep `LLVMDialect.h`.
This reduces the TUs including `LLVMDialect.h` in an MLIR, flang and CIR build from 386 to 41. Downstream code that relied on getting LLVM dialect ops transitively has to include the partition headers it needs.
Measurements of the users of the LLVM dialect, where "Memory" is the sum of the max RSS of every TU:
| Compiler | Wall time (s) | CPU time (s) | Total memory (GiB) |
|----------|--------------------|---------------------|-----------------------|
| clang | 53.9 -> 49.2 (-9%) | 1484 -> 1131 (-24%) | 79.4 -> 60.8 (-23%) |
| clang -g | 68.1 -> 62.9 (-8%) | 1639 -> 1245 (-24%) | 83.8 -> 65.3 (-22%) |
| gcc | 62.3 -> 57.4 (-8%) | 1388 -> 1036 (-25%) | 119.8 -> 88.5 (-26%) |
| gcc -g | 94.4 -> 85.5 (-9%) | 2193 -> 1555 (-29%) | 157.1 -> 116.7 (-26%) |
[AMDGPU][NFC] Add a helper to widen a 16-bit VGPR value to 32 bits (#239231)
Three places in SIInstrInfo and SIFixSGPRCopies build the same sequence
to put a 16-bit value into the low half of a 32-bit VGPR:
%undef:vgpr_16 = IMPLICIT_DEF
%dst:vgpr_32 = REG_SEQUENCE %src.sub, %subreg.lo16, %undef, %subreg.hi16
Move it into SIInstrInfo::buildVGPR32FromLo16(). The source subregister
is a parameter, so callers can't silently drop it.
Co-Authored-By: Claude Opus 5.5 <noreply at anthropic.com>