Working on a just delivered Cray I am again challenged by the way that
CMake adds libraries to the end of the link line that I did not specify.

The Cray requires use of the compiler wrappers.  After adding the
appropriate libraries (hdf5, z) to my target, the link line is

/opt/cray/craype/2.4.2/bin/CC -DMPICH_IGNORE_CXX_SEEK -std=c++11 -O3 -DNDEBUG -msse2 CMakeFiles/io.dir/io.cxx.o -o io -L/opt/cray/hdf5-parallel/1.8.14/INTEL/14.0/lib ../libtxio.a ../../txstreams/libtxstreams.a /opt/cray/hdf5-parallel/1.8.14/INTEL/14.0/lib/libhdf5.a -Wl,-Bstatic -lz -Wl,-Bdynamic /opt/cray/hdf5-parallel/1.8.14/INTEL/14.0/lib/libhdf5.a -Wl,-Bstatic -lz -Wl,-Bdynamic -Wl,-rpath,/opt/cray/hdf5-parallel/1.8.14/INTEL/14.0/lib

and the link fails with

ld: dynamic STT_GNU_IFUNC symbol `strcmp' with pointer equality in `/usr/lib/../lib64/libc.a(strcmp.o)' can not be used when making an executable; recompile with -fPIE and relink with -pie

Now I believe that Cray has the appropriate libraries in its compiler wrapper, because
if I just link without all the additions:

/opt/cray/craype/2.4.2/bin/CC -DMPICH_IGNORE_CXX_SEEK -std=c++11 -O3 -DNDEBUG -msse2 CMakeFiles/io.dir/io.cxx.o -o io -L/opt/cray/hdf5-parallel/1.8.14/INTEL/14.0/lib ../libtxio.a ../../txstreams/libtxstreams.a /opt/cray/hdf5-parallel/1.8.14/INTEL/14.0/lib/libhdf5.a -lz

it all just works.

Is there a way to tell cmake not to append
"-Wl,-Bdynamic /opt/cray/hdf5-parallel/1.8.14/INTEL/14.0/lib/libhdf5.a -Wl,-Bstatic -lz -Wl,-Bdynamic -Wl,-rpath,/opt/cray/hdf5-parallel/1.8.14/INTEL/14.0/lib"
to the link line and not to insert -Wl,-Bstatic in front of -lz
?

Thx....John Cary

--

Powered by www.kitware.com

Please keep messages on-topic and check the CMake FAQ at: 
http://www.cmake.org/Wiki/CMake_FAQ

Kitware offers various services to support the CMake community. For more 
information on each offering, please visit:

CMake Support: http://cmake.org/cmake/help/support.html
CMake Consulting: http://cmake.org/cmake/help/consulting.html
CMake Training Courses: http://cmake.org/cmake/help/training.html

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Follow this link to subscribe/unsubscribe:
http://public.kitware.com/mailman/listinfo/cmake

Reply via email to