On 4. Mar, 2010, at 15:56 , Biddiscombe, John A. wrote:

> given a config like this
> 
> TARGET_LINK_LIBRARIES(${KIT}CxxTests vtkIO vtkImaging vtksys)
> 
> I have the trouble that vtksys pulls in a whole bunch of DynamicLoader stuff 
> (kwsys) - which apart from being rather odd when building statically, forces 
> the linker to need -ldl added to the link line.
> 
> The trouble I've got is that no matter which EXE_LINKER_FLAG etc, or other 
> option I change, TARGET_LINK_LIBRARIES adds stuff to the end, and on linux, 
> link order is important, so I am constantly having to manually edit 
> cmake/make files to get stuff to link (libdl, libGL, libmpich, lib etc etc). 
> This problem is a big one in the whole paraview build system.
> 
> Is there any simple fix out there? (NB. It's not just libdl, but many others 
> like it).
> 
> JB
> 
> 
> --
> John Biddiscombe,                            email:biddisco @ cscs.ch
> http://www.cscs.ch/
> CSCS, Swiss National Supercomputing Centre  | Tel:  +41 (91) 610.82.07
> Via Cantonale, 6928 Manno, Switzerland      | Fax:  +41 (91) 610.82.82


Yep, static linking is a PITA and I don't think it can be correctly done in a 
fully automatic fashion since CMake has no way of determining the dependencies.

If you are using Linux, you can try to  modify the CMAKE_CXX_LINK_EXECUTABLE, 
CMAKE_CXX_CREATE_SHARED_LIBRARY and CMAKE_CXX_CREATE_SHARED_MODULE variables 
(possibly also for other languages) such that the <LINK_LIBRARIES> part is 
enclosed in --start-group and --end-group which causes the linker to iterate 
the libraries until no more symbols can be resolved. Obviously this comes with 
a significant increase in linking-time...


HTH

Michael
_______________________________________________
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

Reply via email to