I’m building a DAW project using Tracktion Engine (via JUCE) and running into build failures on Linux aarch64. Thought I’d share in case others hit the same walls — and maybe there’s a cleaner solution than patching upstream. Environment: Raspberry Pi 5 (aarch64), GCC 12+, CMake. Also reproduced on Fedora Asahi (aarch64, Clang 20). Issue 1: __wfe not declared A file in Tracktion Engine uses __wfe() which isn’t available outside ARM-specific intrinsics headers. My workaround:
copy
asm volatile("wfe" ::: "memory");
This works but feels like a hack. Is there a proper cross-platform way to handle this?
Issue 2: C++17 / template errors in Tracktion Engine
Further into the build (~90%+), multiple Tracktion files fail:
• tracktion_Bezier.h
• tracktion_LevelMeasurer.h
• tracktion_Tempo.h
• tracktion_WaveNode.cpp
GCC notes std::pair parameter passing changed in C++17 (GCC 10.1). Final result: build fails with Error 2.
Context
This happens on both Raspberry Pi OS (aarch64, GCC 12) and Fedora Asahi (aarch64, Clang 20). x86_64 builds work fine.
Has anyone here built Tracktion Engine on aarch64 successfully? Any patches or CMake flags that helped?
Thanks,
Steffen
