* Re: compiling master.
2016-11-03 6:53 ` Naveen N. Rao
@ 2016-11-03 7:09 ` Nicholas Piggin
2016-11-03 10:34 ` Naveen N. Rao
2016-11-03 8:18 ` Denis Kirjanov
` (2 subsequent siblings)
3 siblings, 1 reply; 12+ messages in thread
From: Nicholas Piggin @ 2016-11-03 7:09 UTC (permalink / raw)
To: Naveen N. Rao; +Cc: Denis Kirjanov, linuxppc-dev
On Thu, 3 Nov 2016 12:23:17 +0530
"Naveen N. Rao" <naveen.n.rao@linux.vnet.ibm.com> wrote:
> On 2016/11/03 03:55PM, Nicholas Piggin wrote:
> > On Wed, 2 Nov 2016 13:49:39 +0300
> > Denis Kirjanov <kda@linux-powerpc.org> wrote:
> >
> > > 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 <naveen.n.rao@linux.vnet.ibm.com>
> ---
> 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
Thanks for taking a look. Does this patch fix it, or just hide the build
error? This would presumably hide real bugs too, so it will be good if we
can make it conditional on older assemblers, or otherwise do a test for
out of bounds value (you could try asm directives like .if/.error)
Thanks,
Nick
^ permalink raw reply [flat|nested] 12+ messages in thread* Re: compiling master.
2016-11-03 7:09 ` Nicholas Piggin
@ 2016-11-03 10:34 ` Naveen N. Rao
0 siblings, 0 replies; 12+ messages in thread
From: Naveen N. Rao @ 2016-11-03 10:34 UTC (permalink / raw)
To: Nicholas Piggin; +Cc: Denis Kirjanov, linuxppc-dev
On 2016/11/03 06:09PM, Nicholas Piggin wrote:
> On Thu, 3 Nov 2016 12:23:17 +0530
> "Naveen N. Rao" <naveen.n.rao@linux.vnet.ibm.com> wrote:
> > 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
>
> Thanks for taking a look. Does this patch fix it, or just hide the build
> error? This would presumably hide real bugs too, so it will be good if we
> can make it conditional on older assemblers, or otherwise do a test for
> out of bounds value (you could try asm directives like .if/.error)
It does seem to fix it for me - the built kernel booted fine ;)
My assembly skills are a bit lacking, but is there a specific reason you
think that AND'ing with 0xffff is different from using @l?
Thanks,
Naveen
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: compiling master.
2016-11-03 6:53 ` Naveen N. Rao
2016-11-03 7:09 ` Nicholas Piggin
@ 2016-11-03 8:18 ` Denis Kirjanov
2016-11-03 9:51 ` Michael Ellerman
2016-11-08 7:26 ` Michael Ellerman
3 siblings, 0 replies; 12+ messages in thread
From: Denis Kirjanov @ 2016-11-03 8:18 UTC (permalink / raw)
To: Naveen N. Rao; +Cc: Nicholas Piggin, linuxppc-dev
On 11/3/16, Naveen N. Rao <naveen.n.rao@linux.vnet.ibm.com> wrote:
> On 2016/11/03 03:55PM, Nicholas Piggin wrote:
>> On Wed, 2 Nov 2016 13:49:39 +0300
>> Denis Kirjanov <kda@linux-powerpc.org> wrote:
>>
>> > 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 <naveen.n.rao@linux.vnet.ibm.com>
Yep, it works. thanks!
> ---
> 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
>
>
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: compiling master.
2016-11-03 6:53 ` Naveen N. Rao
2016-11-03 7:09 ` Nicholas Piggin
2016-11-03 8:18 ` Denis Kirjanov
@ 2016-11-03 9:51 ` Michael Ellerman
2016-11-03 10:30 ` Naveen N. Rao
2016-11-08 7:26 ` Michael Ellerman
3 siblings, 1 reply; 12+ messages in thread
From: Michael Ellerman @ 2016-11-03 9:51 UTC (permalink / raw)
To: Naveen N. Rao, Nicholas Piggin; +Cc: Denis Kirjanov, linuxppc-dev
"Naveen N. Rao" <naveen.n.rao@linux.vnet.ibm.com> writes:
> 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);
That's weird. We explicitly added the @l there to make it work with
binutils 2.22. Is the Redhat "2.23" not really 2.23 ?
cheers
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: compiling master.
2016-11-03 9:51 ` Michael Ellerman
@ 2016-11-03 10:30 ` Naveen N. Rao
2016-11-03 10:52 ` Denis Kirjanov
0 siblings, 1 reply; 12+ messages in thread
From: Naveen N. Rao @ 2016-11-03 10:30 UTC (permalink / raw)
To: Michael Ellerman; +Cc: Nicholas Piggin, Denis Kirjanov, linuxppc-dev
On 2016/11/03 08:51PM, Michael Ellerman wrote:
> "Naveen N. Rao" <naveen.n.rao@linux.vnet.ibm.com> writes:
> > 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);
>
> That's weird. We explicitly added the @l there to make it work with
> binutils 2.22. Is the Redhat "2.23" not really 2.23 ?
Not sure why @l isn't working. It does seem to be 2.23. Also, it is a
bit weird that this only shows up on BE and not on LE...
[root@rhel71be linux]# rpm -qf /usr/bin/as
binutils-2.23.52.0.1-30.el7.ppc64
[root@rhel71be linux]# rpm -qi binutils
Name : binutils
Version : 2.23.52.0.1
Release : 30.el7
Architecture: ppc64
Install Date: Thursday 03 November 2016 03:58:24 PM IST
Group : Development/Tools
Size : 14200512
License : GPLv3+
Signature : RSA/SHA256, Monday 19 January 2015 10:14:51 PM IST, Key ID
199e2f91fd431d51
Source RPM : binutils-2.23.52.0.1-30.el7.src.rpm
Build Date : Thursday 15 January 2015 10:55:42 PM IST
Build Host : ppc-020.build.eng.bos.redhat.com
Relocations : (not relocatable)
Packager : Red Hat, Inc. <http://bugzilla.redhat.com/bugzilla>
Vendor : Red Hat, Inc.
URL : http://sources.redhat.com/binutils
Summary : A GNU collection of binary utilities
- Naveen
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: compiling master.
2016-11-03 10:30 ` Naveen N. Rao
@ 2016-11-03 10:52 ` Denis Kirjanov
0 siblings, 0 replies; 12+ messages in thread
From: Denis Kirjanov @ 2016-11-03 10:52 UTC (permalink / raw)
To: Naveen N. Rao; +Cc: Michael Ellerman, Nicholas Piggin, linuxppc-dev
On 11/3/16, Naveen N. Rao <naveen.n.rao@linux.vnet.ibm.com> wrote:
> On 2016/11/03 08:51PM, Michael Ellerman wrote:
>> "Naveen N. Rao" <naveen.n.rao@linux.vnet.ibm.com> writes:
>> > 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);
>>
>> That's weird. We explicitly added the @l there to make it work with
>> binutils 2.22. Is the Redhat "2.23" not really 2.23 ?
I have the same version: Version : 2.23.52.0.1
>
> Not sure why @l isn't working. It does seem to be 2.23. Also, it is a
> bit weird that this only shows up on BE and not on LE...
>
> [root@rhel71be linux]# rpm -qf /usr/bin/as
> binutils-2.23.52.0.1-30.el7.ppc64
> [root@rhel71be linux]# rpm -qi binutils
> Name : binutils
> Version : 2.23.52.0.1
> Release : 30.el7
> Architecture: ppc64
> Install Date: Thursday 03 November 2016 03:58:24 PM IST
> Group : Development/Tools
> Size : 14200512
> License : GPLv3+
> Signature : RSA/SHA256, Monday 19 January 2015 10:14:51 PM IST, Key ID
> 199e2f91fd431d51
> Source RPM : binutils-2.23.52.0.1-30.el7.src.rpm
> Build Date : Thursday 15 January 2015 10:55:42 PM IST
> Build Host : ppc-020.build.eng.bos.redhat.com
> Relocations : (not relocatable)
> Packager : Red Hat, Inc. <http://bugzilla.redhat.com/bugzilla>
> Vendor : Red Hat, Inc.
> URL : http://sources.redhat.com/binutils
> Summary : A GNU collection of binary utilities
>
>
> - Naveen
>
>
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: compiling master.
2016-11-03 6:53 ` Naveen N. Rao
` (2 preceding siblings ...)
2016-11-03 9:51 ` Michael Ellerman
@ 2016-11-08 7:26 ` Michael Ellerman
2016-11-08 8:21 ` Denis Kirjanov
2016-11-08 17:33 ` Naveen N. Rao
3 siblings, 2 replies; 12+ messages in thread
From: Michael Ellerman @ 2016-11-08 7:26 UTC (permalink / raw)
To: Naveen N. Rao, Nicholas Piggin; +Cc: Denis Kirjanov, linuxppc-dev
Can you guys let me know if Hugh's fix works for you?
https://patchwork.ozlabs.org/patch/691753/
cheers
^ permalink raw reply [flat|nested] 12+ messages in thread* Re: compiling master.
2016-11-08 7:26 ` Michael Ellerman
@ 2016-11-08 8:21 ` Denis Kirjanov
2016-11-08 17:33 ` Naveen N. Rao
1 sibling, 0 replies; 12+ messages in thread
From: Denis Kirjanov @ 2016-11-08 8:21 UTC (permalink / raw)
To: Michael Ellerman; +Cc: Naveen N. Rao, Nicholas Piggin, linuxppc-dev
On 11/8/16, Michael Ellerman <mpe@ellerman.id.au> wrote:
> Can you guys let me know if Hugh's fix works for you?
>
> https://patchwork.ozlabs.org/patch/691753/
Ok, the patch works fine for me.
>
> cheers
>
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: compiling master.
2016-11-08 7:26 ` Michael Ellerman
2016-11-08 8:21 ` Denis Kirjanov
@ 2016-11-08 17:33 ` Naveen N. Rao
1 sibling, 0 replies; 12+ messages in thread
From: Naveen N. Rao @ 2016-11-08 17:33 UTC (permalink / raw)
To: Michael Ellerman; +Cc: Nicholas Piggin, Denis Kirjanov, linuxppc-dev
On 2016/11/08 06:26PM, Michael Ellerman wrote:
> Can you guys let me know if Hugh's fix works for you?
>
> https://patchwork.ozlabs.org/patch/691753/
Yes, that works for me too.
- Naveen
^ permalink raw reply [flat|nested] 12+ messages in thread