From b4726950c29e624eab5a2039d03967edbc8f8625 Mon Sep 17 00:00:00 2001 From: Jeffrey Walton Date: Sat, 30 Jul 2016 07:20:08 -0400 Subject: [PATCH 1/3] Add options for SunCC as arrary elements --- cryptest.sh | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/cryptest.sh b/cryptest.sh index 49ad8c3b..f98fb0d0 100755 --- a/cryptest.sh +++ b/cryptest.sh @@ -899,19 +899,19 @@ fi if [[ ("$IS_SOLARIS" -ne "0") && ("$SUNCC_121_OR_ABOVE" -ne "0") ]]; then ISAINFO=$(isainfo -v 2>/dev/null) - if [[ ($(echo "$ISAINFO" | "$GREP" -c "sse2") -ne "0") ]]; then PLATFORM_CXXFLAGS+=("-D__SSE2__ "); fi - if [[ ($(echo "$ISAINFO" | "$GREP" -c "sse3") -ne "0") ]]; then PLATFORM_CXXFLAGS+=("-D__SSE3__ "); fi - if [[ ($(echo "$ISAINFO" | "$GREP" -c "ssse3") -ne "0") ]]; then PLATFORM_CXXFLAGS+=("-D__SSSE3__ "); fi - if [[ ($(echo "$ISAINFO" | "$GREP" -c "sse4.1") -ne "0") ]]; then PLATFORM_CXXFLAGS+=("-D__SSE4_1__ "); fi - if [[ ($(echo "$ISAINFO" | "$GREP" -c "sse4.2") -ne "0") ]]; then PLATFORM_CXXFLAGS+=("-D__SSE4_2__ "); fi - if [[ ($(echo "$ISAINFO" | "$GREP" -c "aes") -ne "0") ]]; then PLATFORM_CXXFLAGS+=("-D__AES__ "); fi - if [[ ($(echo "$ISAINFO" | "$GREP" -c "pclmulqdq") -ne "0") ]]; then PLATFORM_CXXFLAGS+=("-D__PCLMUL__ "); fi - if [[ ($(echo "$ISAINFO" | "$GREP" -c "rdrand") -ne "0") ]]; then PLATFORM_CXXFLAGS+=("-D__RDRND__ "); fi - if [[ ($(echo "$ISAINFO" | "$GREP" -c "rdseed") -ne "0") ]]; then PLATFORM_CXXFLAGS+=("-D__RDSEED__ "); fi - if [[ ($(echo "$ISAINFO" | "$GREP" -c "avx") -ne "0") ]]; then PLATFORM_CXXFLAGS+=("-D__AVX__ "); fi - if [[ ($(echo "$ISAINFO" | "$GREP" -c "avx2") -ne "0") ]]; then PLATFORM_CXXFLAGS+=("-D__AVX2__ "); fi - if [[ ($(echo "$ISAINFO" | "$GREP" -c "bmi") -ne "0") ]]; then PLATFORM_CXXFLAGS+=("-D__BMI__ "); fi - if [[ ($(echo "$ISAINFO" | "$GREP" -c "bmi2") -ne "0") ]]; then PLATFORM_CXXFLAGS+=("-D__BMI2__ "); fi + if [[ ($(echo "$ISAINFO" | "$GREP" -c "sse2") -ne "0") ]]; then PLATFORM_CXXFLAGS+=("-D__SSE2__"); fi + if [[ ($(echo "$ISAINFO" | "$GREP" -c "sse3") -ne "0") ]]; then PLATFORM_CXXFLAGS+=("-D__SSE3__"); fi + if [[ ($(echo "$ISAINFO" | "$GREP" -c "ssse3") -ne "0") ]]; then PLATFORM_CXXFLAGS+=("-D__SSSE3__"); fi + if [[ ($(echo "$ISAINFO" | "$GREP" -c "sse4.1") -ne "0") ]]; then PLATFORM_CXXFLAGS+=("-D__SSE4_1__"); fi + if [[ ($(echo "$ISAINFO" | "$GREP" -c "sse4.2") -ne "0") ]]; then PLATFORM_CXXFLAGS+=("-D__SSE4_2__"); fi + if [[ ($(echo "$ISAINFO" | "$GREP" -c "aes") -ne "0") ]]; then PLATFORM_CXXFLAGS+=("-D__AES__"); fi + if [[ ($(echo "$ISAINFO" | "$GREP" -c "pclmulqdq") -ne "0") ]]; then PLATFORM_CXXFLAGS+=("-D__PCLMUL__"); fi + if [[ ($(echo "$ISAINFO" | "$GREP" -c "rdrand") -ne "0") ]]; then PLATFORM_CXXFLAGS+=("-D__RDRND__"); fi + if [[ ($(echo "$ISAINFO" | "$GREP" -c "rdseed") -ne "0") ]]; then PLATFORM_CXXFLAGS+=("-D__RDSEED__"); fi + if [[ ($(echo "$ISAINFO" | "$GREP" -c "avx") -ne "0") ]]; then PLATFORM_CXXFLAGS+=("-D__AVX__"); fi + if [[ ($(echo "$ISAINFO" | "$GREP" -c "avx2") -ne "0") ]]; then PLATFORM_CXXFLAGS+=("-D__AVX2__"); fi + if [[ ($(echo "$ISAINFO" | "$GREP" -c "bmi") -ne "0") ]]; then PLATFORM_CXXFLAGS+=("-D__BMI__"); fi + if [[ ($(echo "$ISAINFO" | "$GREP" -c "bmi2") -ne "0") ]]; then PLATFORM_CXXFLAGS+=("-D__BMI2__"); fi fi if [[ ("$GCC_COMPILER" -ne "0") ]]; then From 8dffadf2e3c53fe172da84fff95bb656bab52c22 Mon Sep 17 00:00:00 2001 From: Jeffrey Walton Date: Sat, 30 Jul 2016 11:37:10 -0400 Subject: [PATCH 2/3] Fix USER_CXXFLAGS reporting --- cryptest.sh | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/cryptest.sh b/cryptest.sh index f98fb0d0..6d26d468 100755 --- a/cryptest.sh +++ b/cryptest.sh @@ -936,15 +936,13 @@ echo | tee -a "$TEST_RESULTS" echo "DEBUG_CXXFLAGS: $DEBUG_CXXFLAGS" | tee -a "$TEST_RESULTS" echo "RELEASE_CXXFLAGS: $RELEASE_CXXFLAGS" | tee -a "$TEST_RESULTS" echo "VALGRIND_CXXFLAGS: $VALGRIND_CXXFLAGS" | tee -a "$TEST_RESULTS" +if [[ (! -z "$USER_CXXFLAGS") ]]; then + echo "USER_CXXFLAGS: $USER_CXXFLAGS" | tee -a "$TEST_RESULTS" +fi if [[ ("${#PLATFORM_CXXFLAGS[@]}" -ne "0") ]]; then echo "PLATFORM_CXXFLAGS: ${PLATFORM_CXXFLAGS[@]}" | tee -a "$TEST_RESULTS" fi -if [[ (! -z "$USER_CXXFLAGS") ]]; then - echo | tee -a "$USER_CXXFLAGS" - echo "User CXXFLAGS: $CXXFLAGS" | tee -a "$TEST_RESULTS" -fi - ############################################# ############################################# ############### BEGIN TESTING ############### From 3ffb1f35658eb31961e9605ce7658d2d6871b7d0 Mon Sep 17 00:00:00 2001 From: Jeffrey Walton Date: Sun, 31 Jul 2016 04:18:01 -0400 Subject: [PATCH 3/3] Fix failed self tests under -Ofast and -O5. It appears to be a SunCC compiler bug --- cryptest.sh | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/cryptest.sh b/cryptest.sh index 6d26d468..1821c365 100755 --- a/cryptest.sh +++ b/cryptest.sh @@ -133,7 +133,6 @@ if [[ ((-z "$CXX") || ("$CXX" == "gcc")) ]]; then if [[ "$IS_DARWIN" -ne "0" ]]; then CXX=c++ elif [[ "$IS_SOLARIS" -ne "0" ]]; then - # SunCC 12.5 is mostly broken if [[ (-e "/opt/developerstudio12.5/bin/CC") ]]; then CXX=/opt/developerstudio12.5/bin/CC elif [[ (-e "/opt/solarisstudio12.4/bin/CC") ]]; then @@ -194,6 +193,12 @@ else MAKE=make fi +# Fixup, bad code generation +if [[ ("$SUNCC_121_OR_ABOVE" -ne "0" ]]; then + HAVE_O5=0 + HAVE_OFAST=0 +fi + if [[ (-z "$TMP") ]]; then if [[ (-d "/tmp") ]]; then TMP=/tmp