Re: linux-next: Tree for Jan 16 (mips build errors due to MIPSR6 patches)

From: Guenter Roeck
Date: Mon Feb 16 2015 - 10:36:34 EST

On Fri, Jan 16, 2015 at 07:47:57PM +1100, Stephen Rothwell wrote:
> Hi all,
> Changes since 20150115:
> The i2c tree gained a build failure so I used the version from
> next-20150115.
> The wireless-drivers-next tree gained a conflict against the
> wireless-drivers tree.
> The usb-gadget tree gained a conflict against the usb.current tree.
> Non-merge commits (relative to Linus' tree): 3219
> 3111 files changed, 98486 insertions(+), 52594 deletions(-)
> ----------------------------------------------------------------------------
> I have created today's linux-next tree at
> git://
> (patches at ). If you
> are tracking the linux-next tree using git, you should not use "git pull"
> to do so as that will try to merge the new linux-next release with the
> old one. You should use "git fetch" and checkout or reset to the new
> master.
Today's tree has a number of new mips related build errors.

Building mips:defconfig ... failed
Building mips:allmodconfig ... failed

Error log:
In file included from ./arch/mips/include/asm/sgiarcs.h:16:0,
from ./arch/mips/include/asm/sgialib.h:15,
from arch/mips/sgi-ip22/ip22-mc.c:16:
./arch/mips/include/asm/fw/arc/types.h:18:15: error: expected identifier or '(' before '.' token
(more of those)

In file included from ./arch/mips/include/asm/sgialib.h:15:0,
from arch/mips/sgi-ip22/ip22-mc.c:16:
./arch/mips/include/asm/sgiarcs.h:89:2: error: unknown type name '_PULONG'
./arch/mips/include/asm/sgiarcs.h:188:2: error: expected specifier-qualifier-list before '.' token
./arch/mips/include/asm/sgiarcs.h:252:2: error: unknown type name '_PLONG'
(more of those)

In file included from arch/mips/sgi-ip22/ip22-mc.c:16:0:
./arch/mips/include/asm/sgialib.h:20:8: error: expected identifier or '(' before '.' token
(more or those)

Bisect points to commit 9119e8276d ("MIPS: asm: hazards: Add MIPSR6
definitions"). Looking into the patch, I wonder if the following is correct.

+#if defined(CONFIG_CPU_MIPSR2) || defined(CONFIG_CPU_MIPSR6) && !defined(CONFIG_CPU_CAVIUM_OCTEON)

This change appears to be missing a ( ) around the first two defined()
statements. Fixing that doesn't resolve the problem, though. Reverting
the patch doesn't fix the problem either, so something else must be wrong.

Building mips:cavium_octeon_defconfig ... failed

Error log:
arch/mips/kernel/branch.c: In function '__compute_return_epc_for_insn':
arch/mips/kernel/branch.c:785:2: error: duplicate case value
arch/mips/kernel/branch.c:753:2: error: previously used here
arch/mips/kernel/branch.c:808:2: error: duplicate case value
arch/mips/kernel/branch.c:769:2: error: previously used here
arch/mips/kernel/branch.c:818:2: error: duplicate case value
arch/mips/kernel/branch.c:761:2: error: previously used here
arch/mips/kernel/branch.c:826:2: error: duplicate case value
arch/mips/kernel/branch.c:776:2: error: previously used here

Bisect points to commit 2f1da3620ff2 ("MIPS: Emulate the new MIPS R6 branch
compact (BC) instruction"). Looking into the code, the patch quite obviously
conflicts with cavium support.

To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at
Please read the FAQ at