[speex-dev] Re: does installed lib support _int()s ?

Segher Boessenkool segher at kernel.crashing.org
Wed May 19 08:12:48 PDT 2004



>>> I wonder if there's a way to "weak-link" against libraries on
>>> Linux/GNU-ld-so?  The idea is that a symbol lookup/relocation isn't
>>> performed until the call is actually MADE, rather than merely
>>> referenced.
>>
>> That's the default behaviour.
>
> No it's not.  The linker/loader (ld.so) expects all of the referenced
> symbols to exist in SOME library no matter if they're actually called 
> or not
> by the main executable (ELF).  It goes through all of the external 
> symbols
> not present in the executable, and tries to find them in the library 
> search
> paths.  If it can't find ALL of them, the linker-loader fails to run 
> the
> program.

This is so completely wrong.  For starters, ld.so is not the loader
(ld is the loader; ld.so is the dynamic loader.  That's a *huge*
difference).

ld.so resolves symbols lazily, by default.

ld requires all external references to be resolved, when creating
an executable (undefined references are fine when creating a
shared library).

ld.so doesn't go looking for a shared library with the symbols it
needs (that would be...  confusing and dangerous.  lots of fun!);
instead, it knows which libraries to use (that info is stored
in the executable, by ld).

> To give one stupid example:

Stupid indeed -- three programming errors in a "hello world"...

<p>Segher

--- >8 ----
List archives:  http://www.xiph.org/archives/
Ogg project homepage: http://www.xiph.org/ogg/
To unsubscribe from this list, send a message to 'speex-dev-request at xiph.org'
containing only the word 'unsubscribe' in the body.  No subject is needed.
Unsubscribe messages sent to the list will be ignored/filtered.



More information about the Speex-dev mailing list