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

Most upvoted comments

When searching for the flag -fno-code-hoisting it does not return any useful results at all. Are these godot-specific flags?

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