From 72bb69748b6d359f6b6fae75ebba7f632a9b3dbd Mon Sep 17 00:00:00 2001 From: thysson2701 Date: Thu, 11 Jun 2026 23:51:41 +0200 Subject: [PATCH] fix(stable): wx 3.3.2 nanosvg ODR via --allow-multiple-definition (Linux) --- src/CMakeLists.txt | 2 ++ src/slic3r/GUI/BitmapCache.cpp | 7 ------- 2 files changed, 2 insertions(+), 7 deletions(-) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 268d60d2df0..ce9ef27b930 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -121,6 +121,8 @@ endif (MINGW) if (NOT WIN32 AND NOT APPLE) # Binary name on unix like systems (Linux, Unix) set_target_properties(OrcaSlicer PROPERTIES OUTPUT_NAME "orca-slicer") + # wx 3.3 bundles nanosvg internally causing duplicate symbols; allow them. + target_link_options(OrcaSlicer PRIVATE "-Wl,--allow-multiple-definition") set(SLIC3R_APP_CMD "orca-slicer") configure_file(${CMAKE_CURRENT_SOURCE_DIR}/dev-utils/platform/unix/build_linux_image.sh.in ${CMAKE_CURRENT_BINARY_DIR}/build_linux_image.sh USE_SOURCE_PERMISSIONS @ONLY) endif () diff --git a/src/slic3r/GUI/BitmapCache.cpp b/src/slic3r/GUI/BitmapCache.cpp index 75c88371b44..10a67f784d0 100644 --- a/src/slic3r/GUI/BitmapCache.cpp +++ b/src/slic3r/GUI/BitmapCache.cpp @@ -14,13 +14,6 @@ #include #endif /* __WXGTK2__ */ #include -// wx 3.3+ includes nanosvg internally; avoid ODR violations by making our copy static. -#define nsvgParse orca_nsvgParse -#define nsvgParseFromFile orca_nsvgParseFromFile -#define nsvgDelete orca_nsvgDelete -#define nsvgCreateRasterizer orca_nsvgCreateRasterizer -#define nsvgDeleteRasterizer orca_nsvgDeleteRasterizer -#define nsvgRasterize orca_nsvgRasterize #define NANOSVG_IMPLEMENTATION #include "nanosvg/nanosvg.h" #define NANOSVGRAST_IMPLEMENTATION