Re: /tmp/cctnQ1CM.s:35: Error: .err encountered

From: Andrew Morton
Date: Sat Jun 30 2018 - 14:12:22 EST


On Sat, 30 Jun 2018 11:07:20 -0700 Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> wrote:

> On Sat, 30 Jun 2018 12:27:09 +0200 Dmitry Vyukov <dvyukov@xxxxxxxxxx> wrote:
>
> > > tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
> > > head: 1904148a361a07fb2d7cba1261d1d2c2f33c8d2e
> > > commit: 758517202bd2e427664857c9f2aa59da36848aca arm: port KCOV to arm
> > > date: 2 weeks ago
> > > config: arm-allmodconfig (attached as .config)
> > > compiler: arm-linux-gnueabi-gcc (Debian 7.2.0-11) 7.2.0
> > > reproduce:
> > > wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
> > > chmod +x ~/bin/make.cross
> > > git checkout 758517202bd2e427664857c9f2aa59da36848aca
> > > # save the attached .config to linux build tree
> > > GCC_VERSION=7.2.0 make.cross ARCH=arm
> > >
> > > All errors (new ones prefixed by >>):
> > >
> > > /tmp/cctnQ1CM.s: Assembler messages:
> > >>> /tmp/cctnQ1CM.s:35: Error: .err encountered
> > > /tmp/cctnQ1CM.s:36: Error: .err encountered
> > > /tmp/cctnQ1CM.s:37: Error: .err encountered
> >
> > Hi kbuild test robot,
> >
> > The fix was mailed more than a month ago, but still not merged into
> > the tree. That's linux...
>
> That was a rather unhelpful email.
>
> I've just scanned all your lkml emails since the start of May and
> cannot find anything which looks like a fix for this issue.
>
> Please resend. About three weks ago :(

OK, with a bi of amazing sleuthing I found this from Arnd, which is what
I presume you're referring to?



From: Arnd Bergmann <arnd@xxxxxxxx>
Subject: ARM: disable KCOV for trusted foundations code

The ARM trusted foundations code is currently broken in linux-next when
CONFIG_KCOV_INSTRUMENT_ALL is set:

/tmp/ccHdQsCI.s: Assembler messages:
/tmp/ccHdQsCI.s:37: Error: .err encountered
/tmp/ccHdQsCI.s:38: Error: .err encountered
/tmp/ccHdQsCI.s:39: Error: .err encountered
scripts/Makefile.build:311: recipe for target 'arch/arm/firmware/trusted_foundations.o' failed

I could not find a function attribute that lets me disable
-fsanitize-coverage=trace-pc for just one function, so this turns it off
for the entire file instead.

Link: http://lkml.kernel.org/r/20180529103636.1535457-1-arnd@xxxxxxxx
Fixes: 758517202bd2e4 ("arm: port KCOV to arm")
Signed-off-by: Arnd Bergmann <arnd@xxxxxxxx>
Cc: Dmitry Vyukov <dvyukov@xxxxxxxxxx>
Cc: Mark Rutland <mark.rutland@xxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
---


diff -puN arch/arm/firmware/Makefile~arm-disable-kcov-for-trusted-foundations-code arch/arm/firmware/Makefile
--- a/arch/arm/firmware/Makefile~arm-disable-kcov-for-trusted-foundations-code
+++ a/arch/arm/firmware/Makefile
@@ -1 +1,4 @@
obj-$(CONFIG_TRUSTED_FOUNDATIONS) += trusted_foundations.o
+
+# tf_generic_smc() fails to build with -fsanitize-coverage=trace-pc
+KCOV_INSTRUMENT := n
_