This is an archive of the discontinued LLVM Phabricator instance.

Make check_custom_wrappers.sh work on FreeBSD
ClosedPublic

Authored by dim on Apr 4 2015, 1:24 PM.

Details

Summary

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.

Diff Detail

Event Timeline

dim updated this revision to Diff 23250.Apr 4 2015, 1:24 PM
dim retitled this revision from to Make check_custom_wrappers.sh work on FreeBSD.
dim updated this object.
dim edited the test plan for this revision. (Show Details)
dim added reviewers: pcc, samsonov.
dim added a subscriber: emaste.
dim added a subscriber: Unknown Object (MLST).Apr 4 2015, 1:24 PM
emaste accepted this revision.Apr 11 2015, 5:30 PM
emaste added a reviewer: emaste.

lgtm

This revision is now accepted and ready to land.Apr 11 2015, 5:30 PM
dim closed this revision.Apr 12 2015, 3:57 AM