diff --git a/src/libraries/Native/Unix/configure.cmake b/src/libraries/Native/Unix/configure.cmake index 674375cdd9ec52f245ff057bbeb794fa812e1a52..c430c64f7fe5645f9e5827e17606441646d0bc2b 100644 --- a/src/libraries/Native/Unix/configure.cmake +++ b/src/libraries/Native/Unix/configure.cmake @@ -60,7 +60,7 @@ endif() # Older CMake versions (3.8) do not assign the result of their tests, causing unused-value errors # which are not distinguished from the test failing. So no error for that one. # For clang-5.0 avoid errors like "unused variable 'err' [-Werror,-Wunused-variable]". -set(CMAKE_REQUIRED_FLAGS "-Werror -Wno-error=unused-value -Wno-error=unused-variable") +set(CMAKE_REQUIRED_FLAGS "${CMAKE_REQUIRED_FLAGS} -Werror -Wno-error=unused-value -Wno-error=unused-variable") # Apple platforms like macOS/iOS allow targeting older operating system versions with a single SDK, # the mere presence of a symbol in the SDK doesn't tell us whether the deployment target really supports it. diff --git a/src/mono/CMakeLists.txt b/src/mono/CMakeLists.txt index d1ff67be10138bd2ab000334e70d70b124a03e7b..1437fc59feb482a34c891885ed4fe20733766688 100644 --- a/src/mono/CMakeLists.txt +++ b/src/mono/CMakeLists.txt @@ -213,6 +213,9 @@ elseif(CMAKE_SYSTEM_NAME STREQUAL "Android") set(HOST_LINUX 1) add_definitions(-D_GNU_SOURCE -D_REENTRANT) add_definitions(-D_THREAD_SAFE) + add_compile_options(-Wl,-z,now) + add_compile_options(-Wl,-z,relro) + add_compile_options(-Wl,-z,noexecstack) # The normal check fails because it uses --isystem /sysroot/usr/include set(HAVE_USR_INCLUDE_MALLOC_H 1) set(HOST_ANDROID 1) diff --git a/src/mono/mono.proj b/src/mono/mono.proj index 6b105d8755ea3e9b42d153afa235ee50691f8b11..c41d29595c8c6244e3e5ba14cc6ab9788cb4e0fb 100644 --- a/src/mono/mono.proj +++ b/src/mono/mono.proj @@ -249,7 +249,6 @@ <_MonoCMakeArgs Include="-DCMAKE_OSX_DEPLOYMENT_TARGET=$(macOSVersionMin)" /> <_MonoCFLAGS Condition="'$(TargetArchitecture)' == 'arm64'" Include="-arch arm64" /> <_MonoCXXFLAGS Condition="'$(TargetArchitecture)' == 'arm64'" Include="-arch arm64" /> - <_MonoLDFLAGS Condition="'$(TargetArchitecture)' == 'arm64'" Include="-arch arm64" /> <_MonoBuildEnv Condition="'$(BuildArchitecture)' == 'arm64'" Include="arch -arch arm64" /> @@ -264,7 +263,6 @@ <_MonoCXXFlags Condition="'$(TargetArchitecture)' == 'arm64'" Include="-target arm64-apple-ios14.2-macabi" /> <_MonoCXXFlags Condition="'$(TargetArchitecture)' == 'x64'" Include="-target x86_64-apple-ios13.5-macabi" /> <_MonoCXXFLAGS Condition="'$(TargetArchitecture)' == 'arm64'" Include="-arch arm64" /> - <_MonoLDFLAGS Condition="'$(TargetArchitecture)' == 'arm64'" Include="-arch arm64" /> <_MonoBuildEnv Condition="'$(BuildArchitecture)' == 'arm64'" Include="arch -arch arm64" /> @@ -378,15 +376,6 @@ <_MonoCXXFLAGS Condition="'$(Platform)' == 'arm64' or '$(Platform)' == 'arm'" Include="-DSK_RELEASE" /> <_MonoCXXFLAGS Condition="'$(Platform)' == 'arm64' or '$(Platform)' == 'arm'" Include="-DNDEBUG" /> <_MonoCXXFLAGS Condition="'$(Platform)' == 'arm64' or '$(Platform)' == 'arm'" Include="-UDEBUG" /> - - <_MonoLDFLAGS Include="-z now" /> - <_MonoLDFLAGS Include="-z relro" /> - <_MonoLDFLAGS Include="-z noexecstack" /> - <_MonoLDFLAGS Include="-ldl" /> - <_MonoLDFLAGS Include="-lm" /> - <_MonoLDFLAGS Include="-llog" /> - <_MonoLDFLAGS Include="-lc" /> - <_MonoLDFLAGS Include="-lgcc" />