aarch64: gmp 5.1.0 does not build, "Error: operand 3 should be an integer register -- `adc x4,x7,0'"

Bug #1099558 reported by Thomas Petazzoni
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Linaro AArch64 cross-distro work
Fix Released
High
Unassigned

Bug Description

Version 5.1.0 of the gmp library does not build with the AArch64 cross-compiler from Linaro:

libtool: compile: /home/test/test/output2/host/usr/bin/aarch64-linux-gnu-gcc -std=gnu99 -DHAVE_CONFIG_H -I. -I.. -D__GMP_WITHIN_GMP -I.. -DOPERATION_lshiftc -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -pipe -Os -c lshiftc.c -fPIC -DPIC -o .libs/lshiftc.o
{standard input}: Assembler messages:
{standard input}:101: Error: operand 3 should be an integer register -- `adc x4,x7,0'
{standard input}:119: Error: operand 3 should be an integer register -- `adc x8,x10,0'
make[3]: *** [mod_1_1.lo] Error 1
make[3]: *** Waiting for unfinished jobs....
libtool: compile: /home/test/test/output2/host/usr/bin/aarch64-linux-gnu-gcc -std=gnu99 -DHAVE_CONFIG_H -I. -I.. -D__GMP_WITHIN_GMP -I.. -DOPERATION_pre_mod_1 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -pipe -Os -c pre_mod_1.c -o pre_mod_1.o >/dev/null 2>&1
libtool: compile: /home/test/test/output2/host/usr/bin/aarch64-linux-gnu-gcc -std=gnu99 -DHAVE_CONFIG_H -I. -I.. -D__GMP_WITHIN_GMP -I.. -DOPERATION_mod_1_4 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -pipe -Os -c mod_1_4.c -fPIC -DPIC -o .libs/mod_1_4.o
libtool: compile: /home/test/test/output2/host/usr/bin/aarch64-linux-gnu-gcc -std=gnu99 -DHAVE_CONFIG_H -I. -I.. -D__GMP_WITHIN_GMP -I.. -DOPERATION_dump -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -pipe -Os -c dump.c -o dump.o >/dev/null 2>&1
libtool: compile: /home/test/test/output2/host/usr/bin/aarch64-linux-gnu-gcc -std=gnu99 -DHAVE_CONFIG_H -I. -I.. -D__GMP_WITHIN_GMP -I.. -DOPERATION_lshiftc -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -pipe -Os -c lshiftc.c -o lshiftc.o >/dev/null 2>&1
{standard input}: Assembler messages:
{standard input}:140: Error: operand 3 should be an integer register -- `adc x8,x4,0'
{standard input}:184: Error: operand 3 should be an integer register -- `adc x10,x0,0'
{standard input}:234: Error: operand 3 should be an integer register -- `adc x5,x0,0'
make[3]: *** [mod_1_3.lo] Error 1
{standard input}: Assembler messages:
{standard input}:142: Error: operand 3 should be an integer register -- `adc x11,x8,0'
{standard input}:181: Error: operand 3 should be an integer register -- `adc x9,x11,0'
{standard input}:217: Error: operand 3 should be an integer register -- `adc x5,x0,0'
make[3]: *** [mod_1_2.lo] Error 1
{standard input}: Assembler messages:
{standard input}:156: Error: operand 3 should be an integer register -- `adc x15,x12,0'
{standard input}:208: Error: operand 3 should be an integer register -- `adc x10,x4,0'
{standard input}:241: Error: operand 3 should be an integer register -- `adc x12,x1,0'
{standard input}:299: Error: operand 3 should be an integer register -- `adc x5,x0,0'
make[3]: *** [mod_1_4.lo] Error 1

Revision history for this message
Riku Voipio (riku-voipio) wrote :

This is fixed upstream already:

http://gmplib.org:8000/gmp/rev/187b7b1646ee

Changed in linaro-aarch64:
status: New → Fix Committed
importance: Undecided → High
Revision history for this message
Thomas Petazzoni (thomas-petazzoni) wrote :

Thanks Riku, I confirm this patch fixes the build issue on AArch64. Thanks!

Revision history for this message
Riku Voipio (riku-voipio) wrote :

Fix released in gmp 5.1.1

Changed in linaro-aarch64:
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.