2018-02-25 02:52:07

by Masami Hiramatsu

[permalink] [raw]
Subject: [BUG] arm64: Build error with gcc 6

Hello,

commit e1a50de37860 ("arm64: cputype: Silence Sparse warnings")
introduces "UL" suffix to a hex number, but it causes a build error with gcc-6 series.
I've hit below error with 6.2.1 and 6.4.1. Of course this is resolved by the latest
stable gcc-7.2.1. But from the compatibility point of view, should we revert it?

AS arch/arm64/kernel/head.o
/home/mhiramat/ksrc/linux/arch/arm64/kernel/head.S: Assembler messages:
/home/mhiramat/ksrc/linux/arch/arm64/kernel/head.S:677: Error: found 'L', expected: ')'
/home/mhiramat/ksrc/linux/arch/arm64/kernel/head.S:677: Error: found 'L', expected: ')'
/home/mhiramat/ksrc/linux/arch/arm64/kernel/head.S:677: Error: found 'L', expected: ')'
/home/mhiramat/ksrc/linux/arch/arm64/kernel/head.S:677: Error: junk at end of line, first unrecognized character is `L'
/home/mhiramat/ksrc/linux/arch/arm64/kernel/head.S:677: Error: unexpected characters following instruction at operand 2 -- `movz x1,:abs_g1_s:0xff00ffffffUL'
/home/mhiramat/ksrc/linux/arch/arm64/kernel/head.S:677: Error: unexpected characters following instruction at operand 2 -- `movk x1,:abs_g0_nc:0xff00ffffffUL'
make[2]: *** [/home/mhiramat/ksrc/linux/scripts/Makefile.build:425: arch/arm64/kernel/head.o] error 1

I've checked with below 2 latest gccs.

http://releases.linaro.org/components/toolchain/binaries/latest-6/aarch64-linux-gnu/gcc-linaro-6.4.1-2017.11-x86_64_aarch64-linux-gnu.tar.xz

http://releases.linaro.org/components/toolchain/binaries/latest-7/aarch64-linux-gnu/gcc-linaro-7.2.1-2017.11-x86_64_aarch64-linux-gnu.tar.xz

Thank you,

--
Masami Hiramatsu <[email protected]>


2018-02-25 05:18:17

by Baruch Siach

[permalink] [raw]
Subject: Re: [BUG] arm64: Build error with gcc 6

Hi Masami Hiramatsu,

On Sun, Feb 25, 2018 at 11:50:37AM +0900, Masami Hiramatsu wrote:
> commit e1a50de37860 ("arm64: cputype: Silence Sparse warnings")
> introduces "UL" suffix to a hex number, but it causes a build error with gcc-6 series.
> I've hit below error with 6.2.1 and 6.4.1. Of course this is resolved by the latest
> stable gcc-7.2.1. But from the compatibility point of view, should we revert it?
>
> AS arch/arm64/kernel/head.o
> /home/mhiramat/ksrc/linux/arch/arm64/kernel/head.S: Assembler messages:
> /home/mhiramat/ksrc/linux/arch/arm64/kernel/head.S:677: Error: found 'L', expected: ')'
> /home/mhiramat/ksrc/linux/arch/arm64/kernel/head.S:677: Error: found 'L', expected: ')'
> /home/mhiramat/ksrc/linux/arch/arm64/kernel/head.S:677: Error: found 'L', expected: ')'
> /home/mhiramat/ksrc/linux/arch/arm64/kernel/head.S:677: Error: junk at end of line, first unrecognized character is `L'
> /home/mhiramat/ksrc/linux/arch/arm64/kernel/head.S:677: Error: unexpected characters following instruction at operand 2 -- `movz x1,:abs_g1_s:0xff00ffffffUL'
> /home/mhiramat/ksrc/linux/arch/arm64/kernel/head.S:677: Error: unexpected characters following instruction at operand 2 -- `movk x1,:abs_g0_nc:0xff00ffffffUL'
> make[2]: *** [/home/mhiramat/ksrc/linux/scripts/Makefile.build:425: arch/arm64/kernel/head.o] error 1
>
> I've checked with below 2 latest gccs.
>
> http://releases.linaro.org/components/toolchain/binaries/latest-6/aarch64-linux-gnu/gcc-linaro-6.4.1-2017.11-x86_64_aarch64-linux-gnu.tar.xz
>
> http://releases.linaro.org/components/toolchain/binaries/latest-7/aarch64-linux-gnu/gcc-linaro-7.2.1-2017.11-x86_64_aarch64-linux-gnu.tar.xz

