Re: LD Changes To Implicit DSO Linking Update

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

 



On Thu, 2010-02-11 at 11:06 +0100, yersinia wrote:
> On Tue, Feb 9, 2010 at 3:38 PM, Adam Jackson <ajax@xxxxxxxxxx> wrote:
>
>         --no-add-needed is quite different.  Your binary a.out uses
>         symbols from
>         libfoo and libbar.  libfoo is linked against libbar.  But your
>         link line
>         only says -lfoo.  --add-needed behaviour, the old default,
>         would
>         implicitly add a "-lbar" as well.  --no-add-needed, the new
>         default,
>         will not, and therefore your link will probably fail.
>         
> This is the case described in the libtool manual 
> 
> http://www.gnu.org/software/libtool/manual/html_node/Inter_002dlibrary-dependencies.html#Inter_002dlibrary-dependencies
> 
> Nice to know that Fedora will have the same behavior of the AIX
> libraries in this area, if I understood correctly the topic under
> discussion.

This change does not imply AIX linker semantics.

Note that _libraries_ generally do not have a problem building in a
--no-add-needed world.  ELF does not require that all references in a
DSO be resolvable at ld time, and this linking change does not change
that.  If your library libfoo uses symbols from libbar but does not
itself link against libbar, that's still legal (although probably
impolite).

Executables, however, must be fully resolved at link time.  You can ask
for this to be true for libraries as well with the
--no-allow-shlib-undefined option to ld.  This plus --no-add-needed is
much closer to the AIX linker behaviour,

Also note that the runtime linker will still do recursive lookups.  If
you have a binary that did not link against some needed library, but one
of its dependencies did link against it, the binary will still work.

- ajax

Attachment: signature.asc
Description: This is a digitally signed message part

-- 
devel mailing list
devel@xxxxxxxxxxxxxxxxxxxxxxx
https://admin.fedoraproject.org/mailman/listinfo/devel

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Fedora Announce]     [Fedora Kernel]     [Fedora Testing]     [Fedora Formulas]     [Fedora PHP Devel]     [Kernel Development]     [Fedora Legacy]     [Fedora Maintainers]     [Fedora Desktop]     [PAM]     [Red Hat Development]     [Gimp]     [Yosemite News]
  Powered by Linux