[Wien] Wien2k for AMD Athlon

Gerhard H Fecher fecher at uni-mainz.de
Fri Jun 9 15:20:24 CEST 2006


You are principally right, however, before a new compuilation, the install 
script uses clean.
Usually the users wonder why there have error messages in the first compile 
becaus of the warning that there is nothing to clean.

Ciao Gerhard


Am Freitag, 9. Juni 2006 15:10 schrieb Dr.Bernhard Eck:
> Hello all!
> 
> Please read carefully (the error messages, the questions...), especially
> the one who tries to answer ( and then try to be clear...)
> 
> Natalie reports of the following problem:
> 
> >   I'm trying to install Wien2k 6.03 on AMD Athlon 2600 (Suse Linux 10.0
> >   x86_64) using a 32-bit version of Intel Fortran 9.0 and mkl 8.0.1.
> >   I have already successfully installed the same version of Wien2k
> >   on my Pentium 4 computer, so that on AMD Athlon I use the same
> >   options for compilations:
> >  
> >   Compiler options:        -FR -mp1 -w -prec_div -pc80 -pad -ip 
-DINTEL_VML
> >   Linker Flags:            $(FOPT) -L/opt/intel/mkl/8.0.1/lib/32
> >                            -static-libcxa -lpthread
> >   Preprocessor flags       '-DParallel'
> >   R_LIB (LAPACK+BLAS):     -lmkl_lapack -lmkl -lmkl_ia32 -lguide
> >  
> >   Although I don't have any problems on Pentium, on AMD not all programms
> >   of Wien2k are successfully compiled. In particular, I cannot use
> >   dstart,lapw0,lapwso,optic,qtl and number of other programs, where I get
> >   the same kind of warning:
> >   ---------------------------------------------------------
> >   ld: warning: i386:x86-64 architecture of input file `cputim.o' is
> >   incompatible with i386 output
> >   --------------------------------------------------------
> 
> Lets get a little bit scientific in this error case:  Who reports?
> -> A program named "ld".
> 
> What is "ld" reporting?
> -> The file cputim.o is incompatible with the desired output... No libs
> involved...
> 
> So, who is "ld"? 
> -> "ld" is NOT the compiler! The intel c compiler would be "icc". "ld" is
> the socalled "linker" (AAH! Thats why there are Compiler Options AND
> Linker Flags...). A normal "compile"-run is a two stage process: first,
> generate the object files from the source code (make *.o from *.c or *.f
> files), second, glue all those objetc files together, and drop some libs
> into also. 
> So, in a compile-run first the compiler tries to make the *.o files - but
> be aware that modern Makefiles (which controls what to do) are VERY
> intelligent. If, for example, the file cputim.o is newer than the
> cputim.c file, the file cputim.c  will not be compiled again, but the
> Makefile-process will asume that it is not necessary to do so again.
> Neither the Makefile or the compiler will determine, if the contents of
> the *.o file is in the correct format (whatever this means...). When
> every *.o file is generated, then the linker "ld" puts the object files
> together into one program. BUT: the linker knows what architecture you
> try to build the program for, and "ld" has to look into and has to use
> the *.o files, so if it find a format in the *.o file which is not
> compatible with the architecture he tries to build for, he complains
> about it. Even here I could guess whats gone wrong in your compile run...
> But than you added a few more infomartions in your second mail:
> 
> 
> >   In principle, first I tried to use 64bit mkl when I chose em64t version
> >   of Intel fortran, but got again problems with link to static libraries.
> 
> So, you first tried to compile and link wien2k with a 64 bit compiler,
> and after the failure to do so, you switched back to 32bit. 
> Now, try to remember: you already generated the *.o files in the 64bit
> compile-run, and now a 32bit compile-run starts. The 32bit run just see
> the newer than the source-file *.o file and leave it untouched, and only
> the linker afterwards finds out that the *.o file 64 bit and not 32bit
> as wished... 
> To get rid of the problem, delete all *.o files in your wien2k
> directories (dont forget the SRC* subdirs!) and do a make again. So, you
> get at least the correct *.o files.
> 
> One last problem could be, of course, that you are using a 32 bit fortran
> compiler and a 64 bit c compiler...
> 
> 
---------------------------------------------------------------------------------------
> Abstract: make sure you are using the correct compiler versions for
> fortran and c. Make sure you start fresh after errors. Start fresh means:
> delete all *.o files...
> 
---------------------------------------------------------------------------------------
> 
>  Regards,
> 
> 	Bernhard Eck
> 
> ***********************************************
> Dr. Bernhard Eck
> RWTH Aachen University
> Department of Inorganic Chemistry
> Landoltweg 1
> D-52074 Aachen
> Tel.: ++49 241 809 4755
> Fax:  ++49 241 809 2288
> 
> http://www.ssc.rwth-aachen.de/Ww/group/bernhard/
> eMail: bernhard.eck at ac.rwth-aachen.de
> ***********************************************
> 
> _______________________________________________
> Wien mailing list
> Wien at zeus.theochem.tuwien.ac.at
> http://zeus.theochem.tuwien.ac.at/mailman/listinfo/wien
> 


More information about the Wien mailing list