FreeBSD/doc c029732documentation/content/en/books/porters-handbook/versions _index.adoc

Document __FreeBSD_version values 1404500, 1404501, 1501500, and 1501501.
DeltaFile
+20-0documentation/content/en/books/porters-handbook/versions/_index.adoc
+20-01 files

FreeBSD/src 96dbc9asys/netlink/route iface_drivers.c

netlink: Check permissions for interface flag changes

Reviewed by:    pouria, melifaro
Sponsored by:   The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D57332
DeltaFile
+10-1sys/netlink/route/iface_drivers.c
+10-11 files

FreeBSD/src 9ddb606sys/netlink/route iface_drivers.c

netlink: Use early exit pattern in _nl_modify_ifp_generic

No functional change.

Reviewed by:    pouria, melifaro
Sponsored by:   The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D57349
DeltaFile
+25-28sys/netlink/route/iface_drivers.c
+25-281 files

FreeBSD/src 11f23d7tools/test/stress2/misc msdos22.sh msdos23.sh

tools/test/stress2/misc: Fix and enable new tests

The previously committed versions of these tests failed to prevent
duplicate file names in the list of files to process, leading to
missing files when a "mv" commando tried to operate on a file that
had already been renamed.

The test for filenames containing UTF-16 surrogate pairs stays
disabled, since the required kernel changes have not been committed,
yet.
DeltaFile
+6-8tools/test/stress2/misc/msdos22.sh
+5-7tools/test/stress2/misc/msdos23.sh
+5-7tools/test/stress2/misc/msdos24.sh
+0-2tools/test/stress2/misc/all.exclude
+16-244 files

FreeBSD/src e021144usr.sbin/acpi/acpidb Makefile

Work around unterminated-string-initialization warnings in acpidb

ACPICA 20250807 fixes these warnings by adding nonstring attributes, but
since ACPICA in stable/14 has not been updated for quite some time,
suppress the warning for clang >= 21 instead. Direct commit to
stable/14, since stable/15 and main already have ACPICA 20250807.
DeltaFile
+4-0usr.sbin/acpi/acpidb/Makefile
+4-01 files

FreeBSD/src 47f4f76sys/sys param.h

Bump __FreeBSD_version for llvm 21.1.8 merge

PR:             292067
MFC after:      1 month

(cherry picked from commit 8f95b8b19088bd8d73f6d14dab7afe848dfc0c35)
DeltaFile
+1-1sys/sys/param.h
+1-11 files

FreeBSD/src ec67978lib/clang/include/llvm/Config config.h

Fix up builds on Linux hosts after llvm 21.1.8 merge

This is because contrib/llvm-project/llvm/lib/Support/Unix/Threading.inc
attempts to use pthread_get_name_np(3) and pthread_set_name_np(3), which
are not defined on Linux.

Reported by:    ivy
PR:             292067
MFC after:      1 month

(cherry picked from commit b6d823e39072daae9df4b47a15ea7142b7a55f1a)
DeltaFile
+4-0lib/clang/include/llvm/Config/config.h
+4-01 files

FreeBSD/src 0c6a058contrib/llvm-project/clang/lib/Headers emmintrin.h xmmintrin.h

