Merge pull request #82973 from dsnopek/gdextension-linux-favor-local-symbols
On Linux, favor local symbols when loading a shared library
This commit is contained in:
commit
49495293c7
1 changed files with 5 additions and 1 deletions
|
@ -81,6 +81,10 @@
|
|||
#include <time.h>
|
||||
#include <unistd.h>
|
||||
|
||||
#ifndef RTLD_DEEPBIND
|
||||
#define RTLD_DEEPBIND 0
|
||||
#endif
|
||||
|
||||
#if defined(MACOS_ENABLED) || (defined(__ANDROID_API__) && __ANDROID_API__ >= 28)
|
||||
// Random location for getentropy. Fitting.
|
||||
#include <sys/random.h>
|
||||
|
@ -646,7 +650,7 @@ Error OS_Unix::open_dynamic_library(const String p_path, void *&p_library_handle
|
|||
path = get_executable_path().get_base_dir().path_join("../lib").path_join(p_path.get_file());
|
||||
}
|
||||
|
||||
p_library_handle = dlopen(path.utf8().get_data(), RTLD_NOW);
|
||||
p_library_handle = dlopen(path.utf8().get_data(), RTLD_NOW | RTLD_DEEPBIND);
|
||||
ERR_FAIL_NULL_V_MSG(p_library_handle, ERR_CANT_OPEN, vformat("Can't open dynamic library: %s. Error: %s.", p_path, dlerror()));
|
||||
|
||||
if (r_resolved_path != nullptr) {
|
||||
|
|
Loading…
Reference in a new issue