MIPS: Fix LLVM build issue.

This change “MIPS: Fix LLVM build issue.” in Linux kernel is authored by Ralf Baechle <ralf [at] linux-mips.org> on Tue Aug 18 11:25:50 2015 +0200.

MIPS: Fix LLVM build issue.

Matthew Fortune <Matthew.Fortune@imgtec.com> reports:

The genex.S file appears to mix the case of a macro between its definition and
use. A cut down example of this is below. The macro __build_clear_none has
lower case 'build' but ends up being instantiated with upper case BUILD. Can
this be fixed on master. It has been picked up by the LLVM integrated assembler
which is currently case sensitive. We are likely to fix the assembler as well
but the code is currently inconsistent in the kernel.

 .macro __build_clear_none

 .macro __BUILD_HANDLER exception handler clear verbose ext
 .align 5
 .globl handle_exception; .align 2; .type handle_exception, @function; .ent
handle_exception, 0; handle_exception: .frame $29, 184, $29
 .set noat
 .globl handle_exceptionext; .type handle_exceptionext, @function;

 .macro BUILD_HANDLER exception handler clear verbose
 __BUILD_HANDLER exception handler clear verbose _int

BUILD_HANDLER ftlb ftlb none silent

Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
Reported-by: Matthew Fortune <Matthew.Fortune@imgtec.com>

This Linux change may have been applied to various maintained Linux releases and you can find Linux releases including commit 158d3b2.

There are 2 lines of Linux source code added/deleted in this change. Code changes to Linux kernel are as follows.

 arch/mips/kernel/genex.S | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/mips/kernel/genex.S b/arch/mips/kernel/genex.S
index af42e70..baa7b6f 100644
--- a/arch/mips/kernel/genex.S
+++ b/arch/mips/kernel/genex.S
@@ -407,7 +407,7 @@ NESTED(nmi_handler, PT_SIZE, sp)
 	.set	noat
-	__BUILD_clear_clear
+	__build_clear_clear
 	.set	at
 	__BUILD_verbose exception
 	move	a0, sp

The commit for this change in Linux stable tree is 158d3b2 (patch).

Leave a Reply

Your email address will not be published. Required fields are marked *