[Xastir] CoverSplit symbol issue with rtree in Fedora
Richard Polivka, N6NKO
r.polivka at sbcglobal.net
Sat Jun 30 16:15:10 EDT 2007
Tom,
I will run an "ldd" on non-cvs binary compiling with just -lrtree in a
bit. I am trying to finish up some pesky yardwork. I am in just now
because the pager went off for a completely useless call.
73 from 807,
Richard, N6NKO
Tom Russo wrote:
> On Fri, Jun 29, 2007 at 06:15:04PM -0700, we recorded a bogon-computron collision of the <jerutley at gmail.com> flavor, containing:
>
>> On 6/29/07, Richard Polivka, N6NKO <r.polivka at sbcglobal.net> wrote:
>>
>>
>>> I will send the -v from gcc and the output from both runs under a
>>> separate email. I don't think that there is a problem with xastir. I am
>>> beginning to believe that there is an issue between the -l and the -L
>>> calls in gcc.
>>>
>> Those 2 flags do completely different things:
>>
>> -L - specifies directories to be searched for library files
>> -l - specifies libraries to be linked in, without the "lib" in the name
>>
>> So, -Lrtree -lrtree flags will attempt to link in the librtree.{so,a}
>> file, and include the directory "rtree" in the search path used to
>> find libraries. Since xastir includes the functionality of rtree in
>> the main executable, it's probably looking for librtree.a to compile
>> in static (am I right Curt?), and it will probably be inside the
>> directory "rtree" included with the xasitr source code.
>>
>> The order of these two flags do not matter at all, since they indicate
>> completely different things.
>>
>
> Yes, absolutely. The order is not supposed to matter, and if all were right
> and proper with F7, both the -L (to tell where to look) and the -l (to tell
> what to look for) would have been essential.
>
> What is very telling, though, is that Richard did not get a linker failure
> from unresolved symbols when he removed the -lrtree. This suggests rather
> strongly that some other library that's being included is providing
> a duplicate of the rtree stuff. That is scary.
>
> Without the -lrtree, the loader should have complained about unresolved
> symbols "RTreeSearch", "RTreeDestroyNode", RTreeNewIndex, and
> RTreeInsertRect. That it linked at all says that these are present elsewhere.
> Now the trick is to find them.
>
> Richard: You'll need to look through all the libraries that *are* still being
> linked in (all those "-l" flags in the final link line) using "nm" to see which
> one has RTreeSearch, for example. You might also need to look through
> shared libraries that are being pulled in, so do an "ldd" on your final
> xastir binary to find out what those are.
>
> I'm astonished that any other library on the system has that stuff, and that
> it is quietly being used. I'm also astonished that the linker didn't just
> complain about duplicate symbols instead of that obscure bit about relocation.
>
>
More information about the Xastir
mailing list