• Heiko Carstens's avatar
    s390: move _text symbol to address higher than zero · d04a4c76
    Heiko Carstens authored
    The perf tool assumes that kernel symbols are never present at address
    zero. In fact it assumes if functions that map symbols to addresses
    return zero, that the symbol was not found.
    
    Given that s390's _text symbol historically is located at address zero
    this yields at least a couple of false errors and warnings in one of
    perf's test cases about not present symbols ("perf test 1").
    
    To fix this simply move the _text symbol to address 0x200, just behind
    the initial psw and channel program located at the beginning of the
    kernel image. This is now hard coded within the linker script.
    
    I tried a nicer solution which moves the initial psw and channel
    program into an own section. However that would move the symbols
    within the "real" head.text section to different addresses, since the
    ".org" statements within head.S are relative to the head.text
    section. If there is a new section in front, everything else will be
    moved. Alternatively I could have adjusted all ".org" statements. But
    this current solution seems to be the easiest one, since nobody really
    cares where the _text symbol is actually located.
    Reported-by: default avatarZvonko Kosic <zkosic@linux.vnet.ibm.com>
    Signed-off-by: default avatarHeiko Carstens <heiko.carstens@de.ibm.com>
    Signed-off-by: default avatarMartin Schwidefsky <schwidefsky@de.ibm.com>
    d04a4c76
vmlinux.lds.S 2.48 KB