• Greg Ungerer's avatar
    m68knommu: align BSS section to 4-byte boundaries · 670d3965
    Greg Ungerer authored
    The kernel start up code for all of the nommu m68k types expects the BSS
    section to be on a 4-byte boundary, and to be a whole number of 32bit
    words. The BSS initialization loop sets 32bit sized quantities and has
    no provision for odd or unaligned accesses.
    
    The alignment and size of the BSS has historically worked out to be 4-byte
    aligned and sized - although no explicit alignment or size was specified in
    the linker script. So the BSS zeroing code worked as expected.
    
    A problem was first observed after commit 7273ad2b ("kbuild: link lib-y
    objects to vmlinux forcibly when CONFIG_MODULES=y"). Some kernel builds,
    depending on exact configuration, then tended to generate even sized BSS
    sections - which is valid on m68k - but our BSS init code could not handle
    properly.
    
    The simplest and smallest solution is to align and size the BSS
    appropriately.
    Signed-off-by: default avatarGreg Ungerer <gerg@linux-m68k.org>
    670d3965
vmlinux-nommu.lds 1.5 KB