diff --git a/src/module.c b/src/module.c index 2c5cec1b019d5201888bd05cddea3ba83694f0e8..b9801558dc83dfa6aea905cd338424ecb808e3fd 100644 --- a/src/module.c +++ b/src/module.c @@ -823,6 +823,15 @@ static struct rt_module* _load_relocated_object(const char *name, (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) {