[sanitizer] Fix crypt.cpp test on Darwin

git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@374115 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/test/sanitizer_common/TestCases/Posix/crypt.cpp b/test/sanitizer_common/TestCases/Posix/crypt.cpp
index ff86ace..ff26264 100644
--- a/test/sanitizer_common/TestCases/Posix/crypt.cpp
+++ b/test/sanitizer_common/TestCases/Posix/crypt.cpp
@@ -1,4 +1,4 @@
-// RUN: %clangxx -O0 -g %s -o %t -lcrypt && %run %t
+// RUN: %clangxx -O0 -g %s -o %t && %run %t
 
 // crypt is missing from Android.
 // UNSUPPORTED: android
diff --git a/test/sanitizer_common/lit.common.cfg.py b/test/sanitizer_common/lit.common.cfg.py
index 5f4f2d8..e23a8ce 100644
--- a/test/sanitizer_common/lit.common.cfg.py
+++ b/test/sanitizer_common/lit.common.cfg.py
@@ -46,10 +46,13 @@
   config.environment[tool_options] = default_tool_options_str
   default_tool_options_str += ':'
 
+extra_link_flags = []
+
 if config.host_os in ['Linux']:
-  extra_link_flags = ["-ldl"]
-else:
-  extra_link_flags = []
+  extra_link_flags += ["-ldl"]
+
+if config.host_os in ['Linux', 'NetBSD', 'FreeBSD']:
+  extra_link_flags += ["-lcrypt"]
 
 clang_cflags = config.debug_info_flags + tool_cflags + [config.target_cflags]
 clang_cflags += extra_link_flags