godot: GDNative build failure on X11 armv7hl
Godot version: Godot 3.0 (4a042b1)
OS/device including version: Mageia 7, armv7hl
Issue description: Attempting to build the current master on Mageia 7 (Cauldron)'s buildsystem, it passes fine on i586 and x86_64 but fails on armv7hl with the following error:
build_gdnative_api_struct(["modules/gdnative/include/gdnative_api_struct.gen.h", "modules/gdnative/gdnative_api_struct.gen.cpp"], ["modules/gdnative/gdnative_api.json"])
Compiling ==> modules/gdnative/gdnative.cpp
Compiling ==> modules/gdnative/register_types.cpp
Compiling ==> modules/gdnative/gdnative/pool_arrays.cpp
Compiling ==> modules/gdnative/gdnative/vector2.cpp
Compiling ==> modules/gdnative/gdnative/rid.cpp
Compiling ==> modules/gdnative/gdnative/variant.cpp
Compiling ==> modules/gdnative/gdnative/basis.cpp
Compiling ==> modules/gdnative/gdnative/quat.cpp
modules/gdnative/gdnative/variant.cpp: In function 'godot_variant godot_variant_call(godot_variant*, const godot_string*, const godot_variant**, godot_int, godot_variant_call_error*)':
modules/gdnative/gdnative/variant.cpp:40:81: internal compiler error: in assign_temp, at function.c:968
#define memnew_placement_custom(m_placement, m_class, m_constr) _post_initialize(new (m_placement, sizeof(m_class), "") m_constr)
~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
modules/gdnative/gdnative/variant.cpp:449:2: note: in expansion of macro 'memnew_placement_custom'
memnew_placement_custom(dest, Variant, Variant(self->call(*method, args, p_argcount, error)));
^~~~~~~~~~~~~~~~~~~~~~~
Please submit a full bug report,
with preprocessed source if appropriate.
See <https://bugs.mageia.org/> for instructions.
scons: *** [modules/gdnative/gdnative/variant.x11.opt.tools.32.o] Error 1
scons: building terminated because of errors.
Build command:
/usr/bin/scons -j4 'CCFLAGS=-O2 -g -pipe -Wformat -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -march=armv7-a -mfloat-abi=hard -mfpu=vfpv3-d16' 'LINKFLAGS= -Wl,--as-needed -Wl,--no-undefined -Wl,-z,relro -Wl,-O1 -Wl,--build-id -Wl,--enable-new-dtags' builtin_freetype=no builtin_libogg=no builtin_libpng=no builtin_libtheora=no builtin_libvorbis=no builtin_libvpx=no builtin_libwebp=no builtin_openssl=no builtin_opus=no builtin_pcre2=no builtin_zlib=no udev=yes progress=no p=x11 tools=yes target=release_debug
Full build log: https://hastebin.com/edufijugih GCC version: 7.3.0
CC @karroffel
About this issue
- Original URL
- State: closed
- Created 6 years ago
- Comments: 21 (21 by maintainers)
Commits related to this issue
- Workaround GCC 6 & 7 ICE on armv7hl Fixes #16100. — committed to akien-mga/godot by akien-mga 5 years ago
- Workaround GCC 6 & 7 ICE on armv7hl Fixes #16100. — committed to slapin/godot by akien-mga 5 years ago
You should search for “gcc fcode-hoisting” without the
-
, otherwise most search engines would consider that you don’t want to have results with this string. Anyway, it’s a new option in GCC 7+ so that’s why it doesn’t work for you, but it’s fine to remove it from the workaround.The libvpx build issue is different from the issue in this report, so it would be better to report it in its own ticket. As a workaround you can build with
module_webm_enabled=no
.The underlaying bug got fixed in gcc trunk and will be in 8.1, I’ll add my workaround to scons with a gcc version filter of >= 6 < 8.1
Upstream bugreport created: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84881