[Wien] undefined function calls when linking to BLAS/LAPACK

pieper at ifp.tuwien.ac.at pieper at ifp.tuwien.ac.at
Fri May 14 18:52:21 CEST 2004


Hello AMD-fans, (or guys stuck with one, like me)

I experience similar problems with the configuration, AMD-XP, Wien2k_03, ATLAS
(3.6.0), and the new c-libraries in Linux (SuSe 8.2).

I am a newby in this programming stuff but I noticed that the difficulties start
already with compiling the ATLAS BLAS. I think the problem is that you get the
libs even without any FORTRAN compiler (the programs are in C). If the ATLAS
install script does not recognize your FORTRAN compiler, it will not produce any
FORTRAN interface. You will see a corresponding message when running

make install archiv=something

ATLAS asks you for the fortran compiler, you tell it its ifort, give the
options, and ATLAS starts a few lines later line looking for the FORTRAN to C
interface conventions. It complains then that it can't find these, continues,
but you then cannot link the code to FORTRAN. Notice that the ATLAS install text
mentions that you will also not be able to verify the sanity of the BLAS lib yousing

make sanity_test archiv=something

I had this problem. If you also are unable to do test I think this is a good
indication that just this went wrong.

I could do the sanity test after installing ATLAS with ifort 8.0 and the options

-mp -w -nofor_main -static

see the ifort 8.0 user guide for nofor_main, but never ask me why I had to use
-static to talk the ATLAS script into finding and using ifort ...

There may be further problems down the road, but at least Wien2k compiled
without errors at the end of ./siteconf_lapw. The otions settings for Wien2k were:

current:FOPT:-FR -mp -w -nofor_main
current:FPOPT:-FR -mp -w
current:LDFLAGS:-L../SRC_lib -L/usr/lib -L/opt/ATLAS/lib/lin-K7 -Vaxlib -static
current:DPARALLEL:'-DParallel'
current:R_LIBS:-llapack_lapw -lf77blas -lcblas -latlas -lguide -lpthread

I recall that there was some mail by Lutz Rausch that -static leeds to errors
with intels mkl 6.1, and I did not test this built in any way up to now (just
compiled, sorry), so there may be plenty of problems ahead.

Please inform me, when (and how) you succeeded, just in case I get stuck on the
way again (I also have to get this thing running soon).

Martin









Quoting Peer Kruse <peer.kruse at lem.uni-karlsruhe.de>:

