[RTEMS Project] #4944: libdl test dl09 fails on arm and aarch64

RTEMS trac trac at rtems.org
Thu Aug 24 06:16:09 UTC 2023


#4944: libdl test dl09 fails on arm and aarch64
-------------------------+---------------------
 Reporter:  Chris Johns  |       Owner:  (none)
     Type:  defect       |      Status:  new
 Priority:  normal       |   Milestone:  6.1
Component:  lib/dl       |     Version:  6
 Severity:  normal       |  Resolution:
 Keywords:               |  Blocked By:
 Blocking:               |
-------------------------+---------------------

Comment (by Chris Johns):

 I have added allocator `resize` support to `libdl`. The object file memory
 is resized if there are any trampolines found when the relocation records
 are parsed. The sizing determines the amount of trampoline memory needed
 and the `tramp_size` is added to the `text_size` resizing the `text`
 section.

 The order of allocations has been changed so `text` is last and so lower
 the probability resizing moves the `text_base` address. In the output from
 `dl09` you can see 120 bytes of trampoline memory is being added onto the
 `text` section:
 {{{
 rtl: alloc: resize: READ_WRITE prev-addr=0x4e132610 addr=0x4e132610 size=8
 rtl: alloc: resize: READ_WRITE prev-addr=0x4e132670 addr=0x4e132670
 size=32
 rtl: alloc: resize: READ prev-addr=0x4e1326e0 addr=0x4e1326e0 size=328
 rtl: alloc: resize: READ_EXEC prev-addr=0x4e132870 addr=0x4e132870
 size=472
 rtl: resize sect: text  - b:0x4e132870 s:472 a:4
 rtl: resize sect: tramp - b:0x4e1329d0 s:120 a:8
 rtl: resize sect: const - b:0x4e1326e0 s:328 a:8
 rtl: resize sect: eh    - b:0 s:0 a:0
 rtl: resize sect: data  - b:0x4e132610 s:8 a:0
 rtl: resize sect: bss   - b:0x4e132670 s:32 a:8
 }}}
 The changes will handle a section moving when resizing.

 The `dl09` test now passes for `aarch64` with and without trace being
 turned on.

--
Ticket URL: <http://devel.rtems.org/ticket/4944#comment:4>
RTEMS Project <http://www.rtems.org/>
RTEMS Project


More information about the bugs mailing list