Page MenuHome GnuPG

libgcrypt 1.11.0 buid error on armhf with gcc-14
Testing, NormalPublic

Description

Hello,
libgcrypt 1.11.0 (and today's GIT master) FTBFS on armhf with gcc-14:


8x-------------
bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I../../mpi -I.. -I../src -I../../src -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_TIME_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/home/ametzler/GCR/libgcrypt20-1.11.0=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fvisibility=hidden -fno-delete-null-pointer-checks -Wall -c -o ec-nist.lo ../../mpi/ec-nist.c
libtool: compile: gcc -DHAVE_CONFIG_H -I. -I../../mpi -I.. -I../src -I../../src -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_TIME_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/home/ametzler/GCR/libgcrypt20-1.11.0=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fvisibility=hidden -fno-delete-null-pointer-checks -Wall -c ../../mpi/ec-nist.c -fPIC -DPIC -o .libs/ec-nist.o
In file included from ../../mpi/ec-nist.c:34:
../../mpi/ec-nist.c: In function '_gcry_mpi_ec_nist256_mod':
../../mpi/ec-inline.h:902:5: error: 'asm' operand has impossible constraints or there are not enough registers
902 | __asm__ ("subs %3, %7, %10\n" \
| ^~~~~~~
../../mpi/ec-inline.h:1070:5: note: in expansion of macro 'SUB6_LIMB32'
1070 | SUB6_LIMB32(__borrow4, A2.lo, A1.hi, A1.lo, A0.hi, A0.lo, \
| ^~~~~~~~~~~
../../mpi/ec-inline.h:1179:5: note: in expansion of macro 'SUB4_LIMB64'
1179 | SUB4_LIMB64(__borrow5, A2, A1, A0, zero, B2, B1, B0, zero, C2, C1, C0); \
| ^~~~~~~~~~~
../../mpi/ec-nist.c:463:3: note: in expansion of macro 'SUB5_LIMB64'
463 | SUB5_LIMB64 (s[4], s[3], s[2], s[1], s[0],
| ^~~~~~~~~~~
make[3]: *** [Makefile:665: ec-nist.lo] Error 1
8x-------------

On 1.10.3 gcc throws the same error, but not with 1.9.4.

cu Andreas

Details

Version
1.11.0

Event Timeline

This already shows with 9d909cb67e70fd792926ac1e2ab305b2cc96bc27 which initially added ec-inline.h. (Reproducing with old versions like this one requires cherry-picking 693ffa145378682229473b0e811a9cea7c4d307a since otherwise NEON support is disabled at configure time due to implicit functions.)

This patch should fix the issue:

This patch should fix the issue:

Thank you! Works for me

werner triaged this task as Normal priority.Aug 6 2024, 9:17 AM
gniibe changed the task status from Open to Testing.Thu, Sep 12, 7:17 AM