[prev in list] [next in list] [prev in thread] [next in thread] 

List:       binutils-bugs
Subject:    [Bug ld/14299] Allow output sections to be spread over multiple memory regions
From:       "marcus.shawcroft at gmail dot com" <sourceware-bugzilla () sourceware ! org>
Date:       2017-02-23 7:48:18
Message-ID: bug-14299-70-D2cO0LL2Wl () http ! sourceware ! org/bugzilla/
[Download RAW message or body]

https://sourceware.org/bugzilla/show_bug.cgi?id=14299

Marcus Shawcroft <marcus.shawcroft at gmail dot com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |marcus.shawcroft at gmail dot com

--- Comment #1 from Marcus Shawcroft <marcus.shawcroft at gmail dot com> ---
Aside from performance enhancement aspect of this issue there is a more
sinister correctness issue associated with this problem.

In the case of the cortex-m4 an attempt to perform an unaligned access across
the boundary will result in a memory fault.

A common use case is to aggregate the two regions into a single RAM bank
(ignoring any potental performance optimization that might be had), in this
scenario there is no obvious way to write a link script that fills up both RAM
regions but ensures that no object is placed straddling the boundary.

mbed-os and several other platform software implementations address this issue
by writing a linker script that partitions the RAM into the two output regions
and then manually hardwire input sections to the two output sections.  This
solution is fragile and regularly fails with the first region overflowing,
resulting in further tweaks to the linker script.

zephyr-os also have this issue and currently have no workaround.

-- 
You are receiving this mail because:
You are on the CC list for the bug.

[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic