freebsd-dev/libexec/rtld-elf/alpha
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
..
Makefile.inc Eliminate all machine-dependent code from the main source body and 1999-04-09 00:28:43 +00:00
reloc.c Revamp the symbol lookup algorithm to cope better with objects 1999-08-30 01:48:19 +00:00
rtld_machdep.h $Id$ -> $FreeBSD$ 1999-08-28 00:22:10 +00:00
rtld_start.S $Id$ -> $FreeBSD$ 1999-08-28 00:22:10 +00:00