* Changed the way symbols are resolved. For each root image (program,

add-on) we create a breadth-first sorted image list and use that to
  search for symbols.
* Added support for preloading libraries. The environment variable
  LD_PRELOAD can contain a whitespace-separated list of shared objects
  that will be loaded before the program. This allows to replace
  symbols without changing the executable or libraries.
* Resolved TODO in load_program() regarding the order of remapping the
  images and initializing the dependencies (problem fixed in r28453).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28455 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Ingo Weinhold
2008-11-02 03:16:30 +00:00
parent f68fa9d364
commit ca618b2259
2 changed files with 245 additions and 87 deletions
@@ -65,6 +65,11 @@ typedef struct image_t {
uint32 num_needed;
struct image_t **needed;
// For "root" images (the program, add-ons): Symbols are searched in the
// images in array order.
uint32 symbol_resolution_image_count;
struct image_t **symbol_resolution_images;
// describes the text and data regions
uint32 num_regions;
elf_region_t regions[1];