[CMake] Having trouble using the LINK_SEARCH_START_STATIC target property

Alan W. Irwin irwin at beluga.phys.uvic.ca
Tue Mar 5 19:47:01 EST 2013


It turned out this user was a Windows user who was actually interested in
changing the runtime.  So we are looking at the 3rd method indicated
at
http://www.cmake.org/Wiki/CMake_FAQ#How_can_I_build_my_MSVC_application_with_a_static_runtime.3F.

However, out of curiosity I am still interested in why
LINK_SEARCH_START_STATIC gives such peculiar results.  In particular
if the results below are due to a bug, I hope that will be addressed
rather than ignored.

Alan

On 2013-03-03 18:59-0800 Alan W. Irwin wrote:

> A PLplot user has requested static linking of the plplotd library to external 
> libraries
> so as an experient I tried
>
> set_target_properties(plplotd PROPERTIES
>      LINK_SEARCH_START_STATIC ON)
>
> to ask for static linking where possible for that library.
>
> For CMake2.8.10.2 on Linux and with all internal PLplot libraries
> linked as shared rather than static I get the following link command
> from this:
>
> /usr/bin/cc  -fPIC -O3 -fvisibility=hidden    -shared
> -Wl,-soname,libplplotd.so.11 -o libplplotd.so.11.0.0
> CMakeFiles/plplotd.dir/pdfutils.c.o
> ...
> CMakeFiles/plplotd.dir/pllegend.c.o
> -Wl,-Bdynamic -lltdl -lm ../lib/csa/libcsirocsa.so.0.0.1
> ../lib/nn/libcsironn.so.0.0.1 ../lib/qsastime/libqsastime.so.0.0.1
> -lfreetype /home/software/shapelib/install/lib/libshp.so -Wl,-Bstatic
> -Wl,-rpath,/home/software/plplot_svn/HEAD/build_dir/lib/csa:/home/software/plplot_svn/HEAD/build_dir/lib/nn:/home/software/plplot_svn/HEAD/build_dir/lib/qsastime:/home/software/shapelib/install/lib:
>
> Why does -Wl,-Bdynamic (rather than the desired -Wl,-Bstatic) appear
> right before the relevant -l link options for the external libraries?
> And what is the point of specifying -Wl,-Bstatic after all those -l
> options are completed?
>
>> From the documentation of LINK_SEARCH_START_STATIC, it's a target
> property I could use to link libplplotd to, e.g.,
> /usr/lib/x86_64-linux-gnu/libltdl.a rather than
> /usr/lib/x86_64-linux-gnu/libltdl.so (both of which are installed on
> my system).  But that -Wl,-Bdynamic right before -lltdl assures
> libplplotd is linked to libltdl.so, just the exact opposite of the
> intended result.
>
> I suspect I am missing something, e.g., I have to do something else
> to get LINK_SEARCH_START_STATIC to work properly) so comments from
> those familiar with this target property would be welcome.
>
> Alan
> __________________________
> Alan W. Irwin
>
> Astronomical research affiliation with Department of Physics and Astronomy,
> University of Victoria (astrowww.phys.uvic.ca).
>
> Programming affiliations with the FreeEOS equation-of-state
> implementation for stellar interiors (freeeos.sf.net); the Time
> Ephemerides project (timeephem.sf.net); PLplot scientific plotting
> software package (plplot.sf.net); the libLASi project
> (unifont.org/lasi); the Loads of Linux Links project (loll.sf.net);
> and the Linux Brochure Project (lbproject.sf.net).
> __________________________
>
> Linux-powered Science
> __________________________
> --
>
> Powered by www.kitware.com
>
> Visit other Kitware open-source projects at 
> http://www.kitware.com/opensource/opensource.html
>
> Please keep messages on-topic and check the CMake FAQ at: 
> http://www.cmake.org/Wiki/CMake_FAQ
>
> Follow this link to subscribe/unsubscribe:
> http://www.cmake.org/mailman/listinfo/cmake
>

__________________________
Alan W. Irwin

Astronomical research affiliation with Department of Physics and Astronomy,
University of Victoria (astrowww.phys.uvic.ca).

Programming affiliations with the FreeEOS equation-of-state
implementation for stellar interiors (freeeos.sf.net); the Time
Ephemerides project (timeephem.sf.net); PLplot scientific plotting
software package (plplot.sf.net); the libLASi project
(unifont.org/lasi); the Loads of Linux Links project (loll.sf.net);
and the Linux Brochure Project (lbproject.sf.net).
__________________________

Linux-powered Science
__________________________


More information about the CMake mailing list