[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    Re: koffice/plugins/textshape/tests
From:       Andreas Hartmetz <ahartmetz () gmail ! com>
Date:       2010-03-10 22:20:03
Message-ID: 201003102320.03700.ahartmetz () gmail ! com
[Download RAW message or body]

On Wednesday 10 March 2010 14:48:42 Thomas Zander wrote:
> On Wednesday 10. March 2010 02.53.01 Andreas Hartmetz wrote:
> > On Tuesday 09 March 2010 18:48:43 Thomas Zander wrote:
> > > On Tuesday 9. March 2010 18.03.21 Thorsten Zachmann wrote:
> > > > On Tuesday 09 March 2010 16:54:30 Andreas Hartmetz wrote:
> > > > > SVN commit 1101207 by ahartmetz:
> > > > > 
> > > > > link with gold
> > > > > 
> > > > >  M  +1 -1      CMakeLists.txt
> > > > > 
> > > > > --- trunk/koffice/plugins/textshape/tests/CMakeLists.txt
> > > > > #1101206:1101207 @@ -78,7 +78,7 @@
> > > > > 
> > > > >  kde4_add_unit_test(TestChangeListCommand TESTNAME
> > > > > 
> > > > > shapes-text-TestChangeListCommand
> 
> ${TestChangeListCommand_test_SRCS})
> 
> > > > > -target_link_libraries(TestChangeListCommand ${EXTRA_LIBS} komain
> > > > > ${QT_QTTEST_LIBRARY}) +target_link_libraries(TestChangeListCommand
> > > > > ${EXTRA_LIBS} ${SOPRANO_LIBRARIES} komain ${QT_QTTEST_LIBRARY})
> > > > > 
> > > > >  ########### next target ###############
> > > > 
> > > > This breaks linking when compiled without soprano support.
> > 
> > Sorry.
> > 
> > > Next to that, the test doesn't use any soprano APIs or even classes
> > > that do. So if Gold thinks its needed, file a bugreport with Gold
> > > since its wrong.
> > 
> > A plausible explanation could be that some library linked to the test
> > links
> > 
> >  to Soprano, but doesn't have it in its link interface.
> > 
> > At this point I trust gold more than ld because I've found that it is
> > 
> >  strict in a good way (it enforces correctness and has better error
> >  messages), and sometimes not so strict to emulate ld better where it
> >  makes sense. And of course gold is faster which does make a difference,
> >  especially if you have a big compile cluster.
> > 
> > I'll see if I can reproduce the error message if it is necessary to
> > revert
> > 
> >  the commit in question. This doesn't seem to have happened so far -
> >  shall I do it?
> 
> I looked at what could be the problem and I noticed that komain doesn't
> export the lib, I don't really follow why anyone linking to komain has to
> then link to anything in its API even while it doesn't use it, but if you
> say thats correct behavior, I'll accept that.
> 
The big behavior difference between gold and ld to keep in mind is:
With ld, if app A links against library L which depends on M, A can call 
methods from M without explicitly linking against it. With gold you have to 
link against M, as in add -lM to the linker invocation. I would call gold's 
behavior more correct.

> Committed a fix in r1101656 which should work for all cases. Thanks for
> bringing this to our attention :)

NP.
I must admit that I'm too lazy to investigate further :)
My best guesses are something involving template instantiation or inlined code 
from headers.
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic