我对Cygwin的UBsan需要什么样的套餐?

时间:2015-10-27 18:26:49

标签: g++ cygwin ubsan

我有一个通过各种配置研究的测试脚本。该脚本测试Undefined Behavior sanitizer (UBsan)的可用性,然后执行构建(如果可用)。这是测试:

$CXX -x c++ -dM -E -fsanitize=undefined -std=c++11 - < /dev/null > /dev/null 2>&1
if [ "$?" -eq "0" ]; then
    HAVE_UBSAN=1
else
    HAVE_UBSAN=0
fi

上面的测试在Cygwin上设置HAVE_UBSAN=1,这意味着GCC的Cygwin声称支持UBsan(否则,它会产生错误)。但是,我在Cygwin i686和x86_64下都遇到了链接错误:

...
g++ -DDEBUG -g2 -O2 -Wall -std=c++03 -fsanitize=undefined -march=native -pipe -c fipsalgt.cpp
g++ -DDEBUG -g2 -O2 -Wall -std=c++03 -fsanitize=undefined -march=native -pipe -c dlltest.cpp
g++ -o cryptest.exe -DDEBUG -g2 -O2 -Wall -std=c++03 -fsanitize=undefined -march=native test.o validat1.o validat2.o validat3.o ... ./libcryptopp.a
/usr/lib/gcc/i686-pc-cygwin/4.9.3/../../../../i686-pc-cygwin/bin/ld: cannot find -lubsan
collect2: error: ld returned 1 exit status
GNUmakefile:333: recipe for target 'cryptest.exe' failed
make: *** [cryptest.exe] Error 1

显然,gcc-coregcc-g++未安装任何需要的内容。我再次运行安装程序并搜索 ubsan ,但我获得了0次点击。

Cygwin的UBsan需要哪些套餐?

虽然我很喜欢,但我不妨问下一次我希望遇到的失败。 Cygwin的Asan需要什么包装?

提前致谢。

0 个答案:

没有答案