[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#758964: gcc-4.9 assembler errors when building md5 code from fbb on arm64



Control: severity -1 serious
Control: tag -1 +patch

On Sat, Aug 23, 2014 at 10:54:54AM +0100, peter green wrote:
>Package: gcc-4.9
>Version: 4.9.1-7
>x-debbugs-cc: fbb@packages.debian.org
>Control:| affects -1 fbb|
>
>While building the latest version of fbb (the previous version built
>successfully) for arm64 the autobuilders (both on debian-ports and
>debian official) ran into the following error. They were using
>gcc-4.9 version 4.9.1-7
>
>gcc -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wstrict-prototypes -O2 -g -funsigned-char  -D__LINUX__ -DPROTOTYPES -I../include -DUSE_NCURSES -D_FORTIFY_SOURCE=2  -c -o md5c.o md5c.c
>/tmp/ccrwJ404.s: Assembler messages:
>/tmp/ccrwJ404.s:609: Error: operand 1 should be an integer register -- `ldr v12,[x1]'
>/tmp/ccrwJ404.s:610: Error: invalid use of vector register at operand 1 -- `eor v12,x6,v12'
><builtin>: recipe for target 'md5c.o' failed
>
>I was able to reproducte this locally (under user mode qemu) with
>4.9.1-8 and have prepared a reduced (though unfortunately stil fairly
>large) testcase.
>
>root@debian:/# gcc -g -fstack-protector-strong -O2 -c -o test.o test.c
>/tmp/ccap2vnU.s: Assembler messages:
>/tmp/ccap2vnU.s:421: Error: operand 1 should be an integer register
>-- `ldr v7,[x0]'
>/tmp/ccap2vnU.s:422: Error: invalid use of vector register at operand
>1 -- `eor v7,x8,v7'
>root@debian:/#
>
>It seems this bug can be worked around by adding
>-fno-inline-small-functions and -fno-inline-functions-called-once
>(note: the first of these is sufficient with the reduced testcase
>where I removed static to make reduction work easier, both are needed
>with the original code)  or removing -fstack-protector-strong

It's the stack-protector thing that's key here. This bug is showing up
in a number of other packages too right now, and has been diagnosed
upstream with a patch available for testing:

  https://gcc.gnu.org/ml/gcc-patches/2014-09/msg00320.html

So I'm tagging this appropriately.

Other packages affected are (at least):

  alpine einspline fbb jigit uw-imap vdmfec vxl yasm

and yasm is quite critical as a build-dep. Matthias: would you like me
to do some testing with that patch as well, or are you already on top
of this?

-- 
Steve McIntyre, Cambridge, UK.                                steve@einval.com
< Aardvark> I dislike C++ to start with. C++11 just seems to be
            handing rope-creating factories for users to hang multiple
            instances of themselves.


Reply to: