Re: 'kbuild: simpler generation of assembly constants' causing frv build errors

From: Guenter Roeck
Date: Sun Jul 24 2016 - 10:02:56 EST


On 07/24/2016 01:24 AM, Alexey Dobriyan wrote:
On Sat, Jul 23, 2016 at 05:11:23PM -0700, Guenter Roeck wrote:
Hi,

your commit 'kbuild: simpler generation of assembly constants' in next
causes build errors when trying to build frv images.

arch/frv/kernel/switch_to.S: Assembler messages:
arch/frv/kernel/switch_to.S:155: Error: unresolved expression that must be resolved
arch/frv/kernel/switch_to.S:160: Error: unresolved expression that must be resolved

OK, I don't have frv cross-compiler.

I use the compiler from https://www.kernel.org/pub/tools/crosstool/.

What's in include/generated/asm-offsets.h ?


Here is a whitespace-cleaned diff of the file as generated in mainline against -next.

< #define REG_PSR 0 /* offsetof(struct pt_regs, psr) ; */
< #define REG_ISR 4 /* offsetof(struct pt_regs, isr) ; */
< #define REG_CCR 8 /* offsetof(struct pt_regs, ccr) ; */
< #define REG_CCCR 12 /* offsetof(struct pt_regs, cccr) ; */
< #define REG_LR 16 /* offsetof(struct pt_regs, lr) ; */
< #define REG_LCR 20 /* offsetof(struct pt_regs, lcr) ; */
< #define REG_PC 24 /* offsetof(struct pt_regs, pc) ; */
< #define REG__STATUS 28 /* offsetof(struct pt_regs, __status) ; */
< #define REG_SYSCALLNO 32 /* offsetof(struct pt_regs, syscallno) ; */
< #define REG_ORIG_GR8 36 /* offsetof(struct pt_regs, orig_gr8) ; */
< #define REG_GNER0 40 /* offsetof(struct pt_regs, gner0) ; */
< #define REG_GNER1 44 /* offsetof(struct pt_regs, gner1) ; */
< #define REG_IACC0 48 /* offsetof(struct pt_regs, iacc0) ; */
< #define REG_TBR 56 /* offsetof(struct pt_regs, tbr) ; */
< #define REG_GR0 56 /* offsetof(struct pt_regs, tbr) ; */
32,47d14
<
< #define REG_DCR 632 /* offsetof(struct frv_frame0, debug.dcr) ; */
< #define REG_IBAR0 640 /* offsetof(struct frv_frame0, debug.ibar[0]) ; */
< #define REG_DBAR0 656 /* offsetof(struct frv_frame0, debug.dbar[0]) ; */
< #define REG_DBDR00 672 /* offsetof(struct frv_frame0, debug.dbdr[0][0]) ; */
< #define REG_DBMR00 736 /* offsetof(struct frv_frame0, debug.dbmr[0][0]) ; */
<
< #define __INT_GR0 56 /* offsetof(struct user_context, i.gr[0]) ; */
< #define __USER_FPMEDIA 312 /* offsetof(struct user_context, f) ; */
< #define __FPMEDIA_FR0 312 /* offsetof(struct user_context, f.fr[0]) ; */
< #define __FPMEDIA_FNER0 568 /* offsetof(struct user_context, f.fner[0]) ; */
< #define __FPMEDIA_MSR0 576 /* offsetof(struct user_context, f.msr[0]) ; */
< #define __FPMEDIA_ACC0 584 /* offsetof(struct user_context, f.acc[0]) ; */
< #define __FPMEDIA_ACCG0 616 /* offsetof(struct user_context, f.accg[0]) ; */
< #define __FPMEDIA_FSR0 624 /* offsetof(struct user_context, f.fsr[0]) ; */

A quick glance suggests that those missing defines are responsible for
the build problems.

Guenter