Skip to content

fix(build): unblock Tauri build on Linux with AMD ROCm#466

Open
kinncj wants to merge 1 commit into
Zackriya-Solutions:mainfrom
kinncj:fix/linux-rocm-build
Open

fix(build): unblock Tauri build on Linux with AMD ROCm#466
kinncj wants to merge 1 commit into
Zackriya-Solutions:mainfrom
kinncj:fix/linux-rocm-build

Conversation

@kinncj
Copy link
Copy Markdown

@kinncj kinncj commented May 13, 2026

Summary

  • Adds AMD ROCm support to llama-helper (bumps llama-cpp-2 0.1.128 → 0.1.146 to pick up the rocm feature; maps hipblas → rocm in build-gpu.sh / dev-gpu.sh alongside the existing coreml → metal mapping).
  • Restores re-export of the __tauri_command_name_* markers in the summary modules so tauri::generate_handler! resolves commands registered via summary::<fn> from lib.rs under current tauri-macros (2.6.1).

Repro of the original failure

On Linux with an AMD ROCm GPU, ./build-gpu.sh first fails at the llama-helper step:

error: the package 'llama-helper' does not contain this feature: hipblas

After that fix, the next build fails with:

error[E0433]: cannot find `__tauri_command_name_api_process_transcript` in `summary`

— because summary/mod.rs only re-exports the legacy __cmd__* symbols. tauri-macros 2.6.1 emits both __cmd__<fn> and __tauri_command_name_<fn>, and generate_handler! looks up the latter.

Test plan

  • ./build-gpu.sh with auto-detected hipblas → llama-helper builds with ROCm.
  • TAURI_GPU_FEATURE=vulkan ./build-gpu.sh → full build produces target/release/bundle/{deb,appimage}/meetily_0.3.0_amd64.*.
  • macOS Apple Silicon — coreml → metal mapping unchanged.
  • NVIDIA CUDA — unchanged.
  • Windows / Vulkan — unchanged.

Out of scope (not addressed here)

  • On Arch with libclang 22 as the system default, whisper-rs-sys bindgen produces opaque structs (whisper_full_params collapses to just _address). Building locally required LIBCLANG_PATH=/usr/lib/llvm21/lib. That looks like an upstream whisper-rs 0.13.2 / whisper-rs-sys 0.11.1 incompatibility with modern libclang and is left for a separate change (probably a whisper-rs bump).
  • On AMD ROCm 7.x, whisper-rs's vendored whisper.cpp cannot compile with --features hipblas (uses the older hipblasGemmEx signature). Vulkan is the working AMD path with this whisper-rs version; a whisper-rs bump would also resolve that.

Two independent issues prevented `./build-gpu.sh` from completing on
Linux when an AMD ROCm GPU is detected:

1. llama-helper had no ROCm feature, and the GPU detection scripts
   passed whisper-rs's `hipblas` feature name straight through to
   llama-helper, which only knew about `metal`/`cuda`/`vulkan`.
   - Bump llama-cpp-2 0.1.128 -> 0.1.146 (introduces `rocm` feature).
   - Add `rocm = ["llama-cpp-2/rocm"]` to llama-helper.
   - In build-gpu.sh / dev-gpu.sh, map whisper-rs's `hipblas` to
     llama-cpp-2's `rocm` (same backend, different name) alongside
     the existing coreml -> metal mapping for macOS Apple Silicon.

2. tauri-macros 2.6.1 generates both `__cmd__<fn>` and
   `__tauri_command_name_<fn>` markers per #[tauri::command], and
   `tauri::generate_handler!` looks up the latter. The re-exports in
   summary/mod.rs and summary/summary_engine/mod.rs only re-exposed
   the legacy `__cmd__*` names, so registering commands via
   `summary::<fn>` from lib.rs failed with E0433.
   - Add the `__tauri_command_name_*` re-exports alongside the
     existing `__cmd__*` ones in both modules.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant