projects
/
oota-llvm.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
gdb uses DW_AT_prototyped to identify K&R style in C based languages.
[oota-llvm.git]
/
lib
/
System
/
DynamicLibrary.cpp
diff --git
a/lib/System/DynamicLibrary.cpp
b/lib/System/DynamicLibrary.cpp
index 572ba496e191451d201a7c9cd3195911f8909fab..3bf172c22b3f376302cc30365fcc088f5a8376fb 100644
(file)
--- a/
lib/System/DynamicLibrary.cpp
+++ b/
lib/System/DynamicLibrary.cpp
@@
-13,15
+13,19
@@
#include "llvm/System/DynamicLibrary.h"
#include "llvm/Config/config.h"
#include "llvm/System/DynamicLibrary.h"
#include "llvm/Config/config.h"
+#include <cstdio>
#include <cstring>
#include <map>
// Collection of symbol name/value pairs to be searched prior to any libraries.
#include <cstring>
#include <map>
// Collection of symbol name/value pairs to be searched prior to any libraries.
-static std::map<std::string, void *> g_symbols;
+std::map<std::string, void *> &g_symbols() {
+ static std::map<std::string, void *> symbols;
+ return symbols;
+}
void llvm::sys::DynamicLibrary::AddSymbol(const char* symbolName,
void *symbolValue) {
void llvm::sys::DynamicLibrary::AddSymbol(const char* symbolName,
void *symbolValue) {
- g_symbols[symbolName] = symbolValue;
+ g_symbols
()
[symbolName] = symbolValue;
}
// It is not possible to use ltdl.c on VC++ builds as the terms of its LGPL
}
// It is not possible to use ltdl.c on VC++ builds as the terms of its LGPL
@@
-61,7
+65,7
@@
DynamicLibrary::~DynamicLibrary() {
bool DynamicLibrary::LoadLibraryPermanently(const char *Filename,
std::string *ErrMsg) {
bool DynamicLibrary::LoadLibraryPermanently(const char *Filename,
std::string *ErrMsg) {
- void *H = dlopen(Filename, RTLD_LAZY);
+ void *H = dlopen(Filename, RTLD_LAZY
|RTLD_GLOBAL
);
if (H == 0) {
if (ErrMsg)
*ErrMsg = dlerror();
if (H == 0) {
if (ErrMsg)
*ErrMsg = dlerror();
@@
-75,8
+79,8
@@
void* DynamicLibrary::SearchForAddressOfSymbol(const char* symbolName) {
// check_ltdl_initialization();
// First check symbols added via AddSymbol().
// check_ltdl_initialization();
// First check symbols added via AddSymbol().
- std::map<std::string, void *>::iterator I = g_symbols.find(symbolName);
- if (I != g_symbols.end())
+ std::map<std::string, void *>::iterator I = g_symbols
()
.find(symbolName);
+ if (I != g_symbols
()
.end())
return I->second;
// Now search the libraries.
return I->second;
// Now search the libraries.