• Hugh Dickins's avatar
    powerpc: Fix exception vector build with 2.23 era binutils · e6740ae6
    Hugh Dickins authored
    The changes to use gas sections for constructing the exception vectors
    causes a build break when using binutils 2.23:
    
      arch/powerpc/kernel/exceptions-64s.S:770: Error: operand out of range
      (0xffffffffffff8100 is not between 0x0000000000000000 and 0x000000000000ffff)
    
    And so on.
    
    Reported by Hugh with binutils-2.23.2-8.1.4.ppc64 from openSUSE 13.1 and
    also Naveen & Denis using 2.23.52.0.1-26.el7 from RHEL 7. Strangely
    binutils 2.22 (what I test with) is not affected.
    
    This is caused by the use of @l in LOAD_HANDLER(). The @l was only
    recently added in commit a24553dd ("powerpc/pseries: Remove
    unnecessary syscall trampoline").
    
    Luckily the gas section changes split out the LOAD_SYSCALL_HANDLER()
    macro, which means we actually *don't* need to use @l in LOAD_HANDLER()
    any more, only in LOAD_SYSCALL_HANDLER().
    
    So drop the @l from LOAD_HANDLER().
    
    Fixes: 57f26649 ("powerpc: Use gas sections for arranging exception vectors")
    Signed-off-by: default avatarHugh Dickins <hughd@google.com>
    [mpe: Add gory details to change log]
    Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
    e6740ae6
exception-64s.h 17.8 KB