Public bug reported:

Imported from Debian bug http://bugs.debian.org/969396:

Package: sleef
Version: 3.4.1-4
Severity: serious

The most recent upload of sleef fixed the build on amd64, armhf, i386 and 
ppc64el. Unfortunately
it is still failing on arm64, with the following error.

> In file included from /<<PKGBUILDDIR>>/src/libm/sleefsimdsp.c:209:
> /<<PKGBUILDDIR>>/src/arch/helpersve.h:94:27: error: expected ‘=’, 
> ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘{’ token
>    94 | typedef __sizeless_struct {
>       |                           ^

It looks like __sizeless_struct is a compiler feature that was proposed for 
adding to gcc,
but it doesn't appear to have actually been added, at least not under that name.

It looks like this bug has shown up now because gcc-10 added support for 
"arm_sve.h". previously
this header was not present and so COMPILER_SUPPORTS_SVE was false, but now it 
is true and
sleef tries and fails to build the arm sve code.

I whipped up a patch that changes the detection code so it will not try to 
build the sve code
if the compiler does not support __sizeless_struct. Unfortunately it then 
failed with

[ 50%] Building C object 
src/libm-tester/CMakeFiles/iutypurec_scalar.dir/iutsimd.c.o
cd /sleef-3.4.1/obj-aarch64-linux-gnu/src/libm-tester && /usr/bin/cc 
-DDETERMINISTIC=1 -DENABLE_ALIAS=1 -DENABLE_PUREC_SCALAR=1 
-DENABLE_SYS_getrandom=1 -I/sleef-3.4.1/src/common -I/sleef-3.4.1/src/arch 
-I/sleef-3.4.1/obj-aarch64-linux-gnu/include -I/sleef-3.4.1/src/libm 
-I/sleef-3.4.1/obj-aarch64-linux-gnu/src/libm/include -Wall -Wno-unused 
-Wno-attributes -Wno-unused-result -Wno-psabi -ffp-contract=off -fno-math-errno 
-fno-trapping-math -O2 -g -DNDEBUG -std=gnu99 -o 
CMakeFiles/iutypurec_scalar.dir/iutsimd.c.o -c 
/sleef-3.4.1/src/libm-tester/iutsimd.c
/sleef-3.4.1/src/libm-tester/iutsimd.c:198:9: error: unknown type name 
‘Sleef_double_2’
   198 | typedef Sleef_double_2 vdouble2;
       |         ^~~~~~~~~~~~~~
/sleef-3.4.1/src/libm-tester/iutsimd.c:199:9: error: unknown type name 
‘Sleef_float_2’
   199 | typedef Sleef_float_2 vfloat2;
       |

That was about where I reached the limit of my skills as someone not familiar 
with the package,
a work-in progress debdiff is attatched.


Alternatively it looks like there is a new upstream release of sleef that 
revamps the sve
code so it can be built with gcc 10. So that might be an alternative route.

** Affects: sleef (Ubuntu)
     Importance: Undecided
         Status: New

** Affects: sleef (Debian)
     Importance: Undecided
         Status: New


** Tags: update-excuse

** Bug watch added: Debian Bug tracker #969396
   https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=969396

** Changed in: sleef (Debian)
 Remote watch: None => Debian Bug tracker #969396

** Tags added: update-excuse

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1894146

Title:
  sleef FTBFS on arm64 with gcc-10, sve code requires __sizeless_struct

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/sleef/+bug/1894146/+subscriptions

-- 
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to