Build failure with v3.17-rc1

Russell King - ARM Linux linux at arm.linux.org.uk
Thu Aug 21 15:33:24 PDT 2014


On Thu, Aug 21, 2014 at 04:11:00PM -0500, Felipe Balbi wrote:
> Hi Russell,
> 
> When running my randconfig build tests, I noticed that I had a build
> failure at arch/arm/kernel/patch.c
> 
> KCONFIG_SEED=0x26B77624
> arch/arm/kernel/patch.c: In function ‘__patch_text’:
> arch/arm/kernel/patch.c:35:4: error: implicit declaration of function ‘__opcode_to_mem_thumb32’ [-Werror=implicit-function-declaration]
>     insn = __opcode_to_mem_thumb32(insn);
>     ^
> cc1: some warnings being treated as errors
> make[1]: *** [arch/arm/kernel/patch.o] Error 1
> make[1]: *** Waiting for unfinished jobs....
> make: *** [arch/arm/kernel] Error 2
> make: *** Waiting for unfinished jobs....
> 
> Looking at the definition of __opcode_to_mem_thumb32 it's easy to see
> that it's not defined when ! CONFIG_CPU_ENDIAN_BE8 and that's exactly
> what I have in my generated defconfig (attached).
> 
> Would below patch be the correct fix for this ?

I think you should read a bit more of the file first.  In the ifdef which
starts in the context of your patch:

#ifndef CONFIG_CPU_ENDIAN_BE32
/*
 * On BE32 systems, using 32-bit accesses to store Thumb instructions will not
 * work in all cases, due to alignment constraints.  For now, a correct
 * version is not provided for BE32.
 */
#define __opcode_to_mem_thumb32(x) ___opcode_swahw32(x)
#define ___asm_opcode_to_mem_thumb32(x) ___asm_opcode_swahw32(x)
#endif

The contents of the ifdef cover the !BE32 case.  It doesn't cover the BE32
case, and the BE32 case is what is being referred to in the comment.

It seems that it is intentionally not provided because it's currently
broken, and has been broken for about the last two years.

Further information can be found by looking in the git history, which
brings up commit ID 57b9da32addd.  This commit text implies the need
for __opcode_to_mem_thumb32() is an error.

-- 
FTTC broadband for 0.8mile line: currently at 9.5Mbps down 400kbps up
according to speedtest.net.



More information about the linux-arm-kernel mailing list