[mythtv-users] Undefined symbol error when running CVS

Isaac Richards ijr at po.cwru.edu
Thu Nov 11 22:54:10 UTC 2004


On Thursday 11 November 2004 05:03 pm, Shawn wrote:
> On Thu, 2004-11-11 at 11:40 -0800, Jarod Wilson wrote:
> > I believe "That link error crap" as you so eloquently put it, is CVS myth
> > being built against 0.16 Myth libraries. It has nothing to do with the
> > compiler. You're closer this time around with the (again eloquent)
> > "binary incompatible shit lying around", since it is a library from 0.16
> > that isn't compatible with the latest CVS.
>
> 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.

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.

Isaac


More information about the mythtv-users mailing list