<html><head><meta http-equiv="Content-Type" content="text/html; charset=us-ascii"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class="">This is failing on Darwin, can you please take a look. <a href="http://green.lab.llvm.org/green/job/clang-stage1-RA/2649/consoleFull" class="">http://green.lab.llvm.org/green/job/clang-stage1-RA/2649/consoleFull</a><div class=""><div class=""><br class=""></div><div class=""><div class=""><br class=""></div><div class=""><span title="Regression test failed" style="box-sizing: border-box; font-family: monospace; font-size: 15px; white-space: pre-wrap; color: white; background-color: red;" class="">******************** TEST 'SanitizerCommon-asan-x86_64-Darwin :: Posix/crypt.cpp' FAILED ********************
</span><span style="caret-color: rgb(51, 51, 51); color: rgb(51, 51, 51); font-family: monospace; font-size: 15px; white-space: pre-wrap;" class="">Script:
--
: 'RUN: at line 1';      /Users/buildslave/jenkins/workspace/clang-stage1-RA/clang-build/./bin/clang  --driver-mode=g++ -gline-tables-only -fsanitize=address  -arch x86_64 -stdlib=libc++ -mmacosx-version-min=10.9 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk  -O0 -g /Users/buildslave/jenkins/workspace/clang-stage1-RA/llvm-project/compiler-rt/test/sanitizer_common/TestCases/Posix/crypt.cpp -o /Users/buildslave/jenkins/workspace/clang-stage1-RA/clang-build/tools/clang/runtime/compiler-rt-bins/test/sanitizer_common/asan-x86_64-Darwin/Posix/Output/crypt.cpp.tmp -lcrypt &&  /Users/buildslave/jenkins/workspace/clang-stage1-RA/clang-build/tools/clang/runtime/compiler-rt-bins/test/sanitizer_common/asan-x86_64-Darwin/Posix/Output/crypt.cpp.tmp
--
Exit Code: 1</span></div><div class=""><font color="#333333" face="monospace" class=""><span style="caret-color: rgb(51, 51, 51); font-size: 15px; white-space: pre-wrap;" class=""><br class=""></span></font><div class="section" data-level="" style="box-sizing: border-box; caret-color: rgb(51, 51, 51); color: rgb(51, 51, 51); font-family: monospace; font-size: 15px; white-space: pre-wrap;"><div class="expanded" style="box-sizing: border-box; border-bottom-style: solid; border-bottom-color: lightgray; border-left-style: solid; border-left-color: lightgray; border-width: 1px; padding-left: 2px;">Command Output (stderr):
--
<a id="1590979434dd1929ea-7054-4089-b7ef-4624c3781fa4" style="box-sizing: border-box; word-wrap: break-word; display: block; position: relative; top: -2em; visibility: hidden;" class=""></a><a id="1590979434dd1929ea-7054-4089-b7ef-4624c3781fa4" style="box-sizing: border-box; word-wrap: break-word; display: block; position: relative; top: -2em; visibility: hidden;" class=""></a><a id="1590979434dd1929ea-7054-4089-b7ef-4624c3781fa4" style="box-sizing: border-box; word-wrap: break-word; display: block; position: relative; top: -2em; visibility: hidden;" class=""></a><a id="1590979434dd1929ea-7054-4089-b7ef-4624c3781fa4" style="box-sizing: border-box; word-wrap: break-word; display: block; position: relative; top: -2em; visibility: hidden;" class=""></a><span title="Link error
Link error
Link error
Link error" style="box-sizing: border-box; color: white; background-color: red; background-position: initial initial; background-repeat: initial initial;" class="">ld: library not found for -lcrypt
</span><a id="124632184549ba4694-19c4-4d7e-bec5-911270d8a58c" style="box-sizing: border-box; word-wrap: break-word; display: block; position: relative; top: -2em; visibility: hidden;" class=""></a><a id="1246321845dd1929ea-7054-4089-b7ef-4624c3781fa4" style="box-sizing: border-box; word-wrap: break-word; display: block; position: relative; top: -2em; visibility: hidden;" class=""></a><a id="1246321845dd1929ea-7054-4089-b7ef-4624c3781fa4" style="box-sizing: border-box; word-wrap: break-word; display: block; position: relative; top: -2em; visibility: hidden;" class=""></a><a id="1246321845dd1929ea-7054-4089-b7ef-4624c3781fa4" style="box-sizing: border-box; word-wrap: break-word; display: block; position: relative; top: -2em; visibility: hidden;" class=""></a><a id="1246321845dd1929ea-7054-4089-b7ef-4624c3781fa4" style="box-sizing: border-box; word-wrap: break-word; display: block; position: relative; top: -2em; visibility: hidden;" class=""></a><span title="Compile Error
Link error
Link error
Link error
Link error" style="box-sizing: border-box; color: white; background-color: red; background-position: initial initial; background-repeat: initial initial;" class="">clang-10: error: linker command failed with exit code 1 (use -v to see invocation)</span></div></div><div class=""><div><br class=""></div><div><br class=""></div><div><br class=""><blockquote type="cite" class=""><div class="">On Oct 7, 2019, at 5:00 PM, Evgeniy Stepanov via llvm-commits <<a href="mailto:llvm-commits@lists.llvm.org" class="">llvm-commits@lists.llvm.org</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><div class="">Author: eugenis<br class="">Date: Mon Oct  7 17:00:30 2019<br class="">New Revision: 373993<br class=""><br class="">URL: <a href="http://llvm.org/viewvc/llvm-project?rev=373993&view=rev" class="">http://llvm.org/viewvc/llvm-project?rev=373993&view=rev</a><br class="">Log:<br class="">[msan] Add interceptors: crypt, crypt_r.<br class=""><br class="">Reviewers: vitalybuka<br class=""><br class="">Subscribers: srhines, #sanitizers, llvm-commits<br class=""><br class="">Tags: #sanitizers, #llvm<br class=""><br class="">Differential Revision: <a href="https://reviews.llvm.org/D68431" class="">https://reviews.llvm.org/D68431</a><br class=""><br class="">Added:<br class="">    compiler-rt/trunk/test/sanitizer_common/TestCases/Linux/crypt_r.cpp<br class="">    compiler-rt/trunk/test/sanitizer_common/TestCases/Posix/crypt.cpp<br class="">Modified:<br class="">    compiler-rt/trunk/lib/sanitizer_common/sanitizer_common_interceptors.inc<br class="">    compiler-rt/trunk/lib/sanitizer_common/sanitizer_platform_interceptors.h<br class="">    compiler-rt/trunk/lib/sanitizer_common/sanitizer_platform_limits_posix.cpp<br class="">    compiler-rt/trunk/lib/sanitizer_common/sanitizer_platform_limits_posix.h<br class=""><br class="">Modified: compiler-rt/trunk/lib/sanitizer_common/sanitizer_common_interceptors.inc<br class="">URL: <a href="http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/sanitizer_common/sanitizer_common_interceptors.inc?rev=373993&r1=373992&r2=373993&view=diff" class="">http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/sanitizer_common/sanitizer_common_interceptors.inc?rev=373993&r1=373992&r2=373993&view=diff</a><br class="">==============================================================================<br class="">--- compiler-rt/trunk/lib/sanitizer_common/sanitizer_common_interceptors.inc (original)<br class="">+++ compiler-rt/trunk/lib/sanitizer_common/sanitizer_common_interceptors.inc Mon Oct  7 17:00:30 2019<br class="">@@ -9573,6 +9573,41 @@ INTERCEPTOR(SSIZE_T, getrandom, void *bu<br class=""> #define INIT_GETRANDOM<br class=""> #endif<br class=""><br class="">+#if SANITIZER_INTERCEPT_CRYPT<br class="">+INTERCEPTOR(char *, crypt, char *key, char *salt) {<br class="">+  void *ctx;<br class="">+  COMMON_INTERCEPTOR_ENTER(ctx, crypt, key, salt);<br class="">+  COMMON_INTERCEPTOR_READ_RANGE(ctx, key, internal_strlen(key) + 1);<br class="">+  COMMON_INTERCEPTOR_READ_RANGE(ctx, salt, internal_strlen(salt) + 1);<br class="">+  char *res = REAL(crypt)(key, salt);<br class="">+  if (res != nullptr)<br class="">+    COMMON_INTERCEPTOR_INITIALIZE_RANGE(res, internal_strlen(res) + 1);<br class="">+  return res;<br class="">+}<br class="">+#define INIT_CRYPT COMMON_INTERCEPT_FUNCTION(crypt);<br class="">+#else<br class="">+#define INIT_CRYPT<br class="">+#endif<br class="">+<br class="">+#if SANITIZER_INTERCEPT_CRYPT_R<br class="">+INTERCEPTOR(char *, crypt_r, char *key, char *salt, void *data) {<br class="">+  void *ctx;<br class="">+  COMMON_INTERCEPTOR_ENTER(ctx, crypt_r, key, salt, data);<br class="">+  COMMON_INTERCEPTOR_READ_RANGE(ctx, key, internal_strlen(key) + 1);<br class="">+  COMMON_INTERCEPTOR_READ_RANGE(ctx, salt, internal_strlen(salt) + 1);<br class="">+  char *res = REAL(crypt_r)(key, salt, data);<br class="">+  if (res != nullptr) {<br class="">+    COMMON_INTERCEPTOR_WRITE_RANGE(ctx, data,<br class="">+                                   __sanitizer::struct_crypt_data_sz);<br class="">+    COMMON_INTERCEPTOR_INITIALIZE_RANGE(res, internal_strlen(res) + 1);<br class="">+  }<br class="">+  return res;<br class="">+}<br class="">+#define INIT_CRYPT_R COMMON_INTERCEPT_FUNCTION(crypt_r);<br class="">+#else<br class="">+#define INIT_CRYPT_R<br class="">+#endif<br class="">+<br class=""> static void InitializeCommonInterceptors() {<br class=""> #if SI_POSIX<br class="">   static u64 metadata_mem[sizeof(MetadataHashMap) / sizeof(u64) + 1];<br class="">@@ -9871,6 +9906,8 @@ static void InitializeCommonInterceptors<br class="">   INIT_GETUSERSHELL;<br class="">   INIT_SL_INIT;<br class="">   INIT_GETRANDOM;<br class="">+  INIT_CRYPT;<br class="">+  INIT_CRYPT_R;<br class=""><br class="">   INIT___PRINTF_CHK;<br class=""> }<br class=""><br class="">Modified: compiler-rt/trunk/lib/sanitizer_common/sanitizer_platform_interceptors.h<br class="">URL: <a href="http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/sanitizer_common/sanitizer_platform_interceptors.h?rev=373993&r1=373992&r2=373993&view=diff" class="">http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/sanitizer_common/sanitizer_platform_interceptors.h?rev=373993&r1=373992&r2=373993&view=diff</a><br class="">==============================================================================<br class="">--- compiler-rt/trunk/lib/sanitizer_common/sanitizer_platform_interceptors.h (original)<br class="">+++ compiler-rt/trunk/lib/sanitizer_common/sanitizer_platform_interceptors.h Mon Oct  7 17:00:30 2019<br class="">@@ -566,6 +566,8 @@<br class=""> #define SANITIZER_INTERCEPT_FDEVNAME SI_FREEBSD<br class=""> #define SANITIZER_INTERCEPT_GETUSERSHELL (SI_POSIX && !SI_ANDROID)<br class=""> #define SANITIZER_INTERCEPT_SL_INIT (SI_FREEBSD || SI_NETBSD)<br class="">+#define SANITIZER_INTERCEPT_CRYPT (SI_POSIX && !SI_ANDROID)<br class="">+#define SANITIZER_INTERCEPT_CRYPT_R (SI_LINUX && !SI_ANDROID)<br class=""><br class=""> #define SANITIZER_INTERCEPT_GETRANDOM (SI_LINUX && __GLIBC_PREREQ(2, 25))<br class=""> #define SANITIZER_INTERCEPT___CXA_ATEXIT SI_NETBSD<br class=""><br class="">Modified: compiler-rt/trunk/lib/sanitizer_common/sanitizer_platform_limits_posix.cpp<br class="">URL: <a href="http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/sanitizer_common/sanitizer_platform_limits_posix.cpp?rev=373993&r1=373992&r2=373993&view=diff" class="">http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/sanitizer_common/sanitizer_platform_limits_posix.cpp?rev=373993&r1=373992&r2=373993&view=diff</a><br class="">==============================================================================<br class="">--- compiler-rt/trunk/lib/sanitizer_common/sanitizer_platform_limits_posix.cpp (original)<br class="">+++ compiler-rt/trunk/lib/sanitizer_common/sanitizer_platform_limits_posix.cpp Mon Oct  7 17:00:30 2019<br class="">@@ -140,6 +140,7 @@ typedef struct user_fpregs elf_fpregset_<br class=""> #include <linux/serial.h><br class=""> #include <sys/msg.h><br class=""> #include <sys/ipc.h><br class="">+#include <crypt.h><br class=""> #endif // SANITIZER_LINUX && !SANITIZER_ANDROID<br class=""><br class=""> #if SANITIZER_ANDROID<br class="">@@ -240,6 +241,7 @@ namespace __sanitizer {<br class="">   unsigned struct_ustat_sz = SIZEOF_STRUCT_USTAT;<br class="">   unsigned struct_rlimit64_sz = sizeof(struct rlimit64);<br class="">   unsigned struct_statvfs64_sz = sizeof(struct statvfs64);<br class="">+  unsigned struct_crypt_data_sz = sizeof(struct crypt_data);<br class=""> #endif // SANITIZER_LINUX && !SANITIZER_ANDROID<br class=""><br class=""> #if SANITIZER_LINUX && !SANITIZER_ANDROID<br class=""><br class="">Modified: compiler-rt/trunk/lib/sanitizer_common/sanitizer_platform_limits_posix.h<br class="">URL: <a href="http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/sanitizer_common/sanitizer_platform_limits_posix.h?rev=373993&r1=373992&r2=373993&view=diff" class="">http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/sanitizer_common/sanitizer_platform_limits_posix.h?rev=373993&r1=373992&r2=373993&view=diff</a><br class="">==============================================================================<br class="">--- compiler-rt/trunk/lib/sanitizer_common/sanitizer_platform_limits_posix.h (original)<br class="">+++ compiler-rt/trunk/lib/sanitizer_common/sanitizer_platform_limits_posix.h Mon Oct  7 17:00:30 2019<br class="">@@ -304,6 +304,7 @@ extern unsigned struct_msqid_ds_sz;<br class=""> extern unsigned struct_mq_attr_sz;<br class=""> extern unsigned struct_timex_sz;<br class=""> extern unsigned struct_statvfs_sz;<br class="">+extern unsigned struct_crypt_data_sz;<br class=""> #endif  // SANITIZER_LINUX && !SANITIZER_ANDROID<br class=""><br class=""> struct __sanitizer_iovec {<br class=""><br class="">Added: compiler-rt/trunk/test/sanitizer_common/TestCases/Linux/crypt_r.cpp<br class="">URL: <a href="http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/sanitizer_common/TestCases/Linux/crypt_r.cpp?rev=373993&view=auto" class="">http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/sanitizer_common/TestCases/Linux/crypt_r.cpp?rev=373993&view=auto</a><br class="">==============================================================================<br class="">--- compiler-rt/trunk/test/sanitizer_common/TestCases/Linux/crypt_r.cpp (added)<br class="">+++ compiler-rt/trunk/test/sanitizer_common/TestCases/Linux/crypt_r.cpp Mon Oct  7 17:00:30 2019<br class="">@@ -0,0 +1,37 @@<br class="">+// RUN: %clangxx -O0 -g %s -lcrypt -o %t && %run %t<br class="">+<br class="">+#include <assert.h><br class="">+#include <unistd.h><br class="">+#include <cstring><br class="">+#include <crypt.h><br class="">+<br class="">+#include <sanitizer/msan_interface.h><br class="">+<br class="">+int<br class="">+main (int argc, char** argv)<br class="">+{<br class="">+  {<br class="">+    crypt_data cd;<br class="">+    cd.initialized = 0;<br class="">+    char *p = crypt_r("abcdef", "xz", &cd);<br class="">+    volatile size_t z = strlen(p);<br class="">+  }<br class="">+  {<br class="">+    crypt_data cd;<br class="">+    cd.initialized = 0;<br class="">+    char *p = crypt_r("abcdef", "$1$", &cd);<br class="">+    volatile size_t z = strlen(p);<br class="">+  }<br class="">+  {<br class="">+    crypt_data cd;<br class="">+    cd.initialized = 0;<br class="">+    char *p = crypt_r("abcdef", "$5$", &cd);<br class="">+    volatile size_t z = strlen(p);<br class="">+  }<br class="">+  {<br class="">+    crypt_data cd;<br class="">+    cd.initialized = 0;<br class="">+    char *p = crypt_r("abcdef", "$6$", &cd);<br class="">+    volatile size_t z = strlen(p);<br class="">+  }<br class="">+}<br class=""><br class="">Added: compiler-rt/trunk/test/sanitizer_common/TestCases/Posix/crypt.cpp<br class="">URL: <a href="http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/sanitizer_common/TestCases/Posix/crypt.cpp?rev=373993&view=auto" class="">http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/sanitizer_common/TestCases/Posix/crypt.cpp?rev=373993&view=auto</a><br class="">==============================================================================<br class="">--- compiler-rt/trunk/test/sanitizer_common/TestCases/Posix/crypt.cpp (added)<br class="">+++ compiler-rt/trunk/test/sanitizer_common/TestCases/Posix/crypt.cpp Mon Oct  7 17:00:30 2019<br class="">@@ -0,0 +1,26 @@<br class="">+// RUN: %clangxx -O0 -g %s -o %t -lcrypt && %run %t<br class="">+<br class="">+#include <assert.h><br class="">+#include <unistd.h><br class="">+#include <cstring><br class="">+<br class="">+int<br class="">+main (int argc, char** argv)<br class="">+{<br class="">+  {<br class="">+    char *p = crypt("abcdef", "xz");<br class="">+    volatile size_t z = strlen(p);<br class="">+  }<br class="">+  {<br class="">+    char *p = crypt("abcdef", "$1$");<br class="">+    volatile size_t z = strlen(p);<br class="">+  }<br class="">+  {<br class="">+    char *p = crypt("abcdef", "$5$");<br class="">+    volatile size_t z = strlen(p);<br class="">+  }<br class="">+  {<br class="">+    char *p = crypt("abcdef", "$6$");<br class="">+    volatile size_t z = strlen(p);<br class="">+  }<br class="">+}<br class=""><br class=""><br class="">_______________________________________________<br class="">llvm-commits mailing list<br class=""><a href="mailto:llvm-commits@lists.llvm.org" class="">llvm-commits@lists.llvm.org</a><br class="">https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits<br class=""></div></div></blockquote></div><br class=""></div></div></div></div></body></html>