SV: [sldev] Re: CMake 2.4.8 vs 2.6 (Re: Missing cares, apr inMac build)

Bill Hoffman bill.hoffman at kitware.com
Mon Jul 28 15:11:09 PDT 2008


Bill Hoffman wrote:
> Carsten Juttner wrote:
>> I have attached all 3 versions, first 2.4.8, then 2.6.1-p13 without 
>> the patch from my previous mail and finally 2.6.1-p13 with that patch 
>> for the CMakeLists.
>>
>> As you can see, 2.4.8 used -llcommon while 2.6.1-p13 uses 
>> ../llcommon/libllcommon.a
>>
> That is not the problem.    The problem is that the order of the 
> libraries has changed from 2.4.8.
> 
> 2.4.8 has this:
> -lexpat -Wl,-Bstatic -lllmessage -Wl,-Bdynamic -lcurl
> 
> 
> 2.6.1 has this:
>  -lcurl /usr/local/lib/libcares.a -lssl -lcrypto 
> /usr/local/lib/libxmlrpc-epi.so -laprutil-1 -lapr-1 -lexpat -lcurl 
> /usr/local/lib/libcares.a -lssl -lcrypto /usr/local/lib/libxmlrpc-epi.so 
> -laprutil-1 -lapr-1 ../llmessage/libllmessage.a
> 

Carsten,


I am having a hard time reproducing this one.  I went on a linux box and 
ran cmake 2.6 on an svn checkout of second life:
svn co
http://svn.secondlife.com/svn/linden/release/

I did not have all the required software, so I hacked up the cmake cache 
with bogus entries.  However, I was able to get cmake to produce a link 
line like this:


/usr/bin/c++   -Wall -Wno-sign-compare -Wno-trigraphs -Werror 
-Wno-reorder  -DLL_RELEASE=1 -DNDEBUG -DLL_RELEASE_WITH_DEBUG_INFO=1 
-fPIC -Wl,--as-needed 
CMakeFiles/linux-crash-logger.dir/linux_crash_logger.o 
CMakeFiles/linux-crash-logger.dir/llcrashloggerlinux.o  -o 
linux-crash-logger -rdynamic 
-L/home/hoffman/second/release/indra-build/llcrashlogger 
-L/home/hoffman/second/release/indra-build/llvfs 
-L/home/hoffman/second/release/indra-build/llxml -L/usr 
-L/home/hoffman/second/release/indra-build/llmessage 
-L/home/hoffman/second/release/indra-build/llmath 
-L/home/hoffman/second/release/indra-build/llcommon 
../llcrashlogger/libllcrashlogger.a ../llvfs/libllvfs.a 
../llxml/libllxml.a -lexpat -lcurl -lssl -lcrypto /usr/libxml.a -lexpat 
-lcurl -lssl -lcrypto /usr/libxml.a ../llmessage/libllmessage.a 
../llmath/libllmath.a ../llcommon/libllcommon.a -lz -lglib-2.0 
-lgmodule-2.0 -ldl -lgthread-2.0 -lrt -lglib-2.0 -lgmodule-2.0 -ldl 
-lgthread-2.0 -lrt -lpng12 -lboost_signals-mt -lcurl -lcrypto 
/usr/libxml.a ../llvfs/libllvfs.a ../llmath/libllmath.a 
../llcommon/libllcommon.a -lglib-2.0 -lgmodule-2.0 -ldl -lglib-2.0 
-lgthread-2.0 -lrt -lglib-2.0 -lpng12 -lboost_signals-mt


Not that there is a -lcurl that comes after ../llmessage/libllmessage.a, 
and that is key for getting this to work.

On your system where it does not work, can you add a few message 
commands to the CMakeLists.txt files, and rerun cmake, and send me the 
output?

1.
indra/cmake/LLMessage.cmake

message{"LLMESSAGE_LIBRARIES = ${LLMESSAGE_LIBRARIES}")

2. In indra/linux_crash_logger/CMakeLists.txt:

message(" target link libraries for linux-crash-logger 
${LLCRASHLOGGER_LIBRARIES}
     ${LLVFS_LIBRARIES}
     ${LLXML_LIBRARIES}
     ${LLMESSAGE_LIBRARIES}
     ${LLVFS_LIBRARIES}
     ${LLMATH_LIBRARIES}
     ${LLCOMMON_LIBRARIES}
     ${UI_LIBRARIES}
     ${BOOST_SIGNALS_LIBRARY}
     ${DB_LIBRARIES} ")

Also, if you could send me the CMakeCache.txt file from your binary 
tree, that would be helpful in figuring out what is wrong.  I think this 
is the last issue with 2.6.1.

Thanks.

-Bill




More information about the SLDev mailing list