summaryrefslogtreecommitdiffstats
path: root/config.tests/no_direct_extern_access/CMakeLists.txt
diff options
context:
space:
mode:
Diffstat (limited to 'config.tests/no_direct_extern_access/CMakeLists.txt')
-rw-r--r--config.tests/no_direct_extern_access/CMakeLists.txt14
1 files changed, 14 insertions, 0 deletions
diff --git a/config.tests/no_direct_extern_access/CMakeLists.txt b/config.tests/no_direct_extern_access/CMakeLists.txt
new file mode 100644
index 0000000000..b4b881f1dc
--- /dev/null
+++ b/config.tests/no_direct_extern_access/CMakeLists.txt
@@ -0,0 +1,14 @@
+cmake_minimum_required(VERSION 3.16)
+project(direct_extern_access LANGUAGES CXX)
+
+# this is the test found in https://sourceware.org/bugzilla/show_bug.cgi?id=29087
+# and https://sourceware.org/bugzilla/show_bug.cgi?id=29377
+
+add_library(no_extern_access_lib SHARED lib.cpp)
+add_executable(no_extern_access_main other.cpp main.cpp)
+
+target_compile_options(no_extern_access_lib PRIVATE "-Werror")
+target_compile_options(no_extern_access_lib PUBLIC "$<$<CXX_COMPILER_ID:GNU>:-mno-direct-extern-access>")
+target_compile_options(no_extern_access_lib PUBLIC "$<$<CXX_COMPILER_ID:Clang>:-fno-direct-access-external-data>")
+
+target_link_libraries(no_extern_access_main no_extern_access_lib)