src/tiled_yuv.S: stub tiled_to_planar on aarch64

The whole body of tiled_yuv.S is wrapped in #ifndef __aarch64__ — the
ARMv7 NEON Thumb code doesn't assemble on aarch64. On 64-bit ARM the
.S object is therefore empty and tiled_to_planar comes out as an
undefined symbol in the .so, which dlopen rejects at vainfo time:

  libva error: dlopen ... failed: undefined symbol: tiled_to_planar

Runtime-wise, tiled_to_planar is only called when
video_format_is_linear() returns false, which only happens for the
sunxi-cedrus DRM_FORMAT_MOD_ALLWINNER_TILED NV12 entry — never on
hantro/rkvdec. So the right fix is a no-op stub on aarch64 just to
satisfy the linker.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-04-25 21:54:19 +00:00
parent 13e9b64bcf
commit 4d14ffb801
+15
View File
@@ -182,4 +182,19 @@ thumb_function tiled_deinterleave_to_planar
b 7b
end_function tiled_deinterleave_to_planar
#else /* __aarch64__ */
/* Fourier-local: aarch64 stub. The body of this file is ARMv7 NEON Thumb
* assembly used by sunxi-cedrus (Allwinner-tiled NV12 linear NV12) and
* is never reached on aarch64 hosts because video_format_is_linear()
* returns true for our NV12 entries. Provide a stub so the shared object
* still resolves the symbol; if ever actually called, return immediately. */
.text
.global tiled_to_planar
.type tiled_to_planar, %function
.hidden tiled_to_planar
tiled_to_planar:
ret
.size tiled_to_planar, .-tiled_to_planar
#endif