On Sat, Jun 11, 2016 at 8:30 PM, Jayaraman, Vegnesh <vjayr...@illinois.edu>
wrote:

> Hi
>
> I am trying to install Libmesh  with DTK and Trilinos
>
> I am getting the following error
>
> /usr/bin/ld:
> /home/vegnesh/codes/trilinos/testbuild/DataTransferKit/packages/Adapters/ClassicDTK/src/libclassic_dtk.a(DTK_CommIndexer.cpp.o):
> relocation R_X86_64_32 against `.rodata' can not be used when making a
> shared object; recompile with -fPIC
> /home/vegnesh/codes/trilinos/testbuild/DataTransferKit/packages/Adapters/ClassicDTK/src/libclassic_dtk.a:
> error adding symbols: Bad value
> collect2: error: ld returned 1 exit status
> make[1]: *** [libmesh_opt.la] Error 1
> make[1]: *** Waiting for unfinished jobs....
> /usr/bin/ld:
> /home/vegnesh/codes/trilinos/testbuild/DataTransferKit/packages/Adapters/ClassicDTK/src/libclassic_dtk.a(DTK_CommIndexer.cpp.o):
> relocation R_X86_64_32 against `.rodata' can not be used when making a
> shared object; recompile with -fPIC
> /home/vegnesh/codes/trilinos/testbuild/DataTransferKit/packages/Adapters/ClassicDTK/src/libclassic_dtk.a:
> error adding symbols: Bad value
> collect2: error: ld returned 1 exit status
> make[1]: *** [libmesh_devel.la] Error 1
> /usr/bin/ld:
> /home/vegnesh/codes/trilinos/testbuild/DataTransferKit/packages/Adapters/ClassicDTK/src/libclassic_dtk.a(DTK_CommIndexer.cpp.o):
> relocation R_X86_64_32 against `.rodata' can not be used when making a
> shared object; recompile with -fPIC
> /home/vegnesh/codes/trilinos/testbuild/DataTransferKit/packages/Adapters/ClassicDTK/src/libclassic_dtk.a:
> error adding symbols: Bad value
>
>
> It tells recompile with -fPIC. I have tried a lot of stuff. My configure
> commands for Trilinos and Libmesh are given below:
>
>
> Trilinos:
>
> cmake  -D CMAKE_BUILD_TYPE:STRING=DEBUG  -D
> CMAKE_VERBOSE_MAKEFILE:BOOL=OFF -D TPL_ENABLE_MPI:BOOL=ON
> -DTrilinos_ENABLE_OpenMP:BOOL=ON -D TPL_ENABLE_BLAS=ON -D
> BLAS_LIBRARY_NAMES="blas;gfortran" -D
> BLAS_LIBRARY_DIRS=/home/vegnesh/codes/LAPACK/lapack-3.5.0 -D
> TPL_ENABLE_LAPACK=ON -D LAPACK_LIBRARY_NAMES="lapack;gfortran" -D
> LAPACK_LIBRARY_DIRS=/home/vegnesh/codes/LAPACK/lapack-3.5.0
> -DTrilinos_ENABLE_STK=OFF -DTrilinos_ENABLE_Ifpack=ON
> -DTrilinos_ENABLE_Ifpack2=ON -DTrilinos_ENABLE_Teuchos=ON
> -DTrilinos_ENABLE_ML=ON -DTrilinos_ENABLE_NOX=ON
> -DTrilinos_ENABLE_AztecOO=ON -DTrilinos_ENABLE_Epetra=ON
> -DTrilinos_ENABLE_EpetraExt=ON -DTrilinos_ENABLE_CXX11:BOOL=ON
> -DTrilinos_ENABLE_ALL_OPTIONAL_PACKAGES:BOOL=OFF
> -DTrilinos_ASSERT_MISSING_PACKAGES=OFF
> -DTrilinos_EXTRA_REPOSITORIES="DataTransferKit"
> -DTrilinos_ENABLE_DataTransferKit:BOOL=ON
> -DDataTransferKit_ENABLE_DBC:BOOL=ON -DTPL_ENABLE_MOAB=OFF
> -DTPL_ENABLE_Libmesh=OFF  -DTPL_ENABLE_Netcdf=OFF
> -DTrilinos_ENABLE_ALL_PACKAGES=ON  -DDataTransferKit_ENABLE_TESTS:BOOL=ON
> -DDataTransferKit_ENABLE_EXAMPLES:BOOL=ON -DCMAKE_CXX_FLAGS= "-fPIC"
> /home/vegnesh/codes/trilinos/Trilinos   >  Trilinos_CMAKE_Log
>
>
>
>
>
> Libmesh:
>
> ./configure --prefix=/home/vegnesh/codes/libmesh_dtkinstall
> --enable-tecplot --enable-default-comm-world --with-cxx=`which mpicxx`
> --with-cc=`which mpicc` --with-fc=`which mpif90` --with-f77=`which mpif77`
> --with-tbb=/home/vegnesh/codes/tbb44_20151115oss
> --with-tbb-lib=/home/vegnesh/codes/tbb44_20151115oss/build/linux_intel64_gcc_cc4.9.3_libc2.20_kernel3.17.4_release
> libmesh_CXXFLAGS="-fPIC"  > Libmesh_Configure
>
>
>
> Can somebody help me with the issue.
>


The cause of your linking error is that you are builing libmesh with shared
(aka dynamic) libs and Trilinos has been built with static libs.  You can't
link these two types of libraries together unless you compile the former
with position independent code (aka -fPIC).

I think your easiest option is to just rebuild Trilinos with shared
libraries turned on.  This should be accomplished by passing:

-D BUILD_SHARED_LIBS=ON

to the cmake command you used above.

-- 
John
------------------------------------------------------------------------------
What NetFlow Analyzer can do for you? Monitors network bandwidth and traffic
patterns at an interface-level. Reveals which users, apps, and protocols are 
consuming the most bandwidth. Provides multi-vendor support for NetFlow, 
J-Flow, sFlow and other flows. Make informed decisions using capacity 
planning reports. https://ad.doubleclick.net/ddm/clk/305295220;132659582;e
_______________________________________________
Libmesh-users mailing list
Libmesh-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/libmesh-users

Reply via email to