When running the compiler-rt testsuite on FreeBSD (it didn't matter which version), I always got the same error result:
FAILED: cd /home/dim/obj/llvm-234092-trunk-freebsd10-amd64-ninja-rel-1/projects/compiler-rt/lib && LLVM_CHECKOUT=/home/dim/src/llvm/trunk SILENT=1 TMPDIR= PYTHON_EXECUTABLE=/usr/local/bin/python2.7 COMPILER_RT=/home/dim/src/llvm/trunk/projects/compiler-rt /home/dim/src/llvm/trunk/projects/compiler-rt/lib/sanitizer_common/scripts/check_lint.sh The following differences between the implemented custom wrappers and the tests have been found: --- /tmp/tmp.vPFEefvclf 2015-04-04 17:11:44.996734563 +0200 +++ /tmp/tmp.NbIuvjxKEe 2015-04-04 17:11:45.044734647 +0200 @@ -1,52 +0,0 @@ -calloc -clock_gettime -ctime_r -dfsan_set_write_callback -dl_iterate_phdr -dlopen -fgets -fstat -get_current_dir_name -getcwd -gethostname -getpwuid_r -getrlimit -getrusage -gettimeofday -inet_pton -localtime_r -memchr -memcmp -memcpy -memset -nanosleep -poll -pread -pthread_create -read -sched_getaffinity -select -sigaction -sigemptyset -snprintf -socketpair -sprintf -stat -strcasecmp -strchr -strcmp -strcpy -strdup -strlen -strncasecmp -strncmp -strncpy -strrchr -strstr -strtod -strtol -strtoll -strtoul -strtoull -time -write
After some investigation, it turns out to be due to the regex used for search test_ symbols in lib/dfsan/scripts/check_customer_wrappers.sh:
grep -E "^\\s*test_.*\(\);" ${DFSAN_CUSTOM_TESTS}
This uses \s to search for whitespace at start of line, but support for \s was only introduced in GNU grep v2.5.4-112-gf979ca0, while both FreeBSD and OSX only have grep 2.5.1 (the last version released under GPLv2).
I propose to change \s into [[:space:]], which is the more portable notation.