浏览代码

Merge pull request #1215 from parai/patch-1

Fix issue when loading *.o when do internal function call
Bernard Xiong 7 年之前
父节点
当前提交
a692cc1549
共有 1 个文件被更改,包括 9 次插入0 次删除
  1. 9 0
      src/module.c

+ 9 - 0
src/module.c

@@ -823,6 +823,15 @@ static struct rt_module* _load_relocated_object(const char *name,
                                                (Elf32_Addr)data_addr + sym->st_value);
                                                (Elf32_Addr)data_addr + sym->st_value);
                     }
                     }
                 }
                 }
+                else if (ELF_ST_TYPE(sym->st_info) == STT_FUNC)
+                {
+                    /* relocate function */
+                    rt_module_arm_relocate(module, rel,
+                                           (Elf32_Addr)((rt_uint8_t *)
+                                                        module->module_space
+                                                        - module_addr
+                                                        + sym->st_value));
+                }
             }
             }
             else if (ELF_ST_TYPE(sym->st_info) == STT_FUNC)
             else if (ELF_ST_TYPE(sym->st_info) == STT_FUNC)
             {
             {