• Pawel Moll's avatar
    ARM: 6740/1: Place correctly notes section in the linker script · dc810efb
    Pawel Moll authored
    Commit 18991197 added --build-id
    linker option when toolchain supports it. ARM one does, but for some
    reason places the section at 0 when linker script doesn't mention it
    explicitly.
    
    The 1e621a8e worked around the problem
    removing this section from binary image with explicit objcopy options,
    but it still exists in vmlinux, confusing tools like debuggers and perf.
    
    This problem was discussed here:
    http://lists.infradead.org/pipermail/linux-arm-kernel/2010-May/015994.html
    http://lists.infradead.org/pipermail/linux-arm-kernel/2010-May/015994.html
    but the proposed changes to the linker script were substantial.
    
    This patch simply places NOTES (36 bytes long, at least when compiled
    with CodeSourcery toolchain) between data and bss, which seem to be
    the right place (and suggested by the sample linker script in
    include/asm-generic/vmlinux.lds.h).
    
    It is enough to place it correctly in vmlinux (so debuggers are happy):
    
    Section Headers:
      [11] .data             PROGBITS        c07ce000 7ce000 020fc0 00  WA  0   0 32
      [12] .notes            NOTE            c07eefc0 7eefc0 000024 00  AX  0   0  4
      [13] .bss              NOBITS          c07ef000 7eefe4 01e628 00  WA  0   0 32
    Program Headers:
      LOAD           0x008000 0xc0008000 0xc0008000 0x7e6fe4 0x805628 RWE 0x8000
      NOTE           0x7eefc0 0xc07eefc0 0xc07eefc0 0x00024 0x00024 R E 0x4
    Section to Segment mapping:
      Segment Sections...
       00     <...> .data .notes .bss
       01     .notes
    
    and to get it exposed as /sys/kernel/notes used by perf tools.
    Signed-off-by: default avatarPawel Moll <pawel.moll@arm.com>
    Signed-off-by: default avatarRussell King <rmk+kernel@arm.linux.org.uk>
    dc810efb
vmlinux.lds.S 5.14 KB