The assumption that the program image is not used for relocation of

dlopen()ed objects was incorrect. This should fix problems with ports of
software with a plugin/add-on interface.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29112 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Ingo Weinhold 2009-02-01 18:40:42 +00:00
parent 06828840d7
commit 47bc666311
1 changed files with 1 additions and 2 deletions

View File

@ -2141,10 +2141,9 @@ load_program(char const *path, void **_entry)
if (status < B_OK)
goto err;
// Set RTLD_GLOBAL on all libraries, but clear it on the program image.
// Set RTLD_GLOBAL on all libraries including the program.
// This results in the desired symbol resolution for dlopen()ed libraries.
set_image_flags_recursively(sProgramImage, RTLD_GLOBAL);
sProgramImage->flags &= ~RTLD_GLOBAL;
status = relocate_dependencies(sProgramImage);
if (status < B_OK)