]> granicus.if.org Git - clang/commitdiff
[Driver] Always use -z rodynamic for Fuchsia
authorPetr Hosek <phosek@chromium.org>
Tue, 18 Jul 2017 23:23:16 +0000 (23:23 +0000)
committerPetr Hosek <phosek@chromium.org>
Tue, 18 Jul 2017 23:23:16 +0000 (23:23 +0000)
Fuchsia uses read-only .dynamic section.

Differential Revision: https://reviews.llvm.org/D35582

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@308390 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Driver/ToolChains/Fuchsia.cpp
test/Driver/fuchsia.c
test/Driver/fuchsia.cpp

index d8b8fe8f0bfe1f7a0554da4a7d48d7c615d1944e..78053aafd16e581fe740540e29d4adbabf31b644 100644 (file)
@@ -46,6 +46,9 @@ void fuchsia::Linker::ConstructJob(Compilation &C, const JobAction &JA,
   if (llvm::sys::path::stem(Exec).equals_lower("lld")) {
     CmdArgs.push_back("-flavor");
     CmdArgs.push_back("gnu");
+
+    CmdArgs.push_back("-z");
+    CmdArgs.push_back("rodynamic");
   }
 
   if (!D.SysRoot.empty())
index 64d31cc0d38c239cb479c398bc4678c3d309d4fb..405086f3f07e0aaaaa115e7281c5aef057ddf2c7 100644 (file)
@@ -5,6 +5,7 @@
 // CHECK: "-isysroot" "[[SYSROOT:[^"]+]]"
 // CHECK: "-internal-externc-isystem" "[[SYSROOT]]{{/|\\\\}}include"
 // CHECK: {{.*}}lld{{.*}}" "-flavor" "gnu"
+// CHECK: "-z" "rodynamic"
 // CHECK: "--sysroot=[[SYSROOT]]"
 // CHECK: "-pie"
 // CHECK: "--build-id"
index 4c3f7d29acd898e283c8cc7281f142125f26b543..20299c3426881b71b595d1d9f9f60dfb6d90fbd9 100644 (file)
@@ -7,6 +7,7 @@
 // CHECK: "-internal-isystem" "{{.*[/\\]}}x86_64-fuchsia{{/|\\\\}}include{{/|\\\\}}c++{{/|\\\\}}v1"
 // CHECK: "-internal-externc-isystem" "[[SYSROOT]]{{/|\\\\}}include"
 // CHECK: {{.*}}lld{{.*}}" "-flavor" "gnu"
+// CHECK: "-z" "rodynamic"
 // CHECK: "--sysroot=[[SYSROOT]]"
 // CHECK: "-pie"
 // CHECK: "--build-id"