]> granicus.if.org Git - clang/commitdiff
[Driver] Always use -z separate-code with lld on Fuchsia
authorPetr Hosek <phosek@chromium.org>
Mon, 5 Aug 2019 01:15:33 +0000 (01:15 +0000)
committerPetr Hosek <phosek@chromium.org>
Mon, 5 Aug 2019 01:15:33 +0000 (01:15 +0000)
Previously -z separate-code was the default lld behavior, but now it
has to be explicitly requested by specifying the flag.

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

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

index 1f5ec9ebb16d5e052099230f1c6f033810d8201d..84e5027ddff9ce054ba3ff60d1f4e1fe9fa4f779 100644 (file)
@@ -51,6 +51,8 @@ void fuchsia::Linker::ConstructJob(Compilation &C, const JobAction &JA,
       llvm::sys::path::stem(Exec).equals_lower("ld.lld")) {
     CmdArgs.push_back("-z");
     CmdArgs.push_back("rodynamic");
+    CmdArgs.push_back("-z");
+    CmdArgs.push_back("separate-code");
   }
 
   if (!D.SysRoot.empty())
index c31e3739b5dff39f8629bedd0c725f7b5dbf9086..ec664fb3b5a8d0fc3d7d1ee03c33bc784829de16 100644 (file)
@@ -16,7 +16,7 @@
 // CHECK: "-fsanitize=safe-stack"
 // CHECK: "-stack-protector" "2"
 // CHECK: "-fno-common"
-// CHECK: {{.*}}ld.lld{{.*}}" "-z" "rodynamic"
+// CHECK: {{.*}}ld.lld{{.*}}" "-z" "rodynamic" "-z" "separate-code"
 // CHECK: "--sysroot=[[SYSROOT]]"
 // CHECK: "-pie"
 // CHECK: "--build-id"