[mythtv-users] Re: Undefined symbol error when running CVS

Jarod Wilson jcw at wilsonet.com
Fri Nov 12 01:53:49 UTC 2004


Okay, fine, I'll jump back in to this one.

On Thursday 11 November 2004 16:33, Shawn wrote:
> One question, though... Is it possible for a program to link against an
> old incompatible lib successfully at compile time and then have
> unresolved symbols at run time? If not, then 1-4 are still pretty much
> true, and you could only be having trouble with my saying "most likely
> due to".

Please re-read what Isaac wrote:

------
Myth links against the libraries it compiled, in the source dir, at link time.  
When installed, the newly compiled libraries go into /usr/local/lib.  The 
pre-existing shared libraries in /usr/lib from the old RPM install are seen 
first by the run-time linker, so they're used.  Since they're old, and since 
the constructor's signature has changed since 0.16 (and so making the 
existing binary compatability test in the source code not work properly), 
they're not compatible with the new mythfrontend binary.  Because of this, 
you get an error similar to that of the original poster.

The problem has absolutely nothing to do with what you assert that it does.
------

> In any case, I didn't exclude "other" reasons (reasons I am unaware of,
> etc) for binary incompatibility, so what about what I said is untrue?

Yesterday night, you said:
---
Likely a library it's linking to has been compiled with a compiler not
ABI compatible with what myth was compiled with (2.96 v 3.X?), or some
psycho-babble sounding like that. (The "_ZNBlahHorkBeeble" bullshit is a
clue)
---

This would appear to be untrue.


You also said:
---
Try looking at all the libraries myth links to (ldd), and recompiling
those libraries with the same gcc (or g++ as it were).
---

Recompiling those libraries isn't the right answer. Removing the ones 
installed by the rpms was, since they took precedence at link time after 
everything from CVS was compiled and installed.


Then earlier today, you said:
---
Here's the deal: If the myth program compile-time links successfully but
cannot run-time link successfully, it's binary incompatible, most likely
due to compiler or binutils. You may have written a document, but I'm
fairly certain you're wrong. When libraries are incompatible in such a
way as you say, one of a number of things happen:
     1. The program fails to compile-time link due to trying to pass the
        wrong number or type of arguments to a given function
     2. The program fails to compile-time link due to trying to pass
        seemingly compatibly structured data (type, number of args, etc)
        but the data itself makes the function barf.
     3. The function returns incompatible type and compile-time link
        fails
     4. The function returns seemingly compatibly structured data (type,
        etc) but the data itself makes the calling code barf.
In other words, it probably won't compile, but if it does, it's image
will likely at least load into memory after /lib/ld-linux.so.2 is done,
and at some point it will probably segfault.
---

This is also wrong, per the stuff I quoted from Isaac above. However, I 
actually wasn't quite correct either in my statement that the problem was CVS 
Myth being built against 0.16 release libs, since the build is against the 
libs in the source dir (see, I can admit when I'm wrong). The problem was 
running the CVS-installed frontend with the rpm-installed libs present, 
taking precedence over the CVS-installed libs at run-time linking.


> Why the hell have I been pounced on for trying to fucking help?

Trying to help is a good thing, and some of us (namely, me, I see nothing 
wrong with what Isaac or Axel said) probably shouldn't have been quite so 
dismissive. But life isn't all warm fuzzies. I think you've been pounced on 
more for continuing to insist that you're not wrong, when the correct 
solution has already been put forward, with quite a bit of evidence as to why 
you weren't correct from a number of folks who have been involved with this 
project for quite some time. And once again, swearing has a way of making a 
technical argument look less intelligent, regardless of its actual merits.

> Second, I have yet to hear where I steered someone wrong.

See above. And chill out.

-- 
Jarod C. Wilson, RHCE
jcw at wilsonet.com

Got a question? Read this first...
     http://catb.org/~esr/faqs/smart-questions.html
MythTV, Fedora Core & ATrpms documentation:
     http://wilsonet.com/mythtv/
MythTV Searchable Mailing List Archive
     http://www.gossamer-threads.com/lists/mythtv/
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: not available
Url : http://mythtv.org/pipermail/mythtv-users/attachments/20041111/f710bff4/attachment-0001.pgp


More information about the mythtv-users mailing list