From 0ba875ec2939d2de0f971cdca17f3830c8272245 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Verschelde?= Date: Thu, 12 Dec 2024 18:56:33 +0100 Subject: [PATCH] Jolt: Fix multiple definition LTO linking issue with mingw-gcc --- modules/jolt_physics/spaces/jolt_layers.cpp | 4 ++++ modules/jolt_physics/spaces/jolt_layers.h | 1 + 2 files changed, 5 insertions(+) diff --git a/modules/jolt_physics/spaces/jolt_layers.cpp b/modules/jolt_physics/spaces/jolt_layers.cpp index c39c3a33970..ccf7bee984a 100644 --- a/modules/jolt_physics/spaces/jolt_layers.cpp +++ b/modules/jolt_physics/spaces/jolt_layers.cpp @@ -191,6 +191,10 @@ JoltLayers::JoltLayers() { _allocate_object_layer(0); } +// MinGW GCC using LTO will emit errors during linking if this is defined in the header file, implicitly or otherwise. +// Likely caused by this GCC bug: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94156 +JoltLayers::~JoltLayers() = default; + JPH::ObjectLayer JoltLayers::to_object_layer(JPH::BroadPhaseLayer p_broad_phase_layer, uint32_t p_collision_layer, uint32_t p_collision_mask) { const uint64_t collision = encode_collision(p_collision_layer, p_collision_mask); diff --git a/modules/jolt_physics/spaces/jolt_layers.h b/modules/jolt_physics/spaces/jolt_layers.h index f610477a665..8299b956d79 100644 --- a/modules/jolt_physics/spaces/jolt_layers.h +++ b/modules/jolt_physics/spaces/jolt_layers.h @@ -63,6 +63,7 @@ class JoltLayers final public: JoltLayers(); + virtual ~JoltLayers(); JPH::ObjectLayer to_object_layer(JPH::BroadPhaseLayer p_broad_phase_layer, uint32_t p_collision_layer, uint32_t p_collision_mask); void from_object_layer(JPH::ObjectLayer p_encoded_layer, JPH::BroadPhaseLayer &r_broad_phase_layer, uint32_t &r_collision_layer, uint32_t &r_collision_mask) const;