diff options
author | Chris Johns <chrisj@rtems.org> | 2017-03-30 11:06:24 +1100 |
---|---|---|
committer | Chris Johns <chrisj@rtems.org> | 2017-03-31 09:00:14 +1100 |
commit | bba48d90bcd343f62b368a510b67bbdb51fb6f0c (patch) | |
tree | 0f7b4fb43aa7a432228d420f7987d7dcf4c6d90c /cpukit/libdl/rtl-mdreloc-sparc.c | |
parent | benchmarks/whetstone: Port to RTEMS (diff) | |
download | rtems-bba48d90bcd343f62b368a510b67bbdb51fb6f0c.tar.bz2 |
libdl: Support link ordered loading of ELF sections.
The ARM C++ exception ABI uses an address ordered index table to
locate the correct frame data and this requires the EXIDX sections are
loaded in the order the order the matching text is loaded.
The EXIDX sections set the SHF_LINK_ORDER flag and link field. This patch
adds support to load those flagged sections in the linked-to section
order.
Updates #2955.
Closes #2959
Diffstat (limited to 'cpukit/libdl/rtl-mdreloc-sparc.c')
-rw-r--r-- | cpukit/libdl/rtl-mdreloc-sparc.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/cpukit/libdl/rtl-mdreloc-sparc.c b/cpukit/libdl/rtl-mdreloc-sparc.c index 38b385070e..8d1239421d 100644 --- a/cpukit/libdl/rtl-mdreloc-sparc.c +++ b/cpukit/libdl/rtl-mdreloc-sparc.c @@ -253,7 +253,8 @@ rtems_rtl_elf_relocate_rela (const rtems_rtl_obj_t* obj, if (rtems_rtl_trace (RTEMS_RTL_TRACE_RELOC)) printf ("rtl: %s %p @ %p in %s\n", - reloc_names[type], (void *)tmp, where, rtems_rtl_obj_oname (obj)); + reloc_names[ELF_R_TYPE(rela->r_info)], + (void *)tmp, where, rtems_rtl_obj_oname (obj)); return true; } |