mirror of
https://github.com/apache/nuttx.git
synced 2026-06-04 23:03:27 +08:00
Add support uClibc++ excpetions. This involves additional handling for relative relation types, additional support for unwinding, as well as additional changes. The culmination of a big effort fromo Leo Aloe3132
This commit is contained in:
@@ -245,6 +245,9 @@ static inline int elf_loadfile(FAR struct elf_loadinfo_s *loadinfo)
|
||||
int elf_load(FAR struct elf_loadinfo_s *loadinfo)
|
||||
{
|
||||
size_t heapsize;
|
||||
#ifdef CONFIG_UCLIBCXX_EXCEPTION
|
||||
int exidx;
|
||||
#endif
|
||||
int ret;
|
||||
|
||||
bvdbg("loadinfo: %p\n", loadinfo);
|
||||
@@ -328,6 +331,18 @@ int elf_load(FAR struct elf_loadinfo_s *loadinfo)
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_UCLIBCXX_EXCEPTION
|
||||
exidx = elf_findsection(loadinfo, CONFIG_ELF_EXIDX_SECTNAME);
|
||||
if (exidx < 0)
|
||||
{
|
||||
bvdbg("elf_findsection: Exception Index section not found: %d\n", exidx);
|
||||
}
|
||||
else
|
||||
{
|
||||
up_init_exidx(loadinfo->shdr[exidx].sh_addr, loadinfo->shdr[exidx].sh_size);
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_ARCH_ADDRENV
|
||||
/* Restore the original address environment */
|
||||
|
||||
|
||||
Reference in New Issue
Block a user