Skip to content

Commit 09af64a

Browse files
CMake: fix selective arithmetic linking
Fix linking when only a subset of the available arithmetic (e.g., only complex double-precision arithmetic) is built.
1 parent bd1fba1 commit 09af64a

File tree

3 files changed

+40
-20
lines changed

3 files changed

+40
-20
lines changed

BLAS/SRC/CMakeLists.txt

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -38,12 +38,22 @@ set(CBLAS1 scabs1.f scasum.f scnrm2.f90 icamax.f caxpy.f ccopy.f
3838
set(DBLAS1 idamax.f dasum.f daxpy.f dcopy.f ddot.f dnrm2.f90
3939
drot.f drotg.f90 dscal.f dsdot.f dswap.f drotmg.f drotm.f)
4040

41+
set(DB1AUX sscal.f isamax.f)
42+
4143
set(ZBLAS1 dcabs1.f dzasum.f dznrm2.f90 izamax.f zaxpy.f zcopy.f
4244
zdotc.f zdotu.f zdscal.f zrotg.f90 zscal.f zswap.f zdrot.f)
4345

44-
set(CB1AUX isamax.f sasum.f saxpy.f scopy.f snrm2.f90 sscal.f)
46+
set(CB1AUX
47+
isamax.f idamax.f
48+
sasum.f saxpy.f scopy.f sdot.f sgemm.f sgemv.f snrm2.f90 srot.f sscal.f
49+
sswap.f)
4550

46-
set(ZB1AUX idamax.f dasum.f daxpy.f dcopy.f dnrm2.f90 dscal.f)
51+
set(ZB1AUX
52+
icamax.f idamax.f
53+
cgemm.f cherk.f cscal.f ctrsm.f
54+
dasum.f daxpy.f dcopy.f ddot.f dgemm.f dgemv.f dnrm2.f90 drot.f dscal.f
55+
dswap.f
56+
scabs1.f)
4757

4858
#---------------------------------------------------------------------
4959
# Auxiliary routines needed by both the Level 2 and Level 3 BLAS
@@ -88,7 +98,8 @@ if(BUILD_SINGLE)
8898
list(APPEND SOURCES ${SBLAS1} ${ALLBLAS} ${SBLAS2} ${SBLAS3})
8999
endif()
90100
if(BUILD_DOUBLE)
91-
list(APPEND SOURCES ${DBLAS1} ${ALLBLAS} ${DBLAS2} ${DBLAS3})
101+
list(APPEND SOURCES
102+
${DBLAS1} ${DB1AUX} ${ALLBLAS} ${DBLAS2} ${DBLAS3} ${SBLAS3})
92103
endif()
93104
if(BUILD_COMPLEX)
94105
list(APPEND SOURCES ${CBLAS1} ${CB1AUX} ${ALLBLAS} ${CBLAS2} ${CBLAS3})

CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -254,6 +254,7 @@ if(NOT (BUILD_SINGLE OR BUILD_DOUBLE OR BUILD_COMPLEX OR BUILD_COMPLEX16))
254254
BUILD_SINGLE, BUILD_DOUBLE, BUILD_COMPLEX, BUILD_COMPLEX16.")
255255
endif()
256256

257+
257258
# --------------------------------------------------
258259
# Subdirectories that need to be processed
259260
option(USE_OPTIMIZED_BLAS "Whether or not to use an optimized BLAS library instead of included netlib BLAS" OFF)

SRC/CMakeLists.txt

Lines changed: 25 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ set(ALLAUX ilaenv.f ilaenv2stage.f ieeeck.f lsamen.f iparmq.f iparam2stage.F
4242

4343
set(SCLAUX
4444
la_constants.f90
45-
sbdsdc.f
45+
sbdsvdx.f sbdsdc.f
4646
sbdsqr.f sdisna.f slabad.f slacpy.f sladiv.f slae2.f slaebz.f
4747
slaed0.f slaed1.f slaed2.f slaed3.f slaed4.f slaed5.f slaed6.f
4848
slaed7.f slaed8.f slaed9.f slaeda.f slaev2.f slagtf.f
@@ -55,14 +55,16 @@ set(SCLAUX
5555
slasd7.f slasd8.f slasda.f slasdq.f slasdt.f
5656
slaset.f slasq1.f slasq2.f slasq3.f slasq4.f slasq5.f slasq6.f
5757
slasr.f slasrt.f slassq.f90 slasv2.f spttrf.f sstebz.f sstedc.f
58-
ssteqr.f ssterf.f slaisnan.f sisnan.f
58+
sstein.f ssteqr.f ssterf.f sstevx.f
5959
slartgp.f slartgs.f ../INSTALL/sroundup_lwork.f
6060
${SECOND_SRC})
6161

6262
set(DZLAUX
6363
la_constants.f90
64-
dbdsdc.f
65-
dbdsqr.f ddisna.f dlabad.f dlacpy.f dladiv.f dlae2.f dlaebz.f
64+
dbdsdc.f dbdsvdx.f
65+
dbdsqr.f ddisna.f
66+
disnan.f
67+
dlabad.f dlacpy.f dladiv.f dlae2.f dlaebz.f
6668
dlaed0.f dlaed1.f dlaed2.f dlaed3.f dlaed4.f dlaed5.f dlaed6.f
6769
dlaed7.f dlaed8.f dlaed9.f dlaeda.f dlaev2.f dlagtf.f
6870
dlagts.f dlamrg.f dlanst.f
@@ -73,20 +75,21 @@ set(DZLAUX
7375
dlasd0.f dlasd1.f dlasd2.f dlasd3.f dlasd4.f dlasd5.f dlasd6.f
7476
dlasd7.f dlasd8.f dlasda.f dlasdq.f dlasdt.f
7577
dlaset.f dlasq1.f dlasq2.f dlasq3.f dlasq4.f dlasq5.f dlasq6.f
76-
dlasr.f dlasrt.f dlassq.f90 dlasv2.f dpttrf.f dstebz.f dstedc.f
77-
dsteqr.f dsterf.f dlaisnan.f disnan.f
78+
dlasr.f dlasrt.f dlassq.f90 dlasv2.f dlaisnan.f
79+
dpttrf.f
80+
dstebz.f dstedc.f dstein.f dsteqr.f dsterf.f dstevx.f
7881
dlartgp.f dlartgs.f ../INSTALL/droundup_lwork.f
7982
../INSTALL/dlamch.f ${DSECOND_SRC})
8083

8184
set(SLASRC
82-
sbdsvdx.f sgbbrd.f sgbcon.f sgbequ.f sgbrfs.f sgbsv.f
85+
sgbbrd.f sgbcon.f sgbequ.f sgbrfs.f sgbsv.f
8386
sgbsvx.f sgbtf2.f sgbtrf.f sgbtrs.f sgebak.f sgebal.f sgebd2.f
8487
sgebrd.f sgecon.f sgeequ.f sgees.f sgeesx.f sgeev.f sgeevx.f
8588
sgehd2.f sgehrd.f sgelq2.f sgelqf.f
8689
sgels.f sgelsd.f sgelss.f sgelsy.f sgeql2.f sgeqlf.f
8790
sgeqp3.f sgeqr2.f sgeqr2p.f sgeqrf.f sgeqrfp.f sgerfs.f sgerq2.f sgerqf.f
8891
sgesc2.f sgesdd.f sgesv.f sgesvd.f sgesvdx.f sgesvx.f sgetc2.f sgetf2.f
89-
sgetrf2.f sgetri.f
92+
sgetri.f
9093
sggbak.f sggbal.f
9194
sgges.f sgges3.f sggesx.f sggev.f sggev3.f sggevx.f
9295
sggglm.f sgghrd.f sgghd3.f sgglse.f sggqrf.f
@@ -104,7 +107,7 @@ set(SLASRC
104107
slaqtr.f slar1v.f slar2v.f ilaslr.f ilaslc.f
105108
slarf.f slarfb.f slarfb_gett.f slarfg.f slarfgp.f slarft.f slarfx.f slarfy.f slargv.f
106109
slarrv.f slartv.f
107-
slarz.f slarzb.f slarzt.f slaswp.f slasy2.f
110+
slarz.f slarzb.f slarzt.f slasy2.f
108111
slasyf.f slasyf_rook.f slasyf_rk.f slasyf_aa.f
109112
slatbs.f slatdf.f slatps.f slatrd.f slatrs.f slatrz.f
110113
slauu2.f slauum.f sopgtr.f sopmtr.f sorg2l.f sorg2r.f
@@ -114,15 +117,15 @@ set(SLASRC
114117
sormr3.f sormrq.f sormrz.f sormtr.f spbcon.f spbequ.f spbrfs.f
115118
spbstf.f spbsv.f spbsvx.f
116119
spbtf2.f spbtrf.f spbtrs.f spocon.f spoequ.f sporfs.f sposv.f
117-
sposvx.f spotf2.f spotrf2.f spotri.f spstrf.f spstf2.f
120+
sposvx.f spotf2.f spotri.f spstrf.f spstf2.f
118121
sppcon.f sppequ.f
119122
spprfs.f sppsv.f sppsvx.f spptrf.f spptri.f spptrs.f sptcon.f
120123
spteqr.f sptrfs.f sptsv.f sptsvx.f spttrs.f sptts2.f srscl.f
121124
ssbev.f ssbevd.f ssbevx.f ssbgst.f ssbgv.f ssbgvd.f ssbgvx.f
122125
ssbtrd.f sspcon.f sspev.f sspevd.f sspevx.f sspgst.f
123126
sspgv.f sspgvd.f sspgvx.f ssprfs.f sspsv.f sspsvx.f ssptrd.f
124-
ssptrf.f ssptri.f ssptrs.f sstegr.f sstein.f sstev.f sstevd.f sstevr.f
125-
sstevx.f ssycon.f ssyev.f ssyevd.f ssyevr.f ssyevx.f ssygs2.f
127+
ssptrf.f ssptri.f ssptrs.f sstegr.f sstev.f sstevd.f sstevr.f
128+
ssycon.f ssyev.f ssyevd.f ssyevr.f ssyevx.f ssygs2.f
126129
ssygst.f ssygv.f ssygvd.f ssygvx.f ssyrfs.f ssysv.f ssysvx.f
127130
ssytd2.f ssytf2.f ssytrd.f ssytrf.f ssytri.f ssytri2.f ssytri2x.f
128131
ssyswapr.f ssytrs.f ssytrs2.f
@@ -157,7 +160,9 @@ set(SLASRC
157160
ssbev_2stage.f ssbevx_2stage.f ssbevd_2stage.f ssygv_2stage.f
158161
sgesvdq.f)
159162

160-
set(DSLASRC spotrs.f sgetrs.f spotrf.f sgetrf.f)
163+
set(DSLASRC
164+
sgetrf.f sgetrf2.f sgetrs.f sisnan.f slaisnan.f slaswp.f spotrf.f spotrf2.f
165+
spotrs.f)
161166

162167
set(SXLASRC sgesvxx.f sgerfsx.f sla_gerfsx_extended.f sla_geamv.f
163168
sla_gercond.f sla_gerpvgrw.f ssysvxx.f ssyrfsx.f
@@ -271,7 +276,10 @@ set(CXLASRC cgesvxx.f cgerfsx.f cla_gerfsx_extended.f cla_geamv.f
271276
cla_hercond_c.f cla_hercond_x.f cla_herpvgrw.f
272277
cla_lin_berr.f clarscl2.f clascl2.f cla_wwaddw.f)
273278

274-
set(ZCLASRC cpotrs.f cgetrs.f cpotrf.f cgetrf.f)
279+
set(ZCLASRC
280+
cgetrf.f cgetrf2.f cgetrs.f claswp.f cpotrf.f cpotrf2.f cpotrs.f cgetrs.f
281+
cpotrf.f cgetrf.f
282+
sisnan.f slaisnan.f)
275283

276284
set(DLASRC
277285
dbdsvdx.f dgbbrd.f dgbcon.f dgbequ.f dgbrfs.f dgbsv.f
@@ -299,7 +307,7 @@ set(DLASRC
299307
dlaqtr.f dlar1v.f dlar2v.f iladlr.f iladlc.f
300308
dlarf.f dlarfb.f dlarfb_gett.f dlarfg.f dlarfgp.f dlarft.f dlarfx.f dlarfy.f
301309
dlargv.f dlarrv.f dlartv.f
302-
dlarz.f dlarzb.f dlarzt.f dlaswp.f dlasy2.f
310+
dlarz.f dlarzb.f dlarzt.f dlaswp.f dlasy2.f
303311
dlasyf.f dlasyf_rook.f dlasyf_rk.f dlasyf_aa.f
304312
dlatbs.f dlatdf.f dlatps.f dlatrd.f dlatrs.f dlatrz.f dlauu2.f
305313
dlauum.f dopgtr.f dopmtr.f dorg2l.f dorg2r.f
@@ -316,8 +324,8 @@ set(DLASRC
316324
dsbev.f dsbevd.f dsbevx.f dsbgst.f dsbgv.f dsbgvd.f dsbgvx.f
317325
dsbtrd.f dspcon.f dspev.f dspevd.f dspevx.f dspgst.f
318326
dspgv.f dspgvd.f dspgvx.f dsprfs.f dspsv.f dspsvx.f dsptrd.f
319-
dsptrf.f dsptri.f dsptrs.f dstegr.f dstein.f dstev.f dstevd.f dstevr.f
320-
dstevx.f dsycon.f dsyev.f dsyevd.f dsyevr.f
327+
dsptrf.f dsptri.f dsptrs.f dstegr.f dstev.f dstevd.f dstevr.f
328+
dsycon.f dsyev.f dsyevd.f dsyevr.f
321329
dsyevx.f dsygs2.f dsygst.f dsygv.f dsygvd.f dsygvx.f dsyrfs.f
322330
dsysv.f dsysvx.f
323331
dsytd2.f dsytf2.f dsytrd.f dsytrf.f dsytri.f dsytrs.f dsytrs2.f

0 commit comments

Comments
 (0)