Browse Source

Merge pull request #4238 from martin-frbg/issue4237

Fix building on POWER with IBM XLF 16.1.1
tags/v0.3.25^2
Martin Kroeker GitHub 2 years ago
parent
commit
138ed79fe7
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
7 changed files with 35 additions and 10 deletions
  1. +6
    -3
      Makefile.power
  2. +4
    -0
      Makefile.system
  3. +5
    -0
      ctest/Makefile
  4. +5
    -5
      exports/Makefile
  5. +8
    -0
      f_check
  6. +1
    -1
      interface/Makefile
  7. +6
    -1
      test/Makefile

+ 6
- 3
Makefile.power View File

@@ -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)


+ 4
- 0
Makefile.system View File

@@ -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


+ 5
- 0
ctest/Makefile View File

@@ -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)


+ 5
- 5
exports/Makefile View File

@@ -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
- 0
f_check View File

@@ -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


+ 1
- 1
interface/Makefile View File

@@ -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




+ 6
- 1
test/Makefile View File

@@ -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…
Cancel
Save