summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--packaging/0001-Add-pie-to-linker-option.patch104
-rw-r--r--packaging/coreclr.spec4
2 files changed, 107 insertions, 1 deletions
diff --git a/packaging/0001-Add-pie-to-linker-option.patch b/packaging/0001-Add-pie-to-linker-option.patch
new file mode 100644
index 0000000000..338e58e2a8
--- /dev/null
+++ b/packaging/0001-Add-pie-to-linker-option.patch
@@ -0,0 +1,104 @@
+From 2839b40789b70f23f25c575817cb9639f940c81e Mon Sep 17 00:00:00 2001
+From: CHUNSEOK LEE <chunseok.lee@samsung.com>
+Date: Wed, 23 Aug 2017 16:42:31 +0900
+Subject: [PATCH] Add -pie to linker option
+
+There have been no -pie linker option.
+This patch adds -pie linker option into crossgen, ildasm, ilasm, and
+corerun, coreconsole
+---
+ src/coreclr/hosts/unixcoreconsole/CMakeLists.txt | 2 ++
+ src/coreclr/hosts/unixcorerun/CMakeLists.txt | 2 ++
+ src/dlls/mscorpe/CMakeLists.txt | 1 +
+ src/ilasm/CMakeLists.txt | 2 ++
+ src/ildasm/exe/CMakeLists.txt | 1 +
+ src/ildasm/unixcoreclrloader/CMakeLists.txt | 2 ++
+ src/tools/crossgen/CMakeLists.txt | 1 +
+ 7 files changed, 11 insertions(+)
+
+diff --git a/src/coreclr/hosts/unixcoreconsole/CMakeLists.txt b/src/coreclr/hosts/unixcoreconsole/CMakeLists.txt
+index 2daeaab..15d6d38 100644
+--- a/src/coreclr/hosts/unixcoreconsole/CMakeLists.txt
++++ b/src/coreclr/hosts/unixcoreconsole/CMakeLists.txt
+@@ -31,4 +31,6 @@ if(NOT CLR_CMAKE_PLATFORM_ANDROID)
+ )
+ endif()
+
++set_target_properties(coreconsole PROPERTIES LINK_FLAGS -pie)
++
+ install_clr(coreconsole)
+diff --git a/src/coreclr/hosts/unixcorerun/CMakeLists.txt b/src/coreclr/hosts/unixcorerun/CMakeLists.txt
+index 07beaae..85499c8 100644
+--- a/src/coreclr/hosts/unixcorerun/CMakeLists.txt
++++ b/src/coreclr/hosts/unixcorerun/CMakeLists.txt
+@@ -32,4 +32,6 @@ if(NOT CLR_CMAKE_PLATFORM_ANDROID)
+ )
+ endif()
+
++set_target_properties(corerun PROPERTIES LINK_FLAGS -pie)
++
+ install_clr(corerun)
+diff --git a/src/dlls/mscorpe/CMakeLists.txt b/src/dlls/mscorpe/CMakeLists.txt
+index fd884b1..b4b1e5e 100644
+--- a/src/dlls/mscorpe/CMakeLists.txt
++++ b/src/dlls/mscorpe/CMakeLists.txt
+@@ -12,6 +12,7 @@ set(MSCORPE_SOURCES
+ if(WIN32)
+ else()
+ add_compile_options(-Wno-delete-non-virtual-dtor)
++ add_compile_options(-fPIC)
+ endif(WIN32)
+
+ add_library_clr(mscorpe STATIC
+diff --git a/src/ilasm/CMakeLists.txt b/src/ilasm/CMakeLists.txt
+index 9e99d02..5668d1f 100644
+--- a/src/ilasm/CMakeLists.txt
++++ b/src/ilasm/CMakeLists.txt
+@@ -64,6 +64,8 @@ if(CLR_CMAKE_PLATFORM_UNIX)
+ palrt
+ )
+
++ set_target_properties(ilasm PROPERTIES LINK_FLAGS -pie)
++
+ # FreeBSD and NetBSD implement dlopen(3) in libc
+ if(NOT CMAKE_SYSTEM_NAME STREQUAL FreeBSD AND NOT CMAKE_SYSTEM_NAME STREQUAL NetBSD)
+ target_link_libraries(ilasm
+diff --git a/src/ildasm/exe/CMakeLists.txt b/src/ildasm/exe/CMakeLists.txt
+index bf09be5..cfd5db0 100644
+--- a/src/ildasm/exe/CMakeLists.txt
++++ b/src/ildasm/exe/CMakeLists.txt
+@@ -54,6 +54,7 @@ if(CLR_CMAKE_PLATFORM_UNIX)
+ coreclrpal
+ palrt
+ )
++ set_target_properties(ildasm PROPERTIES LINK_FLAGS -pie)
+
+ # FreeBSD and NetBSD implement dlopen(3) in libc
+ if(NOT CMAKE_SYSTEM_NAME STREQUAL FreeBSD AND NOT CMAKE_SYSTEM_NAME STREQUAL NetBSD)
+diff --git a/src/ildasm/unixcoreclrloader/CMakeLists.txt b/src/ildasm/unixcoreclrloader/CMakeLists.txt
+index 6a3916b..abbe08c 100644
+--- a/src/ildasm/unixcoreclrloader/CMakeLists.txt
++++ b/src/ildasm/unixcoreclrloader/CMakeLists.txt
+@@ -1,5 +1,7 @@
+ project(unixcoreclrloader)
+
++add_compile_options(-fPIC)
++
+ include_directories(${CMAKE_SOURCE_DIR}/src/coreclr/hosts/unixcoreruncommon)
+ add_library(unixcoreclrloader
+ STATIC
+diff --git a/src/tools/crossgen/CMakeLists.txt b/src/tools/crossgen/CMakeLists.txt
+index 3b9c5ba..b8e9cf7 100644
+--- a/src/tools/crossgen/CMakeLists.txt
++++ b/src/tools/crossgen/CMakeLists.txt
+@@ -50,6 +50,7 @@ if(CLR_CMAKE_PLATFORM_UNIX)
+ coreclrpal
+ palrt
+ )
++ set_target_properties(crossgen PROPERTIES LINK_FLAGS -pie)
+ else()
+ target_link_libraries(crossgen
+ advapi32
+--
+2.7.4
+
diff --git a/packaging/coreclr.spec b/packaging/coreclr.spec
index 46211a05e3..1da9342099 100644
--- a/packaging/coreclr.spec
+++ b/packaging/coreclr.spec
@@ -23,7 +23,7 @@ Source1000: downloaded_files.tar.gz
Source1001: %{name}.manifest
Source1002: libicu.tar.gz
Source1003: dep_libs.tar.gz
-# Gbp-Ignore-Patches: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
+# Gbp-Ignore-Patches: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
Patch0: Add-project.assets.json-files.patch
Patch1: Add-Tizen-RuntimeID-case.patch
Patch2: Change-O3-build-in-clang3.8.patch
@@ -43,6 +43,7 @@ Patch15: 0001-Fix-CreateDump-related-undefined-reference-on-non-AM.patch
Patch16: 0001-ARM-Linux-Enable-DacStackWalk.patch
Patch17: profiling.patch
Patch18: clear_cache.patch
+Patch19: 0001-Add-pie-to-linker-option.patch
ExcludeArch: aarch64
@@ -160,6 +161,7 @@ cp %{SOURCE1001} .
%patch16 -p1
%patch17 -p1
%patch18 -p1
+%patch19 -p1
%if 0%{skipmscorlib}
%else