Skip to content

Commit 138ed79

Browse files
authored
Merge pull request #4238 from martin-frbg/issue4237
Fix building on POWER with IBM XLF 16.1.1
2 parents 48b1b7c + 2a9981a commit 138ed79

File tree

7 files changed

+35
-10
lines changed

7 files changed

+35
-10
lines changed

Makefile.power

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -42,15 +42,14 @@ FCOMMON_OPT += -O2 -qrecur -qnosave
4242
else
4343
FCOMMON_OPT += -O2 -frecursive -fno-fast-math
4444
endif
45-
ifeq ($(C_COMPILER), GCC)
45+
46+
ifeq ($(F_COMPILER), GFORTRAN)
4647
ifneq ($(GCCVERSIONGT4), 1)
4748
$(warning your compiler is too old to fully support POWER9, getting a newer version of gcc is recommended)
4849
FCOMMON_OPT += -mcpu=power8 -mtune=power8
4950
else
5051
FCOMMON_OPT += -mcpu=power9 -mtune=power9
5152
endif
52-
else
53-
FCOMMON_OPT += -mcpu=power9 -mtune=power9
5453
endif
5554
else
5655
FCOMMON_OPT += -O2 -Mrecursive
@@ -84,12 +83,16 @@ CCOMMON_OPT += -DUSE_OPENMP -fopenmp
8483
else
8584
CCOMMON_OPT += -DUSE_OPENMP -mp
8685
endif
86+
ifeq ($(F_COMPILER), IBM)
87+
FCOMMON_OPT += -DUSE_OPENMP
88+
else
8789
ifneq ($(F_COMPILER), PGI)
8890
FCOMMON_OPT += -DUSE_OPENMP -fopenmp
8991
else
9092
FCOMMON_OPT += -DUSE_OPENMP -mp
9193
endif
9294
endif
95+
endif
9396

9497
# workaround for C->FORTRAN ABI violation in LAPACKE
9598
ifeq ($(F_COMPILER), GFORTRAN)

Makefile.system

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1167,6 +1167,10 @@ endif
11671167

11681168
ifeq ($(F_COMPILER), IBM)
11691169
CCOMMON_OPT += -DF_INTERFACE_IBM
1170+
FEXTRALIB += -lxlf90
1171+
ifeq ($(C_COMPILER), GCC)
1172+
FCOMMON_OPT += -qextname
1173+
endif
11701174
# FCOMMON_OPT += -qarch=440
11711175
ifdef BINARY64
11721176
FCOMMON_OPT += -q64

ctest/Makefile

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -214,6 +214,11 @@ endif
214214
ifeq ($(F_COMPILER), NAG)
215215
CEXTRALIB = -lgomp
216216
endif
217+
ifeq ($(F_COMPILER), IBM)
218+
ifeq ($(C_COMPILER), GCC)
219+
CEXTRALIB += -lgomp
220+
endif
221+
endif
217222
endif
218223

219224
ifeq ($(BUILD_SINGLE),1)

exports/Makefile

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -272,23 +272,23 @@ static : ../$(LIBNAME)
272272
rm -f goto.$(SUFFIX)
273273

274274
osx.def : $(GENSYM) ../Makefile.system ../getarch.c
275-
./$(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)
275+
./$(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)
276276

277277
aix.def : $(GENSYM) ../Makefile.system ../getarch.c
278-
./$(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)
278+
./$(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)
279279

280280
objcopy.def : $(GENSYM) ../Makefile.system ../getarch.c
281-
./$(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)
281+
./$(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)
282282

283283
objconv.def : $(GENSYM) ../Makefile.system ../getarch.c
284-
./$(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)
284+
./$(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)
285285

286286
test : linktest.c
287287
$(CC) $(CFLAGS) $(LDFLAGS) -w -o linktest linktest.c ../$(LIBSONAME) -lm && echo OK.
288288
rm -f linktest
289289

290290
linktest.c : $(GENSYM) ../Makefile.system ../getarch.c
291-
./$(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
291+
./$(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
292292

293293
clean ::
294294
@rm -f *.def *.dylib __.SYMDEF* *.renamed

f_check

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -155,6 +155,10 @@ else
155155
*'IBM XL'*)
156156
vendor=IBM
157157
openmp='-openmp'
158+
case "$CC" in *gcc*)
159+
bu=_
160+
;;
161+
esac
158162
;;
159163
*NAG*)
160164
vendor=NAG
@@ -223,6 +227,10 @@ else
223227
*ppuf*|*xlf*)
224228
vendor=IBM
225229
openmp='-openmp'
230+
case "$CC" in *gcc*)
231+
bu=_
232+
;;
233+
esac
226234
;;
227235
*open64*)
228236
vendor=OPEN64

interface/Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1301,7 +1301,7 @@ xhpr2.$(SUFFIX) xhpr2.$(PSUFFIX) : zhpr2.c
13011301
ifeq ($(BUILD_BFLOAT16),1)
13021302
sbgemm.$(SUFFIX) sbgemm.$(PSUFFIX) : gemm.c ../param.h
13031303
$(CC) -c $(CFLAGS) $< -o $(@F)
1304-
sbgemmt.$(SUFFIX) sbgemm.$(PSUFFIX) : gemmt.c ../param.h
1304+
sbgemmt.$(SUFFIX) sbgemmt.$(PSUFFIX) : gemmt.c ../param.h
13051305
$(CC) -c $(CFLAGS) $< -o $(@F)
13061306
endif
13071307

test/Makefile

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -271,6 +271,11 @@ endif
271271
ifeq ($(F_COMPILER), NAG)
272272
CEXTRALIB = -lgomp
273273
endif
274+
ifeq ($(F_COMPILER), IBM)
275+
ifeq ($(C_COMPILER), GCC)
276+
CEXTRALIB += -lgomp
277+
endif
278+
endif
274279
endif
275280

276281
ifeq ($(BUILD_SINGLE),1)
@@ -326,7 +331,7 @@ endif
326331

327332
ifeq ($(BUILD_BFLOAT16),1)
328333
test_sbgemm : compare_sgemm_sbgemm.c ../$(LIBNAME)
329-
$(FC) $(FLDFLAGS) -o test_sbgemm compare_sgemm_sbgemm.c ../$(LIBNAME) $(EXTRALIB) $(CEXTRALIB)
334+
$(CC) $(CFLAGS) -o test_sbgemm compare_sgemm_sbgemm.c ../$(LIBNAME) $(EXTRALIB) $(CEXTRALIB)
330335
endif
331336

332337
ifeq ($(BUILD_COMPLEX),1)

0 commit comments

Comments
 (0)