sudo apt install gcc-aarch64-linux-gnu g++-aarch64-linux-gnu Pro tip: Don't use the generic arm-linux-gnueabihf for A53. Go 64-bit. The A53 loves 64-bit mode for NEON optimizations. libvpx has an incredibly smart build system (via configure ). It auto-detects CPU features. But when cross-compiling, auto-detection runs on your x86 CPU. It will see AVX2 and SSE4 and think, "Great, let's enable those!"
./vpxdec example.vp9 -o output.y4m If you see Using CPU: ARM NEON , pour yourself a coffee. You just successfully tricked a complex x86 build system into emitting perfect NEON assembly for a low-power ARM core. Cross-compiling libvpx isn't hard because of the codec. It's hard because the build system wants to test CPU capabilities, and cross-compilation prevents that. cross s01 libvpx
undefined reference to `aarch64_linux_get_cpu_flags' Why? Because libvpx’s assembly stubs for runtime detection expect an OS-specific function. On Linux ARM64, you need to ensure you built with the right AS (assembler) and that --enable-runtime-cpu-detect is paired with the correct --target . libvpx has an incredibly smart build system (via configure )
export CC=aarch64-linux-gnu-gcc export CXX=aarch64-linux-gnu-g++ export AR=aarch64-linux-gnu-ar export AS=aarch64-linux-gnu-as Then reconfigure. The build system needs to see the cross-tools for assembly. After make and make install DESTDIR=./rootfs , copy the .so files to your S01. It will see AVX2 and SSE4 and think,