WiredTiger won't build with clang on CentOS 7.3.1611
libtool: compile: /usr/bin/clang -DHAVE_CONFIG_H -I. -I../../../../ext/test/fail_fs -I../../.. -I../../../api/leveldb -I../../.. -I../../../../src/include -std=c11 -D_GNU_SOURCE -Weverything -Werror -Wno-cast-align -Wno-documentation-unknown-command -Wno-format-nonliteral -Wno-packed -Wno-padded -Wno-reserved-id-macro -Wno-zero-length-array -Wno-cast-qual -Wno-unknown-warning-option -O3 -g -MT fail_fs.lo -MD -MP -MF .deps/fail_fs.Tpo -c ../../../../ext/test/fail_fs/fail_fs.c -fPIC -DPIC -o .libs/fail_fs.o ../../../../ext/test/fail_fs/fail_fs.c:404:6: error: disabled expansion of recursive macro [-Werror,-Wdisabled-macro-expansion] if (strncmp(match, key->str, key->len) == 0 && ^ /usr/include/bits/string2.h:925:25: note: expanded from macro 'strncmp' ? strcmp (s1, s2) : strncmp (s1, s2, n))) ^ ../../../../ext/test/fail_fs/fail_fs.c:446:7: error: disabled expansion of recursive macro [-Werror,-Wdisabled-macro-expansion] if (strncmp(name, directory, len) != 0 || ^ /usr/include/bits/string2.h:925:25: note: expanded from macro 'strncmp' ? strcmp (s1, s2) : strncmp (s1, s2, n))) ^ ../../../../ext/test/fail_fs/fail_fs.c:447:26: error: disabled expansion of recursive macro [-Werror,-Wdisabled-macro-expansion] (prefix != NULL && strncmp(name, prefix, prefix_len) != 0)) ^ /usr/include/bits/string2.h:925:25: note: expanded from macro 'strncmp' ? strcmp (s1, s2) : strncmp (s1, s2, n))) ^ ../../../../ext/test/fail_fs/fail_fs.c:466:22: error: disabled expansion of recursive macro [-Werror,-Wdisabled-macro-expansion] entries[count++] = strdup(name); ^ /usr/include/bits/string2.h:1314:22: note: expanded from macro 'strdup' # define strdup(s) __strdup (s) ^ /usr/include/bits/string2.h:1311:7: note: expanded from macro '__strdup' : __strdup (s))) ^ ../../../../ext/test/fail_fs/fail_fs.c:609:27: error: disabled expansion of recursive macro [-Werror,-Wdisabled-macro-expansion] if ((file_handle->name = strdup(name)) == NULL) { ^ /usr/include/bits/string2.h:1314:22: note: expanded from macro 'strdup' # define strdup(s) __strdup (s) ^ /usr/include/bits/string2.h:1311:7: note: expanded from macro '__strdup' : __strdup (s))) ^ 5 errors generated. ../src/os_posix/os_fallocate.c:65:6: error: implicit conversion loses integer precision: 'long' to 'int' [-Werror,-Wshorten-64-to-32] syscall(SYS_fallocate, pfh->fd, 0, (wt_off_t)0, offset), ret); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ../src/include/os.h:34:14: note: expanded from macro 'WT_SYSCALL_RETRY' WT_SYSCALL(call, ret); \ ^ ../src/include/os.h:15:16: note: expanded from macro 'WT_SYSCALL' if (((ret) = (call)) == 0)