View | Details | Raw Unified | Return to bug 230603 | Differences between
and this patch

Collapse All | Expand All

(-)astro/kstars/files/patch-git_b7d677a (+61 lines)
Line 0 Link Here
1
From b7d677ac9a99ee137c2b8bb75503ce1156a7b650 Mon Sep 17 00:00:00 2001
2
From: "Tobias C. Berner" <tcberner@FreeBSD.org>
3
Date: Wed, 26 Dec 2018 11:37:55 +0100
4
Subject: [PATCH] FreeBSD: lld does not support -Wl,-z,nodump
5
6
---
7
 CMakeLists.txt                  |  6 +++++-
8
 cmake/modules/CheckNodump.cmake | 23 +++++++++++++++++++++++
9
 2 files changed, 28 insertions(+), 1 deletion(-)
10
 create mode 100644 cmake/modules/CheckNodump.cmake
11
12
diff --git CMakeLists.txt CMakeLists.txt
13
index c8e9b3715..5e4e4ceae 100644
14
--- CMakeLists.txt
15
+++ CMakeLists.txt
16
@@ -295,8 +295,12 @@ IF (UNIX OR APPLE OR ANDROID)
17
     SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${SEC_COMP_FLAGS}")
18
     SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${SEC_COMP_FLAGS}")
19
     SET(SEC_LINK_FLAGS "")
20
+
21
+    include("${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules/CheckNodump.cmake")
22
+    check_nodump(NODUMP_FLAGS)
23
+
24
     IF (NOT APPLE)
25
-        SET(SEC_LINK_FLAGS "${SEC_LINK_FLAGS} -Wl,-z,nodump -Wl,-z,noexecstack -Wl,-z,relro -Wl,-z,now")
26
+       SET(SEC_LINK_FLAGS "${SEC_LINK_FLAGS} ${NODUMP_FLAGS} -Wl,-z,noexecstack -Wl,-z,relro -Wl,-z,now")
27
     ENDIF ()
28
     IF (NOT ANDROID AND NOT APPLE)
29
         SET(SEC_LINK_FLAGS "${SEC_LINK_FLAGS} -pie")
30
diff --git cmake/modules/CheckNodump.cmake cmake/modules/CheckNodump.cmake
31
new file mode 100644
32
index 000000000..a04bc074b
33
--- /dev/null
34
+++ cmake/modules/CheckNodump.cmake
35
@@ -0,0 +1,23 @@
36
+# Check if the linker supports -Wl,z,nodump
37
+
38
+function(check_nodump result)
39
+  set(NODUMP_FLAGS "-Wl,-z,nodump")
40
+  cmake_policy(SET CMP0056 NEW)
41
+  set(CMAKE_EXE_LINKER_FLAGS "${NODUMP_FLAGS}")
42
+  set(TEST_PROGRAM "int main() { return 0 ; }")
43
+  set(TEST_FILE "${CMAKE_CURRENT_BINARY_DIR}/test_nodump.cc")
44
+  file(WRITE "${TEST_FILE}" "${TEST_PROGRAM}")
45
+
46
+  message(STATUS "Checking whether the linker supports ${NODUMP_FLAGS} ...")
47
+  try_compile(SUPPORT_NODUMP
48
+              "${CMAKE_CURRENT_BINARY_DIR}/try_has_nodump"
49
+              "${TEST_FILE}"
50
+  )
51
+  message(STATUS "  suports ${NODUMP_FLAGS}: ${SUPPORT_NODUMP}")
52
+
53
+  if(SUPPORT_NODUMP)
54
+    set(${result} "${NODUMP_FLAGS}")
55
+  else()
56
+    set(${result} "")
57
+  endif()
58
+endfunction()
59
-- 
60
2.20.1
61

Return to bug 230603