• Arnd Bergmann's avatar
    ARM: omap1: fix building with clang IAS · 28399a5a
    Arnd Bergmann authored
    The clang integrated assembler fails to build one file with
    a complex asm instruction:
    
    arch/arm/mach-omap1/ams-delta-fiq-handler.S:249:2: error: invalid instruction, any one of the following would fix this:
     mov r10, #(1 << (((NR_IRQS_LEGACY + 12) - NR_IRQS_LEGACY) % 32)) @ set deferred_fiq bit
     ^
    arch/arm/mach-omap1/ams-delta-fiq-handler.S:249:2: note: instruction requires: armv6t2
     mov r10, #(1 << (((NR_IRQS_LEGACY + 12) - NR_IRQS_LEGACY) % 32)) @ set deferred_fiq bit
     ^
    arch/arm/mach-omap1/ams-delta-fiq-handler.S:249:2: note: instruction requires: thumb2
     mov r10, #(1 << (((NR_IRQS_LEGACY + 12) - NR_IRQS_LEGACY) % 32)) @ set deferred_fiq bit
     ^
    
    The problem is that 'NR_IRQS_LEGACY' is not defined here. Apparently
    gas does not care because we first add and then subtract this number,
    leading to the immediate value to be the same regardless of the
    specific definition of NR_IRQS_LEGACY.
    
    Neither the way that 'gas' just silently builds this file, nor the
    way that clang IAS makes nonsensical suggestions for how to fix it
    is great. Fortunately there is an easy fix, which is to #include
    the header that contains the definition.
    Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
    Acked-by: default avatarTony Lindgren <tony@atomide.com>
    Link: https://lore.kernel.org/r/20210308153430.2530616-1-arnd@kernel.org'
    Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
    28399a5a
ams-delta-fiq-handler.S 8.53 KB