[offload] Fix compatibility for level_zero 25.22.33944- #214215 (#215977)
This PR reapplies https://github.com/llvm/llvm-project/pull/214215. I
incorrectly checked `if (Result->Code == OL_ERRC_UNSUPPORTED)` without
checking if `Results != nullptr`. I didn't realize it failed when I ran
it locally, the segmentation fault was silent for some reason.
[AArch64] Restrict SVE index to profitable BUILD_VECTOR sequences (#215250)
We were previously arbitrarily using the SVE index instruction for all
BUILD_VECTOR arithmetic sequences even when it's not profitable to do
so. According to the software optimisation guides all variants of index
that take a scalar register as input are slower than just loading a
literal. Furthermore, by taking this shortcut so early during
LowerBUILD_VECTOR we miss out on more profitable opportunities as seen
by the changes in sve-fixed-length-build-vector.ll.
DAG: Use LibcallImpl overload of makeLibCall (#215987)
We already have the LibcallImpl here, so use it instead
of letting makeLibCall re-check the active impl.
RuntimeLibcalls: Fix AArch64 wrongly typed long-double libcalls
Respect the triple's LongDoubleFormat.
AArch64SystemLibrary added the fp128-typed frexpl/ldexpl and exp10l without a
long-double-format guard, so triples where long double is IEEE double
(Darwin, Windows, Android) were emitting l suffixed calls with the wrong
type.
Co-authored-by: Claude (Claude-Opus-4.8) <noreply at anthropic.com>
devel/*pygobject*: install missed header (+)
Install missed pygobject-types.h
It needed to unbreak consumers, e.g. multimedia/py-gstreamer1
In file included from ../gi/overrides/gstanalyticsmodule.c:27:
/usr/local/include/pygobject-3.0/pygobject.h:23:10: fatal error: 'pygobject-types.h' file not found
23 | #include <pygobject-types.h>
| ^~~~~~~~~~~~~~~~~~~
1 error generated.
Reported by: bulk -t
security/dogtag-pki: bound the rc onestop call during pkidestroy
The Tomcat stop path called `service <instance> onestop` and blocked on
rc.subr's wait_for_pids() indefinitely when the jsvc/JVM did not exit
(e.g. a wedged webapp during pkidestroy). Bound the call with a timeout
and fall back to SIGKILL so pkidestroy/uninstall can never hang.
Sponsored by: Netzkommune GmbH
net/py-lib389: pass the process environment when starting dirsrv
Extend the FreeBSD start patch so lib389 launches the ns-slapd process
with a copy of the current environment (env = dict(os.environ)) instead
of an empty one. This lets the Kerberos settings (e.g. KRB5_KTNAME) reach
the directory server process, which is required for GSSAPI/GSS-SPNEGO binds
on FreeBSD.
Sponsored by: Netzkommune GmbH
net/389-ds-base: build against MIT Kerberos; fix GSSAPI SASL on FreeBSD
Add USES=gssapi:mit so ns-slapd links the ports MIT Kerberos
(security/krb5) used by the rest of the FreeIPA stack, plus two
FreeBSD-specific fixes so GSSAPI/GSS-SPNEGO binds work:
- ldaputil.c: locate the SASL plugins under ${LOCALBASE}/lib/sasl2 on
FreeBSD (upstream only handles the Linux path).
- saslbind.c: register the GSSAPI acceptor keytab explicitly via
krb5_gss_register_acceptor_identity(). ns-slapd starts as root and
then drops privileges, so issetugid() is true and MIT Kerberos ignores
KRB5_KTNAME; without this every GSSAPI bind fails with a permission
error on the default keytab.
Sponsored by: Netzkommune GmbH
net/slapi-nis: Add new Port
slapi-nis provides the Schema Compatibility plugin for 389 Directory
Server. The plugin presents alternate LDAP views required by FreeIPA
compatibility features, including SSSD ID mapping and ID views. The NIS
plugin itself is disabled; only the schema-compat plugin is built.
WWW: https://codeberg.org/freeipa/slapi-nis
Sponsored by: Netzkommune GmbH
Required for: FreeIPA server port
sysutils/oddjob: Add new Port
oddjob is a D-Bus service (oddjobd) that runs a fixed set of privileged
jobs on behalf of unprivileged client applications. FreeIPA uses it for
oddjob-mkhomedir, which creates a user's home directory on first login.
The port disables the systemd, sysvinit, Python and SELinux features
that do not apply on FreeBSD and ships a native rc script.
WWW: https://codeberg.org/freeipa/oddjob
Sponsored by: Netzkommune GmbH
Required for: FreeIPA server port
www/freeipa-auth-gssapi: Add new Port
mod_auth_gssapi is the Apache module FreeIPA uses for SPNEGO/GSSAPI
authentication of the Web UI and API. www/mod_auth_gssapi defaults to
the base-system GSSAPI on FreeBSD, which mixes base and ports MIT krb5
in one httpd process and breaks gssproxy interposition. This port is an
independent build hard-wired to the ports MIT krb5 (security/krb5) so it
matches the rest of the FreeIPA stack (net/freeipa-server,
security/gssproxy). It conflicts with ap24-mod_auth_gssapi.
Sponsored by: Netzkommune GmbH
[lldb][test] Remove references to dotest's removed -A option (#215804)
-A was for setting the architecture.
6175a4d455e170fa947859e2a5952c89585150aa removed it in favour of a
triple option.
This change removes some remaining references to -A.
f8a92af893eee7ac7ffda93c24b9e69df506148f removed the only use of
getRunOptions some time ago.
A few references remain to -A, but comments and old example files only.
Nothing that developers are going to see without digging for it. Plus I
don't know what some of them refer to, so it's safer just to leave it
in.
[SandboxVectorizer] Fix out-of-bounds SeedBundle access on cross-bundle erasure
SeedCollection::runOnFunction() indexed a SeedBundle at
Seeds.getFirstUnusedElementIdx() (and, separately, at a hardcoded 0) without
first checking whether the bundle was already fully used.
getFirstUnusedElementIdx() returns Seeds.size() -- one past the end -- once
everything is used, so indexing there reads out of bounds.
This was always a latent bug, but -sbvec-collect-seeds=stores,loads is what
actually exposes it: store and load seeds share one erase-instruction
callback (SeedContainer::erase()), so when vectorizing a store chain erases
a load it packed as an operand, that erase also marks the same load "used"
in its *independent* LoadSeeds bundle. Store seeds are processed first, so
by the time the outer loop reaches that LoadSeeds bundle, it can already be
fully consumed -- or, since cross-bundle erasure can mark any index used
(not just sequentially from the front), have its element 0 specifically
erased while other elements remain live, which broke the hardcoded Seeds[0]
address-space lookup the same way.
[12 lines not shown]
[lldb][AArch64] Fix compilation error in RegisterTypeDetector (#215623)
#214515 introduced a compilation failure on Apple Clang 15:
```
FAILED: tools/lldb/source/Plugins/Process/elf-core/CMakeFiles/lldbPluginProcessElfCore.dir/ThreadElfCore.cpp.o
In file included from …/src/lldb/source/Plugins/Process/elf-core/ThreadElfCore.cpp:35:
In file included from …/src/lldb/source/Plugins/Process/elf-core/RegisterContextPOSIXCore_arm64.h:14:
…/src/lldb/source/Plugins/Process/Utility/RegisterTypeDetector_arm64.h:122:64: error: type 'Args &&' of function parameter pack does not contain any unexpanded parameter packs
friend const T *Arm64RegisterTypeDetector::MakeType(Args &&...args);
~~~~~~~^~~~~~~
…/src/lldb/source/Plugins/Process/Utility/RegisterTypeDetector_arm64.h:122:48: error: friend declaration of 'MakeType' does not match any declaration in 'lldb_private::Arm64RegisterTypeDetector'
friend const T *Arm64RegisterTypeDetector::MakeType(Args &&...args);
^~~~~~~~
2 errors generated.
```
This PR moves the type creation into `DetectedTypesHolder` and has
`MakeType` forward to it, so no `friend` declaration is needed.
[libc][test] Avoid getauxval dependency for bare-metal AArch64 (#215509)
Hermetic and integration test support provide a global __getauxval shim
on AArch64 for compatibility with libgcc expectations. That shim
forwards to libc's getauxval implementation.
Bare-metal targets do not provide sys/auxv/getauxval, and the hermetic
test rules already avoid adding that dependency for bare-metal builds.
Match the source guards and integration-test dependency to that policy
so AArch64 bare-metal tests do not link an unresolved getauxval
reference.