[PATCH] D29655: [X86] Link safestacksepseg runtime

Michael LeMay via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Thu Feb 9 21:00:22 PST 2017


mlemay-intel updated this revision to Diff 87959.
mlemay-intel added a comment.

Added test.


https://reviews.llvm.org/D29655

Files:
  lib/Driver/Tools.cpp
  test/Driver/sanitizer-ld.c


Index: test/Driver/sanitizer-ld.c
===================================================================
--- test/Driver/sanitizer-ld.c
+++ test/Driver/sanitizer-ld.c
@@ -420,6 +420,17 @@
 // CHECK-SAFESTACK-LINUX: "-lpthread"
 // CHECK-SAFESTACK-LINUX: "-ldl"
 
+// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
+// RUN:     -target x86_64-unknown-linux -fuse-ld=ld -fsanitize=safe-stack \
+// RUN:     -mseparate-stack-seg --sysroot=%S/Inputs/basic_linux_tree \
+// RUN:   | FileCheck --check-prefix=CHECK-SAFESTACKMPX-LINUX %s
+//
+// CHECK-SAFESTACKMPX-LINUX: "{{(.*[^-.0-9A-Z_a-z])?}}ld{{(.exe)?}}"
+// CHECK-SAFESTACKMPX-LINUX-NOT: "-lc"
+// CHECK-SAFESTACKMPX-LINUX: libclang_rt.safestacksepseg-x86_64.a"
+// CHECK-SAFESTACKMPX-LINUX: "-lpthread"
+// CHECK-SAFESTACKMPX-LINUX: "-ldl"
+
 // RUN: %clang -fsanitize=cfi -fsanitize-stats %s -### -o %t.o 2>&1 \
 // RUN:     -target x86_64-unknown-linux -fuse-ld=ld \
 // RUN:     --sysroot=%S/Inputs/basic_linux_tree \
Index: lib/Driver/Tools.cpp
===================================================================
--- lib/Driver/Tools.cpp
+++ lib/Driver/Tools.cpp
@@ -3319,8 +3319,12 @@
     if (SanArgs.linkCXXRuntimes())
       StaticRuntimes.push_back("ubsan_standalone_cxx");
   }
-  if (SanArgs.needsSafeStackRt())
-    StaticRuntimes.push_back("safestack");
+  if (SanArgs.needsSafeStackRt()) {
+    if (Args.hasFlag(options::OPT_mseparate_stack_seg, options::OPT_mno_separate_stack_seg, false))
+      StaticRuntimes.push_back("safestacksepseg");
+    else
+      StaticRuntimes.push_back("safestack");
+  }
   if (SanArgs.needsCfiRt())
     StaticRuntimes.push_back("cfi");
   if (SanArgs.needsCfiDiagRt()) {


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D29655.87959.patch
Type: text/x-patch
Size: 1680 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20170210/39d1b02c/attachment.bin>


More information about the cfe-commits mailing list