From db4b51ab2d7a68caf2cfc04ceb58bb7eb9434a23 Mon Sep 17 00:00:00 2001 From: Kasper Date: Tue, 18 Mar 2025 13:24:40 +0200 Subject: [PATCH] some more info to minimal example --- CMakeLists.txt | 3 +++ test/manual/CMakeLists.txt | 1 + test/manual/minimal.cpp | 10 +++++++++- test/manual/minimal_lib.h | 5 ++++- 4 files changed, 17 insertions(+), 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 7f5908a..839297d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -12,6 +12,9 @@ if(UNIX AND NOT APPLE) message(STATUS "Defining _GNU_SOURCE for Unix build") endif() +# Common compile options +add_compile_options("-fvisibility=hidden") + # Handle 3rd party dependencies # ############################# diff --git a/test/manual/CMakeLists.txt b/test/manual/CMakeLists.txt index 6e545d7..861ca11 100644 --- a/test/manual/CMakeLists.txt +++ b/test/manual/CMakeLists.txt @@ -8,6 +8,7 @@ add_executable(minimal add_library(mini SHARED minimal_lib.cpp minimal_lib.h + ) target_link_libraries(minimal mini) diff --git a/test/manual/minimal.cpp b/test/manual/minimal.cpp index f818f2d..8195b8e 100644 --- a/test/manual/minimal.cpp +++ b/test/manual/minimal.cpp @@ -9,12 +9,20 @@ int main(int argc, char *argv[]) { int modified = -1; while (modified != 0) { + printf("==========================\n"); + printf("main address: %p\n", main); + printf("minimal_lib::getNewValue address: %p\n", minimal_lib::getNewValue); + printf("minimal_lib::otherValue address: %p\n", &minimal_lib::otherValue); + printf("==========================\n"); + printf("\n"); + modified = minimal_lib::getNewValue(5); printf("getModified(5): %d\n", modified); std::this_thread::sleep_for(std::chrono::seconds(1)); - printf("otherValue: %d\n", minimal_lib::otherValue); + printf("otherValue: %d\n", minimal_lib::otherValue++); std::this_thread::sleep_for(std::chrono::seconds(1)); + printf("\n"); } return 0; diff --git a/test/manual/minimal_lib.h b/test/manual/minimal_lib.h index cddcc54..65235a1 100644 --- a/test/manual/minimal_lib.h +++ b/test/manual/minimal_lib.h @@ -3,9 +3,12 @@ namespace minimal_lib { -static int otherValue = 5; +static int otherValue = 0; + +#pragma GCC visibility push(default) int getNewValue(int x); +#pragma GCC visibility pop } #endif // MINIMAL_LIB_H_