1
0
xorg-x11-server/bug534768-prefer_local_symbols.patch

26 lines
961 B
Diff
Raw Normal View History

Index: xorg-server-1.6.3.901/hw/xfree86/loader/dlloader.c
===================================================================
--- xorg-server-1.6.3.901.orig/hw/xfree86/loader/dlloader.c
+++ xorg-server-1.6.3.901/hw/xfree86/loader/dlloader.c
@@ -120,7 +120,7 @@ DLFindSymbol(const char *name)
}
if (!global_scope)
- global_scope = dlopen(NULL, DLOPEN_LAZY | DLOPEN_GLOBAL);
+ global_scope = dlopen(NULL, DLOPEN_LAZY | DLOPEN_GLOBAL | RTLD_DEEPBIND);
if (global_scope)
return DLFindSymbolLocal(global_scope, name);
@@ -136,9 +136,9 @@ DLLoadModule(loaderPtr modrec, int flags
int dlopen_flags;
if (flags & LD_FLAG_GLOBAL)
- dlopen_flags = DLOPEN_LAZY | DLOPEN_GLOBAL;
+ dlopen_flags = DLOPEN_LAZY | DLOPEN_GLOBAL | RTLD_DEEPBIND;
else
- dlopen_flags = DLOPEN_LAZY;
+ dlopen_flags = DLOPEN_LAZY | RTLD_DEEPBIND;
dlfile = dlopen(modrec->name, dlopen_flags);
if (dlfile == NULL) {
ErrorF("dlopen: %s\n", dlerror());