#2959 closed defect (fixed)

arm/libdl: C++ exception index tables may not be ordered correctly

Reported by: Chris Johns Owned by: Chris Johns
Priority: normal Milestone: 5.1
Component: lib/dl Version: 5
Severity: major Keywords: libdl
Cc: Blocked By:
Blocking:

Description

The ARM EXIDX sections have the SHF_LINK_ORDER flag set and this is not honored by libdl which means the section order in the ELF file needs to be the correct order of the functions in the address map.

Add support to libdl to follow the link-to order.

Change History (2)

comment:1 Changed on Mar 31, 2017 at 2:57:18 AM by Chris Johns <chrisj@…>

Resolution: fixed
Status: assignedclosed

In bba48d9/rtems:

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

comment:2 Changed on Nov 9, 2017 at 6:27:14 AM by Sebastian Huber

Milestone: 4.12.05.1

Milestone renamed

Note: See TracTickets for help on using tickets.