[libc] Expose sys/stat.h mode_t constants in fcntl.h (#234438)
Per POSIX standard, `<fcntl.h>` should provide macro like: `S_IRWXU`
```
The <fcntl.h> header shall define the symbolic constants for file modes
for use as values of mode_t as described in <sys/stat.h>.`
```
Do this by including internal header with `sys/stat.h` macro values
inside a similar
internal header providing `fcntl.h` macro values. Reflect this in CMake
dependencies,
and update unit tests to remove explicit inclusion (assuming that
fcntl-macros would
additionally cover the values from sys-stat-macros).
This is the path of least resistance. Potentially, we can do a more
explicit and precise
[3 lines not shown]
auditdistd: Avoid deprecated OpenSSL APIs
SSL_use_RSAPrivateKey_file() was deprecated in OpenSSL 3.0. Use the
more generic SSL_use_PrivateKey_file() instead.
Sponsored by: Klara, Inc.
Sponsored by: Qualys, Inc.
Reviewed by: emaste
Differential Revision: https://reviews.freebsd.org/D60899
sctp: Allow to ignore iface type when determining address scope
Scope restriction by loopback interface was not specified in
the draft-stewart-tsvwg-sctp-ipv4 draft and having global address
on loopback interface is common.
Therefore, allow to skip loopback interface type check in sctp.
Reviewed by: tuexen
Differential Revision: https://reviews.freebsd.org/D60938
www/nginx-devel: Update to 1.31.8
Worker processes could be killed by SIGBUS when using HTTP/3 on platforms
with strict alignment requirements, and exited on start or reconfiguration
if working_directory named a directory that does not exist. That
directive is now read relative to the nginx prefix, not to the current
directory.
Changelog: https://nginx.org/en/CHANGES
Sponsored by: Netzkommune GmbH
www/nginx-module-encrypted-session: Update to 0.10
The MAC of a session was compared with ngx_strncmp, which stops at the
first byte that differs and so tells an attacker how much of a forged MAC
was right. The comparison is CRYPTO_memcmp now. The expiry timestamp was
read through a uint64_t cast of an unaligned pointer, which faults on
architectures that require alignment; it is copied before it is read.
Changelog: https://github.com/openresty/encrypted-session-nginx-module/compare/7ffe4ec...v0.10
Sponsored by: Netzkommune GmbH
[SPIRV] Move the emission of some remaining cases under getOrCreateDebugScope. (#229487)
Move the emission of some remaining cases under `getOrCreateDebugScope`.
---------
Co-authored-by: Cursor <cursoragent at cursor.com>
[Clang] Diagnose require_explicit_initialization for C tentative definitions (#234210)
In C, a tentative definition that is never completed is zero-initialized
(C17 6.9.2p2). However, `-Wuninitialized-explicit-init` did not diagnose
such definitions when they contained fields marked
`require_explicit_initialization`.
This patch adds a check in `Sema::ActOnEndOfTranslationUnit()` for
tentative definitions that remain uncompleted. Definitions completed
later retain their existing initialization checks.
Added regression tests in
`clang/test/Sema/attr-require-explicit-init-tentative.c`.
Fixes #232483
AI assistance: Claude was used to understand parts of the existing code
and assist with regression-test development, including some
`expected-warning` annotations. I reviewed and verified the submitted
changes.
NAS-144438 / 27.0.0 / Renumber `removed_in` markers left stale by the version rename (by Qubad786) (#20041)
## Problem
The 26 -> 27 / 27 -> 28 version rename renamed the API directories but
not the hand-written version numbers. Markers written as
`removed_in='v27'` before the rename meant "the release after 26", which
is now 28, so `auth.login`, `auth.login_with_api_key`,
`system.advanced.syslog_certificate_authority_choices` and
`system.product_type` were flagged private on the v27.0.0 API too. Calls
to them logged the "Private method ... without private_methods enabled"
warning, and the generated docs said they were scheduled for removal in
v27.
## Solution
Changed those markers and their docstrings to `v28`. The `v27` markers
that were already relabeled from `v26` after the rename are correct and
are left alone. Also fixed the old numbering in the `pool.ddt_prefetch`
`versionremoved` note, the SCRAM authentication doc ("TrueNAS 26" -> 27,
"removed from the v27 API" -> v28) and the auth integration test
[4 lines not shown]
[JITLink] Print the fixup address, not the target, on overflow (#231402)
Summary:
Corrected JITLink out of range relocation diagnostic message to report
the actual fixup address, previously was printing the target address
instead. This issue was found while debugging the PPC64 backend
contributing to LLVM BOLT. When relocation fails because the destination
is far away, JITLink should print where the branch starts (fix up
address) and where it wants to go (Target address). Though the error
message was printing the Target address twice, making difficult to
determine the actual displacement.
Code Details:
makeTargetOutOfRangeError() says "fixup at address" but prints the
target address, which the message already shows as "relocation target".
The address being patched never appears, so the message cannot show how
far out of range the edge is.
This regressed in 0c33799e374a (#145423).
[4 lines not shown]
Back out the show-once access key secret
Before: S3AccesskeyEntry had no secret. s3.accesskey.create, and
s3.accesskey.update with rotate, returned S3AccesskeyEntryWithSecret.
The credentials file read the secret through the private
s3.accesskey.render_rows.
Now: the access key design matches the base branch again. The entry
carries the secret as a Secret field, which holders of
SHARING_S3_WRITE can read. create and update return the entry. The
credentials file renders from s3.accesskey.query. The credentials
template, the access key tests and the test helpers are the base
branch's files again.
Unchanged: the rewritten access key field and type descriptions, and
the shortened comments in accesskey_crud.py and config.py.
[SDAG] Fold interleaves of matching vector halves (#234211)
Fold
```
interleave(extract_{lo,hi}(a), extract_{lo,hi}(b))
-> extract_{lo,hi}(interleave(a, b))
```
when the wider interleave is legal.
Doing this as a generic DAGCombine has the benefit that the
tests for wider SVE vectors (vscale_range > 1) now also improve.
This subsumes the equivalent AArch64-specific combine.
assisted-by: codex
GlobalISel: Add a lowering of G_FCONSTANT to G_CONSTANT
RISCV and ARM both custom legalized G_FCONSTANT into a G_CONSTANT with
the same bits. Add LegalizerHelper::lowerFConstantAsConstant and use it
in both.
Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
SelectionDAG: Build FP immediates from integer bits in the legalizer
Teach the generic legalizer to legalize FP immediates as a bitcast of
an opaque integer constant. Migrate LoongArch to use the new helper
instead of doing it in custom lowering.
Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>