Compiling with binutils 2.21 needs to have this sec arch_extention gcc does not know march=armv7-a+sec and if we use -Wa,-march=armv7-a+sec then assembler does not honor it because march=armv7-a when specfied to gcc driver adds march=armv7-a *before* -Wa,-march=armv7-a+sec when calling assembler. There is no way getting around that :( So what do we do ? We take the fight to the beast We add the .arch_extention where its added in inline assembly. This file is added by one of local OE patches these patches are not (upstream _yet_ or discarded) dont know -Khem Index: git/arch/arm/kernel/sysfs_v7.c =================================================================== --- git.orig/arch/arm/kernel/sysfs_v7.c +++ git/arch/arm/kernel/sysfs_v7.c @@ -76,7 +76,8 @@ static ssize_t aux_ctl_store(struct sys_ asm ("mrc p15, 0, %0, c1, c0, 1" : "=r"(val)); SETBITS(val, 0xff8, new); val &= ~2; - asm ("mov r0, %0 \n\t" + asm (".arch_extension sec\n\t" + "mov r0, %0 \n\t" "mov r12, #3 \n\t" "smc #0 \n\t" :: "r"(val) : "r0", "r12"); @@ -107,7 +108,8 @@ static ssize_t l2_aux_ctl_store(struct s asm ("mrc p15, 1, %0, c9, c0, 2" : "=r"(val)); SETBITS(val, 0xbc00000, new); - asm ("mov r0, %0 \n\t" + asm (".arch_extension sec\n\t" + "mov r0, %0 \n\t" "mov r12, #2 \n\t" "smc #0 \n\t" :: "r"(val) : "r0", "r12");