trouble configuring lapack over a server

29 views
Skip to first unread message

insaneSwami

unread,
Jun 2, 2019, 11:19:45 PM6/2/19
to deal.II User Group

Hi,
 I have recently tried installing dealii-9.1.1 remotely over a server using ssh. Couldn't complete the build because I was  linking deal.II, built as a shared library, against LAPACK, built as a static library according to the thread I found at https://groups.google.com/forum/#!searchin/dealii/installation%7Csort:date/dealii/y4kMEcptUjc/gW6pUL7BAwAJ
I tried the suggested solution which is to recompile lapack with -fPIC. But since, I don't have administrative privileges, I have downloaded and compiled a newer version of lapack locally in my home directory with -fPIC. 
Then I passed -DLAPACK_DIR=~/path/to/newlapacklib to cmake and tried making again.  This attempt was also unsuccessful with the same set of errors as before. 
While looking at the error.log file , it seems like somehow the older static lapack library is still being accessed. 
Any idea what should I do next? I'm attaching the log files.
Any help is appreciated.

thanks,

Swami
CMakeError.log
CMakeOutput.log
detailed.log
summary.log

Bruno Turcksin

unread,
Jun 3, 2019, 10:13:07 AM6/3/19
to deal.II User Group
Swami,

Can you show exactly the error that you get when you are compiling? You have multiple libraries that were compiled statically so it could come from any of them.

Best,

Bruno

insaneSwami

unread,
Jun 3, 2019, 11:34:07 AM6/3/19
to deal.II User Group
Hi Bruno,
 Thanks for the response. I have tried making a fresh build using 
cmake -DCMAKE_INSTALL_PREFIX=~/dealii.8.5/installed -DDEAL_II_WITH_MPI=ON -DLAPACK_DIR=~/Downloads/lapack-3.8.0   ../dealii-9.1.1
make -j49

and got the following error:


/usr/bin/ld.gold: error: /usr/local/src/.hashdist/bld/profile/jt2gqapqwvxz/lib/libscalapack.a(slamov.o): requires dynamic R_X86_64_PC32 reloc against 'slacpy_' which may overflow at runtime; recompile with -fPIC
/usr/bin/ld.gold: error: /usr/local/src/.hashdist/bld/profile/jt2gqapqwvxz/lib/libscalapack.a(dlamov.o): requires dynamic R_X86_64_PC32 reloc against 'dlacpy_' which may overflow at runtime; recompile with -fPIC
collect2: error: ld returned 1 exit status
make[2]: *** [lib/libdeal_II.so.9.1.1] Error 1
make[1]: *** [source/CMakeFiles/deal_II.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....
/usr/bin/ld.gold: error: /usr/local/src/.hashdist/bld/profile/jt2gqapqwvxz/lib/libscalapack.a(slamov.o): requires dynamic R_X86_64_PC32 reloc against 'slacpy_' which may overflow at runtime; recompile with -fPIC
/usr/bin/ld.gold: error: /usr/local/src/.hashdist/bld/profile/jt2gqapqwvxz/lib/libscalapack.a(dlamov.o): requires dynamic R_X86_64_PC32 reloc against 'dlacpy_' which may overflow at runtime; recompile with -fPIC
collect2: error: ld returned 1 exit status
make[2]: *** [lib/libdeal_II.g.so.9.1.1] Error 1
make[1]: *** [source/CMakeFiles/deal_II.g.dir/all] Error 2
make: *** [all] Error 2

I am also attaching the new log files and the make.inc file I used to compile lapack locally on my account on the server. 

-Swami.
CMakeError.log
CMakeOutput.log
detailed.log
summary.log
make.inc

Bruno Turcksin

unread,
Jun 3, 2019, 11:53:42 AM6/3/19
to dea...@googlegroups.com
Swami,

Le lun. 3 juin 2019 à 11:34, insaneSwami <manuj...@gmail.com> a écrit :
> /usr/bin/ld.gold: error: /usr/local/src/.hashdist/bld/profile/jt2gqapqwvxz/lib/libscalapack.a(slamov.o): requires dynamic R_X86_64_PC32 reloc against 'slacpy_' which may overflow at runtime; recompile with -fPIC
> /usr/bin/ld.gold: error: /usr/local/src/.hashdist/bld/profile/jt2gqapqwvxz/lib/libscalapack.a(dlamov.o): requires dynamic R_X86_64_PC32 reloc against 'dlacpy_' which may overflow at runtime; recompile with -fPIC
> collect2: error: ld returned 1 exit status
> make[2]: *** [lib/libdeal_II.so.9.1.1] Error 1
> make[1]: *** [source/CMakeFiles/deal_II.dir/all] Error 2
> make[1]: *** Waiting for unfinished jobs....
I think that what happens is that scalapack is using a static version
of Lapack that was compiled without -fPIC. You will probably need to
recompile scalapack to use the version of lapack that you installed
yourself.

Best,

Bruno

insaneSwami

unread,
Jun 3, 2019, 12:11:54 PM6/3/19
to deal.II User Group
Bruno,
If I install a local version of scalapack, willl I be able to pass it on to cmake using -DSCALAPACK_DIR=/path/to/scalapack/installed/locally ?

thanks,
Swami

Bruno Turcksin

unread,
Jun 3, 2019, 12:31:01 PM6/3/19
to dea...@googlegroups.com
Swami,

Le lun. 3 juin 2019 à 12:11, insaneSwami <manuj...@gmail.com> a écrit :
> If I install a local version of scalapack, willl I be able to pass it on to cmake using -DSCALAPACK_DIR=/path/to/scalapack/installed/locally ?
Yes, you will. However, looking at the detailed.log file it looks like
you have several libraries that are static and thus, they could create
problems later on the compilation. You may want to install all the
libraries yourself using spack or candi
(https://github.com/dealii/candi). These packages will take care of
the installation of deal.II and its dependencies (candi won't install
scalapack for you though).

Best,

Bruno
Reply all
Reply to author
Forward
0 new messages