[flang][debug] Leave the name table off by default (#236839)
Flang asked for the default name table in every compile unit. Now that
flang emits DWARF 5 by default, that puts a .debug_names section in
every object, and gdb, which only reads an index it built itself, warns
on loading:
warning: .debug_names not created by gdb; ignoring
Clang asks for no name table unless -gpubnames or -ggnu-pubnames is
given. This PR makes flang accepts -gpubnames, -ggnu-pubnames,
-gno-pubnames and -gno-gnu-pubnames. The driver now forwards those flags
and the frontend chooses the kind as clang does.
AddDebugInfo takes the kind through a new name-table-kind option. The
pass sets it as the compile unit's nameTableKind.
Assisted By: Cursor
[2 lines not shown]
[clang] Add tests for CWG issues about namespaces (#237113)
This PR adds tests for Core issues against [namespace.def],
[namespace.memdef], [namespace.unnamed], [namespace.udir],
[namespace.qual], and [namespace.alias] that didn't have tests (some of
them were covered by Richard and my previous efforts towards P1787R6). I
bundled them together, because in general all of them are covered by the
same subset of the wording.
As a preface, I think it's worth reminding that in addition to regular
name lookup described in [basic.lookup], there is a "name lookup"-lite
for cases when name is not looked up in the Standard sense, but
declaration matching needs to happen, such as terminal names of
declarations whose declarator-id is a qualified name. This lookup-lite
searches for declarations
[nominable](https://eel.is/c++draft/basic.scope.scope#def:nominable) in
a given scope that
[correspond](https://eel.is/c++draft/basic.scope.scope#def:correspond)
to a given declaration
[144 lines not shown]
[AArch64] Add patterns to combine SVE AND and XOR to BIC
Add ISel patterns to rewrite the following pattern to BIC:
```
return svand_u32_x(svptrue_b32(), a, sveor_u32_x(svptrue_b32(), a, b));
```
Cover cases where atleast one of AND and XOR node is of _u form or is a
normal LLVM AND/XOR node.
Also, combine sve.and.u and sve.eor(.z) when predicate for sve.and.u
matches that of sve.eor(.z) or the predicate of sve.eor(.z) is an
all-active predicate.
Cover all SVE integer widths and cover the following symmetric case:
```
return sveor_u32_x(svptrue_b32(), a, svand_u32_x(svptrue_b32(), a, b));
```
NAS-144113 / 28.0.0-BETA.1 / Tie webshare lifecycle to TrueNAS Connect state (#20118)
## Problem
Webshare's Caddy only picks up TLS certificates when it starts, and
middleware never stopped or restarted webshare when TrueNAS Connect
changed. Unsetting TNC left webshare running on a deleted certificate,
and re-registering or renewing left it serving a stale one ("connection
not secure" until a manual restart). The same happened after every
reboot: systemd starts the webshare units before `system.ready`, and
caddy-config skips licence detection until then, so they came up with no
certificates and nothing restarted them.
## Solution
- **One TNC hook:** TNC fires `tn_connect.certificate.changed` once its
certificate is issued or renewed, and after it is deleted on a manual
unset or a 401 deregistration. TNC knows nothing about webshare.
- **Webshare reconciles its own state:** on that hook and at
`system.ready`, webshare restarts itself if it may run (RESTART rather
than RELOAD so link-caddy picks up the certificate too), starts if
[7 lines not shown]
NAS-142270 / 27.0.0 / Add Webshare MCP option (by Qubad786) (#20124)
## Context
Webshare ships an MCP server configured through the `mcp` block of the
webshare-auth config, and there was no way to turn it on from
middleware.
## Solution
- **New settings**: `webshare.update` accepts `mcp_enabled`,
`mcp_allowed_groups` and `mcp_allow_write`, which are rendered into the
`mcp` block. `allowed_hosts` is left unset.
- **MCP groups must be login groups**: webshare only checks login groups
at OAuth consent, while token refresh and session spawn check only the
MCP groups, so every MCP group must be `truenas_webshare` or an entry of
`groups`. Otherwise MCP access could outlive Webshare access. Enabling
MCP without a group is rejected, since webshare denies everyone on an
empty list.
- **Canonical group names**: MCP groups are resolved through NSS,
compared by gid and stored under their canonical name, so a directory
[7 lines not shown]