<div dir="ltr"><div><div><div>Hi John,<br><br></div>Can you try using the new Cray platform file?  It should better handle the implicit libs and dirs used by the compiler wrappers if you have the appropriate modules loaded (cray-hdf5 for HDF5 libs, craype-sandybridge or whatever your compute node CPU is for the -msse2 flag, etc.):<br><br></div>cmake -DCMAKE_SYSTEM_NAME=CrayLinuxEnvironment /path/to/source<br><br></div>It's not available in a release yet so you'll need to build cmake from the git master branch to try it.  Just be sure to build cmake using the system compilers, i.e. /usr/bin/gcc and /usr/bin/g++ on the login node and not the Cray PrgEnv compiler wrappers.<br><div><div><div><div><div><div class="gmail_extra"><br clear="all"><div><div class="gmail_signature"><div dir="ltr">- Chuck<br></div></div></div>
<br><div class="gmail_quote">On Fri, Dec 18, 2015 at 11:12 AM, JR Cary <span dir="ltr"><<a href="mailto:cary@txcorp.com" target="_blank">cary@txcorp.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Working on a just delivered Cray I am again challenged by the way that<br>
CMake adds libraries to the end of the link line that I did not specify.<br>
<br>
The Cray requires use of the compiler wrappers.  After adding the<br>
appropriate libraries (hdf5, z) to my target, the link line is<br>
<br>
/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<br>
<br>
and the link fails with<br>
<br>
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<br>
<br>
Now I believe that Cray has the appropriate libraries in its compiler wrapper, because<br>
if I just link without all the additions:<br>
<br>
/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<br>
<br>
it all just works.<br>
<br>
Is there a way to tell cmake not to append<br>
"-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"<br>
to the link line and not to insert -Wl,-Bstatic in front of -lz<br>
?<br>
<br>
Thx....John Cary<br>
<br>
-- <br>
<br>
Powered by <a href="http://www.kitware.com" rel="noreferrer" target="_blank">www.kitware.com</a><br>
<br>
Please keep messages on-topic and check the CMake FAQ at: <a href="http://www.cmake.org/Wiki/CMake_FAQ" rel="noreferrer" target="_blank">http://www.cmake.org/Wiki/CMake_FAQ</a><br>
<br>
Kitware offers various services to support the CMake community. For more information on each offering, please visit:<br>
<br>
CMake Support: <a href="http://cmake.org/cmake/help/support.html" rel="noreferrer" target="_blank">http://cmake.org/cmake/help/support.html</a><br>
CMake Consulting: <a href="http://cmake.org/cmake/help/consulting.html" rel="noreferrer" target="_blank">http://cmake.org/cmake/help/consulting.html</a><br>
CMake Training Courses: <a href="http://cmake.org/cmake/help/training.html" rel="noreferrer" target="_blank">http://cmake.org/cmake/help/training.html</a><br>
<br>
Visit other Kitware open-source projects at <a href="http://www.kitware.com/opensource/opensource.html" rel="noreferrer" target="_blank">http://www.kitware.com/opensource/opensource.html</a><br>
<br>
Follow this link to subscribe/unsubscribe:<br>
<a href="http://public.kitware.com/mailman/listinfo/cmake" rel="noreferrer" target="_blank">http://public.kitware.com/mailman/listinfo/cmake</a><br>
</blockquote></div><br></div></div></div></div></div></div></div>