From 02ac8c5d8ae304fad2a484f10ae37886b14b0d00 Mon Sep 17 00:00:00 2001
From: Matteo Cicuttin <datafl4sh@toxicnet.eu>
Date: Wed, 16 Feb 2022 17:33:17 +0100
Subject: [PATCH] Linker script to hide eigen and sol.

---
 src/libgmshdg/CMakeLists.txt |  8 +++++++-
 src/libgmshdg/libgmshdg.lkr  | 11 +++++++++++
 2 files changed, 18 insertions(+), 1 deletion(-)
 create mode 100644 src/libgmshdg/libgmshdg.lkr

diff --git a/src/libgmshdg/CMakeLists.txt b/src/libgmshdg/CMakeLists.txt
index d347dd9..8f2008d 100644
--- a/src/libgmshdg/CMakeLists.txt
+++ b/src/libgmshdg/CMakeLists.txt
@@ -33,4 +33,10 @@ if (OPT_ENABLE_GPU_SOLVER)
 else()
     add_library(gmshdg SHARED ${LIBGMSHDG_SOURCES})
     target_link_libraries(gmshdg ${LINK_LIBS})
-endif()
\ No newline at end of file
+endif()
+
+if (${CMAKE_SYSTEM_NAME} MATCHES "Linux")
+    set_property(TARGET gmshdg APPEND_STRING PROPERTY LINK_FLAGS " -Wl,--version-script=${CMAKE_CURRENT_SOURCE_DIR}/libgmshdg.lkr")
+    set_target_properties(gmshdg PROPERTIES LINK_DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/libgmshdg.lkr")
+endif()
+
diff --git a/src/libgmshdg/libgmshdg.lkr b/src/libgmshdg/libgmshdg.lkr
new file mode 100644
index 0000000..60ba8a4
--- /dev/null
+++ b/src/libgmshdg/libgmshdg.lkr
@@ -0,0 +1,11 @@
+{
+    global: *;
+    local:
+        extern "C++"
+        {
+            Eigen::*;
+            *Eigen::internal::*;
+            sol::*;
+        };
+};
+
-- 
GitLab