compilation HFX - sopt

marc marcvanh... at gmail.com
Tue May 5 15:39:49 UTC 2009


Dear Jörg,

the libraries were really there, but anyway your comment made me
realise that my path settings of my libraries weren't correct.  I
corrected it and now it works.  I didn't fully realise that the libstdc
++ actually needed a path... I thought just including the necessary
libraries in the arch-file would be enough...

thanks a lot for your help
cheers!

marc



On May 5, 4:26 pm, Jörg Saßmannshausen
<jorg.sassm... at strath.ac.uk> wrote:
> Dear Marc,
>
> are you sure you got the libstdc++ actually installed?
> As:
>   ld: cannot find -lstdc++
> looks like it the linker cannot find it and usually this would be in the
> linker search path.
>
> You don't need these ones:
> /usr/lib/gcc/x86_64-linux-gnu/4.1.2/32/libstdc++.a
> /usr/lib/libstdc++.so.6
> (are these files actually there??)
>
> all you need to add is:
> -lstdc++
>
> Which distro are you using?
> On rpm based distros you can do:
> rpm -qa | grep libstdc*
>
> on dpk distros you can try:
> dpkg -l libstdc*
>
> Just some sentiments.
>
> All the best from a rainy Glasgow!
>
> Jörg
>
>
>
> marc wrote:
> > thanks you for the answer manuel.  I left out the comments(#) so I
> > used this arch file:
>
> > CC       = cc
> > CPP      =
> > FC       = g95
> > LD       = g95
> > AR       = ar -r
> > DFLAGS   = -D__G95 -D__FFTSG -D__FFTW3 -D__LIBINT
> > CPPFLAGS =
> > FCFLAGS  = $(DFLAGS) -ffree-form -O2 -ffast-math -march=opteron -cpp -
> > I/usr/include
> > LDFLAGS  = $(FCFLAGS)
> > LIBPATH  = /home/marc/build/libraries
> > LIBS     = $(LIBPATH)/lapack-3.2.1/lapack_G95.a \
> >            $(LIBPATH)/BLAS/blas_G95.a \
> >            $(LIBPATH)/libint-1.1.2/compilation_folder/lib/libderiv.a \
> >            $(LIBPATH)/libint-1.1.2/compilation_folder/lib/libint.a \
> >            $(LIBPATH)/fftw-3.2.1/compilation_folder/lib/libfftw3.a \
> >            /usr/lib/gcc/x86_64-linux-gnu/4.1.2/32/libstdc++.a \
> >            /usr/lib/libstdc++.so.6 \
> >            -lstdc++ -lpthread
>
> > OBJECTS_ARCHITECTURE = machine_g95.o
>
> > ,but now the error is
>
> > Warning (158): INTENT(OUT) variable 'e' at (1) is never set
> > ar: creating /home/marc/build/cp2k/2009-04-27/makefiles/../lib/Linux-
> > x86-64-g95/sopt/libcp2k_lib.a
> > ld: cannot find -lstdc++
> > make[1]: *** [/home/marc/build/cp2k/2009-04-27/makefiles/../exe/Linux-
> > x86-64-g95/cp2k.sopt] Error 1
> > make: *** [build] Error 2
>
> > So if you say _gxx_personality errors mean that -lstdc++ cannot be
> > found, this is apparently the same problem now...  no?  Actually I
> > already encountered this error before (ld: cannot find -lstdc++), so I
> > tried to "add" it by including the libraries I originally commented
> > out, but as you can see I get more or less the same error.  So I think
> > the main problem is that for some reason I don't succeed in letting
> > cp2k to recognize -lstdc++.  I've looked at other input files but they
> > all just mention this... as is explained in the README of the
> > libint_tools.
>
> > thank you very much for your comments on this.
>
> > ciao
>
> > marc
>
> > On 5 mei, 14:03, mguidon <manuel... at gmail.com> wrote:
> >> Hi Marc.
>
> >> Your first way of doing it was correct. Just remove the # comments
> >> from your arch file (otherwise, libraries that come afterwards are
> >> ignored)
>
> >> In general, _gxx_personality errors mean, that -lstdc++ could not be
> >> found.
>
> >> Cheers
>
> >> Manuel
>
> >> On May 5, 12:56 pm, marc <marcvanh... at gmail.com> wrote:
>
> >>> CC       = cc
> >>> CPP      =
> >>> Dear all,
> >>> I succesfully compiled cp2k.sopt (no libint) on a x86-64 linux machine
> >>> with g95.  Now I want to include hf exchange using libint 1.1.2.  My
> >>> arch-file (Linux-x86-64-g95.sopt) looks like this.
> >>> FC       = g95
> >>> LD       = g95
> >>> AR       = ar -r
> >>> DFLAGS   = -D__G95 -D__FFTSG -D__FFTW3 -D__LIBINT
> >>> CPPFLAGS =
> >>> FCFLAGS  = $(DFLAGS) -ffree-form -O2 -ffast-math -march=opteron -cpp -
> >>> I/usr/include
> >>> LDFLAGS  = $(FCFLAGS)
> >>> LIBPATH  = /home/marc/build/libraries
> >>> LIBS     = $(LIBPATH)/lapack-3.2.1/lapack_G95.a \
> >>>            $(LIBPATH)/BLAS/blas_G95.a \
> >>>            $(LIBPATH)/libint-1.1.2/compilation_folder/lib/libderiv.a \
> >>>            $(LIBPATH)/libint-1.1.2/compilation_folder/lib/libint.a \
> >>>            $(LIBPATH)/fftw-3.2.1/compilation_folder/lib/libfftw3.a \
> >>>            #/usr/lib/gcc/x86_64-linux-gnu/4.1.2/32/libstdc++.a \
> >>>            #/usr/lib/gcc-lib/x86_64-linux-gnu/3.3.6/libstdc++.so \
> >>>            #/usr/lib/libstdc++.so.5 \
> >>>            -lstdc++ -lpthread
> >>> OBJECTS_ARCHITECTURE = machine_g95.o
> >>> Initially I compiled libint just with a prefix and the option --enable
> >>> deriv.  Then I got an error like this:
> >>> I get errors like this:
> >>> ar: creating /home/marc/build/cp2k/2009-04-27/makefiles/../lib/Linux-
> >>> x86-64-g95/sopt/libcp2k_lib.a
> >>> /home/marc/build/libraries/libint-1.1.2/compilation_folder/lib/
> >>> libderiv.a(init_libderiv.o):(.eh_frame+0x12): undefined reference to
> >>> `__gxx_personality_v0'
> >>> /home/marc/build/libraries/libint-1.1.2/compilation_folder/lib/
> >>> libderiv.a(d12hrr_order_0000.o):(.eh_frame+0x12): undefined reference
> >>> to `__gxx_personality_v0'
> >>> /home/marc/build/libraries/libint-1.1.2/compilation_folder/lib/
> >>> libderiv.a(d12hrr_order_00d0.o):(.eh_frame+0x12): undefined reference
> >>> to `__gxx_personality_v0'
> >>> /home/marc/build/libraries/libint-1.1.2/compilation_folder/lib/
> >>> libderiv.a(d12hrr_order_00dd.o):(.eh_frame+0x12): undefined reference
> >>> to `__gxx_personality_v0'
> >>> /home/marc/build/libraries/libint-1.1.2/compilation_folder/lib/
> >>> libderiv.a(d12hrr_order_00dp.o):(.eh_frame+0x12): undefined reference
> >>> to `__gxx_personality_v0'
> >>> /home/marc/build/libraries/libint-1.1.2/compilation_folder/lib/
> >>> libderiv.a(d12hrr_order_00p0.o):(.eh_frame+0x12): more undefined
> >>> references to `__gxx_personality_v0' follow
> >>> make[1]: *** [/home/marc/build/cp2k/2009-04-27/makefiles/../exe/Linux-
> >>> x86-64-g95/cp2k.sopt] Error 1
> >>> make: *** [build] Error 2
> >>> Then, a collegue thought that the problem could be in the underscores,
> >>> so I compiled libint again with the options " --enable-deriv FFLAGS='-
> >>> fno-second-underscore -g -O2' ".  The previous errors are now gone,
> >>> but now I get an even more strange error like this:
> >>> Warning (158): INTENT(OUT) variable 'e' at (1) is never set
> >>> ar: creating /home/marc/build/cp2k/2009-04-27/makefiles/../lib/Linux-
> >>> x86-64-g95/sopt/libcp2k_lib.a
> >>> g95:  : No such file or directory
> >>> make[1]: *** [/home/marc/build/cp2k/2009-04-27/makefiles/../exe/Linux-
> >>> x86-64-g95/cp2k.sopt] Error 1
> >>> make: *** [build] Error 2
> >>> cp2k can't find g95??  I started compiling in the first place, so I
> >>> definitely symlinked my g95-executable (/opt/g95/0.91_32/bin/x86_64-
> >>> suse-linux-gnu-g95) with the command "g95" correct, so I don't really
> >>> understand this error message...
> >>> Any ideas?
> >>> thanks in advance!!
>
> --
> *************************************************************
> Jörg Saßmannshausen
> Research Fellow
> University of Strathclyde
> Department of Pure and Applied Chemistry
> 295 Cathedral St.
> Glasgow
> G1 1XL
>
> email: jorg.sassm... at strath.ac.uk
> web:http://sassy.formativ.net
>
> Please avoid sending me Word or PowerPoint attachments.
> Seehttp://www.gnu.org/philosophy/no-word-attachments.html


More information about the CP2K-user mailing list