From 694e486db3cc647bf6d60bb343bd1aa780b82c4e Mon Sep 17 00:00:00 2001 From: Jeffrey Walton Date: Sun, 19 Jun 2016 00:40:04 -0400 Subject: [PATCH] Add G++ test for Solaris. Quote . Add HAVE_SYMBOLS to guard use of asan_symbolize --- cryptest.sh | 219 +++++++++++++++++++++++++++++++++------------------- 1 file changed, 141 insertions(+), 78 deletions(-) diff --git a/cryptest.sh b/cryptest.sh index 349e3149..4cab457b 100755 --- a/cryptest.sh +++ b/cryptest.sh @@ -142,7 +142,7 @@ cp adhoc.cpp.proto adhoc.cpp # Hit or miss, only latest compilers. if [[ (-z "$HAVE_CXX17") ]]; then HAVE_CXX17=0 - $CXX -DCRYPTOPP_ADHOC_MAIN -std=c++17 adhoc.cpp -o $TMP/adhoc.exe > /dev/null 2>&1 + "$CXX" -DCRYPTOPP_ADHOC_MAIN -std=c++17 adhoc.cpp -o "$TMP/adhoc.exe" > /dev/null 2>&1 if [[ "$?" -eq "0" ]]; then HAVE_CXX17=1 fi @@ -151,7 +151,7 @@ fi # Hit or miss, mostly miss. if [[ (-z "$HAVE_CXX14") ]]; then HAVE_CXX14=0 - $CXX -DCRYPTOPP_ADHOC_MAIN -std=c++14 adhoc.cpp -o $TMP/adhoc.exe > /dev/null 2>&1 + "$CXX" -DCRYPTOPP_ADHOC_MAIN -std=c++14 adhoc.cpp -o "$TMP/adhoc.exe" > /dev/null 2>&1 if [[ "$?" -eq "0" ]]; then HAVE_CXX14=1 fi @@ -160,7 +160,7 @@ fi # Hit or miss, mostly hit. if [[ (-z "$HAVE_CXX11") ]]; then HAVE_CXX11=0 - $CXX -DCRYPTOPP_ADHOC_MAIN -std=c++11 adhoc.cpp -o $TMP/adhoc.exe > /dev/null 2>&1 + "$CXX" -DCRYPTOPP_ADHOC_MAIN -std=c++11 adhoc.cpp -o "$TMP/adhoc.exe" > /dev/null 2>&1 if [[ "$?" -eq "0" ]]; then HAVE_CXX11=1 fi @@ -169,7 +169,7 @@ fi # OpenBSD 5.7 and OS X 10.5 cannot consume -std=c++03 if [[ (-z "$HAVE_CXX03") ]]; then HAVE_CXX03=0 - $CXX -DCRYPTOPP_ADHOC_MAIN -std=c++03 adhoc.cpp -o $TMP/adhoc.exe > /dev/null 2>&1 + "$CXX" -DCRYPTOPP_ADHOC_MAIN -std=c++03 adhoc.cpp -o "$TMP/adhoc.exe" > /dev/null 2>&1 if [[ "$?" -eq "0" ]]; then HAVE_CXX03=1 fi @@ -177,12 +177,12 @@ fi HAVE_O3=0 OPT_O3= -$CXX -DCRYPTOPP_ADHOC_MAIN -O3 adhoc.cpp -o $TMP/adhoc.exe > /dev/null 2>&1 +"$CXX" -DCRYPTOPP_ADHOC_MAIN -O3 adhoc.cpp -o "$TMP/adhoc.exe" > /dev/null 2>&1 if [[ ("$?" -eq "0") ]]; then HAVE_O3=1 OPT_O3=-O3 else - $CXX -DCRYPTOPP_ADHOC_MAIN -xO3 adhoc.cpp -o $TMP/adhoc.exe > /dev/null 2>&1 + "$CXX" -DCRYPTOPP_ADHOC_MAIN -xO3 adhoc.cpp -o "$TMP/adhoc.exe" > /dev/null 2>&1 if [[ ("$?" -eq "0") ]]; then HAVE_O3=1 OPT_O3=-xO3 @@ -191,12 +191,12 @@ fi HAVE_O5=0 OPT_O5= -$CXX -DCRYPTOPP_ADHOC_MAIN -O5 adhoc.cpp -o $TMP/adhoc.exe > /dev/null 2>&1 +"$CXX" -DCRYPTOPP_ADHOC_MAIN -O5 adhoc.cpp -o "$TMP/adhoc.exe" > /dev/null 2>&1 if [[ ("$?" -eq "0") ]]; then HAVE_O5=1 OPT_O5=-O5 else - $CXX -DCRYPTOPP_ADHOC_MAIN -xO5 adhoc.cpp -o $TMP/adhoc.exe > /dev/null 2>&1 + "$CXX" -DCRYPTOPP_ADHOC_MAIN -xO5 adhoc.cpp -o "$TMP/adhoc.exe" > /dev/null 2>&1 if [[ ("$?" -eq "0") ]]; then HAVE_O5=1 OPT_O5=-xO5 @@ -205,12 +205,12 @@ fi HAVE_OS=0 OPT_OS= -$CXX -DCRYPTOPP_ADHOC_MAIN -Os adhoc.cpp -o $TMP/adhoc.exe > /dev/null 2>&1 +"$CXX" -DCRYPTOPP_ADHOC_MAIN -Os adhoc.cpp -o "$TMP/adhoc.exe" > /dev/null 2>&1 if [[ ("$?" -eq "0") ]]; then HAVE_OS=1 OPT_OS=-Os else - $CXX -DCRYPTOPP_ADHOC_MAIN -xOs adhoc.cpp -o $TMP/adhoc.exe > /dev/null 2>&1 + "$CXX" -DCRYPTOPP_ADHOC_MAIN -xOs adhoc.cpp -o "$TMP/adhoc.exe" > /dev/null 2>&1 if [[ ("$?" -eq "0") ]]; then HAVE_OS=1 OPT_OS=-xOs @@ -220,7 +220,7 @@ fi # Undefined Behavior sanitizer if [[ (-z "$HAVE_UBSAN") ]]; then HAVE_UBSAN=0 - $CXX -DCRYPTOPP_ADHOC_MAIN -fsanitize=undefined adhoc.cpp -o $TMP/adhoc.exe > /dev/null 2>&1 + "$CXX" -DCRYPTOPP_ADHOC_MAIN -fsanitize=undefined adhoc.cpp -o "$TMP/adhoc.exe" > /dev/null 2>&1 if [[ ("$?" -eq "0") && ("$IS_X86" -ne "0" || "$IS_X64" -ne "0") ]]; then HAVE_UBSAN=1 fi @@ -229,7 +229,7 @@ fi # Address sanitizer if [[ (-z "$HAVE_ASAN") ]]; then HAVE_ASAN=0 - $CXX -DCRYPTOPP_ADHOC_MAIN -fsanitize=address adhoc.cpp -o $TMP/adhoc.exe > /dev/null 2>&1 + "$CXX" -DCRYPTOPP_ADHOC_MAIN -fsanitize=address adhoc.cpp -o "$TMP/adhoc.exe" > /dev/null 2>&1 if [[ ("$?" -eq "0") && ("$IS_X86" -ne "0" || "$IS_X64" -ne "0") ]]; then HAVE_ASAN=1 fi @@ -239,7 +239,7 @@ fi if [[ (-z "$HAVE_INTEL_MULTIARCH") ]]; then HAVE_INTEL_MULTIARCH=0 if [[ ("$IS_DARWIN" -ne "0") && ("$IS_X86" -ne "0" || "$IS_X64" -ne "0") ]]; then - $CXX -DCRYPTOPP_ADHOC_MAIN -arch i386 -arch x86_64 adhoc.cpp -o $TMP/adhoc.exe > /dev/null 2>&1 + "$CXX" -DCRYPTOPP_ADHOC_MAIN -arch i386 -arch x86_64 adhoc.cpp -o "$TMP/adhoc.exe" > /dev/null 2>&1 if [[ "$?" -eq "0" ]]; then HAVE_INTEL_MULTIARCH=1 fi @@ -250,7 +250,7 @@ fi if [[ (-z "$HAVE_PPC_MULTIARCH") ]]; then HAVE_PPC_MULTIARCH=0 if [[ ("$IS_DARWIN" -ne "0") && ("$IS_PPC" -ne "0") ]]; then - $CXX -DCRYPTOPP_ADHOC_MAIN -arch ppc -arch ppc64 adhoc.cpp -o $TMP/adhoc.exe > /dev/null 2>&1 + "$CXX" -DCRYPTOPP_ADHOC_MAIN -arch ppc -arch ppc64 adhoc.cpp -o "$TMP/adhoc.exe" > /dev/null 2>&1 if [[ "$?" -eq "0" ]]; then HAVE_PPC_MULTIARCH=1 fi @@ -261,7 +261,7 @@ fi if [[ (-z "$HAVE_X32") ]]; then HAVE_X32=0 if [[ "$IS_X64" -ne "0" ]]; then - $CXX -DCRYPTOPP_ADHOC_MAIN -mx32 adhoc.cpp -o $TMP/adhoc.exe > /dev/null 2>&1 + "$CXX" -DCRYPTOPP_ADHOC_MAIN -mx32 adhoc.cpp -o "$TMP/adhoc.exe" > /dev/null 2>&1 if [[ "$?" -eq "0" ]]; then HAVE_X32=1 fi @@ -272,7 +272,7 @@ fi if [[ (-z "$HAVE_ARM_NEON") ]]; then HAVE_ARM_NEON=0 if [[ ("$IS_ARM32" -ne "0" || "$IS_ARM64" -ne "0") ]]; then - # $CXX -DCRYPTOPP_ADHOC_MAIN -march=armv7a -mfpu=neon adhoc.cpp -o $TMP/adhoc.exe > /dev/null 2>&1 + # "$CXX" -DCRYPTOPP_ADHOC_MAIN -march=armv7a -mfpu=neon adhoc.cpp -o "$TMP/adhoc.exe" > /dev/null 2>&1 if [[ $(cat /proc/cpuinfo 2>/dev/null | "$GREP" -i -c NEON) -ne "0" ]]; then HAVE_ARM_NEON=1 fi @@ -283,7 +283,7 @@ fi if [[ (-z "$HAVE_ARM_CRYPTO") ]]; then HAVE_ARM_CRYPTO=0 if [[ ("$IS_ARM32" -ne "0" || "$IS_ARM64" -ne "0") ]]; then - $CXX -DCRYPTOPP_ADHOC_MAIN -march=armv8-a+crypto adhoc.cpp -o $TMP/adhoc.exe > /dev/null 2>&1 + "$CXX" -DCRYPTOPP_ADHOC_MAIN -march=armv8-a+crypto adhoc.cpp -o "$TMP/adhoc.exe" > /dev/null 2>&1 if [[ "$?" -eq "0" ]]; then HAVE_ARM_CRYPTO=1 fi @@ -294,7 +294,7 @@ fi if [[ (-z "$HAVE_ARM_CRC") ]]; then HAVE_ARM_CRC=0 if [[ ("$IS_ARM32" -ne "0" || "$IS_ARM64" -ne "0") ]]; then - $CXX -DCRYPTOPP_ADHOC_MAIN -march=armv8-a+crc adhoc.cpp -o $TMP/adhoc.exe > /dev/null 2>&1 + "$CXX" -DCRYPTOPP_ADHOC_MAIN -march=armv8-a+crc adhoc.cpp -o "$TMP/adhoc.exe" > /dev/null 2>&1 if [[ "$?" -eq "0" ]]; then HAVE_ARM_CRC=1 fi @@ -307,19 +307,19 @@ HAVE_X86_RDRAND=0 HAVE_X86_RDSEED=0 HAVE_X86_PCLMUL=0 if [[ (("$IS_X86" -ne "0") || ("$IS_X64" -ne "0")) && ("$SUN_COMPILER" -eq "0") ]]; then - $CXX -DCRYPTOPP_ADHOC_MAIN -maes adhoc.cpp -o $TMP/adhoc.exe > /dev/null 2>&1 + "$CXX" -DCRYPTOPP_ADHOC_MAIN -maes adhoc.cpp -o "$TMP/adhoc.exe" > /dev/null 2>&1 if [[ "$?" -eq "0" ]]; then HAVE_X86_AES=1 fi - $CXX -DCRYPTOPP_ADHOC_MAIN -mrdrnd adhoc.cpp -o $TMP/adhoc.exe > /dev/null 2>&1 + "$CXX" -DCRYPTOPP_ADHOC_MAIN -mrdrnd adhoc.cpp -o "$TMP/adhoc.exe" > /dev/null 2>&1 if [[ "$?" -eq "0" ]]; then HAVE_X86_RDRAND=1 fi - $CXX -DCRYPTOPP_ADHOC_MAIN -mrdseed adhoc.cpp -o $TMP/adhoc.exe > /dev/null 2>&1 + "$CXX" -DCRYPTOPP_ADHOC_MAIN -mrdseed adhoc.cpp -o "$TMP/adhoc.exe" > /dev/null 2>&1 if [[ "$?" -eq "0" ]]; then HAVE_X86_RDSEED=1 fi - $CXX -DCRYPTOPP_ADHOC_MAIN -mpclmul adhoc.cpp -o $TMP/adhoc.exe > /dev/null 2>&1 + "$CXX" -DCRYPTOPP_ADHOC_MAIN -mpclmul adhoc.cpp -o "$TMP/adhoc.exe" > /dev/null 2>&1 if [[ "$?" -eq "0" ]]; then HAVE_X86_PCLMUL=1 fi @@ -335,6 +335,10 @@ if [[ (-z "$HAVE_VALGRIND") ]]; then HAVE_VALGRIND=$(which valgrind 2>&1 | "$GREP" -v "no valgrind" | "$GREP" -i -c valgrind) fi +if [[ (-z "$HAVE_SYMBOLIZE") ]]; then + HAVE_SYMBOLIZE=$(which asan_symbolize 2>&1 | "$GREP" -v "no asan_symbolize" | "$GREP" -i -c asan_symbolize) +fi + # Used to disassemble object modules so we can verify some aspects of code generation if [[ (-z "$HAVE_DISASS") ]]; then echo "int main(int argc, char* argv[]) {return 0;}" > "$TMP/test.cc" @@ -535,7 +539,7 @@ else echo "Compiler:" $("$CXX" --version | head -1) | tee -a "$TEST_RESULTS" fi -CXX_PATH=$(which $CXX) +CXX_PATH=$(which "$CXX") CXX_SYMLINK=$(ls -l "$CXX_PATH" 2>/dev/null | "$GREP" -c '\->' | "$AWK" '{print $1}') if [[ ("$CXX_SYMLINK" -ne "0") ]]; then CXX_PATH="$CXX_PATH (symlinked)"; fi echo "Pathname: $CXX_PATH" | tee -a "$TEST_RESULTS" @@ -543,7 +547,7 @@ echo "Pathname: $CXX_PATH" | tee -a "$TEST_RESULTS" ############################################ # Keep noise to a minimum -$CXX -DCRYPTOPP_ADHOC_MAIN -Wno-deprecated-declarations adhoc.cpp -o $TMP/adhoc.exe > /dev/null 2>&1 +"$CXX" -DCRYPTOPP_ADHOC_MAIN -Wno-deprecated-declarations adhoc.cpp -o "$TMP/adhoc.exe" > /dev/null 2>&1 if [[ "$?" -eq "0" ]]; then RETAINED_CXXFLAGS+=("-Wno-deprecated-declarations") fi @@ -657,7 +661,7 @@ if [[ ("$IS_ARM32" -ne "0" && "$HAVE_ARM_NEON" -ne "0") ]]; then fi ############################################ -# Basic debug build +# Debug build echo echo "************************************" | tee -a "$TEST_RESULTS" echo "Testing: debug, default CXXFLAGS" | tee -a "$TEST_RESULTS" @@ -685,7 +689,7 @@ else fi ############################################ -# Basic release build +# Release build echo echo "************************************" | tee -a "$TEST_RESULTS" echo "Testing: release, default CXXFLAGS" | tee -a "$TEST_RESULTS" @@ -713,7 +717,7 @@ else fi ############################################ -# Basic debug build, DISABLE_ASM +# Debug build, DISABLE_ASM echo echo "************************************" | tee -a "$TEST_RESULTS" echo "Testing: debug, DISABLE_ASM" | tee -a "$TEST_RESULTS" @@ -740,7 +744,7 @@ else fi ############################################ -# Basic release build, DISABLE_ASM +# Release build, DISABLE_ASM echo echo "************************************" | tee -a "$TEST_RESULTS" echo "Testing: release, DISABLE_ASM" | tee -a "$TEST_RESULTS" @@ -767,11 +771,11 @@ else fi ############################################ -# c++03 debug and build +# c++03 debug and release build if [[ "$HAVE_CXX03" -ne "0" ]]; then ############################################ - # c++03 debug build + # Debug build echo echo "************************************" | tee -a "$TEST_RESULTS" echo "Testing: debug, c++03" | tee -a "$TEST_RESULTS" @@ -798,7 +802,7 @@ if [[ "$HAVE_CXX03" -ne "0" ]]; then fi ############################################ - # c++03 release build + # Release build echo echo "************************************" | tee -a "$TEST_RESULTS" echo "Testing: release, c++03" | tee -a "$TEST_RESULTS" @@ -830,7 +834,7 @@ fi if [[ "$HAVE_CXX11" -ne "0" ]]; then ############################################ - # c++11 debug and release build + # Debug build echo echo "************************************" | tee -a "$TEST_RESULTS" echo "Testing: debug, c++11" | tee -a "$TEST_RESULTS" @@ -857,7 +861,7 @@ if [[ "$HAVE_CXX11" -ne "0" ]]; then fi ############################################ - # c++11 release build + # Release build echo echo "************************************" | tee -a "$TEST_RESULTS" echo "Testing: release, c++11" | tee -a "$TEST_RESULTS" @@ -889,7 +893,7 @@ fi if [[ "$HAVE_CXX14" -ne "0" ]]; then ############################################ - # c++14 debug build + # Debug build echo echo "************************************" | tee -a "$TEST_RESULTS" echo "Testing: debug, c++14" | tee -a "$TEST_RESULTS" @@ -916,7 +920,7 @@ if [[ "$HAVE_CXX14" -ne "0" ]]; then fi ############################################ - # c++14 release build + # Release build echo echo "************************************" | tee -a "$TEST_RESULTS" echo "Testing: release, c++14" | tee -a "$TEST_RESULTS" @@ -948,7 +952,7 @@ fi if [[ "$HAVE_CXX17" -ne "0" ]]; then ############################################ - # c++17 debug build + # Debug build echo echo "************************************" | tee -a "$TEST_RESULTS" echo "Testing: debug, c++17" | tee -a "$TEST_RESULTS" @@ -975,7 +979,7 @@ if [[ "$HAVE_CXX17" -ne "0" ]]; then fi ############################################ - # c++17 release build + # Release build echo echo "************************************" | tee -a "$TEST_RESULTS" echo "Testing: release, c++17" | tee -a "$TEST_RESULTS" @@ -1007,7 +1011,7 @@ fi if [[ "$HAVE_X32" -ne "0" ]]; then ############################################ - # X32 debug build + # Debug build echo echo "************************************" | tee -a "$TEST_RESULTS" echo "Testing: debug, X32" | tee -a "$TEST_RESULTS" @@ -1034,7 +1038,7 @@ if [[ "$HAVE_X32" -ne "0" ]]; then fi ############################################ - # X32 release build + # Release build echo echo "************************************" | tee -a "$TEST_RESULTS" echo "Testing: release, X32" | tee -a "$TEST_RESULTS" @@ -1308,7 +1312,7 @@ else fi ############################################ -# Basic debug build, using SHA3/FIPS 202 +# Debug build, SHA3/FIPS 202 echo echo "************************************" | tee -a "$TEST_RESULTS" echo "Testing: debug, USE_FIPS_202_SHA3" | tee -a "$TEST_RESULTS" @@ -1335,7 +1339,7 @@ else fi ############################################ -# Basic release build, using SHA3/FIPS 202 +# Release build, SHA3/FIPS 202 echo echo "************************************" | tee -a "$TEST_RESULTS" echo "Testing: release, USE_FIPS_202_SHA3" | tee -a "$TEST_RESULTS" @@ -1366,7 +1370,7 @@ fi if [[ "$HAVE_LDGOLD" -ne "0" ]]; then ############################################ - # Debug build with LD-Gold + # Debug build echo echo "************************************" | tee -a "$TEST_RESULTS" echo "Testing: debug, ld-gold linker" | tee -a "$TEST_RESULTS" @@ -1393,7 +1397,7 @@ if [[ "$HAVE_LDGOLD" -ne "0" ]]; then fi ############################################ - # Release build with LD-Gold + # Release build echo echo "************************************" | tee -a "$TEST_RESULTS" echo "Testing: release, ld-gold linker" | tee -a "$TEST_RESULTS" @@ -1425,7 +1429,7 @@ fi if [[ "$HAVE_O3" -ne "0" ]]; then ############################################ - # Debug build at -O3 + # Debug build echo echo "************************************" | tee -a "$TEST_RESULTS" echo "Testing: debug, -O3 optimizations" | tee -a "$TEST_RESULTS" @@ -1452,7 +1456,7 @@ if [[ "$HAVE_O3" -ne "0" ]]; then fi ############################################ - # Release build at -O3 + # Release build echo echo "************************************" | tee -a "$TEST_RESULTS" echo "Testing: release, -O3 optimizations" | tee -a "$TEST_RESULTS" @@ -1484,7 +1488,7 @@ fi if [[ "$HAVE_O5" -ne "0" ]]; then ############################################ - # Debug build at -O5 + # Debug build echo echo "************************************" | tee -a "$TEST_RESULTS" echo "Testing: debug, -O5 optimizations" | tee -a "$TEST_RESULTS" @@ -1494,7 +1498,7 @@ if [[ "$HAVE_O5" -ne "0" ]]; then "$MAKE" clean > /dev/null 2>&1 rm -f adhoc.cpp > /dev/null 2>&1 - export CXXFLAGS="-DNDEBUG $OPT_O5 -DCRYPTOPP_NO_UNALIGNED_DATA_ACCESS ${RETAINED_CXXFLAGS[@]}" + export CXXFLAGS="-DDEBUG $OPT_O5 -DCRYPTOPP_NO_UNALIGNED_DATA_ACCESS ${RETAINED_CXXFLAGS[@]}" "$MAKE" "${MAKEARGS[@]}" CXX="$CXX" static dynamic cryptest.exe 2>&1 | tee -a "$TEST_RESULTS" if [[ ("${PIPESTATUS[0]}" -ne "0") ]]; then @@ -1511,7 +1515,7 @@ if [[ "$HAVE_O5" -ne "0" ]]; then fi ############################################ - # Release build at -O5 + # Release build echo echo "************************************" | tee -a "$TEST_RESULTS" echo "Testing: release, -O5 optimizations" | tee -a "$TEST_RESULTS" @@ -1543,7 +1547,7 @@ fi if [[ "$HAVE_OS" -ne "0" ]]; then ############################################ - # Debug build at -Os + # Debug build echo echo "************************************" | tee -a "$TEST_RESULTS" echo "Testing: debug, -Os optimizations" | tee -a "$TEST_RESULTS" @@ -1553,7 +1557,7 @@ if [[ "$HAVE_OS" -ne "0" ]]; then "$MAKE" clean > /dev/null 2>&1 rm -f adhoc.cpp > /dev/null 2>&1 - export CXXFLAGS="-DNDEBUG $OPT_OS ${RETAINED_CXXFLAGS[@]}" + export CXXFLAGS="-DDEBUG $OPT_OS ${RETAINED_CXXFLAGS[@]}" "$MAKE" "${MAKEARGS[@]}" CXX="$CXX" static dynamic cryptest.exe 2>&1 | tee -a "$TEST_RESULTS" if [[ ("${PIPESTATUS[0]}" -ne "0") ]]; then @@ -1570,7 +1574,7 @@ if [[ "$HAVE_OS" -ne "0" ]]; then fi ############################################ - # Release build at -Os + # Release build echo echo "************************************" | tee -a "$TEST_RESULTS" echo "Testing: release, -Os optimizations" | tee -a "$TEST_RESULTS" @@ -1724,7 +1728,7 @@ if [[ ("$HAVE_CXX03" -ne "0" && "$HAVE_ASAN" -ne "0") ]]; then "$MAKE" clean > /dev/null 2>&1 rm -f adhoc.cpp > /dev/null 2>&1 - if [[ "$CXX" == "clang++" ]]; then + if [[ ("$HAVE_SYMBOLIZE" -ne "0") ]]; then export CXXFLAGS="$DEBUG_CXXFLAGS -std=c++03 ${RETAINED_CXXFLAGS[@]}" "$MAKE" "${MAKEARGS[@]}" CXX="$CXX" asan | asan_symbolize | tee -a "$TEST_RESULTS" else @@ -1758,7 +1762,7 @@ if [[ ("$HAVE_CXX03" -ne "0" && "$HAVE_ASAN" -ne "0") ]]; then "$MAKE" clean > /dev/null 2>&1 rm -f adhoc.cpp > /dev/null 2>&1 - if [[ "$CXX" == "clang++" ]]; then + if [[ ("$HAVE_SYMBOLIZE" -ne "0") ]]; then export CXXFLAGS="$RELEASE_CXXFLAGS -std=c++03 ${RETAINED_CXXFLAGS[@]}" "$MAKE" "${MAKEARGS[@]}" CXX="$CXX" asan | asan_symbolize | tee -a "$TEST_RESULTS" else @@ -1850,7 +1854,7 @@ if [[ ("$HAVE_CXX11" -ne "0" && "$HAVE_ASAN" -ne "0") ]]; then "$MAKE" clean > /dev/null 2>&1 rm -f adhoc.cpp > /dev/null 2>&1 - if [[ "$CXX" == "clang++" ]]; then + if [[ ("$HAVE_SYMBOLIZE" -ne "0") ]]; then export CXXFLAGS="$DEBUG_CXXFLAGS -std=c++11 ${RETAINED_CXXFLAGS[@]}" "$MAKE" "${MAKEARGS[@]}" CXX="$CXX" asan | asan_symbolize | tee -a "$TEST_RESULTS" else @@ -1884,7 +1888,7 @@ if [[ ("$HAVE_CXX11" -ne "0" && "$HAVE_ASAN" -ne "0") ]]; then "$MAKE" clean > /dev/null 2>&1 rm -f adhoc.cpp > /dev/null 2>&1 - if [[ "$CXX" == "clang++" ]]; then + if [[ ("$HAVE_SYMBOLIZE" -ne "0") ]]; then export CXXFLAGS="$RELEASE_CXXFLAGS -std=c++11 ${RETAINED_CXXFLAGS[@]}" "$MAKE" "${MAKEARGS[@]}" CXX="$CXX" asan | asan_symbolize | tee -a "$TEST_RESULTS" else @@ -1947,7 +1951,7 @@ if [[ ("$HAVE_CXX14" -ne "0" && "$HAVE_ASAN" -ne "0") ]]; then "$MAKE" clean > /dev/null 2>&1 rm -f adhoc.cpp > /dev/null 2>&1 - if [[ "$CXX" == "clang++" ]]; then + if [[ ("$HAVE_SYMBOLIZE" -ne "0") ]]; then export CXXFLAGS="$RELEASE_CXXFLAGS -std=c++14 ${RETAINED_CXXFLAGS[@]}" "$MAKE" "${MAKEARGS[@]}" CXX="$CXX" asan | asan_symbolize | tee -a "$TEST_RESULTS" else @@ -2010,7 +2014,7 @@ if [[ ("$HAVE_CXX17" -ne "0" && "$HAVE_ASAN" -ne "0") ]]; then "$MAKE" clean > /dev/null 2>&1 rm -f adhoc.cpp > /dev/null 2>&1 - if [[ "$CXX" == "clang++" ]]; then + if [[ ("$HAVE_SYMBOLIZE" -ne "0") ]]; then export CXXFLAGS="$RELEASE_CXXFLAGS -std=c++17 ${RETAINED_CXXFLAGS[@]}" "$MAKE" "${MAKEARGS[@]}" CXX="$CXX" asan | asan_symbolize | tee -a "$TEST_RESULTS" else @@ -2040,7 +2044,7 @@ if [[ "$IS_SOLARIS" -ne "0" ]]; then if [[ (-e "/opt/solstudio12.2/bin/CC") ]]; then ############################################ - # Basic debug build + # Debug build echo echo "************************************" | tee -a "$TEST_RESULTS" echo "Testing: Sun Studio 12.2, debug, default CXXFLAGS" | tee -a "$TEST_RESULTS" @@ -2067,7 +2071,7 @@ if [[ "$IS_SOLARIS" -ne "0" ]]; then fi ############################################ - # Basic release build + # Release build echo echo "************************************" | tee -a "$TEST_RESULTS" echo "Testing: Sun Studio 12.2, release, default CXXFLAGS" | tee -a "$TEST_RESULTS" @@ -2099,7 +2103,7 @@ if [[ "$IS_SOLARIS" -ne "0" ]]; then if [[ (-e "/opt/solarisstudio12.3/bin/CC") ]]; then ############################################ - # Basic debug build + # Debug build echo echo "************************************" | tee -a "$TEST_RESULTS" echo "Testing: Sun Studio 12.3, debug, default CXXFLAGS" | tee -a "$TEST_RESULTS" @@ -2126,7 +2130,7 @@ if [[ "$IS_SOLARIS" -ne "0" ]]; then fi ############################################ - # Basic release build + # Release build echo echo "************************************" | tee -a "$TEST_RESULTS" echo "Testing: Sun Studio 12.3, release, default CXXFLAGS" | tee -a "$TEST_RESULTS" @@ -2158,7 +2162,7 @@ if [[ "$IS_SOLARIS" -ne "0" ]]; then if [[ (-e "/opt/solarisstudio12.4/bin/CC") ]]; then ############################################ - # Basic debug build + # Debug build echo echo "************************************" | tee -a "$TEST_RESULTS" echo "Testing: Sun Studio 12.4, debug, default CXXFLAGS" | tee -a "$TEST_RESULTS" @@ -2185,7 +2189,7 @@ if [[ "$IS_SOLARIS" -ne "0" ]]; then fi ############################################ - # Basic release build + # Release build echo echo "************************************" | tee -a "$TEST_RESULTS" echo "Testing: Sun Studio 12.4, release, default CXXFLAGS" | tee -a "$TEST_RESULTS" @@ -2217,7 +2221,7 @@ if [[ "$IS_SOLARIS" -ne "0" ]]; then if [[ (-e "/opt/solarisstudio12.5/bin/CC") ]]; then ############################################ - # Basic debug build + # Debug build echo echo "************************************" | tee -a "$TEST_RESULTS" echo "Testing: Sun Studio 12.5, debug, default CXXFLAGS" | tee -a "$TEST_RESULTS" @@ -2244,7 +2248,7 @@ if [[ "$IS_SOLARIS" -ne "0" ]]; then fi ############################################ - # Basic release build + # Release build echo echo "************************************" | tee -a "$TEST_RESULTS" echo "Testing: Sun Studio 12.5, release, default CXXFLAGS" | tee -a "$TEST_RESULTS" @@ -2270,6 +2274,65 @@ if [[ "$IS_SOLARIS" -ne "0" ]]; then fi fi fi + + ############################################ + # GCC on Solaris + if [[ (-e "/bin/g++") ]]; then + + ############################################ + # Debug build + echo + echo "************************************" | tee -a "$TEST_RESULTS" + echo "Testing: Solaris GCC, debug, default CXXFLAGS" | tee -a "$TEST_RESULTS" + echo + + unset CXXFLAGS + "$MAKE" clean > /dev/null 2>&1 + rm -f adhoc.cpp > /dev/null 2>&1 + + export CXXFLAGS="$DEBUG_CXXFLAGS" + "$MAKE" "${MAKEARGS[@]}" CXX="/bin/g++" static dynamic cryptest.exe 2>&1 | tee -a "$TEST_RESULTS" + + if [[ ("${PIPESTATUS[0]}" -ne "0") ]]; then + echo "ERROR: failed to make cryptest.exe" | tee -a "$TEST_RESULTS" + else + ./cryptest.exe v 2>&1 | tee -a "$TEST_RESULTS" + if [[ ("${PIPESTATUS[0]}" -ne "0") ]]; then + echo "ERROR: failed to execute validation suite" | tee -a "$TEST_RESULTS" + fi + ./cryptest.exe tv all 2>&1 | tee -a "$TEST_RESULTS" + if [[ ("${PIPESTATUS[0]}" -ne "0") ]]; then + echo "ERROR: failed to execute test vectors" | tee -a "$TEST_RESULTS" + fi + fi + + ############################################ + # Release build + echo + echo "************************************" | tee -a "$TEST_RESULTS" + echo "Testing: Soalris GCC, release, default CXXFLAGS" | tee -a "$TEST_RESULTS" + echo + + unset CXXFLAGS + "$MAKE" clean > /dev/null 2>&1 + rm -f adhoc.cpp > /dev/null 2>&1 + + export CXXFLAGS="$RELEASE_CXXFLAGS" + "$MAKE" "${MAKEARGS[@]}" CXX="/bin/g++" static dynamic cryptest.exe 2>&1 | tee -a "$TEST_RESULTS" + + if [[ ("${PIPESTATUS[0]}" -ne "0") ]]; then + echo "ERROR: failed to make cryptest.exe" | tee -a "$TEST_RESULTS" + else + ./cryptest.exe v 2>&1 | tee -a "$TEST_RESULTS" + if [[ ("${PIPESTATUS[0]}" -ne "0") ]]; then + echo "ERROR: failed to execute validation suite" | tee -a "$TEST_RESULTS" + fi + ./cryptest.exe tv all 2>&1 | tee -a "$TEST_RESULTS" + if [[ ("${PIPESTATUS[0]}" -ne "0") ]]; then + echo "ERROR: failed to execute test vectors" | tee -a "$TEST_RESULTS" + fi + fi + fi fi # For Darwin, we need to test both -stdlib=libstdc++ (GNU) and @@ -3249,11 +3312,11 @@ if [[ ("$HAVE_VALGRIND" -ne "0" && "$HAVE_CXX17" -ne "0") ]]; then fi ############################################ -# Build with elevated warnings +# C++03 with elevated warnings if [[ ("$HAVE_CXX03" -ne "0" && ("$HAVE_GCC" -ne "0" || "$HAVE_CLANG" -ne "0")) ]]; then ############################################ - # C++03 debug build + # Debug build echo echo "************************************" | tee -a "$WARN_RESULTS" echo "Testing: debug, c++03, elevated warnings" | tee -a "$WARN_RESULTS" @@ -3271,7 +3334,7 @@ if [[ ("$HAVE_CXX03" -ne "0" && ("$HAVE_GCC" -ne "0" || "$HAVE_CLANG" -ne "0")) fi ############################################ - # C++03 release build + # Release build echo echo "************************************" | tee -a "$WARN_RESULTS" echo "Testing: release, c++03, elevated warnings" | tee -a "$WARN_RESULTS" @@ -3289,11 +3352,11 @@ if [[ ("$HAVE_CXX03" -ne "0" && ("$HAVE_GCC" -ne "0" || "$HAVE_CLANG" -ne "0")) fi ############################################ -# Build with elevated warnings +# C++11 with elevated warnings if [[ ("$HAVE_CXX11" -ne "0" && ("$HAVE_GCC" -ne "0" || "$HAVE_CLANG" -ne "0")) ]]; then ############################################ - # C++11 debug build + # Debug build echo echo "************************************" | tee -a "$WARN_RESULTS" echo "Testing: debug, c++11, elevated warnings" | tee -a "$WARN_RESULTS" @@ -3311,7 +3374,7 @@ if [[ ("$HAVE_CXX11" -ne "0" && ("$HAVE_GCC" -ne "0" || "$HAVE_CLANG" -ne "0")) fi ############################################ - # C++11 release build + # Release build echo echo "************************************" | tee -a "$WARN_RESULTS" echo "Testing: release, c++11, elevated warnings" | tee -a "$WARN_RESULTS" @@ -3329,11 +3392,11 @@ if [[ ("$HAVE_CXX11" -ne "0" && ("$HAVE_GCC" -ne "0" || "$HAVE_CLANG" -ne "0")) fi ############################################ -# Build with elevated warnings +# C++14 with elevated warnings if [[ ("$HAVE_CXX14" -ne "0" && ("$HAVE_GCC" -ne "0" || "$HAVE_CLANG" -ne "0")) ]]; then ############################################ - # C++14 debug build + # Debug build echo echo "************************************" | tee -a "$WARN_RESULTS" echo "Testing: debug, c++14, elevated warnings" | tee -a "$WARN_RESULTS" @@ -3351,7 +3414,7 @@ if [[ ("$HAVE_CXX14" -ne "0" && ("$HAVE_GCC" -ne "0" || "$HAVE_CLANG" -ne "0")) fi ############################################ - # C++14 release build + # Release build echo echo "************************************" | tee -a "$WARN_RESULTS" echo "Testing: release, c++14, elevated warnings" | tee -a "$WARN_RESULTS" @@ -3369,11 +3432,11 @@ if [[ ("$HAVE_CXX14" -ne "0" && ("$HAVE_GCC" -ne "0" || "$HAVE_CLANG" -ne "0")) fi ############################################ -# Build with elevated warnings +# C++17 with elevated warnings if [[ ("$HAVE_CXX17" -ne "0" && ("$HAVE_GCC" -ne "0" || "$HAVE_CLANG" -ne "0")) ]]; then ############################################ - # C++17 debug build + # Debug build echo echo "************************************" | tee -a "$WARN_RESULTS" echo "Testing: debug, c++17, elevated warnings" | tee -a "$WARN_RESULTS" @@ -3391,7 +3454,7 @@ if [[ ("$HAVE_CXX17" -ne "0" && ("$HAVE_GCC" -ne "0" || "$HAVE_CLANG" -ne "0")) fi ############################################ - # C++17 release build + # Release build echo echo "************************************" | tee -a "$WARN_RESULTS" echo "Testing: release, c++17, elevated warnings" | tee -a "$WARN_RESULTS" @@ -3415,7 +3478,7 @@ fi if [[ ("$CXX" == "g++") && ("$SUN_COMPILER" -eq "0") ]]; then CLANG_COMPILER=$(which clang++ 2>/dev/null) - "$CLANG_COMPILER" -x c++ -DCRYPTOPP_ADHOC_MAIN adhoc.cpp -o $TMP/adhoc.exe > /dev/null 2>&1 + "$CLANG_COMPILER" -x c++ -DCRYPTOPP_ADHOC_MAIN adhoc.cpp -o "$TMP/adhoc.exe" > /dev/null 2>&1 if [[ "$?" -eq "0" ]]; then ############################################