Fix windows aot loader fail to resolve symbol issue (#540)

This commit is contained in:
Jonathan
2021-02-23 07:55:50 -05:00
committed by GitHub
parent fc50404115
commit 79afa493aa
6 changed files with 40 additions and 25 deletions

View File

@ -8,20 +8,47 @@
#define R_386_32 1 /* Direct 32 bit */
#define R_386_PC32 2 /* PC relative 32 bit */
#if !defined(_WIN32) && !defined(_WIN32_)
void __divdi3();
void __udivdi3();
void __moddi3();
void __umoddi3();
#else
#pragma function (floor)
#pragma function (ceil)
static int64
__divdi3(int64 a, int64 b)
{
return a / b;
}
static uint64
__udivdi3(uint64 a, uint64 b)
{
return a / b;
}
static int64
__moddi3(int64 a, int64 b)
{
return a % b;
}
static uint64
__umoddi3(uint64 a, uint64 b)
{
return a % b;
}
#endif
static SymbolMap target_sym_map[] = {
REG_COMMON_SYMBOLS
#if !defined(_WIN32) && !defined(_WIN32_)
/* compiler-rt symbols that come from compiler(e.g. gcc) */
REG_SYM(__divdi3),
REG_SYM(__udivdi3),
REG_SYM(__moddi3),
REG_SYM(__umoddi3)
#endif
};
static void

View File

@ -14,10 +14,12 @@
#define IMAGE_REL_AMD64_REL32 4 /* The 32-bit relative address from
the byte following the relocation */
void __divdi3();
void __udivdi3();
void __moddi3();
void __umoddi3();
#if defined(_WIN64) || defined(_WIN64_)
#pragma function (floor)
#pragma function (ceil)
#pragma function (floorf)
#pragma function (ceilf)
#endif
static SymbolMap target_sym_map[] = {
REG_COMMON_SYMBOLS