Add GNU Linux voice runtime preparation (#42208)

## Why

Native voice libraries need package-relative loader paths so a prepared runtime
can be moved without retaining references to its build prefix.

## What changed

- Configure CMake and GNU Linux Meson builds with relative runtime paths, while
  also setting relocatable install names and paths for CMake libraries on macOS.
- Add a GNU Linux runtime preparer for x64 and ARM64 that validates bounded ELF64
  metadata, selects the declared GStreamer plugins and dependency closure, and
  preserves the `lib/gstreamer-1.0/` layout.
- Reject malformed ELF metadata, path-bearing imports, unsupported loader
  dependencies, and native outputs that still contain incompatible runtime
  paths.

## Testing

Add native tests for relative build paths, relocated library loading, dependency
and digest failures, malformed ELF inputs, and cleanup after failed preparation.

GitOrigin-RevId: ed94819b07d20214b56363446b64f765e08d75fa
This commit is contained in:
Benjamin Carlsson authored and copyberry committed 2026-09-02 05:14:37 +00:00
1 parent 27bf160f79
commit 8d01cd42fa
7 files changed
+482 -3

No files matched your search

+1
View File
@@ -33,6 +33,7 @@ filegroup(
srcs = [
"assemble_package.py",
"build_native.py",
"linux_runtime.py",
"macos_runtime.py",
"runtime.py",
":source_inputs",