memory_model(7): create and document pointer provenance
Add a skeleton manpage intended to describe the FreeBSD memory model.
To start out, add documentation of pointer provenance and a cross link
to atomic(9).
Provide some advice on preserving provenance in CHERI and reference
more detailed discussions elsewere.
Effort: CHERI upstreaming
Reviewed by: kib, adrian, markj, emaste
Sponsored by: Innovate UK
Differential Revision: https://reviews.freebsd.org/D57812
Honor support contracts on commercial licensed systems
This commit adds changes to make a commercial license's support contract actually work while the system stays community edition. Proactive Support availability, support ticket routing to the paid backend, automatic proactive-support tickets, and support-contract expiry alerts are now keyed off a new system.has_support_contract helper instead of is_enterprise, so a commercial system with a support contract gets the support experience it paid for without being treated as enterprise appliance hardware.
The helper detects a contract via the license contract_type for commercial/community licenses (whose feature list we intentionally do not honor) and via the SUPPORT feature for enterprise and legacy licenses, which leaves legacy STANDARD systems unaffected. The license-status alert now skips the serial/model/enclosure checks for fingerprint-bound commercial licenses and only sends a renewal notice when a contract is actually present.
FIPS/STIG availability is also moved off is_enterprise onto the license type, so legacy freenas-certified systems that map to community edition keep that capability while commercial/community software licenses do not.
[AArch64][ISel] Improve lowering for clmul v4i32 with AES (#204542)
Lower CLMUL v4i32 by splitting it into two v2i32 operations and
concatenating the results when AES is available. This avoids the much
larger generic expansion and lets v4i16 benefit via legalization through
v4i32.
Update the cost model: v4i32 is costed as the 11-instruction PMULL
sequence, and v4i16 as that sequence plus the required input widens and
result narrow.
[libc] Change cpp::string_view into cpp::basic_string_view<CharT> (#203355)
This will allow some of the types in src/stdio/printf_core/ to be
templated on character type for the implementation of `swprintf`.
[flang][OpenMP] Delete no longer needed CheckAllowedClause (#205936)
This removes the older overload of CheckAllowedClause(clauseId). After
0f1abfe0af that function was no longer doing anything.
[flang][OpenMP] Delete definitions of non-delimited end-directives, NFC (#205932)
Delimited directives are those that come in begin/end pairs, e.g. "begin
declare target"/"end declare target". Other block-associated directives
in Fortran do have end-forms, but they don't need to have specific
directive enums. Some such enums have been used in the past, but are not
anymore. Delete those extraneous definitions to clean up the OMP.td
file.
handbook/x11: Silence doc build warning by changing an example into programlisting
While here, remove whitespaces from end of lines. No content changes.
Event: Halifax Hackathon 202606
www/py-django60: Allow building with newer Python
There is no reason to pin this port to Python <= 3.12. Upstream claims
support for >= 3.12, and we've patched it to run with 3.11, so change
the version requirement to 3.11+.
Reviewed by: kai
Differential Revision: https://reviews.freebsd.org/D57714
www/freenginx-devel: update njs module to 1.0.0
Bump PORTREVISION.
Sponsored by: tipi.work
<ChangeLog>
nginx modules:
*) Improvement: aligned HTTP, Stream, and Fetch exception classes
between the njs and QuickJS engines. API misuse is now reported
as TypeError and status bounds violations as RangeError.
*) Improvement: rejected unsafe request targets, methods, and header
values in ngx.fetch() before request serialization.
*) Bugfix: fixed a heap use-after-free in r.subrequest() when the
client closed the connection before the background subrequest
[85 lines not shown]
[AMDGPU] Use `v_cvt_pk_*` instructions for i16_f32 saturated conversions (#202680)
This is a follow-up to #187487. `v_cvt_pk_*` is used for vector cases, as well as for scalar types (by passing a dummy second input) on GFX11+. Relevant fallback patterns have also been added and `splitUnaryVectorOp` has been extended to handle trailing scalar ops if present.
Assisted-by: Claude Code
[AMDGPU] Make direct f16 <-> i32 conversion illegal (#205565)
Neither SALU nor VALU support direct conversion from f16 to/from i32.
Previously, this was still legal and handled by instruction selection
patterns, forming chains f16 -> f32 -> i32 and i32 -> f32 -> f16 for the
two cases, respectively.
This change marks the conversion illegal and creates the same chains as
the pattern during (operation) legalization.
This had the added benefit that a combination of FNEG and FPTOSI/UI can
now merge the float negation into the source modifier of the f16-to-f32
conversion, as demonstrated by the GlobalISel tests.
This fixes https://github.com/llvm/llvm-project/issues/177342.
---------
Signed-off-by: Lukas Sommer <lukas.sommer at amd.com>
ucom: fix OOB write in sysctl_ucominit with no ucom devices
cd_ndevs==0 makes ucomslen 0, so malloc(0) returns unzeroed storage
(M_ZERO memsets osize==0 bytes). strlen(ucoms) then walks garbage and
ucoms[strlen-1]=0 stores out of bounds (KASAN: __asan_store1, hw.ucomnames).
Size the buffer for one extra slot so it is never zero-sized.
KASAN#2, with a murmur of agreement in the hackroom