diff --git a/cpu.h b/cpu.h index 2949fa6f..3fe5d4f2 100644 --- a/cpu.h +++ b/cpu.h @@ -39,6 +39,12 @@ # include # endif +// #if defined(CRYPTOPP_GCC_VERSION) && (CRYPTOPP_GCC_VERSION < 50000) +// typedef int __v4si __attribute__ ((__vector_size__ (16))); +// typedef long long __v2di __attribute__ ((__vector_size__ (16))); +// typedef long long __m128i __attribute__ ((__vector_size__ (16), __may_alias__)); +// #endif + #if CRYPTOPP_BOOL_AESNI_INTRINSICS_AVAILABLE // GCC 5.3/i686 fails to declare __m128 in the headers we use when compiling with -std=c++11 or -std=c++14. diff --git a/cryptest.sh b/cryptest.sh index 3517d86d..5689d691 100755 --- a/cryptest.sh +++ b/cryptest.sh @@ -177,6 +177,7 @@ fi GCC_60_OR_ABOVE=$("$CXX" -v 2>&1 | "$EGREP" -i -c 'gcc version (6\.[0-9]|[7-9])') GCC_51_OR_ABOVE=$("$CXX" -v 2>&1 | "$EGREP" -i -c 'gcc version (5\.[1-9]|[6-9])') GCC_48_COMPILER=$("$CXX" -v 2>&1 | "$EGREP" -i -c 'gcc version 4\.8') +GCC_49_COMPILER=$("$CXX" -v 2>&1 | "$EGREP" -i -c 'gcc version 4\.9') GCC_49_OR_ABOVE=$("$CXX" -v 2>&1 | "$EGREP" -i -c 'gcc version (4\.9|[5-9]\.[0-9])') SUNCC_121_OR_ABOVE=$("$CXX" -V 2>&1 | "$EGREP" -c "CC: (Sun|Studio) .* (5\.1[0-9]|5\.[2-9]|[6-9]\.)") @@ -513,7 +514,7 @@ if [[ ("$IS_ARM32" -ne "0" || "$IS_ARM64" -ne "0") ]]; then if [[ (-z "$HAVE_ARM_VFPV3") ]]; then HAVE_ARM_VFPV3=$(echo "$ARM_FEATURES" | "$GREP" -i -c 'vfpv3') - if [[ ("$HAVE_ARM_VFPV4" -gt "0") ]]; then HAVE_ARM_VFPV4=1; fi + if [[ ("$HAVE_ARM_VFPV3" -gt "0") ]]; then HAVE_ARM_VFPV3=1; fi fi if [[ (-z "$HAVE_ARM_VFPV4") ]]; then @@ -587,6 +588,13 @@ if [[ ( ("$IS_ARM32" -ne "0" || "$IS_ARM64" -ne "0") && "$GCC_48_COMPILER" -ne " HAVE_ASAN=0 fi +# Fixup... GCC 4.8 and 4.9 fail Debug builds with c++11 on x86/x32/x64 +# Also see http://stackoverflow.com/q/38051959/608639 +if [[ ( ("$IS_X86" -ne "0" || "$IS_X32" -ne "0" || "$IS_X64" -ne "0") && ("$GCC_48_COMPILER" -ne "0" || "$GCC_49_COMPILER" -ne "0") ) ]]; then + HAVE_CXX11=0 + HAVE_GNU11=0 +fi + # Benchmarks take a long time... if [[ (-z "$WANT_BENCHMARKS") ]]; then WANT_BENCHMARKS=1 @@ -1049,7 +1057,7 @@ if [[ ("${#PLATFORM_CXXFLAGS[@]}" -ne "0") ]]; then "$MAKE" clean > /dev/null 2>&1 rm -f adhoc.cpp > /dev/null 2>&1 - CXXFLAGS="$DEBUG_CXXFLAGS ${PLATFORM_CXXFLAGS} ${DEPRECATED_CXXFLAGS[@]}" + CXXFLAGS="$DEBUG_CXXFLAGS ${PLATFORM_CXXFLAGS[@]} ${DEPRECATED_CXXFLAGS[@]}" CXX="$CXX" CXXFLAGS="$CXXFLAGS" "$MAKE" "${MAKEARGS[@]}" static dynamic cryptest.exe 2>&1 | tee -a "$TEST_RESULTS" if [[ ("${PIPESTATUS[0]}" -ne "0") ]]; then @@ -1078,7 +1086,7 @@ if [[ ("${#PLATFORM_CXXFLAGS[@]}" -ne "0") ]]; then "$MAKE" clean > /dev/null 2>&1 rm -f adhoc.cpp > /dev/null 2>&1 - CXXFLAGS="$RELEASE_CXXFLAGS ${PLATFORM_CXXFLAGS} ${DEPRECATED_CXXFLAGS[@]}" + CXXFLAGS="$RELEASE_CXXFLAGS ${PLATFORM_CXXFLAGS[@]} ${DEPRECATED_CXXFLAGS[@]}" CXX="$CXX" CXXFLAGS="$CXXFLAGS" "$MAKE" "${MAKEARGS[@]}" static dynamic cryptest.exe 2>&1 | tee -a "$TEST_RESULTS" if [[ ("${PIPESTATUS[0]}" -ne "0") ]]; then