[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Dynamic linker relinking guarantee on compatible interface-number change

From: Jan Engelhardt
Subject: Dynamic linker relinking guarantee on compatible interface-number changes
Date: Thu, 27 Aug 2009 01:39:55 +0200 (CEST)
User-agent: Alpine 2.00 (LSU 1167 2008-08-23)


A paragraph in libtool's info manual section 7.2 ("Libtool's versioning 
system") got me thinking:

        The dynamic linker is guaranteed that if a library supports
        _every_ interface number between FIRST-INTERFACE and
        LAST-INTERFACE, then the program can be relinked against that

Random thought.

Let there be a system which has a that provides interfaces 
14-17. Depending on the chosen OS, the library will usually be present 
on Linux as (as a symlink to, or as on one of the BSDs (I forget which, apologies).

Now let there be a program which exclusively uses the v15 interface. On 
Linux, the program would be linked against according to 
`ldd`, or on BSD.

Now let there be an update of libfoo whereby the supported interfaces 
increase/decrease, e.g. 15-19. This would mean that the Linux/BSD
environments gets a new file, and, 

Since, as recorded in the program headers, cannot be 
found anymore, things break. That somehow does not go in line with
what the libtool manual praises ("can be relinked").

Or, our dynamic loaders just suck.


reply via email to

[Prev in Thread] Current Thread [Next in Thread]