• Helge Deller's avatar
    parisc: fix kernel memory layout in vmlinux.ld.S · 161bd3bf
    Helge Deller authored
    When building a 64bit kernel sometimes functions in the .init section were not
    able to reach the standard kernel function. Main reason for this problem is,
    that the linkage tables (.plt, .opd, .dlt) tend to become pretty huge and thus
    the distance gets too big for short calls.
    
    One option to avoid this is to use the -mlong-calls compiler option, but this
    increases the binary size and introduces a performance penalty.
    
    Instead, with this patch we just lay out the binary differently.  Init code is
    stored first, followed by text, R/O and finally R/W data. This means, that init
    and text code is now much closer to each other, which is sufficient to reach
    each other by short calls.
    Signed-off-by: default avatarHelge Deller <deller@gmx.de>
    161bd3bf
vmlinux.lds.S 3.07 KB