MIPS: IP22: Fix binutils due to binutils 2.25 uselessnes.
| Newsgroups | gmane.linux.ports.mips.cvs |
|---|---|
| Message-ID | <S23993149AbcLPBcb4mn0O/[email protected]> |
Author: Ralf Baechle <[email protected]> Thu Dec 15 12:39:22 2016 +0100 Commit: eb645930ea6d827e7c79e28b48e3e4afd0cdaf32 Gitweb: https://git.linux-mips.org/g/ralf/linux/eb645930ea6d Branch: linux-2.4.34-stable 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: Ralf Baechle <[email protected]> Cc: [email protected] (cherry picked from commit 09852585a6fb38dac452d1dd3ed7cf9979e6363f) --- arch/mips/mm/sc-ip22.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-)