Our Windows msys2 build is now broken after AppVeyor's recent image
update from clang/lld 15.0.7-3 to 16.0.0-1.
Here is the error:
CC unittests/oslib/strcasestr.o
CC unittests/oslib/strsep.o
LINK fio
ld.lld: error: undefined symbol: static_tv_valid
>>> referenced by gettime.o
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Rishabh Shukla investigated and found that clang + ld builds
successfully. So the problem seems to be with lld 16.0.0-1.
Until we find the root cause let's just disable __thread support on
AppVeyor msys2 builds.
Link: https://github.com/axboe/fio/issues/1559
Suggested-by: Rishabh Shukla <rishabh.sh@samsung.com>
Signed-off-by: Vincent Fu <vincent.fu@samsung.com>
environment:
CYG_MIRROR: http://cygwin.mirror.constant.com
matrix:
+# --disable-tls for the msys2 build to work around
+# breakage with clang/lld 16.0.0-1
- ARCHITECTURE: x64
CC: clang
- CONFIGURE_OPTIONS: --enable-pdb
+ CONFIGURE_OPTIONS: --enable-pdb --disable-tls
DISTRO: msys2
# Skip 32 bit clang build
# - ARCHITECTURE: x86
;;
--seed-buckets=*) seed_buckets="$optarg"
;;
+ --disable-tls) tls_check="no"
+ ;;
--help)
show_help="yes"
;;
echo "--disable-dfs Disable DAOS File System support even if found"
echo "--enable-asan Enable address sanitizer"
echo "--seed-buckets= Number of seed buckets for the refill-buffer"
+ echo "--disable-tls Disable __thread local storage"
exit $exit_val
fi
if test "$tls_thread" != "yes" ; then
tls_thread="no"
fi
-cat > $TMPC << EOF
+if test "$tls_check" != "no"; then
+ cat > $TMPC << EOF
#include <stdio.h>
static __thread int ret;
int main(int argc, char **argv)
if compile_prog "" "" "__thread"; then
tls_thread="yes"
fi
+fi
print_config "__thread" "$tls_thread"
##########################################