Merge commit b0d2b57f7e47 from llvm git (by Phoebe Wang):

  [Headers][X86] Remove more duplicated typedefs (#153820)

  They are defined in mmintrin.h

This fixes a -Werror warning in openzfs, which compiles for C99, and C99
does not allow for typedef redefinitions.

PR:             292067
MFC after:      1 month

(cherry picked from commit 20450c2e792084f06974cff9d2338e2d0406883f)
DeltaFile
+0-4contrib/llvm-project/clang/lib/Headers/emmintrin.h
+0-1contrib/llvm-project/clang/lib/Headers/xmmintrin.h
+0-52 files

FreeBSD/src 2e97bf2contrib/llvm-project/libcxx/src iostream.cpp

Merge commit c1d26c3c2510 from llvm git (by Nikolas Klauser):

  [libc++] Fix iostream size ABI break (#185839)

  In #124103 we changed the size of various iostream objects, which turns
  out to be ABI breaking when compiling non-PIE code.

  This ABI break is safe to fix, since for any programs allocating more
  memory for the iostream objects, the remaining bytes are simply unused
  now.

  Fixes #185724

This fixes the ABI break that causes programs that use the standard
streams to terminate in various interesting ways, usually by throwing an
unexpected std::bad_cast exception.

PR:             292067
MFC after:      1 month

    [2 lines not shown]
DeltaFile
+55-36contrib/llvm-project/libcxx/src/iostream.cpp
+55-361 files

FreeBSD/src 0b78483contrib/llvm-project/llvm/include/llvm/Option OptParser.td

Add a comment to llvm's OptParser.td, so dependent files get rebuilt.

PR:             292067
MFC after:      1 month

(cherry picked from commit 3cbf898fb49fe087cdcafe2745cca3f7a20f4388)
DeltaFile
+2-0contrib/llvm-project/llvm/include/llvm/Option/OptParser.td
+2-01 files

FreeBSD/src e4ec227. ObsoleteFiles.inc

Remove usr/include/c++/v1/__fwd/get.h from ObsoleteFiles.inc.

PR:             292067
MFC after:      1 month

(cherry picked from commit b99d02027a0fe2e9f9a4aeb6fa3484847ddc5a57)
DeltaFile
+0-1ObsoleteFiles.inc
+0-11 files

FreeBSD/src b50d6ddshare/mk bsd.sys.mk

bsd.sys.mk: also suppress clang -Wc++1[47]-extensions warnings for >= 19

This is a direct commit to stable/14, which does not yet default to
C++17 for most in-tree programs. In some cases, this would trigger
-Wc++1[47]-extensions warnings with libc++ 21.
DeltaFile
+2-0share/mk/bsd.sys.mk
+2-01 files

FreeBSD/src 8bf7343. ObsoleteFiles.inc, contrib/llvm-project/libcxx/include stdint.h cstdint

Revert 00bee6fcd77f, which partially reverted libc++ commit aa7f377c965c

After base 966fb94cb357, this revert is no longer necessary: stdint.h
will unconditionally define macros such as `SIZE_MAX`, `UINT64_C`, and
others.

Submitted by:   Nikolas Klauser <nikolasklauser at berlin.de>
MFC after:      1 month
Reviewed by:    imp
Differential Revision: https://reviews.freebsd.org/D56746

(cherry picked from commit 19ff93c921a9d31770bcfc194c078e7a42a5f14f)
DeltaFile
+0-127contrib/llvm-project/libcxx/include/stdint.h
+0-8contrib/llvm-project/libcxx/include/cstdint
+0-4lib/libc++/module.modulemap
+3-0ObsoleteFiles.inc
+0-1lib/libc++/Makefile
+3-1405 files

FreeBSD/src 2e6734econtrib/llvm-project/clang/lib/Sema SemaTemplateDeduction.cpp

Merge commit 787ba2426148 from llvm git (by Matheus Izvekov):

  [clang] create local instantiation scope for matching template template parameters (#183219)

  This fixes a bug where a partial substitution from the enclosing scope
  is used to prepopulate an unrelated template argument deduction.

  Fixes #181166

This fixes an expected error when building the devel/catch port.

PR:             292067
MFC after:      1 month

(cherry picked from commit 5ac874516b27474ab5b3d195544c72fb04b4b86e)
DeltaFile
+2-0contrib/llvm-project/clang/lib/Sema/SemaTemplateDeduction.cpp
+2-01 files

FreeBSD/src 4a5ad04contrib/llvm-project/libcxx/include/__cxx03/__type_traits add_rvalue_reference.h add_lvalue_reference.h

Fixup mismerge in __cxx03/__type_traits/add_[lr]value_reference.h.

PR:             292067
MFC after:      1 month

(cherry picked from commit 0f15398d123a9cf02711efddf5e4040f0066c6de)
DeltaFile
+1-1contrib/llvm-project/libcxx/include/__cxx03/__type_traits/add_rvalue_reference.h
+1-1contrib/llvm-project/libcxx/include/__cxx03/__type_traits/add_lvalue_reference.h
+2-22 files

FreeBSD/src fc1ab22contrib/llvm-project/clang/lib/Sema AnalysisBasedWarnings.cpp

Merge commit 871038759afb from llvm git (by Marco Elver):

  Thread Safety Analysis: Fix pointer handling of variables with deprecated attributes (#148974)

  de10e44b6fe7 ("Thread Safety Analysis: Support warning on
  passing/returning pointers to guarded variables") added checks for
  passing pointer to guarded variables. While new features do not
  necessarily need to support the deprecated attributes (`guarded_var`,
  and `pt_guarded_var`), we need to ensure that such features do not cause
  the compiler to crash.

  As such, code such as this:

          struct {
            int v __attribute__((guarded_var));
          } p;

          int *g() {
            return &p.v;  // handleNoMutexHeld() with POK_ReturnPointer

    [26 lines not shown]
DeltaFile
+20-5contrib/llvm-project/clang/lib/Sema/AnalysisBasedWarnings.cpp
+20-51 files

FreeBSD/src dbb1534contrib/llvm-project/clang/lib/Sema SemaOverload.cpp

Merge commit d803c61aca0d from llvm git (by Corentin Jabot):

  [Clang] Fix a regression introduced by #147046 (#150893)

  Static functions have an implicit object argument during deduction.

This fixes an assertion while compiling the devel/corrade port.

PR:             292067
MFC after:      1 month

(cherry picked from commit 1dfe63e4f75fa2a8c94aaf4aefaf48d164bc90db)
DeltaFile
+2-2contrib/llvm-project/clang/lib/Sema/SemaOverload.cpp
+2-21 files

FreeBSD/src 179029bcontrib/llvm-project/clang/lib/Sema SemaExpr.cpp

Merge commit 924f773f5e26 from llvm git (by Younan Zhang):

  [Clang] Don't diagnose missing members when looking at the instantiating class template (#180725)

  The perfect matching patch revealed another bug where recursive
  instantiations could lead to the escape of SFINAE errors, as shown in
  the issue.

  Fixes https://github.com/llvm/llvm-project/issues/179118

This fixes compile errors in the www/qt5-webengine port.

PR:             292067
MFC after:      1 month

(cherry picked from commit 3fd796204fe6aa2e8a2b70bb9ea95f7497247fa3)
DeltaFile
+1-1contrib/llvm-project/clang/lib/Sema/SemaExpr.cpp
+1-11 files

FreeBSD/src 1cbc4a8contrib/llvm-project/libcxx/include/__exception exception_ptr.h

libcxx-compat: fix llvmorg-21-init-18351-gfcc09b6f0267:

  [libc++] Fix std::make_exception_ptr interaction with ObjC (#135386)

  Clang treats throwing/catching ObjC types differently from C++ types,
  and omitting the `throw` in `std::make_exception_ptr` breaks ObjC
  invariants about how types are thrown/caught.

  Fixes #135089

  Co-authored-by: Louis Dionne <ldionne.2 at gmail.com>

Only use lambdas when in !defined(_LIBCPP_CXX03_LANG), so this will
compile with clang 18 and lower, in C++03 mode and earlier.

PR:             292067
MFC after:      1 month

(cherry picked from commit 987ac31018cba9f1763ad3acfb68b933f58a4c52)
DeltaFile
+1-1contrib/llvm-project/libcxx/include/__exception/exception_ptr.h
+1-11 files

FreeBSD/src a2694eacontrib/llvm-project/libcxx/include/__type_traits remove_reference.h

libcxx-compat: revert llvmorg-19-init-5639-ga10aa4485e83:

  [libc++] Simplify the implementation of remove_reference (#85207)

  GCC 13 introduced the type trait `__remove_reference`. We can simplify
  the implementation of `remove_reference` a bit by using it.

This is part of making libc++ 21 build with clang 18.

PR:             292067
MFC after:      1 month

(cherry picked from commit a114ece3e6158f49088b0704b4afef07040d83f3)
DeltaFile
+8-1contrib/llvm-project/libcxx/include/__type_traits/remove_reference.h
+8-11 files

FreeBSD/src c350cdfcontrib/llvm-project/libcxx/include/__memory pointer_traits.h

libcxx-compat: revert llvmorg-21-init-15984-g650b451d0065:

  [libc++] Simplify the implementation of pointer_traits a bit (#142260)

This is part of making libc++ 21 build with clang 18.

PR:             292067
MFC after:      1 month

(cherry picked from commit bb6713d38cc0d988378394f599d81d3a83dbaf03)
DeltaFile
+84-34contrib/llvm-project/libcxx/include/__memory/pointer_traits.h
+84-341 files

FreeBSD/src 502fd54contrib/llvm-project/clang/lib/Format QualifierAlignmentFixer.cpp UnwrappedLineParser.cpp, contrib/llvm-project/compiler-rt/lib/sanitizer_common sanitizer_linux.cpp

Merge llvm-project release/21.x llvmorg-21.1.8-0-g2078da43e25a

This updates llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and
openmp to llvm-project release/21.x llvmorg-21.1.8-0-g2078da43e25a,
a.k.a. 21.1.8 release.

PR:             292067
MFC after:      1 month

(cherry picked from commit 7351d001fc7f5a77a18a102e12a3ca2cbfd6988c)
DeltaFile
+13-4contrib/llvm-project/clang/lib/Format/QualifierAlignmentFixer.cpp
+14-0contrib/llvm-project/llvm/lib/Target/WebAssembly/WebAssemblyExplicitLocals.cpp
+10-2contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_linux.cpp
+4-4contrib/llvm-project/clang/lib/Format/UnwrappedLineParser.cpp
+3-3lib/clang/include/lldb/Version/Version.inc
+3-3lib/clang/include/clang/Basic/Version.inc
+47-1612 files not shown
+74-3018 files

FreeBSD/src 3e45558contrib/llvm-project/libc/include/llvm-libc-macros float-macros.h

llvm-libc-macros: work around gcc defining LDBL_MANT_DIG as 53 on i386

Otherwise, gcc will not be able to compile parts of libc++ 21 in -m32
mode, resulting in errors similar to:

    In file included from /usr/src/contrib/llvm-project/libc/shared/str_to_float.h:13,
                     from /usr/src/contrib/llvm-project/libcxx/src/include/from_chars_floating_point.h:14,
                     from /usr/src/contrib/llvm-project/libcxx/src/charconv.cpp:12:
    /usr/src/contrib/llvm-project/libc/src/__support/str_to_float.h: In function 'void __llvm_libc::internal::set_implicit_bit(__llvm_libc::fputil::FPBits<T>&) [with T = long double]':
    /usr/src/contrib/llvm-project/libc/src/__support/str_to_float.h:77:10: error: 'struct __llvm_libc::fputil::FPBits<long double>' has no member named 'set_implicit_bit'
       77 |   result.set_implicit_bit(result.get_biased_exponent() != 0);
          |          ^~~~~~~~~~~~~~~~

PR:             292067
MFC after:      1 month

(cherry picked from commit 718e5874be0306ea302fd2b8e1d97fc79682abbe)
DeltaFile
+5-0contrib/llvm-project/libc/include/llvm-libc-macros/float-macros.h
+5-01 files

FreeBSD/src dbafbd4contrib/llvm-project/libcxx/include/__type_traits add_reference.h decay.h

libcxx-compat: revert llvmorg-21-init-17684-gae9990ed9651:

  [libc++] Remove dead code from <type_traits> (#143854)

  Since we've upgraded to GCC 15 now, we can remove a bunch of dead code
  from `<type_traits>`.

This is part of making libc++ 21 build with GCC 14.

PR:             292067
MFC after:      1 month

(cherry picked from commit f7bcd8d8c9336b97569265e5ad36b73b30357beb)
DeltaFile
+45-18contrib/llvm-project/libcxx/include/__type_traits/add_reference.h
+42-10contrib/llvm-project/libcxx/include/__type_traits/decay.h
+33-0contrib/llvm-project/libcxx/include/__type_traits/is_pointer.h
+22-2contrib/llvm-project/libcxx/include/__type_traits/is_array.h
+18-5contrib/llvm-project/libcxx/include/__type_traits/remove_all_extents.h
+18-5contrib/llvm-project/libcxx/include/__type_traits/remove_extent.h
+178-404 files not shown
+223-5710 files

FreeBSD/src bdeece2contrib/llvm-project/libcxx/include/__type_traits is_convertible.h

libcxx-compat: revert llvmorg-21-init-10154-ge43e8ec7afbd:

  [libc++] Remove dead implementation of is_nothrow_convertible and merge the remaining code into is_convertible.h (#137717)

  We can use the `__is_nothrow_convertible` builtin unconditionally now,
  which makes the implementation very simple, so there isn't much of a
  need to keep a separate header around.

This is part of making libc++ 21 build with clang 18.

PR:             292067
MFC after:      1 month

(cherry picked from commit 035396ceda495f456ca570fb715b04a7fc3b25c2)
DeltaFile
+26-0contrib/llvm-project/libcxx/include/__type_traits/is_convertible.h
+26-01 files

FreeBSD/src 7a145cbcontrib/llvm-project/libcxx/include/__bit countr.h countl.h

libcxx-compat: revert llvmorg-21-init-9130-g9e3982d9ae81:

  [libc++] Replace __libcpp_{ctz, clz} with __builtin_{ctzg, clzg} (#133920)

  `__libcpp_{ctz, clz}` were previously used as fallbacks for `__builtin_{ctzg, clzg}` to ensure compatibility with older compilers (Clang 18 and earlier), as `__builtin_{ctzg, clzg}` became available in Clang 19. Now that support for Clang 18 has been officially dropped in #130142, we can now safely  replace all instances of `__libcpp_{ctz, clz}` with `__count{l,r}_zero` (which internally call `__builtin_{ctzg, clzg}` and eliminate the fallback logic.

  Closes #131179.

This is part of making libc++ 21 build with clang 18.

PR:             292067
MFC after:      1 month

(cherry picked from commit 821fc643b3cad922e5438760eed9cad0d6d9b3b0)
DeltaFile
+33-0contrib/llvm-project/libcxx/include/__bit/countr.h
+28-0contrib/llvm-project/libcxx/include/__bit/countl.h
+61-02 files

FreeBSD/src df67e88contrib/llvm-project/llvm/lib/Target/PowerPC PPCReduceCRLogicals.cpp

Merge commit 598f21e9fcf7 from llvm git (by zhijian lin):

  [PowerPC] need to set CallFrameSize for the pass  PPCReduceCRLogicals when insert a new block (#151017)

  In the [ [CodeGen] Store call frame size in
  MachineBasicBlock](https://reviews.llvm.org/D156113), it mentions When a
  basic block has been split in the middle of a call sequence. the call
  frame size may not be zero, it need to set the setCallFrameSize for the
  new MachineBasicBlock. but in the function `splitMBB(BlockSplitInfo
  &BSI)` in the llvm/lib/Target/PowerPC/PPCReduceCRLogicals.cpp , it do
  not setCallFrameSzie for the new MachineBasicBlock `NewMBB`, we will
  setCallFrameSzie in the patch.

  the patch fix the crash mention in
  https://github.com/llvm/llvm-project/pull/144594#issuecomment-2993736654

This fixes "error in backend: Found 1 machine code errors" while
crypto/openssh/packet.c for PowerPC64.


    [4 lines not shown]
DeltaFile
+4-0contrib/llvm-project/llvm/lib/Target/PowerPC/PPCReduceCRLogicals.cpp
+4-01 files

FreeBSD/src ba4a80fcontrib/llvm-project/libcxx/include istream streambuf

libcxx-compat: fix llvmorg-21-init-12415-g3a86e0bd29f3:

  [libc++] Optimize std::getline (#121346)

  ```
  -----------------------------------------------
  Benchmark                   old             new
  -----------------------------------------------
  BM_getline_string        318 ns         32.4 ns
  ```

Move the __bump_stream() lamda in <istream> to a separate function, so
this will compile with clang 18 and lower, in C++03 mode and earlier.

PR:             292067
MFC after:      1 month

(cherry picked from commit 17f1a5e638f845e171ab4e3db2a07bf8c6ac3388)
DeltaFile
+15-13contrib/llvm-project/libcxx/include/istream
+4-0contrib/llvm-project/libcxx/include/streambuf
+19-132 files

FreeBSD/src 407a9b0contrib/llvm-project/libcxx/include/__new allocate.h

libcxx-compat: revert llvmorg-21-init-19251-g0c3a2faa8505:

  [libc++] Simplify the implementation of __libcpp_{,de}allocate (#147989)

  GCC 15 also supports `__buitin_operator_{new,delete}` now, so the
  `#else` cases are dead code. This patch inlines the calls to the wrapper
  functions and simplifies some surrounding code.

This is part of making libc++ 21 build with GCC 14.

PR:             292067
MFC after:      1 month

(cherry picked from commit ad1f6ee5d7230a63c216cd9ad3b89d5b7d1c4a3a)
DeltaFile
+51-20contrib/llvm-project/libcxx/include/__new/allocate.h
+51-201 files

FreeBSD/src b3d1c92contrib/llvm-project/libcxx/include/__bit popcount.h

libcxx-compat: revert llvmorg-21-init-8400-g703cfe745b96:

  [libc++] Replace __libcpp_popcount by __builtin_popcountg (#133937)

  `__libcpp_popcount` was previously used as a fallback for `__builtin_popcountg` to ensure compatibility with older compilers (Clang 18 and earlier), as `__builtin_popcountg` became available in Clang 19. Now that support for Clang 18 has been officially dropped in #130142, we can now safely  replace all instances of `__libcpp_popcount` with `__builtin_popcountg` and eliminate the fallback logic.

This is part of making libc++ 21 build with clang 18.

PR:             292067
MFC after:      1 month

(cherry picked from commit 5465db314a03c11b15e00f22be1609027dfc152c)
DeltaFile
+29-0contrib/llvm-project/libcxx/include/__bit/popcount.h
+29-01 files