2

さまざまな構成を処理するテスト スクリプトがあります。このスクリプトは、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

上記のテストHAVE_UBSAN=1は Cygwin で設定されています。これは、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-coreまたはでインストールされませんでしたgcc-g++。セットアッププログラムを再度実行して検索しましubsanたが、ヒットしませんでした。

Cygwin の UBsan にはどのパッケージが必要ですか?

私がそれに取り組んでいる間、私が経験すると予想される次の失敗について尋ねることもできます. Cygwin の Asan にはどのパッケージが必要ですか?

前もって感謝します。

4

0 に答える 0