NAS-140810 / 27.0.0-BETA.1 / Fall back to UTC when configured timezone is unavailable (#18913)
This commit fixes an issue where users upgrading from older TrueNAS
versions could end up with a timezone selected that is no longer
available on the system, silently leaving the clock on UTC with no
indication to the operator.
Debian moved a large set of legacy timezone aliases (Japan, GB,
Hongkong, Iran, Israel, Cuba, Egypt, all capitalised Australia/*,
Brazil/*, Canada/*, etc.) out of the core `tzdata` package into a new
`tzdata-legacy` package which is not installed by default on trixie:
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1040997
The names are still listed in `/usr/share/zoneinfo/tzdata.zi` as
historical Link entries, but the corresponding files under
`/usr/share/zoneinfo/` are gone. The middleware was parsing `tzdata.zi`
directly and offering all 598 entries in the dropdown, including 113
that no longer resolve to a real file. Selecting one of those (e.g.
[42 lines not shown]
[DWARFLinker] Preserve children of DW_TAG_GNU_template_parameter_pack (#196439)
Pack children were not getting ordered synthetic keys, so TypePool
deduplicated them by name and TypesComparator sorted the survivors
alphabetically. Register the two missing tags with
SyntheticTypeNameBuilder.
[lldb] Add completion support for direct ivars (#195187)
Fixes the current shortcoming where `v m_na<TAB>` will not complete the
member `m_name` on `this`. This implements tab completion to complement
direct ivar access support in `frame variable`.
Assisted-by: claude
---------
Co-authored-by: Jonas Devlieghere <jonas at devlieghere.com>
NAS-140810 / 27.0.0-BETA.1 / Fall back to UTC when configured timezone is unavailable (#18913)
This commit fixes an issue where users upgrading from older TrueNAS
versions could end up with a timezone selected that is no longer
available on the system, silently leaving the clock on UTC with no
indication to the operator.
Debian moved a large set of legacy timezone aliases (Japan, GB,
Hongkong, Iran, Israel, Cuba, Egypt, all capitalised Australia/*,
Brazil/*, Canada/*, etc.) out of the core `tzdata` package into a new
`tzdata-legacy` package which is not installed by default on trixie:
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1040997
The names are still listed in `/usr/share/zoneinfo/tzdata.zi` as
historical Link entries, but the corresponding files under
`/usr/share/zoneinfo/` are gone. The middleware was parsing `tzdata.zi`
directly and offering all 598 entries in the dropdown, including 113
that no longer resolve to a real file. Selecting one of those (e.g.
[41 lines not shown]
[BOLT] Fix EH data encoding checks in relocateEHFrameSection (#196777)
Previously committed in 7ab26d7c3a16 (#195691) and later reverted
in bc654b438ffe (#196672) due to failures extended bolt-tests.
The problem was that the mask should be `0x70` instead of `0xf0`,
so to allow `DW_EH_PE_indirect` to pass through.
The `DW_EH_PE_*rel` constants are not defined as values that each
have only one distinctive bit set, so we rewrote the conditions to
check encoding scheme explicitly.
Mk/Uses/go.mk: Introduce GO_LDFLAGS
Introduce GO_LDFLAGS so consumers can easily add variables to LDFLAGS
to the `go build` command without needing to redefine GO_BUILDFLAGS
PR: 285251
Reviewed by: adamw
[MLIR][MemRef] Extend narrow-type emulation for dynamic offsets (#196945)
This patch adds three related extensions to the MemRef narrow-type
emulation patterns.
* `ConvertMemRefSubview` now accepts a dynamic innermost offset.
* `ConvertMemRefReinterpretCast` is generalized from the previous
static-rank-1, static-offset shape to accept any rank and dynamic
offsets, with the same alignment contract as the subview pattern.
* A new `ConvertMemRefCast` pattern handles `memref.cast` between
equivalent narrow-typed memref types so that emulation does not get
blocked by trivial casts.
devel/libclc: Update llvm19 flavor and add 20, 21, and 22 flavors
Rename plist variables LLVMnn to LLVM_GEnn (>=nn) and introduce
LLVM_LTnn (<nn).
Convert patch to REINPLACE_CMD because it fails to apply to the
LLVM 22 version.
PR: 290873
Approved by: arrowd
[libc] Remove global printf_core StorageType declarations in float_inf_nan_converter.h (#196859)
fixed_converter.h and float_hex_converter.h have local declarations with
the same name shadowing it, causing -Wshadow warnings. The using
declaration is used in only one function, so just make it local.
dsl_dir: avoid dd_lock during snapshots_changed updates
Avoid holding dd_lock while updating the on-disk
snapshots_changed timestamp.
Both dsl_dir_zapify() and zap_update() may dirty buffers
and recurse into space accounting, which can take dd_lock.
Holding dd_lock across either operation can therefore
preserve the lock-order inversion reported by lockdep.
Only protect the in-memory dd_snap_cmtime update
with dd_lock. Perform the zapify and ZAP update without
dd_lock held, and retry the on-disk write if another updater
advanced dd_snap_cmtime while the write was in progress.
Reviewed-by: Alexander Motin <alexander.motin at TrueNAS.com>
Reviewed-by: Brian Behlendorf <behlendorf1 at llnl.gov>
Signed-off-by: ZhengYuan Huang <gality369 at gmail.com>
Co-authored-by: gality369 <gality369 at example.com>
Closes #18472
[clang] Don't warn on __COUNTER__ in system macros
The introduction of extension and compatibility warnings means
that __COUNTER__ has started causing warnings (and -Werror= build
failures) due to use of system APIs.
This PR simply ensures that these diagnostics don't get reported
for system macro expansions as well.
17969 bhyve: produce diagnostic messages when drivers misbehave
Reviewed by: Dan McDonald <danmcd at edgecast.io>
Approved by: Gordon Ross <gordon.w.ross at gmail.com>
[AMDGPU] Account for inline asm size in inst_pref_size calculation (#192306)
`SIProgramInfo::getFunctionCodeSize()` with `IsLowerBound=true` was
completely skipping inline assembly instructions, treating them as zero
bytes. This caused `amdhsa_inst_pref_size` to be severely underestimated
for kernels containing inline asm, defeating instruction prefetch on
gfx11+.
Use MCExpr label subtraction (`.Lfunc_end - func_sym`) to compute exact
function code size, resolved at assembly time. This avoids inline asm
string parsing which cannot reliably estimate code size and risks
overestimation (which causes prefetch of unmapped memory and a fatal
segfault).
Add a new `AMDGPUMCExpr` variant (`AGVK_InstPrefSize`) to compute
`min(divideCeil(codeSize, cacheLineSize), maxFieldVal)` as a custom
MCExpr, following the same pattern as `AGVK_Occupancy` and
`AGVK_AlignTo`. The cache line size and field width are derived from the
subtarget via `IsaInfo::getInstCacheLineSize` and feature-bit checks
[24 lines not shown]
[libc] Fix -Wshadow warning in sqrtf128.h (#196851)
sqrtf128() contained both `using namespace sqrtf128_internal;` and
`using FPBits = fputil::FPBits<float128>;`, but sqrtf128_internal also
had a `using FPBits = fputil::FPBits<float128>;`. The outer `using`
wasn't actually used, so remove that one.
[AMDGPU] Add `.amdgpu.info` section for per-function metadata (#192384)
AMDGPU object linking requires the linker to propagate resource usage
(registers, stack, LDS) across translation units. To support this, the
compiler must emit per-function metadata and call graph edges in the
relocatable object so the linker can compute whole-program resource
requirements.
This PR introduces a `.amdgpu.info` ELF section using a tagged,
length-prefixed binary format: each entry is encoded as:
```
[kind: u8] [len: u8] [payload: <len> bytes]
```
A function scope is opened by an `INFO_FUNC` entry (containing a symbol
reference), followed by per-function attributes (register counts, flags,
private segment size) and relational edges (direct calls, LDS uses,
indirect call signatures). String data such as function type signatures
[4 lines not shown]