Skip to content
  • Ralf Baechle's avatar
    MIPS: IP22: Fix build error due to binutils 2.25 uselessnes. · 1d316060
    Ralf Baechle authored
    commit ae2f5e5e
    
     upstream.
    
    Fix the following build error with binutils 2.25.
    
      CC      arch/mips/mm/sc-ip22.o
    {standard input}: Assembler messages:
    {standard input}:132: Error: number (0x9000000080000000) larger than 32 bits
    {standard input}:159: Error: number (0x9000000080000000) larger than 32 bits
    {standard input}:200: Error: number (0x9000000080000000) larger than 32 bits
    scripts/Makefile.build:293: recipe for target 'arch/mips/mm/sc-ip22.o' failed
    make[1]: *** [arch/mips/mm/sc-ip22.o] Error 1
    
    MIPS has used .set mips3 to temporarily switch the assembler to 64 bit
    mode in 64 bit kernels virtually forever.  Binutils 2.25 broke this
    behavious partially by happily accepting 64 bit instructions in .set mips3
    mode but puking on 64 bit constants when generating 32 bit ELF.  Binutils
    2.26 restored the old behaviour again.
    
    Fix build with binutils 2.25 by open coding the offending
    
    	dli $1, 0x9000000080000000
    
    as
    
    	li	$1, 0x9000
    	dsll	$1, $1, 48
    
    which is ugly be the only thing that will build on all binutils vintages.
    
    Signed-off-by: default avatarRalf Baechle <ralf@linux-mips.org>
    Cc: stable@vger.kernel.org
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    1d316060