Bug#652205: assembler errors when trying to build flint on armhf
reassign 652205 flint
thanks
inline assembler needs fixes for thumb mode.
On 12/15/2011 02:53 PM, peter green wrote:
> package: gcc-4.6
> severity: important
> version: 1.011-2
>
> flint FTBFS on armhf with the following errors
>
> gcc -fPIC -std=c99 -g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat
> -Wformat-security -Werror=format-security -Wall -funroll-loops -I/usr/include
> -I/usr/include/NTL -c ZmodF.c -o ZmodF.o
> ZmodF.c: In function 'ZmodF_divby3':
> ZmodF.c:556:18: warning: unused variable 'rem' [-Wunused-variable]
> /tmp/ccqrATB5.s: Assembler messages:
> /tmp/ccqrATB5.s:4619: Error: selected processor does not support Thumb mode `rsc
> ip,ip,ip'
> make[1]: *** [ZmodF.o] Error 1
> make[1]: Leaving directory `/build/buildd-flint_1.011-2-armhf-_anfYZ/flint-1.011'
> make: *** [debian/stamp-makefile-build] Error 2
>
> To try and find the issue I first tried to disable optimisation, doing so
> changed the register names but left us with a very similar error.
>
> root@debian:/flint-1.011# gcc -fPIC -std=c99 -g -O0 -fstack-protector
> --param=ssp-buffer-size=4 -Wformat -Wformat-security -Werror=format-security
> -Wall -funroll-loops -I/usr/include -I/usr/include/NTL -c ZmodF.c -o ZmodF.o
> ZmodF.c: In function 'ZmodF_divby3':
> ZmodF.c:556:18: warning: unused variable 'rem' [-Wunused-variable]
> /tmp/cc3zqlRw.s: Assembler messages:
> /tmp/cc3zqlRw.s:1594: Error: selected processor does not support Thumb mode `rsc
> r4,r1,#0'
>
> when that failed I built a .s file with the following command.
>
> gcc -S -fPIC -std=c99 -g -O0 -fstack-protector --param=ssp-buffer-size=4
> -Wformat -Wformat-security -Werror=format-security -Wall -funroll-loops
> -I/usr/include -I/usr/include/NTL ZmodF.c
>
> and tried to build it with as which resulted in
>
> root@debian:/flint-1.011# as ZmodF.s
> ZmodF.s: Assembler messages:
> ZmodF.s:1594: Error: selected processor does not support Thumb mode `rsc r4,r1,#0'
> root@debian:/flint-1.011#
>
> looking at ZmodF.s I see
>
> @ 242 "ZmodF.c" 1
> rsbs r2, r4, r0
> rsc r4, r1, #0
> @ 0 "" 2
>
> looking at line 242 in ZmodF.c I see
>
> sub_ddmmss(Z, b[ss-1], 0, b[ss-1], 0, underflow);
>
> adding -marm to the cflags made the package build and when looking at the source
> file I didn't see any evidence of inline assembler so presumablly this is a c
> compiler and/or binutils bug. I'm filing against the c compiler in the first
> instance., please reassign to binutils if you think this is a problem in the
> linker. If the bug in the toolchain cannot be dealt with in a timely manner I
> will file a bug report against flint that makes the package build with -marm on
> armhf.
>
>
>
Reply to: