HardenedBSD/src 6e1220acontrib/expat Changes, contrib/expat/lib xmltok.h xmlparse.c

Merge remote-tracking branch 'rad/hardened/current/master' into hardened/current/pledge
DeltaFile
+189-64contrib/expat/lib/xmlparse.c
+79-0contrib/expat/tests/basic_tests.c
+65-0contrib/expat/Changes
+57-1contrib/expat/tests/misc_tests.c
+3-3lib/libexpat/expat_config.h
+2-2contrib/expat/lib/xmltok.h
+395-7010 files not shown
+408-7916 files

HardenedBSD/src 1616efashare/man/man4 bnxt.4 ice.4, sys/dev/ice ice_iflib.h if_ice_iflib.c

Merge remote-tracking branch 'rad/hardened/15-stable/main' into hardened/15-stable/pledge
DeltaFile
+44-0sys/dev/ice/if_ice_iflib.c
+8-1share/man/man4/ice.4
+4-1share/man/man4/bnxt.4
+1-0sys/dev/ice/ice_iflib.h
+57-24 files

HardenedBSD/src b7de4eccontrib/expat Changes, contrib/expat/lib xmltok.h xmlparse.c

Merge branch 'freebsd/current/main' into hardened/current/master
DeltaFile
+189-64contrib/expat/lib/xmlparse.c
+79-0contrib/expat/tests/basic_tests.c
+65-0contrib/expat/Changes
+57-1contrib/expat/tests/misc_tests.c
+3-3lib/libexpat/expat_config.h
+2-2contrib/expat/lib/xmltok.h
+395-7010 files not shown
+408-7916 files

LLVM/project 813609cclang/lib/AST/ByteCode Program.cpp Program.h

[clang][bytecode] Allocate functions via Program allocator (#219994)

They have the same lifetime as `Program`, so use the allocator we're
already carrying around.
DeltaFile
+8-4clang/lib/AST/ByteCode/Program.h
+2-2clang/lib/AST/ByteCode/Program.cpp
+10-62 files

HardenedBSD/src cbe8178share/man/man4 bnxt.4 ice.4, sys/dev/ice ice_iflib.h if_ice_iflib.c

Merge branch 'freebsd/15-stable/main' into hardened/15-stable/main
DeltaFile
+44-0sys/dev/ice/if_ice_iflib.c
+8-1share/man/man4/ice.4
+4-1share/man/man4/bnxt.4
+1-0sys/dev/ice/ice_iflib.h
+57-24 files

HardenedBSD/ports 643f982emulators/flycast distinfo Makefile, emulators/flycast/files patch-core_rend_vulkan_vulkan__context.cpp patch-core_rend_vulkan_vmallocator.h

Merge branch 'freebsd/main' into hardenedbsd/main
DeltaFile
+50-14emulators/flycast/Makefile
+38-10emulators/flycast/files/patch-CMakeLists.txt
+0-38emulators/flycast/files/patch-core_rend_vulkan_vmallocator.h
+0-38emulators/flycast/files/patch-core_network_dcnet.cpp
+15-11emulators/flycast/distinfo
+0-11emulators/flycast/files/patch-core_rend_vulkan_vulkan__context.cpp
+103-12220 files not shown
+141-18326 files

LLVM/project 678058alibcxx/include/__compare type_order.h, libcxx/test/libcxx/language.support no_specializations.verify.cpp

[libc++] Implement P2830R10: Standardized Constexpr Type Ordering (#216616)

This patch implements the library side of `std::type_order` from
P2830R10 including the changes from P3778R0, P4140R0 and LWG4305. Since
clang's `__builtin_type_order`'s semantics match GCC's, this does not
need special casing for GCC.

Resolves https://github.com/llvm/llvm-project/issues/148152
Resolves https://github.com/llvm/llvm-project/issues/171284
Resolves https://github.com/llvm/llvm-project/issues/189595
Resolves https://github.com/llvm/llvm-project/issues/171344
DeltaFile
+65-0libcxx/test/std/language.support/cmp/cmp.type/type_order.compile.pass.cpp
+46-0libcxx/test/std/language.support/support.limits/support.limits.general/version.version.compile.pass.cpp
+46-0libcxx/test/std/language.support/support.limits/support.limits.general/compare.version.compile.pass.cpp
+40-0libcxx/include/__compare/type_order.h
+18-0libcxx/test/libcxx/language.support/no_specializations.verify.cpp
+7-0libcxx/utils/generate_feature_test_macro_components.py
+222-010 files not shown
+251-416 files

LLVM/project 5bf0ddellvm/lib/Target/X86 X86ISelLowering.cpp, llvm/test/CodeGen/X86 adox.ll

[X86] Fix ADOX miscompile by restricting COND_O optimization when EFLAGS are used (#220117)

This patch fixes a miscompile where the X86 DAGCombiner aggressively
folds an `ADD` node into an `ADOX` instruction even when the Zero Flag
(ZF) produced by the `ADD` is used by a subsequent branch (e.g., `je`).
DeltaFile
+61-0llvm/test/CodeGen/X86/adox.ll
+5-3llvm/lib/Target/X86/X86ISelLowering.cpp
+66-32 files

LLVM/project d933171llvm/lib/Target/VE VEISelLowering.cpp

[VE] Create TS1AM with getMemIntrinsicNode (#220151)

isa<AtomicSDNode> returns false on the built node: the lookup key and
SDNode::Profile disagree and the node never CSEs (see #219911).

CodeGen/VE/Scalar/atomic_swap.ll will break when we add an assert to
FoldingSet::insert that the `nodeProfile()` output matches `Token`.

Fix with getMemIntrinsicNode (`def ts1am` carries SDNPMemOperand).
DeltaFile
+12-10llvm/lib/Target/VE/VEISelLowering.cpp
+12-101 files

LLVM/project 39cd42flibc/src/__support/math CMakeLists.txt, libc/test/src/math/smoke fminimumf128_test.cpp fmaximumf128_test.cpp

nits
DeltaFile
+2-2libc/test/src/math/smoke/CMakeLists.txt
+2-2libc/src/__support/math/CMakeLists.txt
+1-1libc/test/src/math/smoke/fminimumf128_test.cpp
+1-1libc/test/src/math/smoke/fmaximumf128_test.cpp
+6-64 files

OpenBSD/src sdRThqfusr.sbin/httpd server.c

   httpd: reject shared TLS listeners with different client CA or CRL

   Virtual hosts on the same address and port share one TLS context, and
   only the first hosts client CA and CRL are used. A client certificate
   accepted there reaches every host on the listener, including one meant
   to be restricted to a different CA. Such a configuration is now rejected
   instead of silently ignored.

   Bug report and diff by Acts1631

   OK kirill@ claudio@
VersionDeltaFile
1.138+10-1usr.sbin/httpd/server.c
+10-11 files

LLVM/project edfb6e8clang/docs ReleaseNotes.md, clang/lib/CodeGen/Targets X86.cpp

[Clang][CodeGen][X86] Fix crash on __int128 bit-field access units (#216777)

Fixes #202205

The x86-64 SysV classifier skipped every unnamed bit-field as padding,
so an eightbyte holding nothing but a non-zero-width unnamed bit-field
stayed `NO_CLASS`. GCC treats that storage as INTEGER. The crash falls
out of this: a run of `__int128` bit-fields is lowered to a single
`i128` access unit spanning both eightbytes, but with only one of them
classified INTEGER the `i128` gets queried at offset 8 and hits
`assert(IROffset == 0)` in `GetINTEGERTypeAtOffset` — or `assert(Hi ==
Integer)` in the callers, depending on which eightbyte holds the named
field. It also silently diverges from GCC on ordinary shapes like
`struct { long : 64; long a; }`, which clang passed in one register
where GCC uses two.

The fix skips only zero-length bit-fields and classifies the rest like
named ones, matching GCC. Both eightbytes of an `__int128` bit-field run
then come out `INTEGER`, so the existing asserts hold unchanged. The

    [9 lines not shown]
DeltaFile
+52-0clang/test/CodeGen/X86/x86_64-arguments.c
+19-0clang/test/CodeGen/X86/x86_64-union-abi.c
+4-3clang/lib/CodeGen/Targets/X86.cpp
+7-0clang/docs/ReleaseNotes.md
+3-1llvm/lib/ABI/Targets/X86.cpp
+85-45 files

LLVM/project cd94327flang/lib/Lower/OpenMP ClauseProcessor.cpp OpenMP.cpp, flang/lib/Semantics resolve-directives.cpp

[flang][OpenMP] Fix use_device_addr handling for COMMON blocks in target data (#217105)

Related to #217112

Flang already handles `use_device_addr` for regular variables on `target
data`,
but named COMMON blocks had two gaps: combining a COMMON block in `map`
and
`use_device_addr` was incorrectly rejected, and whole-COMMON
`use_device_addr`
could leave references in the region bound to the host COMMON instead of
the
returned device address.

This fixes the COMMON-block semantic handling and lowering so the valid
`map`/`use_device_addr` combination is accepted and COMMON members use
the
correct target-data bindings.


    [3 lines not shown]
DeltaFile
+232-0flang/test/Lower/OpenMP/target-data-use-device-addr-common-block.f90
+148-0flang/test/Semantics/OpenMP/use-device-addr-common-block.f90
+93-0offload/test/offloading/fortran/target-data-use-device-addr-common-block.f90
+27-4flang/lib/Lower/OpenMP/OpenMP.cpp
+24-1flang/lib/Lower/OpenMP/ClauseProcessor.cpp
+22-1flang/lib/Semantics/resolve-directives.cpp
+546-66 files

HardenedBSD/ports 9348eb2emulators/flycast distinfo Makefile, emulators/flycast/files patch-core_sdl_dreampicoport.cpp patch-core_rend_vulkan_vmallocator.h

emulators/flycast: Update to 2.7 and unbreak

Port changes:
- Switch to net/asio130 to unbreak the build. This also guarantees a
  more stable update path for the flycast port, because newer versions
  of net/asio are constantly deprecating and removing APIs.
- Unbreak on FreeBSD < 15 for newer DreamPicoPort submodule.
- Unbundle several dependencies. This is accompanied with an
  EXTRACT_AFTER_ARGS block to exclude unbundled and unused deps, which
  ensures that these aren't accidently referenced by the build process.
- Add LIBCDIO option, enabled by default. This enables CDROM support via
  libcdio. It was already available in previous flycast versions but was
  forgotten in the port.
- Prevent searching for git via CMAKE_DISABLE_FIND_PACKAGE_Git.
- Separate several blocks with newlines to improve readability.
- Remove obsolete patches.

Changelog:
https://github.com/flyinghead/flycast/releases/tag/v2.7

    [3 lines not shown]
DeltaFile
+50-14emulators/flycast/Makefile
+38-10emulators/flycast/files/patch-CMakeLists.txt
+0-38emulators/flycast/files/patch-core_rend_vulkan_vmallocator.h
+0-38emulators/flycast/files/patch-core_network_dcnet.cpp
+15-11emulators/flycast/distinfo
+0-11emulators/flycast/files/patch-core_sdl_dreampicoport.cpp
+103-1223 files not shown
+103-1469 files

FreeBSD/ports 9348eb2emulators/flycast distinfo Makefile, emulators/flycast/files patch-core_sdl_dreampicoport.cpp patch-core_rend_vulkan_vmallocator.h

emulators/flycast: Update to 2.7 and unbreak

Port changes:
- Switch to net/asio130 to unbreak the build. This also guarantees a
  more stable update path for the flycast port, because newer versions
  of net/asio are constantly deprecating and removing APIs.
- Unbreak on FreeBSD < 15 for newer DreamPicoPort submodule.
- Unbundle several dependencies. This is accompanied with an
  EXTRACT_AFTER_ARGS block to exclude unbundled and unused deps, which
  ensures that these aren't accidently referenced by the build process.
- Add LIBCDIO option, enabled by default. This enables CDROM support via
  libcdio. It was already available in previous flycast versions but was
  forgotten in the port.
- Prevent searching for git via CMAKE_DISABLE_FIND_PACKAGE_Git.
- Separate several blocks with newlines to improve readability.
- Remove obsolete patches.

Changelog:
https://github.com/flyinghead/flycast/releases/tag/v2.7

    [3 lines not shown]
DeltaFile
+50-14emulators/flycast/Makefile
+38-10emulators/flycast/files/patch-CMakeLists.txt
+0-38emulators/flycast/files/patch-core_rend_vulkan_vmallocator.h
+0-38emulators/flycast/files/patch-core_network_dcnet.cpp
+15-11emulators/flycast/distinfo
+0-11emulators/flycast/files/patch-core_sdl_dreampicoport.cpp
+103-1223 files not shown
+103-1469 files

LLVM/project 2a24ebbllvm/lib/Target/DirectX DXILOpLowering.cpp DXILCBufferAccess.cpp, llvm/test/CodeGen/DirectX llc-pipeline.ll

[NFC][DirectX] Fix memory leaks exposed by ASAN (#220152)

This PR should fix ASAN errors from
https://lab.llvm.org/buildbot/#/builders/52/builds/19811

There are three sources of leaks:

1. TargetPassConfig not being `PM.add()`ed
```
   Direct leak of 136 byte(s) in 1 object(s) allocated from:
     #1 ...createPassConfig(...)      DirectXTargetMachine.cpp:216:10   <- return new DirectXPassConfig(*this, PM);
     #2 ...addPassesToEmitFile(...)   DirectXTargetMachine.cpp:177:34   <- TargetPassConfig *PassConfig = createPassConfig(PM);
   Indirect leak of 144 byte(s) in 1 object(s) allocated from:
     #1 llvm::TargetPassConfig::TargetPassConfig(...)  TargetPassConfig.cpp:604:10  <- Impl = new PassConfigImpl();
     #2 DirectXPassConfig                              DirectXTargetMachine.cpp:112:9
 ```
 
2. MachineModuleInfoWrapperPass not being `PM.add()`ed
```

    [18 lines not shown]
DeltaFile
+6-3llvm/lib/Target/DirectX/DirectXTargetMachine.cpp
+2-1llvm/test/CodeGen/DirectX/llc-pipeline.ll
+1-1llvm/lib/Target/DirectX/DXILOpLowering.cpp
+1-1llvm/lib/Target/DirectX/DXILCBufferAccess.cpp
+10-64 files

LLVM/project 0fa6182openmp/runtime/src kmp_barrier.h kmp_barrier.cpp

[OpenMP][libomp] Fix dist barrier arrival synchronization (#213845)

Make distributedBarrier::stillNeed atomic and use release/acquire
ordering for distributed barrier gather arrival flags.

The old volatile stillNeed flag did not synchronize an arriving thread's
pre-barrier writes with the thread that observed its arrival. On weakly
ordered architectures, a group leader could observe stillNeed == 0
before the arriving thread's pre-barrier writes were visible. This
allowed another thread to pass the barrier and read stale data written
before the barrier.

Use release stores when publishing stillNeed == 0. Keep the spin loops
on relaxed loads, then perform one acquire fence after all expected zero
values have been observed. This connects the arriving threads'
pre-barrier writes to the observer through the standard release/acquire
happens-before chain, without using acquire loads on every poll.

The same pattern is used when a group leader publishes its own stillNeed

    [106 lines not shown]
DeltaFile
+24-11openmp/runtime/src/kmp_barrier.cpp
+1-1openmp/runtime/src/kmp_barrier.h
+25-122 files

LLVM/project 2a1fb82llvm/include/llvm/CodeGen TriggerCrashMachineFunction.h, llvm/include/llvm/Passes TriggerCrashPasses.h

Fix layering violation from #220073 (#220150)

That PR introduced circular dependencies LLVMTransformUtils <->
LLVMPasses. Move Trigger*CrashPasses into LLVMPasses.

Move TriggerCrashFunctionLegacyPass alongside the one usage
`-codegen-pipeline-trigger-crash` just to prevent a tiny .cpp file.
DeltaFile
+63-0llvm/include/llvm/Passes/TriggerCrashPasses.h
+0-59llvm/include/llvm/Transforms/Utils/TriggerCrashPass.h
+0-57llvm/lib/Transforms/Utils/TriggerCrashPass.cpp
+45-0llvm/lib/Passes/TriggerCrashPasses.cpp
+0-25llvm/include/llvm/CodeGen/TriggerCrashMachineFunction.h
+0-18llvm/lib/CodeGen/TriggerCrashMachineFunction.cpp
+108-15910 files not shown
+129-16916 files

DragonFlyBSD/src 646ee3esys/kern subr_cpu_topology.c

kernel - Expand cpu_topology_nodes[] array

* Double the size of the array, which stores nodes as well as leafs
  in the cpu topology tree.  The array was being blown out in early
  boot before if there were more than 128 CPUs.

* Add a KKASSERT() to catch any remaining issue, in case the tree
  winds up being more complex and requires more nodes.

Reported-by: ivadasz
DeltaFile
+4-1sys/kern/subr_cpu_topology.c
+4-11 files

DragonFlyBSD/src 30436b5sys/kern kern_lockf.c, sys/vfs/hammer hammer_vnops.c

kernel - Move primary lockf management into struct vnode

* Move lockf management out of per-filesystem in-memory inodes and
  into the general vnode structure.  This will make follow-on work
  easier and removes unnecessary code from various filesystem
  implementations.

* Remove related implementations from fs code except for smbfs.

* Add optimization to avoid allocating struct lockf for LK_GETLK.
  Allows filesystem lock scans to avoid allocating struct lockf
  unnecessarily.  Suggested by ryao.

* Just enable for existing filesystems that previously implemented it
  in this commit.  There may be a follow-up to enable it in the
  default VOPS for all vnodes.
DeltaFile
+101-42sys/kern/kern_lockf.c
+1-23sys/vfs/nfs/nfs_vnops.c
+1-17sys/vfs/ufs/ufs_vnops.c
+1-16sys/vfs/hammer/hammer_vnops.c
+1-15sys/vfs/hammer2/hammer2_vnops.c
+1-14sys/vfs/tmpfs/tmpfs_vnops.c
+106-12717 files not shown
+132-18123 files

LLVM/project d770d1eclang/lib/AST/ByteCode Function.cpp Function.h

[clang][bytecode][NFC] Reorder Function members (#220001)

Order them by size to save a few bytes and clarify some comments.
DeltaFile
+9-7clang/lib/AST/ByteCode/Function.h
+2-2clang/lib/AST/ByteCode/Function.cpp
+11-92 files

LLVM/project e5bbcd0clang/lib/AST/ByteCode Context.cpp

[clang][bytecode][NFC] reserve() ParamDescriptors (#219981)

We know the size the vector is going to have in the success case, so
reserve that.
DeltaFile
+3-1clang/lib/AST/ByteCode/Context.cpp
+3-11 files

LLVM/project 3613554llvm/lib/Target/SPIRV SPIRVModuleAnalysis.cpp SPIRVUtils.h, llvm/test/CodeGen/SPIRV concat-vectors.ll

[SPIR-V] Always reject OpTypeVector with a non-standard width (#212685)

SPV_EXT_long_vector does not widen OpTypeVector past 4 components. Those
widths need OpTypeVectorIdEXT, so requesting the extension here was
wrong
DeltaFile
+11-11llvm/test/CodeGen/SPIRV/concat-vectors.ll
+10-7llvm/lib/Target/SPIRV/SPIRVUtils.h
+6-0llvm/lib/Target/SPIRV/SPIRVModuleAnalysis.cpp
+27-183 files

HardenedBSD/ports 4ad30abmisc/crush Makefile distinfo, misc/crush/files extra-patch-disable-command-blocking

misc/crush: Update to 0.92.0

Changelog: https://github.com/charmbracelet/crush/releases/tag/v0.92.0

Reported by:    GitHub (watch releases)
DeltaFile
+5-5misc/crush/distinfo
+2-2misc/crush/files/extra-patch-disable-command-blocking
+1-1misc/crush/Makefile
+8-83 files

FreeBSD/ports 4ad30abmisc/crush Makefile distinfo, misc/crush/files extra-patch-disable-command-blocking

misc/crush: Update to 0.92.0

Changelog: https://github.com/charmbracelet/crush/releases/tag/v0.92.0

Reported by:    GitHub (watch releases)
DeltaFile
+5-5misc/crush/distinfo
+2-2misc/crush/files/extra-patch-disable-command-blocking
+1-1misc/crush/Makefile
+8-83 files

LLVM/project 937e353llvm/docs ProgrammersManual.md, llvm/include/llvm/ADT FoldingSet.h

[ADT][TableGen] Add UniquingSet, a FoldingSet with typed keys (#219630)

FoldingSet serializes a key into a FoldingSetNodeID to look a node up
and rebuilds the stored node's profile to compare against it. Where a
key can be read out of a node, neither is necessary.

UniquingSet reuses FoldingSetBase's storage, growth, removal and insert
token and replaces only the key: the node's `getKey()` supplies it, the
key type's `operator==` compares it, and DenseMapInfo hashes it inline.
An Info parameter overrides the key type or its hash. The hash cached on
each node keeps growth and erasure from calling `getKey()`, which a
DenseSet cannot avoid.

Prefer `UniquingSet` where a key can be read out of a node in O(1) and
the lookup key is built beside `getKey()`; keep FoldingSet for keys that
are wide, polymorphic or assembled at many call sites, where one Profile
helper keeps both sides consistent. insert asserts that a node hashes as
its lookup did.


    [18 lines not shown]
DeltaFile
+173-0llvm/unittests/ADT/FoldingSet.cpp
+87-0llvm/include/llvm/ADT/FoldingSet.h
+10-73llvm/lib/TableGen/Record.cpp
+32-0llvm/docs/ProgrammersManual.md
+19-8llvm/include/llvm/TableGen/Record.h
+321-815 files

HardenedBSD/ports 954e88anet/croc Makefile distinfo

net/croc: Update to 11.3.6
DeltaFile
+5-5net/croc/distinfo
+1-1net/croc/Makefile
+6-62 files

FreeBSD/ports 954e88anet/croc Makefile distinfo

net/croc: Update to 11.3.6
DeltaFile
+5-5net/croc/distinfo
+1-1net/croc/Makefile
+6-62 files

HardenedBSD/ports 3076bfddevel/py-ty Makefile distinfo

devel/py-ty: Update to 0.0.77

Changelog: https://github.com/astral-sh/ty/blob/0.0.77/CHANGELOG.md

Reported by:    Repology
DeltaFile
+3-3devel/py-ty/distinfo
+1-1devel/py-ty/Makefile
+4-42 files

FreeBSD/ports 3076bfddevel/py-ty Makefile distinfo

devel/py-ty: Update to 0.0.77

Changelog: https://github.com/astral-sh/ty/blob/0.0.77/CHANGELOG.md

Reported by:    Repology
DeltaFile
+3-3devel/py-ty/distinfo
+1-1devel/py-ty/Makefile
+4-42 files