[PATCH] D50494: [LLD] Reserve memory in implicitly set LMARegions
    Konstantin Schwarz via Phabricator via llvm-commits 
    llvm-commits at lists.llvm.org
       
    Fri Aug 10 00:32:00 PDT 2018
    
    
  
kschwarz added a comment.
I agree it makes the code more complicated. Linker scripts require a lot of corner cases to be handled specially.
This patch right now does not take into account different memory attributes, which would forbid the placement of some output sections into those regions, but would also complicate the handling even more. In this case, we currently expect the user to set a valid LMARegion explicitly.
However, if we want to be compatible with GNU linker scripts, we need to handle these cases.
These features are used heavily in embedded systems packaging several memories with different properties (flash, ram, tightly coupled memories, etc.). In order to program these systems efficiently, the user needs precise control over where the code and date is placed. 
An example can be found here: https://github.com/ChibiOS/ChibiOS/blob/trunk/os/common/startup/ARMCMx/compilers/LLVM/ld/STM32F401xE.ld
My patches from last week fix bugs found and worked-around in this script. This patch fixes problems discovered also in existing GNU linker scripts.
Repository:
  rLLD LLVM Linker
https://reviews.llvm.org/D50494
    
    
More information about the llvm-commits
mailing list