[opensource-dev] Review Request: VWR-24366: CMAKE_EXE_LINKER_FLAGS not honored when linking the viewer binary if -DLL_TESTS:BOOL=ON

Merov Linden merov at lindenlab.com
Fri Jan 14 17:27:24 PST 2011


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
http://codereview.secondlife.com/r/95/#review163
-----------------------------------------------------------

Ship it!


Makes sense.

- Merov


On Jan. 14, 2011, 1:15 p.m., Aleric Inglewood wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> http://codereview.secondlife.com/r/95/
> -----------------------------------------------------------
> 
> (Updated Jan. 14, 2011, 1:15 p.m.)
> 
> 
> Review request for Viewer.
> 
> 
> Summary
> -------
> 
> Setting CMAKE_EXE_LINKER_FLAGS to "" because the tests "need" that is pretty
> hard measure. Not only is it not necessary to do so, it also changes how
> the viewer is linked depending on a whether or not the tests are compiled
> and that is not good.
> 
> The reason that this was needed is that libgmock is underlinked
> (see http://wiki.mandriva.com/en/Underlinking), which is not compatible
> with -Wl,--as-needed that is being used on linux. libgmock.so.0 needs
> a symbol that is defined in libgtest.so.o, but -lgtest was not passed
> to the linker when creating libgmock.so.0:
> 
> Underlinked (no libgtest.so.o):
> $ objdump -p /usr/lib/libgmock.so.0 | grep NEEDED
> NEEDED libstdc++.so.6
> NEEDED libm.so.6
> NEEDED libc.so.6
> NEEDED libgcc_s.so.1
> 
> The solution is to wrap between -Wl,--no-as-needed -lgtest -Wl,--as-needed
> causing it to be added again. This is only needed on linux, since that
> the only platform that we use -Wl,--as-needed on. Moreover, we can just
> set GOOGLEMOCK_LIBRARIES to "gmock -Wl,--no-as-needed gtest -Wl,--as-needed"
> since that is only passed to TARGET_LINK_LIBRARIES which only adds -l
> in front of 'things' that don't start with '-', to allow you do pass
> special flags like this.
> 
> 
> This addresses bug VWR-24366.
>     http://jira.secondlife.com/browse/VWR-24366
> 
> 
> Diffs
> -----
> 
>   doc/contributions.txt 422f636c3343 
>   indra/cmake/GoogleMock.cmake 422f636c3343 
>   indra/cmake/LLAddBuildTest.cmake 422f636c3343 
> 
> Diff: http://codereview.secondlife.com/r/95/diff
> 
> 
> Testing
> -------
> 
> 
> Thanks,
> 
> Aleric
> 
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.secondlife.com/pipermail/opensource-dev/attachments/20110115/1d1c0716/attachment.htm 


More information about the opensource-dev mailing list