aboutsummaryrefslogtreecommitdiffstats
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
commit232a4ab77a078703de787c51a281efd8bed10d68 (patch)
tree3e9f8f85a4c6c4138a35b9db9b9d0cd57bc5fbf2
parent0af5e095ad16091457c35edd015fe2931023f58b (diff)
downloadexternal_llvm-232a4ab77a078703de787c51a281efd8bed10d68.zip
external_llvm-232a4ab77a078703de787c51a281efd8bed10d68.tar.gz
external_llvm-232a4ab77a078703de787c51a281efd8bed10d68.tar.bz2
Provide hooks for libgcc symbols' address resolution inside lli on mingw32.
Patch by Julien Lerouge! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52037 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--lib/System/Win32/DynamicLibrary.inc30
1 files changed, 30 insertions, 0 deletions
diff --git a/lib/System/Win32/DynamicLibrary.inc b/lib/System/Win32/DynamicLibrary.inc
index 3cc6a06..c76032f 100644
--- a/lib/System/Win32/DynamicLibrary.inc
+++ b/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