Thread (12 messages) flat view 12 messages, 4 authors, 2016-11-08

Re: compiling master.

From: Denis Kirjanov <hidden>
Date: 2016-11-03 08:18:41

On 11/3/16, Naveen N. Rao [off-list ref] wrote:
On 2016/11/03 03:55PM, Nicholas Piggin wrote:
quoted
On Wed, 2 Nov 2016 13:49:39 +0300
Denis Kirjanov [off-list ref] wrote:
quoted
Hi guys,

compiling ppc head with bunch of asm errors on power8 box (gcc version
4.8.3 )
checked commit log but found nothing special. Looks like it's asm
issue?
Has anybody seen that?

arch/powerpc/kernel/exceptions-64s.S: Assembler messages:
arch/powerpc/kernel/exceptions-64s.S:421: Error: operand out of range
(0xffffffffffff8680 is not between 0x0000000000000000 and
0x000000000000ffff)
Hey, thanks for the report. It's likely due to the exception vectors
rewrite,
and yes it's an assembler issue (what's your binutils version?). Your
errors
look like they're coming from LOAD_HANDLER(). For some reason it seems to
be
interpreting the immediate as signed, or the actual calculation ends up
being
negative, neither of which should happen.

It might take a bit of trial and error, and the assembler doesn't give a
lot
of good options to debug it, so if I can reproduce it here with your
bintuils
version it will be helpful.
I saw this issue when trying to do a BE build on RHEL 7.1. The below
fixes this for me and it indeed looks like an issue with the assembler.
Interestingly, the same assembler version on RHEL 7.1 LE does not throw
these errors.

[root@rhel71be linux]# gcc --version
gcc (GCC) 4.8.3 20140911 (Red Hat 4.8.3-8)
<snip>
[root@rhel71be linux]# as --version
GNU assembler version 2.23.52.0.1-26.el7 20130226
<snip>

Signed-off-by: Naveen N. Rao <redacted>
Yep, it works. thanks!
quoted hunk ↗ jump to hunk
---
 arch/powerpc/include/asm/exception-64s.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/arch/powerpc/include/asm/exception-64s.h
b/arch/powerpc/include/asm/exception-64s.h
index 2e4e7d8..9b7b302 100644
--- a/arch/powerpc/include/asm/exception-64s.h
+++ b/arch/powerpc/include/asm/exception-64s.h
@@ -91,7 +91,7 @@
  */
 #define LOAD_HANDLER(reg, label)					\
 	ld	reg,PACAKBASE(r13);	/* get high part of &label */	\
-	ori	reg,reg,(FIXED_SYMBOL_ABS_ADDR(label))@l;
+	ori	reg,reg,((FIXED_SYMBOL_ABS_ADDR(label)) & 0xffff);

 /* Exception register prefixes */
 #define EXC_HV	H
--
2.10.1
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help