sysutils/be-station: rename from backup-station, update to 0.8
Backup Station was renamed upstream to BE Station. Add the port under
its new name and remove sysutils/backup-station, with a MOVED entry.
- Require py-bectl 0.7 and Python 3.12+, drop the unused pkg dependency
- Point WWW at the be-station repository instead of software-station
- Shorten COMMENT to describe what the tool does
sysutils/ghostbsd-utils: update to 26.10.0 and depend on be-station.
[CIR] Emit calling convention on call sites (#230123)
Adds calling convention on the call sites.
Note: I opted to execlude support for runtime calling convention
(classic getRuntimeCC()) on calls to runtime functions created in CIR
passes (EH, __cxa_atexit, __cxa_guard_*, dynamic_cast, global init).
These keep the default C calling convention and are marked with
TODO(cir) and `MissingFeatures::opFuncCallingConv()` for a follow-up.
---------
Co-authored-by: Claude Opus 5.5 (1M context) <noreply at anthropic.com>
[X86] Emit LSDA call site info for inline asm calls marked `unwind` (#218276)
LLVM currently doesn't consider inline asm calls with the `unwind`
keyword when generating the list of LSDA call sites of a function.
For example, given the following IR
```llvm
declare i32 @rust_eh_personality(i32, i32, i64, ptr, ptr)
declare void @bar()
define void @example() personality ptr @rust_eh_personality {
entry:
call void asm sideeffect alignstack inteldialect unwind "call foo", ""()
invoke void @bar()
to label %cont unwind label %lpad
cont:
ret void
[98 lines not shown]
[BOLT] Keep ambiguous references next to function boundaries valid
A reference into code without a relocation that names its target, e.g. a
RIP-relative LEA whose relocation was against a section symbol, cannot be told
apart from "Next - Delta" and "Prev + Offset" when it lands right before or
after a function start. HHVM built with LLVM 23 has such a reference to
"sqlite3RCStrUnref - 1", which lands in padding and makes BOLT fail with
-strict. Without padding, BOLT silently kept such references relative to the
preceding function. See bolt/test/X86/unanchored-code-reference.s.
BOLT now collects these references from code and, when they are within
--boundary-ref-distance bytes (default 2) of a function start, keeps the
functions around them in place in lite mode. When all functions are processed,
it emits those functions unoptimized and back-to-back with the original bytes
between them, and checks after linking that they kept their size and distance.
Absolute references right before a function start are now relative to that
function. This replaces the workaround for "fptr - 1" in de-virtualized member
function pointer calls, which dropped the relocation and left the input
address in the code.
[BuiltinsX86] Use long long for the __int64 MS intrinsics (#154946)
Microsoft declares _Interlocked*64, _xgetbv and _xsetbv with __int64,
which is
long long on every target. BuiltinsX86.td used int64_t and uint64_t,
which are
long on LP64, so declaring them as Microsoft does fails there:
error: conflicting types for '_InterlockedIncrement64'
Use long long int and unsigned long long int, as __emul does.
[docs] Enable absolute documentation link checks
Configure the LLVM documentation URL prefixes so the Sphinx build rejects
absolute links to documents in the same project. Clang is already configured.
Part of #214861
[lldb][docs] Use project-local documentation links
Replace same-project absolute URLs with relative Markdown links and Sphinx
cross-references so local and archived documentation stays self-contained.
Update generated Python API docstrings at their header and SWIG inputs,
and repair stale Python and frame-recognizer destinations.
Validation: docs-lldb-html and docs-lldb-man, followed by fresh Sphinx
rebuilds (-E), on a merge of the three independent self-link fixes with
the checker enabled and warnings-as-errors disabled. No self-link warnings
or new warning messages compared with the audit baseline.
C/C++ formatting: git-clang-format --diff against main for the three
modified API headers reported no changes.
Part of #214861
Assisted-by: Codex
audio, benchmarks: restore SUBDIR entries lost in merges
p5-Test-Corpus-Audio-MPD, p5-libvorbis and siege are identical to
FreeBSD and listed there, but their SUBDIR lines were missing here, so
full-tree builds skipped them.
[SimplifyLibCalls] Mark profiles unknown in optimizeMemRChr (#230289)
The selects created here are purely synthesized so we have no way of
preserving weights in the general case. Thus, mark the weights as
unknown.
[libc++][docs] Use project-local links in release notes (#228624)
Replace absolute libc++ homepage links with Sphinx document references
in
release notes 20 through 24 and the release-note template.
I would leave these historical documents alone, but I have to fix these,
or the doc build will fail with warnings when I enable the absolute
self-link Sphinx doc build warning.
Validation: docs-libcxx-html, followed by a fresh Sphinx rebuild (-E),
on
a merge of the three independent self-link fixes with the checker
enabled
and warnings-as-errors disabled. No self-link warnings or new warning
messages compared with the audit baseline.
Part of #214861
Assisted-by: Codex
[Clang] Fix cluster_dims thread block limit checks
The limit is on the total number of thread blocks, 8 for NVPTX and 16
for AMDGPU, but two checks got in the way. A 4-bit cap on each dimension
rejected cluster_dims(16, 1, 1) while accepting the same 16 blocks as
cluster_dims(4, 4, 1), and an omitted dimension contributed 0 rather
than 1, zeroing the product so cluster_dims(15, 15) compiled cleanly.
Bound each dimension only enough to keep the product from overflowing
and let the existing total size diagnostic enforce the limit. Code that
relied on the unenforced limit now fails to compile.
[InstCombine] Fix profile propagation in visitMul (#230304)
Within visitMul there is a fold that creates a new select with the same
condition as an existing select, which lets us directly propagate the
metadata.
[CIR] Don't double-init global variables anymore. (#230279)
My last patch, #228586, did some additional work to make sure we
properly initialized globals even if they had multiple blocks in their
initializer rather than assuming there was one.
As a result, the dynamic initialization of a variable referenced
multiple times regressed, as we started failing verification because we
are double-emitting the initializer.
Note we ALWAYS double-emitted the initializer, but we replaced it every
time. The change above caused us to re-use the same set of blocks to
better tolerate multiple blocks, and as a side effect, the second block
initialization added instead of replacing.
This patch fixes this by making sure we only define a global variable if
it isn't yet defined.
[docs] Repair remaining absolute self-documentation links (#228625)
Replace same-project absolute URLs with relative source links or Sphinx
cross-references in LLVM, Flang, libc, clang-tools-extra, and OpenMP.
Use the explicit LangRef label for atomic.ignore.denormal.mode metadata.
This lets Sphinx validate the targets and keeps local and archived
documentation self-contained.
Validated by building all docs-*-html targets for these subprojects with
the pending Sphinx build warning merged in.
Part of #214861
Assisted-by: Codex
nd6: Do not allocate an ifaddr for the interface ID in in6_ifadd()
Without a suitable link-local address, in6_ifadd() obtains the
interface identifier from in6_get_ifid(). It wrote the result into a
freshly allocated struct in6_ifaddr, M_NOWAIT since the function runs
in the network epoch, so SLAAC could fail under memory pressure over a
16 byte scratch buffer.
Write the identifier into the on-stack address the rest of the function
uses instead. Zero it first, in6_get_ifid() only fills in the low 64
bits, as the M_ZERO allocation did. Track which path provided the
identifier with a flag instead of a pointer into the ifaddr, so each
path releases its own reference.
Reviewed by: glebius
Fixes: 9e792f7ef729 ("sys/netinet6: Fix SLAAC for interfaces with no /64 LL address")
Fixes: f9fc93690aef ("sys/netinet6: fix memory corruption in in6_ifadd")
MFC after: 2 weeks
Sponsored by: Rubicon Communications, LLC ("Netgate")
Differential Revision: https://reviews.freebsd.org/D60488
[flang][semantics] Reject DATA-style initializer on EXTERNAL/INTRINSIC (#222256)
An `entity-decl` carrying a legacy `/initialization/` (an extension) was silently
accepted, and the initializer dropped, when the name had already been
declared `EXTERNAL` or `INTRINSIC`:
```fortran
subroutine s
external foo
integer foo /1/ ! accepted, no initialization emitted
end subroutine
```
`DataChecker::Leave(const parser::EntityDecl &)` passed the value list to
`AccumulateDataInitializations` without checking the symbol's class, so the
initialization never reached the emitted code and no diagnostic was produced.
Reversing the two statements already errors, so the behaviour was also
order-dependent. For an intrinsic name that is not an unrestricted specific
function (`sum`), the accumulated value instead tripped
[9 lines not shown]