godot: Build failure for libvpx on ARMv8 with 32-bit Linux OS: Inlining failed in call to NEON instructions

Godot version:

Latest source from master branch at GitHub (3.1)

OS/device including version:

Ubuntu 18.04 Bionic LXDE Rock64 (ARM v8)

Issue description:

Using scons platform=x11 tools=no target=release_debug bits=32

Expected: Godot compiles successfully.

Actual: GCC inline

[Initial build] Compiling ==> thirdparty/libvpx/vp8/common/arm/neon/bilinearpredict_neon.c
In file included from thirdparty/libvpx/vp8/common/arm/neon/bilinearpredict_neon.c:11:0:
thirdparty/libvpx/vp8/common/arm/neon/bilinearpredict_neon.c: In function 'vp8_bilinear_predict8x4_neon':
/usr/lib/gcc/arm-linux-gnueabihf/7/include/arm_neon.h:10303:1: error: inlining failed in call to always_inline 'vld1_u8': target specific option mismatch
 vld1_u8 (const uint8_t * __a)
 ^~~~~~~
thirdparty/libvpx/vp8/common/arm/neon/bilinearpredict_neon.c:42:15: note: called from here
         d26u8 = vld1_u8(src_ptr);
         ~~~~~~^~~~~~~~~~~~~~~~~~
In file included from thirdparty/libvpx/vp8/common/arm/neon/bilinearpredict_neon.c:11:0:
/usr/lib/gcc/arm-linux-gnueabihf/7/include/arm_neon.h:10303:1: error: inlining failed in call to always_inline 'vld1_u8': target specific option mismatch
 vld1_u8 (const uint8_t * __a)
 ^~~~~~~
thirdparty/libvpx/vp8/common/arm/neon/bilinearpredict_neon.c:41:15: note: called from here
         d25u8 = vld1_u8(src_ptr); src_ptr += src_pixels_per_line;

Steps to reproduce: Install LXDE desktop for Rock64. Install Godot required libraries. Attempt to compile Godot, as above.

Minimal reproduction project:

About this issue

  • Original URL
  • State: closed
  • Created 5 years ago
  • Comments: 26 (11 by maintainers)

Most upvoted comments

This was confirmed on https://godotforums.org/discussion/23832/building-for-x11-fails-arm-chipset.

We should detect the target architecture in SCons to disable the WebM module automatically when not targeting an x86-based architecture.