tech-toolchain: Re: CVS commit: src/libexec/ld.elf_so

Subject: Re: CVS commit: src/libexec/ld.elf_so
To: None <mycroft@netbsd.org>
From: Matthias Drochner <M.Drochner@fz-juelich.de>
List: tech-toolchain
Date: 04/24/2003 18:15:16
mycroft@netbsd.org said:
> Modified Files:
> 	src/libexec/ld.elf_so: rtld.c rtld.h symbol.c
> Log Message: Attempt to give dlsym() the same symbol-searching
> semantics as _rtld_bind(). 
To elaborate on this (and take it away from the inappropriate list):
It seems that this is wrong.
To quote from SUSv3's dlopen() page:
 Symbols introduced into a program through calls to dlopen() may be
 used in relocation activities. Symbols so introduced may duplicate
 symbols already defined by the program or previous dlopen()
 operations. To resolve the ambiguities such a situation might present,
 the resolution of a symbol reference to symbol definition is based on a
 symbol resolution order. Two such resolution orders are defined: load
 or dependency ordering. Load order establishes an ordering among
 symbol definitions, such that the definition first loaded (including
 definitions from the image file and any dependent objects loaded with
 it) has priority over objects added later (via dlopen()). Load ordering is
 used in relocation processing. Dependency ordering uses a
 breadth-first order starting with a given object, then all of its
 dependencies, then any dependents of those, iterating until all
 dependencies are satisfied. With the exception of the global symbol
 object obtained via a dlopen() operation on a file of 0, dependency
 ordering is used by the dlsym() function. Load ordering is used in
 dlsym() operations upon the global symbol object.
best regards
Matthias

AltStyle によって変換されたページ (->オリジナル) /