> Hello,
> I found a little hint on the ATLAS errata Page, but I didn't solve the 
> problem up to now. It reads
> 
> /I'm linking with C, and getting missing symbols (such as 
> w_wsfe,do_fio,w_esfe or s_stop.
> These kinds of symbols are Fortran library calls. The problem is that 
> the C linker does not automatically find the Fortran libraries. The most 
> common fix is to either link using your fortran linker, or to rewrite 
> your code so that Fortran routines are not called. If you know where 
> they are, you can also choose to link in the Fortran libraries explicitly
> /
> I thought the linking would be done with -llapack -lf77blas -lcblas 
> -latlas -lguide -lpthread
> Obviously this is not the case for this problem. It doesn't help to link 
> the complete libXXX.a files of atlas as well. Does anyone know if these 
> libraries are the fortran libraries or are they
> C libraries (you surely noticed I am coming from the C-side of the world)?
> 
> kind regards
> 
> Peer
> 
> 
> kjharris wrote:
> 
> >I hope someone can give me a hand with the problem I'm having when
> attempting
> >to compile WIEN. I can compile with the given unoptimized lapack/blas 
> >libraries
> >when I use the flags with the intel version 8.0 compilers and specify the 
> >libraries twice:
> >
> >     O   Compiler options:        -FR -mp -w
> >     L   Linker Flags:            -L../SRC_lib
> >     P   Preprocessor flags       '-DParallel'
> >     R   R_LIB (LAPACK+BLAS):     -llapack_lapw -lblas_lapw -lguide
> -lpthread 
> >-llapack_lapw -lblas_lapw -lguide -lpthread
> >
> >
> >
> >
> >but when I try to link in instead a compiled version of atlas via the
> flags:
> >
> >     O   Compiler options:        -FR -mp -w
> >     L   Linker Flags:            
> >-L/home/softinstalls/ATLAS/lib/Linux_ATHLONSSE1
> >     P   Preprocessor flags       '-DParallel'
> >     R   R_LIB (LAPACK+BLAS):     -llapack -lf77blas -lcblas -latlas -lguide
> 
> >-lpthread -llapack -lf77blas -lcblas -latlas -lguide -lpthread
> >
> >
> >I get errors in SRC_lapw1, SRC_lapw2, SRC_lapwdm, SRC_lapwso, SRC_qtl that
> >look like:
> >
> >.
> >.
> >.
> >rm pzher2m_tmp_.F
> >ifort  -o ./lapw1 abc.o atpar.o bandv1.o calkpt.o cbcomb.o coors.o cputim.o
> 
> >dblr
> >2k.o dgeqrl.o dgewy.o dgewyg.o dlbrfg.o dsbein1.o dscgst.o dstebz2.o
> dsyevx2.o 
> >d
> >symm2.o dsyr2m.o dsyrb4.o dsyrb5l.o dsyrdt4.o dsytrd2.o dsywyv.o dsyxev4.o 
> >dvbes
> >1.o eisps.o errclr.o errflg.o forfhs.o gaunt1.o gaunt2.o gbass.o gtfnam.o 
> >hamilt
> >.o hns.o horb.o inikpt.o inilpw.o lapw1.o latgen.o lmsort.o locdef.o lohns.o
> 
> >lop
> >w.o matmm.o modules.o nn.o outerr.o outwin.o pdsyevx16.o prtkpt.o prtres.o 
> >pzhee
> >vx16.o rdswar.o rint13.o rotate.o rotdef.o seclit.o seclr4.o seclr5.o
> select.o 
> >s
> >ervice.o setkpt.o setwar.o sphbes.o stern.o tapewf.o ustphx.o vectf.o
> warpin.o 
> >w
> >fpnt.o wfpnt1.o ylm.o zhcgst.o zheevx2.o zhemm2.o zher2m.o zhetrd2.o
> pdsyr2m.o 
> >p
> >zher2m.o -L/home/softinstalls/ATLAS/lib/Linux_ATHLONSSE1 -llapack -lf77blas
> 
> >-lcb
> >las -latlas -lguide -lpthread -llapack -lf77blas -lcblas -latlas -lguide 
> >-lpthre
> >ad 
> >bandv1.o(.text+0xcdc): In function `bandv1_':
> >: undefined reference to `dlarnv_'
> >dgeqrl.o(.text+0x124): In function `dgeqrl_':
> >: undefined reference to `dlarf_'
> >dgeqrl.o(.text+0x269): In function `dgeqrl_':
> >: undefined reference to `dlarf_'
> >dlbrfg.o(.text+0x94): In function `dlbrfg_':
> >: undefined reference to `dlapy2_'
> >dlbrfg.o(.text+0xf5): In function `dlbrfg_':
> >: undefined reference to `dlamch_'
> >dlbrfg.o(.text+0x105): In function `dlbrfg_':
> >: undefined reference to `dlamch_'
> >dlbrfg.o(.text+0x1d7): In function `dlbrfg_':
> >: undefined reference to `dlapy2_'
> >dsbein1.o(.text+0x551): In function `dsbein1_':
> >: undefined reference to `dstein_'
> >dscgst.o(.text+0x278): In function `dscgst_':
> >: undefined reference to `dsygs2_'
> >dstebz2.o(.text+0x157): In function `dstebz2_':
> >: undefined reference to `dlamch_'
> >dstebz2.o(.text+0x16a): In function `dstebz2_':
> >: undefined reference to `dlamch_'
> >dstebz2.o(.text+0x95d): In function `dstebz2_':
> >: undefined reference to `dlaebz_'
> >dstebz2.o(.text+0xae9): In function `dstebz2_':
> >: undefined reference to `dlaebz_'
> >dstebz2.o(.text+0x14bb): In function `dstebz2_':
> >: undefined reference to `dlaebz_'
> >dsyevx2.o(.text+0x3ab): In function `dsyevx2_':
> >: undefined reference to `dlamch_'
> >dsyevx2.o(.text+0x3be): In function `dsyevx2_':
> >: undefined reference to `dlamch_'
> >dsyevx2.o(.text+0x4b8): In function `dsyevx2_':
> >: undefined reference to `dlansy_'
> >dsyevx2.o(.text+0x83b): In function `dsyevx2_':
> >: undefined reference to `dsterf_'
> >dsyevx2.o(.text+0xc9e): In function `dsyevx2_':
> >: undefined reference to `dlacpy_'
> >dsyevx2.o(.text+0xcd1): In function `dsyevx2_':
> >: undefined reference to `dorgtr_'
> >dsyevx2.o(.text+0xd3d): In function `dsyevx2_':
> >: undefined reference to `dsteqr_'
> >dsyevx2.o(.text+0xe78): In function `dsyevx2_':
> >: undefined reference to `dstein_'
> >dsyevx2.o(.text+0xed6): In function `dsyevx2_':
> >: undefined reference to `dormtr_'
> >dsyrdt4.o(.text+0x2b5): In function `dsyrdt4_':
> >: undefined reference to `dsbtrd_'
> >dsytrd2.o(.text+0x216): In function `dsytrd2_':
> >: undefined reference to `dlatrd_'
> >dsytrd2.o(.text+0x427): In function `dsytrd2_':
> >: undefined reference to `dsytd2_'
> >dsytrd2.o(.text+0x500): In function `dsytrd2_':
> >: undefined reference to `dlatrd_'
> >dsytrd2.o(.text+0x756): In function `dsytrd2_':
> >: undefined reference to `dsytd2_'
> >dsyxev4.o(.text+0x340): In function `dsyxev4_':
> >: undefined reference to `dlamch_'
> >dsyxev4.o(.text+0x353): In function `dsyxev4_':
> >: undefined reference to `dlamch_'
> >dsyxev4.o(.text+0x44d): In function `dsyxev4_':
> >: undefined reference to `dlansy_'
> >dsyxev4.o(.text+0x998): In function `dsyxev4_':
> >: undefined reference to `dormtr_'
> >seclit.o(.text+0x2329): In function `seclit_':
> >: undefined reference to `dsygst_'
> >seclit.o(.text+0x24f8): In function `seclit_':
> >: undefined reference to `dsyevx_'
> >zhcgst.o(.text+0x280): In function `zhcgst_':
> >: undefined reference to `zhegs2_'
> >zheevx2.o(.text+0x3e4): In function `zheevx2_':
> >: undefined reference to `dlamch_'
> >zheevx2.o(.text+0x3f7): In function `zheevx2_':
> >: undefined reference to `dlamch_'
> >zheevx2.o(.text+0x4f1): In function `zheevx2_':
> >: undefined reference to `zlanhe_'
> >zheevx2.o(.text+0x83c): In function `zheevx2_':
> >: undefined reference to `dsterf_'
> >zheevx2.o(.text+0xca1): In function `zheevx2_':
> >: undefined reference to `zlacpy_'
> >zheevx2.o(.text+0xcd4): In function `zheevx2_':
> >: undefined reference to `zungtr_'
> >zheevx2.o(.text+0xd5b): In function `zheevx2_':
> >: undefined reference to `zsteqr_'
> >zheevx2.o(.text+0xe89): In function `zheevx2_':
> >: undefined reference to `zstein_'
> >zheevx2.o(.text+0xee4): In function `zheevx2_':
> >: undefined reference to `zunmtr_'
> >zhetrd2.o(.text+0x232): In function `zhetrd2_':
> >: undefined reference to `zlatrd_'
> >zhetrd2.o(.text+0x48b): In function `zhetrd2_':
> >: undefined reference to `zhetd2_'
> >zhetrd2.o(.text+0x56a): In function `zhetrd2_':
> >: undefined reference to `zlatrd_'
> >zhetrd2.o(.text+0x806): In function `zhetrd2_':
> >: undefined reference to `zhetd2_'
> >/home/softinstalls/ATLAS/lib/Linux_ATHLONSSE1/liblapack.a(ilaenv.o)(.text+0x10
> >b):
> > In function `ilaenv_':
> >: undefined reference to `s_copy'
> >/home/softinstalls/ATLAS/lib/Linux_ATHLONSSE1/liblapack.a(ilaenv.o)(.text+0x16
> >7):
> > In function `ilaenv_':
> >: undefined reference to `s_copy'
> >/home/softinstalls/ATLAS/lib/Linux_ATHLONSSE1/liblapack.a(ilaenv.o)(.text+0x1d
> >0):
> > In function `ilaenv_':
> >: undefined reference to `s_copy'
> >/home/softinstalls/ATLAS/lib/Linux_ATHLONSSE1/liblapack.a(ilaenv.o)(.text+0x1f
> >4):
> > In function `ilaenv_':
> >: undefined reference to `s_copy'
> >/home/softinstalls/ATLAS/lib/Linux_ATHLONSSE1/liblapack.a(ilaenv.o)(.text+0x21
> >8):
> > In function `ilaenv_':
> >: undefined reference to `s_copy'
> >/home/softinstalls/ATLAS/lib/Linux_ATHLONSSE1/liblapack.a(ilaenv.o)(.text+0x2b
> >9):
> > In function `ilaenv_':
> >: undefined reference to `s_cmp'
> >/home/softinstalls/ATLAS/lib/Linux_ATHLONSSE1/liblapack.a(ilaenv.o)(.text+0x2e
> >5):
> > In function `ilaenv_':
> >: undefined reference to `s_cmp'
> >/home/softinstalls/ATLAS/lib/Linux_ATHLONSSE1/liblapack.a(ilaenv.o)(.text+0x30
> >d):
> > In function `ilaenv_':
> >: undefined reference to `s_cmp'
> >/home/softinstalls/ATLAS/lib/Linux_ATHLONSSE1/liblapack.a(ilaenv.o)(.text+0x33
> >5):
> > In function `ilaenv_':
> >: undefined reference to `s_cmp'
> >/home/softinstalls/ATLAS/lib/Linux_ATHLONSSE1/liblapack.a(ilaenv.o)(.text+0x35
> >d):
> > In function `ilaenv_':
> >: undefined reference to `s_cmp'
> >/home/softinstalls/ATLAS/lib/Linux_ATHLONSSE1/liblapack.a(ilaenv.o)(.text+0x38
> >9):
> > more undefined references to `s_cmp' follow
> >/home/softinstalls/ATLAS/lib/Linux_ATHLONSSE1/libf77blas.a(xerbla.o)(.text+0xb
> >): 
> >In function `xerbla_':
> >: undefined reference to `s_wsfe'
> >/home/softinstalls/ATLAS/lib/Linux_ATHLONSSE1/libf77blas.a(xerbla.o)(.text+0x2
> >7):
> > In function `xerbla_':
> >: undefined reference to `do_fio'
> >/home/softinstalls/ATLAS/lib/Linux_ATHLONSSE1/libf77blas.a(xerbla.o)(.text+0x4
> >3):
> > In function `xerbla_':
> >: undefined reference to `do_fio'
> >/home/softinstalls/ATLAS/lib/Linux_ATHLONSSE1/libf77blas.a(xerbla.o)(.text+0x4
> >8):
> > In function `xerbla_':
> >: undefined reference to `e_wsfe'
> >/home/softinstalls/ATLAS/lib/Linux_ATHLONSSE1/libf77blas.a(xerbla.o)(.text+0x5
> >c):
> > In function `xerbla_':
> >: undefined reference to `s_stop'
> >make[1]: *** [lapw1] Error 1
> >make[1]: Leaving directory `/home/softinstalls/wien/SRC_lapw1'
> >make: *** [real] Error 2
> >
> >
> >I thought perhaps I had built atlas/blas wrong so I downloaded a
> pre-compiled 
> >version
> >from the atlas website and ran it with the flags:
> >
> >     O   Compiler options:        -FR -mp -w
> >     L   Linker Flags:            -L/home/softinstalls/Linux_ATHLON/lib
> >     P   Preprocessor flags       '-DParallel'
> >     R   R_LIB (LAPACK+BLAS):     -llapack -lf77blas -lcblas -latlas -lguide
> 
> >-lpthread -llapack -lf77blas -lcblas -latlas -lguide -lpthread
> >
> >only to find the same errors as with the ATLAS that I built.
> >
> >
> >-------------------
> >
> >Which of the ATLAS libraries are necessary to link to?
> >Any suggestions for a  fix?
> >
> >
> >
> >p.s.
> >Does anyone run one of the intel compilers on amd athlon-XP architecture?
> does 
> >it work at all? speed compared to ATLAS?
> >
> >
> >_______________________________________________
> >Wien mailing list
> >Wien at zeus.theochem.tuwien.ac.at
> >http://zeus.theochem.tuwien.ac.at/mailman/listinfo/wien
> >
> >
> >  
> >
> 
> 




-------------------------------------------------
This mail sent through IMP: http://horde.org/imp/




More information about the Wien mailing list