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

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

_______________________________________________
Policies and (un)subscribe information available here:
http://wiki.secondlife.com/wiki/OpenSource-Dev
Please read the policies before posting to keep unmoderated posting privileges

Reply via email to