2018-02-20 23:46:48

by Guenter Roeck

[permalink] [raw]
Subject: metag build errors in mainline kernel

The following errors are seen when building the kernel with the latest
available metag toolchain (4.2.4 (IMG-1.4.0.700)). Kernel version tested
is (v4.16-rc2-64-gaf3e79d29555).

metag:allmodconfig

arch/metag/kernel/devtree.c:54: error: implicit declaration of function 'pr_info'

arch/metag/kernel/perf/perf_event.c:831: error: label ‘out’ used but not defined
arch/metag/kernel/perf/perf_event.c:822: warning: unused variable ‘cpu’

metag:meta2_smp_defconfig

kernel/time/hrtimer.c: In function 'hrtimer_run_softirq':
time/hrtimer.c:1431: error: unable to find a register to spill in class 'Yr_REGS'
time/hrtimer.c:1431: error: this is the insn:
(insn:HI 41 40 99 2 kernel/time/hrtimer.c:576 (set (mem/s/j:DI (plus:SI (reg/f:SI 15 D1.7 [orig:84 D.45290 ] [84])
(const_int 368 [0x170])) [0 <variable>.offset+0 S8 A128])
(reg:DI 99 [ <variable>.offset ])) 211 {*sto_di_1_1_off12} (nil)
(expr_list:REG_DEAD (reg:DI 99 [ <variable>.offset ])
(nil)))
kernel/time/hrtimer.c:1431: confused by earlier errors, bailing out

Guenter


2018-02-21 17:50:23

by James Hogan

[permalink] [raw]
Subject: Re: metag build errors in mainline kernel

On Tue, Feb 20, 2018 at 03:44:43PM -0800, Guenter Roeck wrote:
> The following errors are seen when building the kernel with the latest
> available metag toolchain (4.2.4 (IMG-1.4.0.700)). Kernel version tested
> is (v4.16-rc2-64-gaf3e79d29555).
>
> metag:allmodconfig
>
> arch/metag/kernel/devtree.c:54: error: implicit declaration of function 'pr_info'
>
> arch/metag/kernel/perf/perf_event.c:831: error: label ‘out’ used but not defined
> arch/metag/kernel/perf/perf_event.c:822: warning: unused variable ‘cpu’

Thanks, these are easy enough for me to fix up.

>
> metag:meta2_smp_defconfig
>
> kernel/time/hrtimer.c: In function 'hrtimer_run_softirq':
> time/hrtimer.c:1431: error: unable to find a register to spill in class 'Yr_REGS'
> time/hrtimer.c:1431: error: this is the insn:
> (insn:HI 41 40 99 2 kernel/time/hrtimer.c:576 (set (mem/s/j:DI (plus:SI (reg/f:SI 15 D1.7 [orig:84 D.45290 ] [84])
> (const_int 368 [0x170])) [0 <variable>.offset+0 S8 A128])
> (reg:DI 99 [ <variable>.offset ])) 211 {*sto_di_1_1_off12} (nil)
> (expr_list:REG_DEAD (reg:DI 99 [ <variable>.offset ])
> (nil)))
> kernel/time/hrtimer.c:1431: confused by earlier errors, bailing out

Hmm.. ancient shelved toolchain. Perhaps this is the excuse we need to
say goodbye to arch/metag/...

Cheers
James


Attachments:
(No filename) (1.32 kB)
signature.asc (849.00 B)
Digital signature
Download all attachments

2018-02-21 18:48:54

by Graham Whaley

[permalink] [raw]
Subject: Re: metag build errors in mainline kernel

> Hmm.. ancient shelved toolchain. Perhaps this is the excuse we need to
> say goodbye to arch/metag/...

I too was wondering - that one day there will come a time when the
toolkit will be too old and there will be no updates....

Graham

2018-02-21 18:51:09

by Guenter Roeck

[permalink] [raw]
Subject: Re: metag build errors in mainline kernel

On 02/21/2018 04:27 AM, James Hogan wrote:
> On Tue, Feb 20, 2018 at 03:44:43PM -0800, Guenter Roeck wrote:
>> The following errors are seen when building the kernel with the latest
>> available metag toolchain (4.2.4 (IMG-1.4.0.700)). Kernel version tested
>> is (v4.16-rc2-64-gaf3e79d29555).
>>
>> metag:allmodconfig
>>
>> arch/metag/kernel/devtree.c:54: error: implicit declaration of function 'pr_info'
>>
>> arch/metag/kernel/perf/perf_event.c:831: error: label ‘out’ used but not defined
>> arch/metag/kernel/perf/perf_event.c:822: warning: unused variable ‘cpu’
>
> Thanks, these are easy enough for me to fix up.
>
>>
>> metag:meta2_smp_defconfig
>>
>> kernel/time/hrtimer.c: In function 'hrtimer_run_softirq':
>> time/hrtimer.c:1431: error: unable to find a register to spill in class 'Yr_REGS'
>> time/hrtimer.c:1431: error: this is the insn:
>> (insn:HI 41 40 99 2 kernel/time/hrtimer.c:576 (set (mem/s/j:DI (plus:SI (reg/f:SI 15 D1.7 [orig:84 D.45290 ] [84])
>> (const_int 368 [0x170])) [0 <variable>.offset+0 S8 A128])
>> (reg:DI 99 [ <variable>.offset ])) 211 {*sto_di_1_1_off12} (nil)
>> (expr_list:REG_DEAD (reg:DI 99 [ <variable>.offset ])
>> (nil)))
>> kernel/time/hrtimer.c:1431: confused by earlier errors, bailing out
>
> Hmm.. ancient shelved toolchain. Perhaps this is the excuse we need to
> say goodbye to arch/metag/...
>

Might be worth a thought. The metag toolchain doesn't even build anymore
without tweaking. gcc 4.2.4 doesn't build with a modern gcc, the metag
buildroot on github points to a no longer existing daily snapshot of
uclibc, and ToT uclibc doesn't build with gcc 4.2.4.

Guenter