summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAnton Korobeynikov <asl@math.spbu.ru>2008-06-06 07:20:07 +0000
committerAnton Korobeynikov <asl@math.spbu.ru>2008-06-06 07:20:07 +0000
commit5e8644071d5fffdbd5d659155613957cb14af6fa (patch)
tree83a6862a101eb8ae3052cb1a09e565c016b2cd0f
parent1a6e0d613fdadf09a7a968c494c7545b36ab8a16 (diff)
downloadbcm5719-llvm-5e8644071d5fffdbd5d659155613957cb14af6fa.tar.gz
bcm5719-llvm-5e8644071d5fffdbd5d659155613957cb14af6fa.zip
Provide hooks for libgcc symbols' address resolution inside lli on mingw32.
Patch by Julien Lerouge! llvm-svn: 52037
-rw-r--r--llvm/lib/System/Win32/DynamicLibrary.inc30
1 files changed, 30 insertions, 0 deletions
diff --git a/llvm/lib/System/Win32/DynamicLibrary.inc b/llvm/lib/System/Win32/DynamicLibrary.inc
index 3cc6a06bb6c..c76032f62d0 100644
--- a/llvm/lib/System/Win32/DynamicLibrary.inc
+++ b/llvm/lib/System/Win32/DynamicLibrary.inc
@@ -134,6 +134,21 @@ bool DynamicLibrary::LoadLibraryPermanently(const char *filename,
#if defined(__MINGW32__)
EXPLICIT_SYMBOL_DEF(_alloca);
EXPLICIT_SYMBOL_DEF(__main);
+ EXPLICIT_SYMBOL_DEF(__ashldi3);
+ EXPLICIT_SYMBOL_DEF(__ashrdi3);
+ EXPLICIT_SYMBOL_DEF(__cmpdi2);
+ EXPLICIT_SYMBOL_DEF(__divdi3);
+ EXPLICIT_SYMBOL_DEF(__eprintf);
+ EXPLICIT_SYMBOL_DEF(__fixdfdi);
+ EXPLICIT_SYMBOL_DEF(__fixsfdi);
+ EXPLICIT_SYMBOL_DEF(__fixunsdfdi);
+ EXPLICIT_SYMBOL_DEF(__fixunssfdi);
+ EXPLICIT_SYMBOL_DEF(__floatdidf);
+ EXPLICIT_SYMBOL_DEF(__floatdisf);
+ EXPLICIT_SYMBOL_DEF(__lshrdi3);
+ EXPLICIT_SYMBOL_DEF(__moddi3);
+ EXPLICIT_SYMBOL_DEF(__udivdi3);
+ EXPLICIT_SYMBOL_DEF(__umoddi3);
#elif defined(_MSC_VER)
EXPLICIT_SYMBOL_DEF(_alloca_probe);
#endif
@@ -157,6 +172,21 @@ void* DynamicLibrary::SearchForAddressOfSymbol(const char* symbolName) {
{
EXPLICIT_SYMBOL(_alloca);
EXPLICIT_SYMBOL(__main);
+ 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);
EXPLICIT_SYMBOL2(alloca, _alloca);
#undef EXPLICIT_SYMBOL
OpenPOWER on IntegriCloud