Messages in this thread | | | Date | Wed, 02 Jan 2019 16:09:04 +0100 | From | Stefan Agner <> | Subject | Re: [PATCH 2/3] ARM: uaccess: use unified assembler language syntax |
| |
On 30.12.2018 20:12, kbuild test robot wrote: > Hi Stefan, > > I love your patch! Yet something to improve: > > [auto build test ERROR on arm/for-next] > [also build test ERROR on v4.20 next-20181224] > [if your patch is applied to the wrong git tree, please drop us a note > to help improve the system] > > url: > https://github.com/0day-ci/linux/commits/Stefan-Agner/ARM-fix-argument-count-to-match-macro-definition/20181231-001137 > base: git://git.armlinux.org.uk/~rmk/linux-arm.git for-next > config: arm-ebsa110_defconfig (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 > # save the attached .config to linux build tree > GCC_VERSION=7.2.0 make.cross ARCH=arm > > All errors (new ones prefixed by >>): > > /tmp/ccfKN3IW.s: Assembler messages: > /tmp/ccfKN3IW.s:26: Error: bad instruction `sbcscc r1,r1,r3' >>> /tmp/ccfKN3IW.s:94: Error: bad instruction `sbcscc r8,r8,r0' > /tmp/ccfKN3IW.s:104: Error: bad instruction `sbcscc r0,r0,r2' > /tmp/ccfKN3IW.s:155: Error: bad instruction `sbcscc lr,lr,r2' > /tmp/ccfKN3IW.s:630: Error: bad instruction `sbcscc r1,r1,r2'
Hm, it seems that gcc always assumes inline assembly is in non-unified syntax when compiling using -marm:
.syntax divided @ 244 "arch/arm/kernel/signal.c" 1 adds ip, r1, #760; sbcscc ip, ip, r3; movcc r3, #0 @ 0 "" 2
It seems that gcc would have an option to force unified syntax when generating code for ARM state (-marm) using -masm-syntax-unified. However, unfortunately, this seems currently broken. I created a bug in the gcc bug tracker: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88648
The only solution I found is using ".syntax unified" in inline assembly, not pretty but seems to do the job... Will send a v2.
-- Stefan
> -- > /tmp/cc9oa73P.s: Assembler messages: > /tmp/cc9oa73P.s:2036: Error: bad instruction `sbcscc r1,r1,r3' > /tmp/cc9oa73P.s:3325: Error: bad instruction `sbcscc r3,r3,r0' > /tmp/cc9oa73P.s:3724: Error: bad instruction `sbcscc r2,r2,r3' > /tmp/cc9oa73P.s:4242: Error: bad instruction `sbcscc r1,r1,r3' >>> /tmp/cc9oa73P.s:4304: Error: bad instruction `sbcscc r10,r10,r2' > /tmp/cc9oa73P.s:4831: Error: bad instruction `sbcscc r1,r1,r3' > /tmp/cc9oa73P.s:4973: Error: bad instruction `sbcscc r1,r1,r3' > /tmp/cc9oa73P.s:5059: Error: bad instruction `sbcscc r0,r0,r2' > /tmp/cc9oa73P.s:5076: Error: bad instruction `sbcscc r0,r0,r2' > /tmp/cc9oa73P.s:5120: Error: bad instruction `sbcscc r1,r1,r3' > -- > /tmp/ccnaC92i.s: Assembler messages: >>> /tmp/ccnaC92i.s:133: Error: bad instruction `sbcscc r7,r7,r1' > /tmp/ccnaC92i.s:225: Error: bad instruction `sbcscc r1,r1,r3' > /tmp/ccnaC92i.s:631: Error: bad instruction `sbcscc ip,ip,r3' > > --- > 0-DAY kernel test infrastructure Open Source Technology Center > https://lists.01.org/pipermail/kbuild-all Intel Corporation
| |