From: Petr Hosek Date: Tue, 18 Jul 2017 23:23:16 +0000 (+0000) Subject: [Driver] Always use -z rodynamic for Fuchsia X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=e3d7c4c2aa532933c6d5ae473548a434a02a06a2;p=clang [Driver] Always use -z rodynamic for Fuchsia 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 --- diff --git a/lib/Driver/ToolChains/Fuchsia.cpp b/lib/Driver/ToolChains/Fuchsia.cpp index d8b8fe8f0b..78053aafd1 100644 --- a/lib/Driver/ToolChains/Fuchsia.cpp +++ b/lib/Driver/ToolChains/Fuchsia.cpp @@ -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()) diff --git a/test/Driver/fuchsia.c b/test/Driver/fuchsia.c index 64d31cc0d3..405086f3f0 100644 --- a/test/Driver/fuchsia.c +++ b/test/Driver/fuchsia.c @@ -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" diff --git a/test/Driver/fuchsia.cpp b/test/Driver/fuchsia.cpp index 4c3f7d29ac..20299c3426 100644 --- a/test/Driver/fuchsia.cpp +++ b/test/Driver/fuchsia.cpp @@ -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"