Merge pull request #4238 from martin-frbg/issue4237
Fix building on POWER with IBM XLF 16.1.1
This commit is contained in:
commit
138ed79fe7
|
@ -42,15 +42,14 @@ FCOMMON_OPT += -O2 -qrecur -qnosave
|
||||||
else
|
else
|
||||||
FCOMMON_OPT += -O2 -frecursive -fno-fast-math
|
FCOMMON_OPT += -O2 -frecursive -fno-fast-math
|
||||||
endif
|
endif
|
||||||
ifeq ($(C_COMPILER), GCC)
|
|
||||||
|
ifeq ($(F_COMPILER), GFORTRAN)
|
||||||
ifneq ($(GCCVERSIONGT4), 1)
|
ifneq ($(GCCVERSIONGT4), 1)
|
||||||
$(warning your compiler is too old to fully support POWER9, getting a newer version of gcc is recommended)
|
$(warning your compiler is too old to fully support POWER9, getting a newer version of gcc is recommended)
|
||||||
FCOMMON_OPT += -mcpu=power8 -mtune=power8
|
FCOMMON_OPT += -mcpu=power8 -mtune=power8
|
||||||
else
|
else
|
||||||
FCOMMON_OPT += -mcpu=power9 -mtune=power9
|
FCOMMON_OPT += -mcpu=power9 -mtune=power9
|
||||||
endif
|
endif
|
||||||
else
|
|
||||||
FCOMMON_OPT += -mcpu=power9 -mtune=power9
|
|
||||||
endif
|
endif
|
||||||
else
|
else
|
||||||
FCOMMON_OPT += -O2 -Mrecursive
|
FCOMMON_OPT += -O2 -Mrecursive
|
||||||
|
@ -84,12 +83,16 @@ CCOMMON_OPT += -DUSE_OPENMP -fopenmp
|
||||||
else
|
else
|
||||||
CCOMMON_OPT += -DUSE_OPENMP -mp
|
CCOMMON_OPT += -DUSE_OPENMP -mp
|
||||||
endif
|
endif
|
||||||
|
ifeq ($(F_COMPILER), IBM)
|
||||||
|
FCOMMON_OPT += -DUSE_OPENMP
|
||||||
|
else
|
||||||
ifneq ($(F_COMPILER), PGI)
|
ifneq ($(F_COMPILER), PGI)
|
||||||
FCOMMON_OPT += -DUSE_OPENMP -fopenmp
|
FCOMMON_OPT += -DUSE_OPENMP -fopenmp
|
||||||
else
|
else
|
||||||
FCOMMON_OPT += -DUSE_OPENMP -mp
|
FCOMMON_OPT += -DUSE_OPENMP -mp
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
endif
|
||||||
|
|
||||||
# workaround for C->FORTRAN ABI violation in LAPACKE
|
# workaround for C->FORTRAN ABI violation in LAPACKE
|
||||||
ifeq ($(F_COMPILER), GFORTRAN)
|
ifeq ($(F_COMPILER), GFORTRAN)
|
||||||
|
|
|
@ -1167,6 +1167,10 @@ endif
|
||||||
|
|
||||||
ifeq ($(F_COMPILER), IBM)
|
ifeq ($(F_COMPILER), IBM)
|
||||||
CCOMMON_OPT += -DF_INTERFACE_IBM
|
CCOMMON_OPT += -DF_INTERFACE_IBM
|
||||||
|
FEXTRALIB += -lxlf90
|
||||||
|
ifeq ($(C_COMPILER), GCC)
|
||||||
|
FCOMMON_OPT += -qextname
|
||||||
|
endif
|
||||||
# FCOMMON_OPT += -qarch=440
|
# FCOMMON_OPT += -qarch=440
|
||||||
ifdef BINARY64
|
ifdef BINARY64
|
||||||
FCOMMON_OPT += -q64
|
FCOMMON_OPT += -q64
|
||||||
|
|
|
@ -214,6 +214,11 @@ endif
|
||||||
ifeq ($(F_COMPILER), NAG)
|
ifeq ($(F_COMPILER), NAG)
|
||||||
CEXTRALIB = -lgomp
|
CEXTRALIB = -lgomp
|
||||||
endif
|
endif
|
||||||
|
ifeq ($(F_COMPILER), IBM)
|
||||||
|
ifeq ($(C_COMPILER), GCC)
|
||||||
|
CEXTRALIB += -lgomp
|
||||||
|
endif
|
||||||
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifeq ($(BUILD_SINGLE),1)
|
ifeq ($(BUILD_SINGLE),1)
|
||||||
|
|
|
@ -272,23 +272,23 @@ static : ../$(LIBNAME)
|
||||||
rm -f goto.$(SUFFIX)
|
rm -f goto.$(SUFFIX)
|
||||||
|
|
||||||
osx.def : $(GENSYM) ../Makefile.system ../getarch.c
|
osx.def : $(GENSYM) ../Makefile.system ../getarch.c
|
||||||
./$(GENSYM) osx $(ARCH) $(BU) $(EXPRECISION) $(NO_CBLAS) $(NO_LAPACK) $(NO_LAPACKE) $(NEED2UNDERSCORES) $(ONLY_CBLAS) "$(SYMBOLPREFIX)" "$(SYMBOLSUFFIX)" $(BUILD_LAPACK_DEPRECATED) $(BUILD_BFLOAT16) $(BUILD_SINGLE) $(BUILD_DOUBLE) $(BUILD_COMPLEX) $(BUILD_COMPLEX16) > $(@F)
|
./$(GENSYM) osx $(ARCH) "$(BU)" $(EXPRECISION) $(NO_CBLAS) $(NO_LAPACK) $(NO_LAPACKE) $(NEED2UNDERSCORES) $(ONLY_CBLAS) "$(SYMBOLPREFIX)" "$(SYMBOLSUFFIX)" $(BUILD_LAPACK_DEPRECATED) $(BUILD_BFLOAT16) $(BUILD_SINGLE) $(BUILD_DOUBLE) $(BUILD_COMPLEX) $(BUILD_COMPLEX16) > $(@F)
|
||||||
|
|
||||||
aix.def : $(GENSYM) ../Makefile.system ../getarch.c
|
aix.def : $(GENSYM) ../Makefile.system ../getarch.c
|
||||||
./$(GENSYM) aix $(ARCH) $(BU) $(EXPRECISION) $(NO_CBLAS) $(NO_LAPACK) $(NO_LAPACKE) $(NEED2UNDERSCORES) $(ONLY_CBLAS) "$(SYMBOLPREFIX)" "$(SYMBOLSUFFIX)" $(BUILD_LAPACK_DEPRECATED) $(BUILD_BFLOAT16) $(BUILD_SINGLE) $(BUILD_DOUBLE) $(BUILD_COMPLEX) $(BUILD_COMPLEX16) > $(@F)
|
./$(GENSYM) aix $(ARCH) "$(BU)" $(EXPRECISION) $(NO_CBLAS) $(NO_LAPACK) $(NO_LAPACKE) $(NEED2UNDERSCORES) $(ONLY_CBLAS) "$(SYMBOLPREFIX)" "$(SYMBOLSUFFIX)" $(BUILD_LAPACK_DEPRECATED) $(BUILD_BFLOAT16) $(BUILD_SINGLE) $(BUILD_DOUBLE) $(BUILD_COMPLEX) $(BUILD_COMPLEX16) > $(@F)
|
||||||
|
|
||||||
objcopy.def : $(GENSYM) ../Makefile.system ../getarch.c
|
objcopy.def : $(GENSYM) ../Makefile.system ../getarch.c
|
||||||
./$(GENSYM) objcopy $(ARCH) $(BU) $(EXPRECISION) $(NO_CBLAS) $(NO_LAPACK) $(NO_LAPACKE) $(NEED2UNDERSCORES) $(ONLY_CBLAS) "$(SYMBOLPREFIX)" "$(SYMBOLSUFFIX)" $(BUILD_LAPACK_DEPRECATED) $(BUILD_BFLOAT16) $(BUILD_SINGLE) $(BUILD_DOUBLE) $(BUILD_COMPLEX) $(BUILD_COMPLEX16) > $(@F)
|
./$(GENSYM) objcopy $(ARCH) "$(BU)" $(EXPRECISION) $(NO_CBLAS) $(NO_LAPACK) $(NO_LAPACKE) $(NEED2UNDERSCORES) $(ONLY_CBLAS) "$(SYMBOLPREFIX)" "$(SYMBOLSUFFIX)" $(BUILD_LAPACK_DEPRECATED) $(BUILD_BFLOAT16) $(BUILD_SINGLE) $(BUILD_DOUBLE) $(BUILD_COMPLEX) $(BUILD_COMPLEX16) > $(@F)
|
||||||
|
|
||||||
objconv.def : $(GENSYM) ../Makefile.system ../getarch.c
|
objconv.def : $(GENSYM) ../Makefile.system ../getarch.c
|
||||||
./$(GENSYM) objconv $(ARCH) $(BU) $(EXPRECISION) $(NO_CBLAS) $(NO_LAPACK) $(NO_LAPACKE) $(NEED2UNDERSCORES) $(ONLY_CBLAS) "$(SYMBOLPREFIX)" "$(SYMBOLSUFFIX)" $(BUILD_LAPACK_DEPRECATED) $(BUILD_BFLOAT16) $(BUILD_SINGLE) $(BUILD_DOUBLE) $(BUILD_COMPLEX) $(BUILD_COMPLEX16) > $(@F)
|
./$(GENSYM) objconv $(ARCH) "$(BU)" $(EXPRECISION) $(NO_CBLAS) $(NO_LAPACK) $(NO_LAPACKE) $(NEED2UNDERSCORES) $(ONLY_CBLAS) "$(SYMBOLPREFIX)" "$(SYMBOLSUFFIX)" $(BUILD_LAPACK_DEPRECATED) $(BUILD_BFLOAT16) $(BUILD_SINGLE) $(BUILD_DOUBLE) $(BUILD_COMPLEX) $(BUILD_COMPLEX16) > $(@F)
|
||||||
|
|
||||||
test : linktest.c
|
test : linktest.c
|
||||||
$(CC) $(CFLAGS) $(LDFLAGS) -w -o linktest linktest.c ../$(LIBSONAME) -lm && echo OK.
|
$(CC) $(CFLAGS) $(LDFLAGS) -w -o linktest linktest.c ../$(LIBSONAME) -lm && echo OK.
|
||||||
rm -f linktest
|
rm -f linktest
|
||||||
|
|
||||||
linktest.c : $(GENSYM) ../Makefile.system ../getarch.c
|
linktest.c : $(GENSYM) ../Makefile.system ../getarch.c
|
||||||
./$(GENSYM) linktest $(ARCH) $(BU) $(EXPRECISION) $(NO_CBLAS) $(NO_LAPACK) $(NO_LAPACKE) $(NEED2UNDERSCORES) $(ONLY_CBLAS) "$(SYMBOLPREFIX)" "$(SYMBOLSUFFIX)" $(BUILD_LAPACK_DEPRECATED) $(BUILD_BFLOAT16) $(BUILD_SINGLE) $(BUILD_DOUBLE) $(BUILD_COMPLEX) $(BUILD_COMPLEX16) > linktest.c
|
./$(GENSYM) linktest $(ARCH) "$(BU)" $(EXPRECISION) $(NO_CBLAS) $(NO_LAPACK) $(NO_LAPACKE) $(NEED2UNDERSCORES) $(ONLY_CBLAS) "$(SYMBOLPREFIX)" "$(SYMBOLSUFFIX)" $(BUILD_LAPACK_DEPRECATED) $(BUILD_BFLOAT16) $(BUILD_SINGLE) $(BUILD_DOUBLE) $(BUILD_COMPLEX) $(BUILD_COMPLEX16) > linktest.c
|
||||||
|
|
||||||
clean ::
|
clean ::
|
||||||
@rm -f *.def *.dylib __.SYMDEF* *.renamed
|
@rm -f *.def *.dylib __.SYMDEF* *.renamed
|
||||||
|
|
8
f_check
8
f_check
|
@ -155,6 +155,10 @@ else
|
||||||
*'IBM XL'*)
|
*'IBM XL'*)
|
||||||
vendor=IBM
|
vendor=IBM
|
||||||
openmp='-openmp'
|
openmp='-openmp'
|
||||||
|
case "$CC" in *gcc*)
|
||||||
|
bu=_
|
||||||
|
;;
|
||||||
|
esac
|
||||||
;;
|
;;
|
||||||
*NAG*)
|
*NAG*)
|
||||||
vendor=NAG
|
vendor=NAG
|
||||||
|
@ -223,6 +227,10 @@ else
|
||||||
*ppuf*|*xlf*)
|
*ppuf*|*xlf*)
|
||||||
vendor=IBM
|
vendor=IBM
|
||||||
openmp='-openmp'
|
openmp='-openmp'
|
||||||
|
case "$CC" in *gcc*)
|
||||||
|
bu=_
|
||||||
|
;;
|
||||||
|
esac
|
||||||
;;
|
;;
|
||||||
*open64*)
|
*open64*)
|
||||||
vendor=OPEN64
|
vendor=OPEN64
|
||||||
|
|
|
@ -1301,7 +1301,7 @@ xhpr2.$(SUFFIX) xhpr2.$(PSUFFIX) : zhpr2.c
|
||||||
ifeq ($(BUILD_BFLOAT16),1)
|
ifeq ($(BUILD_BFLOAT16),1)
|
||||||
sbgemm.$(SUFFIX) sbgemm.$(PSUFFIX) : gemm.c ../param.h
|
sbgemm.$(SUFFIX) sbgemm.$(PSUFFIX) : gemm.c ../param.h
|
||||||
$(CC) -c $(CFLAGS) $< -o $(@F)
|
$(CC) -c $(CFLAGS) $< -o $(@F)
|
||||||
sbgemmt.$(SUFFIX) sbgemm.$(PSUFFIX) : gemmt.c ../param.h
|
sbgemmt.$(SUFFIX) sbgemmt.$(PSUFFIX) : gemmt.c ../param.h
|
||||||
$(CC) -c $(CFLAGS) $< -o $(@F)
|
$(CC) -c $(CFLAGS) $< -o $(@F)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
|
|
@ -271,6 +271,11 @@ endif
|
||||||
ifeq ($(F_COMPILER), NAG)
|
ifeq ($(F_COMPILER), NAG)
|
||||||
CEXTRALIB = -lgomp
|
CEXTRALIB = -lgomp
|
||||||
endif
|
endif
|
||||||
|
ifeq ($(F_COMPILER), IBM)
|
||||||
|
ifeq ($(C_COMPILER), GCC)
|
||||||
|
CEXTRALIB += -lgomp
|
||||||
|
endif
|
||||||
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifeq ($(BUILD_SINGLE),1)
|
ifeq ($(BUILD_SINGLE),1)
|
||||||
|
@ -326,7 +331,7 @@ endif
|
||||||
|
|
||||||
ifeq ($(BUILD_BFLOAT16),1)
|
ifeq ($(BUILD_BFLOAT16),1)
|
||||||
test_sbgemm : compare_sgemm_sbgemm.c ../$(LIBNAME)
|
test_sbgemm : compare_sgemm_sbgemm.c ../$(LIBNAME)
|
||||||
$(FC) $(FLDFLAGS) -o test_sbgemm compare_sgemm_sbgemm.c ../$(LIBNAME) $(EXTRALIB) $(CEXTRALIB)
|
$(CC) $(CFLAGS) -o test_sbgemm compare_sgemm_sbgemm.c ../$(LIBNAME) $(EXTRALIB) $(CEXTRALIB)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifeq ($(BUILD_COMPLEX),1)
|
ifeq ($(BUILD_COMPLEX),1)
|
||||||
|
|
Loading…
Reference in New Issue