[Clang] Pass --pack-dyn-relocs=relr to lld for Fuchsia
authorPetr Hosek <phosek@google.com>
Sat, 9 May 2020 20:42:19 +0000 (13:42 -0700)
committerPetr Hosek <phosek@google.com>
Sat, 9 May 2020 20:42:19 +0000 (13:42 -0700)
The compact format is fully supported on Fuchsia and is the
preferred default.

Patch By: mcgrathr

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

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

index fbda60a..9a8f14d 100644 (file)
@@ -56,6 +56,7 @@ void fuchsia::Linker::ConstructJob(Compilation &C, const JobAction &JA,
     CmdArgs.push_back("rodynamic");
     CmdArgs.push_back("-z");
     CmdArgs.push_back("separate-loadable-segments");
+    CmdArgs.push_back("--pack-dyn-relocs=relr");
   }
 
   if (!D.SysRoot.empty())
index 5c1c000..3aceba7 100644 (file)
@@ -23,7 +23,7 @@
 // CHECK-X86_64: "-fsanitize=safe-stack"
 // CHECK: "-stack-protector" "2"
 // CHECK-NOT: "-fcommon"
-// CHECK: {{.*}}ld.lld{{.*}}" "-z" "now" "-z" "rodynamic" "-z" "separate-loadable-segments"
+// CHECK: {{.*}}ld.lld{{.*}}" "-z" "now" "-z" "rodynamic" "-z" "separate-loadable-segments" "--pack-dyn-relocs=relr"
 // CHECK: "--sysroot=[[SYSROOT]]"
 // CHECK: "-pie"
 // CHECK: "--build-id"