Skip to content

Build fails for linuxbsd x86_32 arch #87442

@roalyr

Description

@roalyr

Tested versions

4.x at 0bcc0e9
(to be more prices - my 4.x fork at roalyr@647e40d)

System information

Linux mx-x230 5.10.0-27-amd64 #1 SMP Debian 5.10.205-2 (2023-12-31) x86_64 GNU/Linux

Issue description

Compilation fails with this error only for x86_32 (other architectures compile as intended):

In file included from ./core/os/memory.h:35,
                 from ./core/templates/local_vector.h:35,
                 from ./core/object/message_queue.h:36,
                 from ./core/object/object.h:35,
                 from ./core/variant/binder_common.h:35,
                 from ./core/object/method_bind.h:34,
                 from ./core/object/class_db.h:34,
                 from ./core/config/project_settings.h:34,
                 from platform/linuxbsd/crash_handler_linuxbsd.cpp:33:
./core/templates/safe_refcount.h:56:45: error: static assertion failed
   56 |  static_assert(alignof(SafeNumeric<m_type>) == alignof(m_type)); \
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
./core/templates/cowdata.h:49:1: note: in expansion of macro 'SAFE_NUMERIC_TYPE_PUN_GUARANTEES'
   49 | SAFE_NUMERIC_TYPE_PUN_GUARANTEES(uint64_t)
      | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ./core/os/memory.h:35,
                 from ./core/templates/local_vector.h:35,
                 from ./core/object/message_queue.h:36,
                 from ./core/object/object.h:35,
                 from ./core/variant/binder_common.h:35,
                 from ./core/object/method_bind.h:34,
                 from ./core/object/class_db.h:34,
                 from ./core/object/ref_counted.h:34,
                 from ./core/io/resource_uid.h:34,
                 from ./core/io/resource.h:34,
                 from ./core/input/input_event.h:35,
                 from ./core/input/input.h:34,
                 from platform/linuxbsd/joypad_linux.h:36,
                 from platform/linuxbsd/os_linuxbsd.h:35,
                 from platform/linuxbsd/godot_linuxbsd.cpp:31:
./core/templates/safe_refcount.h:56:45: error: static assertion failed
   56 |  static_assert(alignof(SafeNumeric<m_type>) == alignof(m_type)); \
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
./core/templates/cowdata.h:49:1: note: in expansion of macro 'SAFE_NUMERIC_TYPE_PUN_GUARANTEES'
   49 | SAFE_NUMERIC_TYPE_PUN_GUARANTEES(uint64_t)
      | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
scons: *** [platform/linuxbsd/crash_handler_linuxbsd.linuxbsd.editor.double.x86_32.o] Error 1
scons: *** [platform/linuxbsd/godot_linuxbsd.linuxbsd.editor.double.x86_32.o] Error 1
scons: building terminated because of errors.

Steps to reproduce

Compile source with these arguments:

scons -j2 platform=linuxbsd precision=double arch=x86_32
scons -j2 platform=linuxbsd precision=double target=template_debug arch=x86_32

Edit: same error without double precision.

Minimal reproduction project (MRP)

Not a project-related issue.

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions