• Paul Burton's avatar
    MIPS: Fix BUILD_ROLLBACK_PROLOGUE for microMIPS · 1eefcbc8
    Paul Burton authored
    When the kernel is built for microMIPS, branches targets need to be
    known to be microMIPS code in order to result in bit 0 of the PC being
    set. The branch target in the BUILD_ROLLBACK_PROLOGUE macro was simply
    the end of the macro, which may be pointing at padding rather than at
    code. This results in recent enough GNU linkers complaining like so:
    
        mips-img-linux-gnu-ld: arch/mips/built-in.o: .text+0x3e3c: Unsupported branch between ISA modes.
        mips-img-linux-gnu-ld: final link failed: Bad value
        Makefile:936: recipe for target 'vmlinux' failed
        make: *** [vmlinux] Error 1
    
    Fix this by changing the branch target to be the start of the
    appropriate handler, skipping over any padding.
    Signed-off-by: default avatarPaul Burton <paul.burton@imgtec.com>
    Cc: linux-mips@linux-mips.org
    Patchwork: https://patchwork.linux-mips.org/patch/14019/Signed-off-by: default avatarRalf Baechle <ralf@linux-mips.org>
    1eefcbc8
genex.S 11.4 KB