提交 179bdeca 编写于 作者: qiuyiuestc's avatar qiuyiuestc

update elf loader

git-svn-id: https://rt-thread.googlecode.com/svn/trunk@1200 bbd45198-f89e-11dd-88c7-29a3b14d5316
上级 12750c38
...@@ -163,7 +163,11 @@ static int rt_module_arm_relocate(struct rt_module* module, Elf32_Rel *rel, Elf3 ...@@ -163,7 +163,11 @@ static int rt_module_arm_relocate(struct rt_module* module, Elf32_Rel *rel, Elf3
rt_kprintf("R_ARM_JUMP_SLOT: 0x%x -> 0x%x 0x%x\n", where, *where, sym_val); rt_kprintf("R_ARM_JUMP_SLOT: 0x%x -> 0x%x 0x%x\n", where, *where, sym_val);
#endif #endif
break; break;
case R_ARM_RELATIVE: case R_ARM_RELATIVE:
*where += (Elf32_Addr)sym_val;
#ifdef RT_MODULE_DEBUG
rt_kprintf("R_ARM_RELATIVE: 0x%x -> 0x%x 0x%x\n", where, *where, sym_val);
#endif
break; break;
default: default:
return -1; return -1;
...@@ -339,7 +343,7 @@ rt_module_t rt_module_load(const rt_uint8_t* name, void* module_ptr) ...@@ -339,7 +343,7 @@ rt_module_t rt_module_load(const rt_uint8_t* name, void* module_ptr)
#ifdef RT_MODULE_DEBUG #ifdef RT_MODULE_DEBUG
rt_kprintf("relocate symbol %s shndx %d\n", strtab + sym->st_name, sym->st_shndx); rt_kprintf("relocate symbol %s shndx %d\n", strtab + sym->st_name, sym->st_shndx);
#endif #endif
if(sym->st_shndx != SHT_NULL || ELF_ST_TYPE(sym->st_info) == STB_LOCAL ) if((sym->st_shndx != SHT_NULL) || (ELF_ST_BIND(sym->st_info) == STB_LOCAL))
{ {
rt_module_arm_relocate( rt_module_arm_relocate(
module, module,
......
...@@ -154,6 +154,7 @@ RTM_EXPORT(rt_sprintf) ...@@ -154,6 +154,7 @@ RTM_EXPORT(rt_sprintf)
/* /*
* misc interface symbol * misc interface symbol
*/ */
extern int __aeabi_idiv;
extern int __aeabi_ddiv; extern int __aeabi_ddiv;
extern int __aeabi_dmul; extern int __aeabi_dmul;
extern int __aeabi_i2d; extern int __aeabi_i2d;
...@@ -165,10 +166,12 @@ RTM_EXPORT(__aeabi_ddiv) ...@@ -165,10 +166,12 @@ RTM_EXPORT(__aeabi_ddiv)
RTM_EXPORT(__aeabi_dmul) RTM_EXPORT(__aeabi_dmul)
RTM_EXPORT(__aeabi_i2d) RTM_EXPORT(__aeabi_i2d)
RTM_EXPORT(__aeabi_uidiv) RTM_EXPORT(__aeabi_uidiv)
RTM_EXPORT(__aeabi_idiv)
RTM_EXPORT(__aeabi_uidivmod) RTM_EXPORT(__aeabi_uidivmod)
RTM_EXPORT(__aeabi_d2iz) RTM_EXPORT(__aeabi_d2iz)
RTM_EXPORT(strcmp) RTM_EXPORT(strcmp)
RTM_EXPORT(rand) RTM_EXPORT(rand)
RTM_EXPORT(memset)
#ifdef RT_USING_NEWLIB #ifdef RT_USING_NEWLIB
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册