linux: Add support for PR_SET_VMA to prctl(2)
Implement dummy support for PR_SET_VMA with PR_SET_VMA_ANON_NAME in
prctl(2). This prevents applications from receiving EINVAL when
attempting to name anonymous memory regions.
bsd.sys.mk: also suppress gcc -Wc++1[47]-extensions warnings for >= 12
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 gcc
-Wc++1[47]-extensions warnings with libc++ 21.
mdmfs: Use standard bool definition
Include `<stdbool.h>` instead of defining a local bool enum.
This avoids duplicating a standard type name and keeps the
source compatible with headers that provide bool as a macro,
or in case of C23 that compilers provide it as keyword.
Signed-off-by: Faraz Vahedi <kfv at kfv.io>
Reviewed by: fuz
MFC after: 1 month
Pull Request: https://github.com/freebsd/freebsd-src/pull/2203
rpcsvc: Remove obsolete bool definition from yp_prot.h
`yp_prot.h` has carried a SunRPC-era typedef of `bool` guarded by
`BOOL_DEFINED`, but the header itself does not use it. The YP/RPC
interfaces use `bool_t` for protocol booleans.
Defining `bool` in a public header collides with modern C headers
that provide `bool` as a macro or keyword, such as `<stdbool.h>`
and C23-aware assert handling. Drop the compatibility typedef and
leave `bool` definition to the consumer's language mode.
Signed-off-by: Faraz Vahedi <kfv at kfv.io>
Reviewed by: fuz
MFC after: 1 month
Pull Request: https://github.com/freebsd/freebsd-src/pull/2203
imgact_elf: add sysctl kern.elfXX.phnums for the number of program headers
that are accepted in the activated image or interpreter.
Requested by: jhb
Reviewed by: markj
Sponsored by: The FreeBSD Foundation
MFC after: 1 week
Differential revision: https://reviews.freebsd.org/D57328
edk2: enable static asserts for *INT64 alignment
The ia32 loader is now built with -malign-double, so these should pass.
Differential Revision: https://reviews.freebsd.org/D55386
stand: compile ia32 EFI loader with -malign-double
The UEFI spec says:
> Structures are aligned on boundaries equal to the largest internal
> datum of the structure and internal data are implicitly padded to
> achieve natural alignment.
Unlike the old Intel EFI toolkit, the EDK2 headers expect ia32 builds to
use -malign-double to achive this.
Make EFI versions of libsa32, liblua32, and ficl32. With the difference
being that they are compiled with -malign-double.
Differential Revision: https://reviews.freebsd.org/D55385
netlink/route: extend pre-2.6.19 Linux compat shim to del/getroute
Commit f34aca55adef ("netlink/route: provide pre-2.6.19 Linux compat shim",
2024-06) fixed the partial fix for net/bird2 on the netlink path by mapping the
legacy 8-bit struct rtmsg::rtm_table field onto the modern 32-bit RTA_TABLE
attribute when the latter is absent.
That fix, however, was only applied to rtnl_handle_newroute. The two sibling
handlers: rtnl_handle_delroute and rtnl_handle_getroute were left looking at
attrs.rta_table directly. They are reachable from exactly the same client
(bird, in its netlink scan path), so any FIB number that fits in 8 bits
silently maps to RT_TABLE_UNSPEC in those handlers.
Reviewed by: melifaro (previous version)
Approved by: emaste
MFC after: 1 week
Sponsored by: Netflix
netlink: Check permissions for interface flag changes
Reviewed by: pouria, melifaro
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D57332
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
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.
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.
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)
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]
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.
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)
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]