Merge pull request #3013 from martin-frbg/gcc46
Fix 32bit x86 builds and add workaround for x86_64 miscompilations by gcc 4.6 (including our Travis setup)
This commit is contained in:
commit
66302b3c06
36
.travis.yml
36
.travis.yml
|
@ -211,44 +211,48 @@ matrix:
|
||||||
|
|
||||||
- &test-macos
|
- &test-macos
|
||||||
os: osx
|
os: osx
|
||||||
osx_image: xcode10.1
|
osx_image: xcode11.5
|
||||||
before_script:
|
before_script:
|
||||||
- COMMON_FLAGS="DYNAMIC_ARCH=1 NUM_THREADS=32"
|
- COMMON_FLAGS="DYNAMIC_ARCH=1 NUM_THREADS=32"
|
||||||
- brew update
|
|
||||||
- brew install gcc@8 # for gfortran
|
|
||||||
script:
|
script:
|
||||||
- travis_wait 45 make QUIET_MAKE=1 $COMMON_FLAGS $BTYPE
|
- travis_wait 45 make QUIET_MAKE=1 $COMMON_FLAGS $BTYPE
|
||||||
env:
|
env:
|
||||||
- BTYPE="TARGET=NEHALEM BINARY=64 INTERFACE64=1 FC=gfortran-8"
|
- BTYPE="TARGET=NEHALEM BINARY=64 INTERFACE64=1 FC=gfortran-9"
|
||||||
|
|
||||||
- <<: *test-macos
|
- <<: *test-macos
|
||||||
osx_image: xcode12
|
osx_image: xcode12
|
||||||
before_script:
|
before_script:
|
||||||
- COMMON_FLAGS="DYNAMIC_ARCH=1 NUM_THREADS=32"
|
- COMMON_FLAGS="DYNAMIC_ARCH=1 NUM_THREADS=32"
|
||||||
- brew update
|
- brew update
|
||||||
- brew install gcc@10 # for gfortran
|
- brew install gcc@10
|
||||||
script:
|
script:
|
||||||
- travis_wait 45 make QUIET_MAKE=1 $COMMON_FLAGS $BTYPE
|
- travis_wait 45 make QUIET_MAKE=1 $COMMON_FLAGS $BTYPE
|
||||||
env:
|
env:
|
||||||
- BTYPE="TARGET=NEHALEM BINARY=64 INTERFACE64=1 FC=gfortran-10"
|
- BTYPE="TARGET=NEHALEM BINARY=64 INTERFACE64=1 FC=gfortran-10"
|
||||||
|
|
||||||
- <<: *test-macos
|
# - <<: *test-macos
|
||||||
osx_image: xcode10.0
|
# osx_image: xcode10
|
||||||
env:
|
# env:
|
||||||
- BTYPE="TARGET=NEHALEM BINARY=32 NOFORTRAN=1"
|
# - BTYPE="TARGET=NEHALEM BINARY=32 NOFORTRAN=1"
|
||||||
|
|
||||||
- <<: *test-macos
|
- <<: *test-macos
|
||||||
osx_image: xcode10.1
|
osx_image: xcode11.5
|
||||||
|
before_script:
|
||||||
|
- COMMON_FLAGS="DYNAMIC_ARCH=1 NUM_THREADS=32"
|
||||||
|
- brew update
|
||||||
env:
|
env:
|
||||||
- CC="/Applications/Xcode-10.1.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang"
|
# - CC="/Applications/Xcode-10.1.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang"
|
||||||
- CFLAGS="-O2 -Wno-macro-redefined -isysroot /Applications/Xcode-10.1.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS12.1.sdk -arch arm64 -miphoneos-version-min=10.0"
|
# - CFLAGS="-O2 -Wno-macro-redefined -isysroot /Applications/Xcode-10.1.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS12.1.sdk -arch arm64 -miphoneos-version-min=10.0"
|
||||||
|
- CC="/Applications/Xcode-11.5.GM.Seed.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang"
|
||||||
|
- CFLAGS="-O2 -Wno-macro-redefined -isysroot /Applications/Xcode-11.5.GM.Seed.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS13.5.sdk -arch arm64 -miphoneos-version-min=10.0"
|
||||||
- BTYPE="TARGET=ARMV8 BINARY=64 HOSTCC=clang NOFORTRAN=1"
|
- BTYPE="TARGET=ARMV8 BINARY=64 HOSTCC=clang NOFORTRAN=1"
|
||||||
|
|
||||||
- <<: *test-macos
|
- <<: *test-macos
|
||||||
osx_image: xcode10.1
|
osx_image: xcode11.5
|
||||||
env:
|
env:
|
||||||
- CC="/Applications/Xcode-10.1.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang"
|
# - CC="/Applications/Xcode-10.1.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang"
|
||||||
- CFLAGS="-O2 -mno-thumb -Wno-macro-redefined -isysroot /Applications/Xcode-10.1.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS12.1.sdk -arch armv7 -miphoneos-version-min=5.1"
|
# - CFLAGS="-O2 -mno-thumb -Wno-macro-redefined -isysroot /Applications/Xcode-10.1.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS12.1.sdk -arch armv7 -miphoneos-version-min=5.1"
|
||||||
|
- CC="/Applications/Xcode-11.5.GM.Seed.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang"
|
||||||
|
- CFLAGS="-O2 -mno-thumb -Wno-macro-redefined -isysroot /Applications/Xcode-11.5.GM.Seed.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS13.5.sdk -arch armv7 -miphoneos-version-min=5.1"
|
||||||
- BTYPE="TARGET=ARMV7 HOSTCC=clang NOFORTRAN=1"
|
- BTYPE="TARGET=ARMV7 HOSTCC=clang NOFORTRAN=1"
|
||||||
|
|
||||||
- &test-graviton2
|
- &test-graviton2
|
||||||
|
|
|
@ -1561,6 +1561,7 @@ export KERNELDIR
|
||||||
export FUNCTION_PROFILE
|
export FUNCTION_PROFILE
|
||||||
export TARGET_CORE
|
export TARGET_CORE
|
||||||
export NO_AVX512
|
export NO_AVX512
|
||||||
|
export NO_AVX2
|
||||||
export BUILD_BFLOAT16
|
export BUILD_BFLOAT16
|
||||||
|
|
||||||
export SBGEMM_UNROLL_M
|
export SBGEMM_UNROLL_M
|
||||||
|
|
|
@ -59,9 +59,11 @@ LIBATLAS = -L$(ATLASPATH)/32 -lcblas -lf77blas -latlas -lm
|
||||||
else
|
else
|
||||||
LIBATLAS = -L$(ATLASPATH)/32 -lptf77blas -lptatlas -lpthread -lm
|
LIBATLAS = -L$(ATLASPATH)/32 -lptf77blas -lptatlas -lpthread -lm
|
||||||
endif
|
endif
|
||||||
|
ifdef HAVE_SSE2
|
||||||
|
CCOMMON_OPT += -msse2
|
||||||
|
FCOMMON_OPT += -msse2
|
||||||
|
endif
|
||||||
ifdef HAVE_SSE3
|
ifdef HAVE_SSE3
|
||||||
ifndef DYNAMIC_ARCH
|
|
||||||
CCOMMON_OPT += -msse3
|
CCOMMON_OPT += -msse3
|
||||||
FCOMMON_OPT += -msse3
|
FCOMMON_OPT += -msse3
|
||||||
ifdef HAVE_SSSE3
|
ifdef HAVE_SSSE3
|
||||||
|
@ -73,5 +75,4 @@ CCOMMON_OPT += -msse4.1
|
||||||
FCOMMON_OPT += -msse4.1
|
FCOMMON_OPT += -msse4.1
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
endif
|
|
||||||
|
|
||||||
|
|
|
@ -20,18 +20,24 @@ ifdef HAVE_SSE4_1
|
||||||
CCOMMON_OPT += -msse4.1
|
CCOMMON_OPT += -msse4.1
|
||||||
FCOMMON_OPT += -msse4.1
|
FCOMMON_OPT += -msse4.1
|
||||||
endif
|
endif
|
||||||
|
ifndef OLDGCC
|
||||||
ifdef HAVE_AVX
|
ifdef HAVE_AVX
|
||||||
CCOMMON_OPT += -mavx
|
CCOMMON_OPT += -mavx
|
||||||
FCOMMON_OPT += -mavx
|
FCOMMON_OPT += -mavx
|
||||||
endif
|
endif
|
||||||
|
endif
|
||||||
|
ifndef NO_AVX2
|
||||||
ifdef HAVE_AVX2
|
ifdef HAVE_AVX2
|
||||||
CCOMMON_OPT += -mavx2
|
CCOMMON_OPT += -mavx2
|
||||||
FCOMMON_OPT += -mavx2
|
FCOMMON_OPT += -mavx2
|
||||||
endif
|
endif
|
||||||
|
endif
|
||||||
|
ifndef OLDGCC
|
||||||
ifdef HAVE_FMA3
|
ifdef HAVE_FMA3
|
||||||
CCOMMON_OPT += -mfma
|
CCOMMON_OPT += -mfma
|
||||||
FCOMMON_OPT += -mfma
|
FCOMMON_OPT += -mfma
|
||||||
endif
|
endif
|
||||||
|
endif
|
||||||
|
|
||||||
ifeq ($(CORE), SKYLAKEX)
|
ifeq ($(CORE), SKYLAKEX)
|
||||||
ifndef DYNAMIC_ARCH
|
ifndef DYNAMIC_ARCH
|
||||||
|
|
11
c_check
11
c_check
|
@ -276,6 +276,15 @@ if ($data =~ /HAVE_C11/) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ($compiler eq "GCC" &&( ($architecture eq "x86") || ($architecture eq "x86_64"))) {
|
||||||
|
$no_avx2 = 0;
|
||||||
|
$oldgcc = 0;
|
||||||
|
$data = `$compiler_name -dumpversion`;
|
||||||
|
if ($data <= 4.6) {
|
||||||
|
$no_avx2 = 1;
|
||||||
|
$oldgcc = 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
$data = `$compiler_name $flags -S ctest1.c && grep globl ctest1.s | head -n 1 && rm -f ctest1.s`;
|
$data = `$compiler_name $flags -S ctest1.c && grep globl ctest1.s | head -n 1 && rm -f ctest1.s`;
|
||||||
|
|
||||||
|
@ -368,6 +377,8 @@ print MAKEFILE "CEXTRALIB=$linker_L $linker_l $linker_a\n";
|
||||||
print MAKEFILE "HAVE_MSA=1\n" if $have_msa eq 1;
|
print MAKEFILE "HAVE_MSA=1\n" if $have_msa eq 1;
|
||||||
print MAKEFILE "MSA_FLAGS=$msa_flags\n" if $have_msa eq 1;
|
print MAKEFILE "MSA_FLAGS=$msa_flags\n" if $have_msa eq 1;
|
||||||
print MAKEFILE "NO_AVX512=1\n" if $no_avx512 eq 1;
|
print MAKEFILE "NO_AVX512=1\n" if $no_avx512 eq 1;
|
||||||
|
print MAKEFILE "NO_AVX2=1\n" if $no_avx2 eq 1;
|
||||||
|
print MAKEFILE "OLDGCC=1\n" if $oldgcc eq 1;
|
||||||
|
|
||||||
$os =~ tr/[a-z]/[A-Z]/;
|
$os =~ tr/[a-z]/[A-Z]/;
|
||||||
$architecture =~ tr/[a-z]/[A-Z]/;
|
$architecture =~ tr/[a-z]/[A-Z]/;
|
||||||
|
|
22
getarch.c
22
getarch.c
|
@ -326,6 +326,16 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
#define FORCE
|
#define FORCE
|
||||||
#define FORCE_INTEL
|
#define FORCE_INTEL
|
||||||
#define ARCHITECTURE "X86"
|
#define ARCHITECTURE "X86"
|
||||||
|
#ifdef NO_AVX2
|
||||||
|
#define SUBARCHITECTURE "SANDYBRIDGE"
|
||||||
|
#define ARCHCONFIG "-DSANDYBRIDGE " \
|
||||||
|
"-DL1_DATA_SIZE=32768 -DL1_DATA_LINESIZE=64 " \
|
||||||
|
"-DL2_SIZE=262144 -DL2_LINESIZE=64 " \
|
||||||
|
"-DDTB_DEFAULT_ENTRIES=64 -DDTB_SIZE=4096 " \
|
||||||
|
"-DHAVE_CMOV -DHAVE_MMX -DHAVE_SSE -DHAVE_SSE2 -DHAVE_SSE3 -DHAVE_SSSE3 -DHAVE_SSE4_1 -DHAVE_SSE4_2 -DHAVE_AVX"
|
||||||
|
#define LIBNAME "sandybridge"
|
||||||
|
#define CORENAME "SANDYBRIDGE"
|
||||||
|
#else
|
||||||
#define SUBARCHITECTURE "HASWELL"
|
#define SUBARCHITECTURE "HASWELL"
|
||||||
#define ARCHCONFIG "-DHASWELL " \
|
#define ARCHCONFIG "-DHASWELL " \
|
||||||
"-DL1_DATA_SIZE=32768 -DL1_DATA_LINESIZE=64 " \
|
"-DL1_DATA_SIZE=32768 -DL1_DATA_LINESIZE=64 " \
|
||||||
|
@ -336,6 +346,7 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
#define LIBNAME "haswell"
|
#define LIBNAME "haswell"
|
||||||
#define CORENAME "HASWELL"
|
#define CORENAME "HASWELL"
|
||||||
#endif
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifdef FORCE_SKYLAKEX
|
#ifdef FORCE_SKYLAKEX
|
||||||
#ifdef NO_AVX512
|
#ifdef NO_AVX512
|
||||||
|
@ -551,6 +562,16 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
#define FORCE
|
#define FORCE
|
||||||
#define FORCE_INTEL
|
#define FORCE_INTEL
|
||||||
#define ARCHITECTURE "X86"
|
#define ARCHITECTURE "X86"
|
||||||
|
#ifdef NO_AVX2
|
||||||
|
#define SUBARCHITECTURE "SANDYBRIDGE"
|
||||||
|
#define ARCHCONFIG "-DSANDYBRIDGE " \
|
||||||
|
"-DL1_DATA_SIZE=32768 -DL1_DATA_LINESIZE=64 " \
|
||||||
|
"-DL2_SIZE=262144 -DL2_LINESIZE=64 " \
|
||||||
|
"-DDTB_DEFAULT_ENTRIES=64 -DDTB_SIZE=4096 " \
|
||||||
|
"-DHAVE_CMOV -DHAVE_MMX -DHAVE_SSE -DHAVE_SSE2 -DHAVE_SSE3 -DHAVE_SSSE3 -DHAVE_SSE4_1 -DHAVE_SSE4_2 -DHAVE_AVX"
|
||||||
|
#define LIBNAME "sandybridge"
|
||||||
|
#define CORENAME "SANDYBRIDGE"
|
||||||
|
#else
|
||||||
#define SUBARCHITECTURE "ZEN"
|
#define SUBARCHITECTURE "ZEN"
|
||||||
#define ARCHCONFIG "-DZEN " \
|
#define ARCHCONFIG "-DZEN " \
|
||||||
"-DL1_CODE_SIZE=32768 -DL1_CODE_LINESIZE=64 -DL1_CODE_ASSOCIATIVE=8 " \
|
"-DL1_CODE_SIZE=32768 -DL1_CODE_LINESIZE=64 -DL1_CODE_ASSOCIATIVE=8 " \
|
||||||
|
@ -565,6 +586,7 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
#define LIBNAME "zen"
|
#define LIBNAME "zen"
|
||||||
#define CORENAME "ZEN"
|
#define CORENAME "ZEN"
|
||||||
#endif
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
#ifdef FORCE_SSE_GENERIC
|
#ifdef FORCE_SSE_GENERIC
|
||||||
|
|
Loading…
Reference in New Issue