forked from OSchip/llvm-project
Revert 92020 until I figure out a more portable fix
llvm-svn: 92021
This commit is contained in:
parent
93254e1ffb
commit
051b92c3cd
|
@ -69,10 +69,6 @@ bool DynamicLibrary::LoadLibraryPermanently(const char *Filename,
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
#define EXPLICIT_SYMBOL(SYM) \
|
|
||||||
extern "C" void *SYM;
|
|
||||||
#include "DynamicLibrarySymbolDefs.def"
|
|
||||||
|
|
||||||
void* DynamicLibrary::SearchForAddressOfSymbol(const char* symbolName) {
|
void* DynamicLibrary::SearchForAddressOfSymbol(const char* symbolName) {
|
||||||
// First check symbols added via AddSymbol().
|
// First check symbols added via AddSymbol().
|
||||||
if (ExplicitSymbols) {
|
if (ExplicitSymbols) {
|
||||||
|
@ -97,15 +93,41 @@ void* DynamicLibrary::SearchForAddressOfSymbol(const char* symbolName) {
|
||||||
}
|
}
|
||||||
|
|
||||||
#define EXPLICIT_SYMBOL(SYM) \
|
#define EXPLICIT_SYMBOL(SYM) \
|
||||||
if (!strcmp(symbolName, #SYM)) return &SYM;
|
extern void *SYM; if (!strcmp(symbolName, #SYM)) return &SYM
|
||||||
|
|
||||||
// If this is darwin, it has some funky issues, try to solve them here. Some
|
// If this is darwin, it has some funky issues, try to solve them here. Some
|
||||||
// important symbols are marked 'private external' which doesn't allow
|
// important symbols are marked 'private external' which doesn't allow
|
||||||
// SearchForAddressOfSymbol to find them. As such, we special case them here,
|
// SearchForAddressOfSymbol to find them. As such, we special case them here,
|
||||||
// there is only a small handful of them.
|
// there is only a small handful of them.
|
||||||
|
|
||||||
|
#ifdef __APPLE__
|
||||||
{
|
{
|
||||||
#include "DynamicLibrarySymbolDefs.def"
|
EXPLICIT_SYMBOL(__ashldi3);
|
||||||
|
EXPLICIT_SYMBOL(__ashrdi3);
|
||||||
|
EXPLICIT_SYMBOL(__cmpdi2);
|
||||||
|
EXPLICIT_SYMBOL(__divdi3);
|
||||||
|
EXPLICIT_SYMBOL(__eprintf);
|
||||||
|
EXPLICIT_SYMBOL(__fixdfdi);
|
||||||
|
EXPLICIT_SYMBOL(__fixsfdi);
|
||||||
|
EXPLICIT_SYMBOL(__fixunsdfdi);
|
||||||
|
EXPLICIT_SYMBOL(__fixunssfdi);
|
||||||
|
EXPLICIT_SYMBOL(__floatdidf);
|
||||||
|
EXPLICIT_SYMBOL(__floatdisf);
|
||||||
|
EXPLICIT_SYMBOL(__lshrdi3);
|
||||||
|
EXPLICIT_SYMBOL(__moddi3);
|
||||||
|
EXPLICIT_SYMBOL(__udivdi3);
|
||||||
|
EXPLICIT_SYMBOL(__umoddi3);
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef __CYGWIN__
|
||||||
|
{
|
||||||
|
EXPLICIT_SYMBOL(_alloca);
|
||||||
|
EXPLICIT_SYMBOL(__main);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#undef EXPLICIT_SYMBOL
|
||||||
|
|
||||||
// This macro returns the address of a well-known, explicit symbol
|
// This macro returns the address of a well-known, explicit symbol
|
||||||
#define EXPLICIT_SYMBOL(SYM) \
|
#define EXPLICIT_SYMBOL(SYM) \
|
||||||
|
|
|
@ -1,41 +0,0 @@
|
||||||
//===-- DynamicLibrarySymbolDefs.def - Extra symbol definitions -*- C++ -*-===//
|
|
||||||
//
|
|
||||||
// The LLVM Compiler Infrastructure
|
|
||||||
//
|
|
||||||
// This file is distributed under the University of Illinois Open Source
|
|
||||||
// License. See LICENSE.TXT for details.
|
|
||||||
//
|
|
||||||
//===----------------------------------------------------------------------===//
|
|
||||||
//
|
|
||||||
// This file enumerates the set of extra external symbol definitions needed for
|
|
||||||
// dynamic libraries.
|
|
||||||
//
|
|
||||||
//===----------------------------------------------------------------------===//
|
|
||||||
#ifndef EXPLICIT_SYMBOL
|
|
||||||
# error Must define EXPLICIT_SYMBOL to include this definitions file
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef __APPLE__
|
|
||||||
EXPLICIT_SYMBOL(__ashldi3)
|
|
||||||
EXPLICIT_SYMBOL(__ashrdi3)
|
|
||||||
EXPLICIT_SYMBOL(__cmpdi2)
|
|
||||||
EXPLICIT_SYMBOL(__divdi3)
|
|
||||||
EXPLICIT_SYMBOL(__eprintf)
|
|
||||||
EXPLICIT_SYMBOL(__fixdfdi)
|
|
||||||
EXPLICIT_SYMBOL(__fixsfdi)
|
|
||||||
EXPLICIT_SYMBOL(__fixunsdfdi)
|
|
||||||
EXPLICIT_SYMBOL(__fixunssfdi)
|
|
||||||
EXPLICIT_SYMBOL(__floatdidf)
|
|
||||||
EXPLICIT_SYMBOL(__floatdisf)
|
|
||||||
EXPLICIT_SYMBOL(__lshrdi3)
|
|
||||||
EXPLICIT_SYMBOL(__moddi3)
|
|
||||||
EXPLICIT_SYMBOL(__udivdi3)
|
|
||||||
EXPLICIT_SYMBOL(__umoddi3)
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef __CYGWIN__
|
|
||||||
EXPLICIT_SYMBOL(_alloca)
|
|
||||||
EXPLICIT_SYMBOL(__main)
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#undef EXPLICIT_SYMBOL
|
|
Loading…
Reference in New Issue