View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0016614 | Scribus | Build System | public | 2021-08-11 10:47 | 2021-11-09 21:39 |
Reporter | fsimonis | Assigned To | jghali | ||
Priority | normal | Severity | major | Reproducibility | have not tried |
Status | closed | Resolution | fixed | ||
Product Version | 1.5.8.svn | ||||
Fixed in Version | 1.5.8.svn | ||||
Summary | 0016614: EXE Linker flags incorrect for clang | ||||
Description | The linker flags of the executable are set for GCC, but not clang. Thus compiling with clang leads to unresolved symbols when loading plugins. The attached patch fixes this. | ||||
Tags | No tags attached. | ||||
Patch | Yes | ||||
|
0001-Fix-linker-flags-using-clang.patch (1,178 bytes)
From bc6e04628bb3c0d2fe220f06752e4b986292b025 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20Simonis?= <simonisfrederic@gmail.com> Date: Mon, 9 Aug 2021 15:52:55 +0200 Subject: [PATCH] Fix linker flags using clang --- scribus/CMakeLists.txt | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/scribus/CMakeLists.txt b/scribus/CMakeLists.txt index 03b4ef179..943af231a 100644 --- a/scribus/CMakeLists.txt +++ b/scribus/CMakeLists.txt @@ -762,13 +762,15 @@ if (CMAKE_SYSTEM_NAME STREQUAL "FreeBSD" OR CMAKE_SYSTEM_NAME STREQUAL "OpenBSD" # Should fix bug 6897 . set_target_properties(${EXE_NAME} PROPERTIES LINK_FLAGS -Wl,-E) endif () -if (CMAKE_CXX_COMPILER_ID STREQUAL "GNU" AND NOT WIN32) + +if ((CMAKE_CXX_COMPILER_ID STREQUAL "GNU" OR CMAKE_CXX_COMPILER_ID STREQUAL "Clang") AND NOT WIN32) # Use the -E / --export-dynamic flag to ensure that symbols in the Scribus # binary are in the public symbol table for plugins. The symbols must also # be set as SCRIBUS_API if we're building with -fvisibility=hidden . # Should fix bug 6897 . set_target_properties(${EXE_NAME} PROPERTIES LINK_FLAGS -Wl,-E) endif () + ## -- 2.32.0 |
|
Fixed. I would be however curious to see if that replacing the set_target_properties() by this line could also solve the problem: set_target_properties(${EXE_NAME} PROPERTIES ENABLE_EXPORTS 1) |
|
Right. The ideal solution would be to replace the flag twiddling with: ENABLE_EXPORTS POSITION_INDEPENDENT_CODE CXX_VISIBILITY_PRESET This "should" be relatively simple as the API is already marked with SCRIBUS_API and PLUGIN_API. |
Date Modified | Username | Field | Change |
---|---|---|---|
2021-08-11 10:47 | fsimonis | New Issue | |
2021-08-11 10:47 | fsimonis | File Added: 0001-Fix-linker-flags-using-clang.patch | |
2021-08-11 13:40 | jghali | Note Added: 0049207 | |
2021-08-11 13:41 | jghali | Assigned To | => jghali |
2021-08-11 13:41 | jghali | Status | new => resolved |
2021-08-11 13:41 | jghali | Resolution | open => fixed |
2021-08-11 13:41 | jghali | Fixed in Version | => 1.5.8.svn |
2021-08-11 14:29 | fsimonis | Note Added: 0049212 | |
2021-11-09 21:39 | cbradney | Status | resolved => closed |