Fix missing symbols when using aot mode on riscv platforms (#3812)
Add symbol __atomic_compare_exchange_4 and __atomic_store_4.
This commit is contained in:
@ -24,6 +24,7 @@
|
|||||||
#undef NEED_SOFT_I32_DIV
|
#undef NEED_SOFT_I32_DIV
|
||||||
#undef NEED_SOFT_I64_MUL
|
#undef NEED_SOFT_I64_MUL
|
||||||
#undef NEED_SOFT_I64_DIV
|
#undef NEED_SOFT_I64_DIV
|
||||||
|
#undef NEED_SOFT_ATOMIC
|
||||||
|
|
||||||
#ifdef __riscv_flen
|
#ifdef __riscv_flen
|
||||||
#if __riscv_flen == 32
|
#if __riscv_flen == 32
|
||||||
@ -48,6 +49,10 @@
|
|||||||
#define NEED_SOFT_I64_DIV
|
#define NEED_SOFT_I64_DIV
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifndef __riscv_atomic
|
||||||
|
#define NEED_SOFT_ATOMIC
|
||||||
|
#endif
|
||||||
|
|
||||||
/* clang-format off */
|
/* clang-format off */
|
||||||
void __adddf3(void);
|
void __adddf3(void);
|
||||||
void __addsf3(void);
|
void __addsf3(void);
|
||||||
@ -101,6 +106,9 @@ void __umoddi3(void);
|
|||||||
void __umodsi3(void);
|
void __umodsi3(void);
|
||||||
void __unorddf2(void);
|
void __unorddf2(void);
|
||||||
void __unordsf2(void);
|
void __unordsf2(void);
|
||||||
|
bool __atomic_compare_exchange_4(volatile void *, void *, unsigned int,
|
||||||
|
bool, int, int);
|
||||||
|
void __atomic_store_4(volatile void *, unsigned int, int);
|
||||||
/* clang-format on */
|
/* clang-format on */
|
||||||
|
|
||||||
static SymbolMap target_sym_map[] = {
|
static SymbolMap target_sym_map[] = {
|
||||||
@ -127,6 +135,7 @@ static SymbolMap target_sym_map[] = {
|
|||||||
* to convert float and long long
|
* to convert float and long long
|
||||||
*/
|
*/
|
||||||
REG_SYM(__floatundisf),
|
REG_SYM(__floatundisf),
|
||||||
|
REG_SYM(__floatdisf),
|
||||||
#endif
|
#endif
|
||||||
#ifdef NEED_SOFT_DP
|
#ifdef NEED_SOFT_DP
|
||||||
REG_SYM(__adddf3),
|
REG_SYM(__adddf3),
|
||||||
@ -175,6 +184,10 @@ static SymbolMap target_sym_map[] = {
|
|||||||
REG_SYM(__moddi3),
|
REG_SYM(__moddi3),
|
||||||
REG_SYM(__udivdi3),
|
REG_SYM(__udivdi3),
|
||||||
REG_SYM(__umoddi3),
|
REG_SYM(__umoddi3),
|
||||||
|
#endif
|
||||||
|
#ifdef NEED_SOFT_ATOMIC
|
||||||
|
REG_SYM(__atomic_compare_exchange_4),
|
||||||
|
REG_SYM(__atomic_store_4),
|
||||||
#endif
|
#endif
|
||||||
/* clang-format on */
|
/* clang-format on */
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user