mirror of
https://github.com/bytecodealliance/wasm-micro-runtime.git
synced 2024-10-16 13:02:32 +00:00
aot_emit_aot_file.c: Convert switch lookup table relocation (#1149)
Fix the symbol resolving failure with recent version of wamrc: ``` AOT module load failed: resolve symbol .Lswitch.table.aot _func#82.2 failed ``` Replace the relocations for such symbols with .rodata section.
This commit is contained in:
parent
6fb402aeec
commit
8db6f5978b
|
@ -2401,13 +2401,15 @@ aot_resolve_object_relocation_group(AOTObjectData *obj_data,
|
|||
relocation->relocation_type = (uint32)type;
|
||||
relocation->symbol_name = (char *)LLVMGetSymbolName(rel_sym);
|
||||
|
||||
/* for ".LCPIxxx", ".LJTIxxx" and ".LBBxxx" relocation,
|
||||
* transform the symbol name to real section name and set
|
||||
/* for ".LCPIxxx", ".LJTIxxx", ".LBBxxx" and switch lookup table
|
||||
* relocation, transform the symbol name to real section name and set
|
||||
* addend to the offset of the symbol in the real section */
|
||||
if (relocation->symbol_name
|
||||
&& (str_starts_with(relocation->symbol_name, ".LCPI")
|
||||
|| str_starts_with(relocation->symbol_name, ".LJTI")
|
||||
|| str_starts_with(relocation->symbol_name, ".LBB"))) {
|
||||
|| str_starts_with(relocation->symbol_name, ".LBB")
|
||||
|| str_starts_with(relocation->symbol_name,
|
||||
".Lswitch.table."))) {
|
||||
/* change relocation->relocation_addend and
|
||||
relocation->symbol_name */
|
||||
LLVMSectionIteratorRef contain_section;
|
||||
|
|
Loading…
Reference in New Issue
Block a user