1
0
mirror of https://git.FreeBSD.org/src.git synced 2024-12-21 11:13:30 +00:00
freebsd/libexec/rtld-elf
John Polstra 926ea445fe Revamp the symbol lookup algorithm to cope better with objects
loaded separately by dlopen that have global symbols with identical
names.  Viewing each dlopened object as a DAG which is linked by its
DT_NEEDED entries in the dynamic table, the search order is as
follows:

  * If the referencing object was linked with -Bsymbolic, search it
    internally.
  * Search all dlopened DAGs containing the referencing object.
  * Search all objects loaded at program start up.
  * Search all objects which were dlopened() using the RTLD_GLOBAL
    flag (which is now supported too).

The search terminates as soon as a strong definition is found.
Lacking that, the first weak definition is used.

These rules match those of Solaris, as best I could determine them
from its vague manual pages and the results of experiments I performed.

PR:		misc/12438
1999-08-30 01:48:19 +00:00
..
alpha Revamp the symbol lookup algorithm to cope better with objects 1999-08-30 01:48:19 +00:00
amd64 $Id$ -> $FreeBSD$ 1999-08-28 00:22:10 +00:00
i386 $Id$ -> $FreeBSD$ 1999-08-28 00:22:10 +00:00
debug.c $Id$ -> $FreeBSD$ 1999-08-28 00:22:10 +00:00
debug.h $Id$ -> $FreeBSD$ 1999-08-28 00:22:10 +00:00
Makefile $Id$ -> $FreeBSD$ 1999-08-28 00:22:10 +00:00
malloc.c $Id$ -> $FreeBSD$ 1999-08-28 00:22:10 +00:00
map_object.c Revamp the symbol lookup algorithm to cope better with objects 1999-08-30 01:48:19 +00:00
rtld.1 $Id$ -> $FreeBSD$ 1999-08-28 00:22:10 +00:00
rtld.c Revamp the symbol lookup algorithm to cope better with objects 1999-08-30 01:48:19 +00:00
rtld.h Revamp the symbol lookup algorithm to cope better with objects 1999-08-30 01:48:19 +00:00
xmalloc.c $Id$ -> $FreeBSD$ 1999-08-28 00:22:10 +00:00