The fix is pending:

https://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux.git/commit/?h=fixes/core&id=04c4927359b1f09310bfee92e7187c9022be3e00

This is in Linus' tree now, so should be in -rc3.

baruch

--
http://baruch.siach.name/blog/ ~. .~ Tk Open Systems
=}------------------------------------------------ooO--U--Ooo------------{=
- [email protected] - tel: +972.2.679.5364, http://www.tkos.co.il -

2018-02-25 11:02:33

by Masami Hiramatsu

[permalink] [raw]
Subject: Re: [BUG] arm64: Build error with gcc 6

On Sun, 25 Feb 2018 07:14:44 +0200
Baruch Siach <[email protected]> wrote:

> Hi Masami Hiramatsu,
>
> On Sun, Feb 25, 2018 at 11:50:37AM +0900, Masami Hiramatsu wrote:
> > commit e1a50de37860 ("arm64: cputype: Silence Sparse warnings")
> > introduces "UL" suffix to a hex number, but it causes a build error with gcc-6 series.
> > I've hit below error with 6.2.1 and 6.4.1. Of course this is resolved by the latest
> > stable gcc-7.2.1. But from the compatibility point of view, should we revert it?
> >
> > AS arch/arm64/kernel/head.o
> > /home/mhiramat/ksrc/linux/arch/arm64/kernel/head.S: Assembler messages:
> > /home/mhiramat/ksrc/linux/arch/arm64/kernel/head.S:677: Error: found 'L', expected: ')'
> > /home/mhiramat/ksrc/linux/arch/arm64/kernel/head.S:677: Error: found 'L', expected: ')'
> > /home/mhiramat/ksrc/linux/arch/arm64/kernel/head.S:677: Error: found 'L', expected: ')'
> > /home/mhiramat/ksrc/linux/arch/arm64/kernel/head.S:677: Error: junk at end of line, first unrecognized character is `L'
> > /home/mhiramat/ksrc/linux/arch/arm64/kernel/head.S:677: Error: unexpected characters following instruction at operand 2 -- `movz x1,:abs_g1_s:0xff00ffffffUL'
> > /home/mhiramat/ksrc/linux/arch/arm64/kernel/head.S:677: Error: unexpected characters following instruction at operand 2 -- `movk x1,:abs_g0_nc:0xff00ffffffUL'
> > make[2]: *** [/home/mhiramat/ksrc/linux/scripts/Makefile.build:425: arch/arm64/kernel/head.o] error 1
> >
> > I've checked with below 2 latest gccs.
> >
> > http://releases.linaro.org/components/toolchain/binaries/latest-6/aarch64-linux-gnu/gcc-linaro-6.4.1-2017.11-x86_64_aarch64-linux-gnu.tar.xz
> >
> > http://releases.linaro.org/components/toolchain/binaries/latest-7/aarch64-linux-gnu/gcc-linaro-7.2.1-2017.11-x86_64_aarch64-linux-gnu.tar.xz
>
> The fix is pending:
>
> https://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux.git/commit/?h=fixes/core&id=04c4927359b1f09310bfee92e7187c9022be3e00
>
> This is in Linus' tree now, so should be in -rc3.

Great! I used linux-next tree and hit above bug, so I'll use linus tree.

Thank you,


--
Masami Hiramatsu <[email protected]>