Bug#1055228: plplot: FTBFS on armhf (test segfault)

Emanuele Rocca ema at debian.org
Wed Nov 15 17:20:25 GMT 2023


Hi!

On 2023-11-09 05:11, Rafael Laboissière wrote:
> The Fortran example x09f.f90, which is exercised during the building of
> plplot, now fails on armhf, due to the use of the compiler option
> -fstack-clash-protection.

The problem seems unrelated to stach-clash-protection I think, enabling
the feature on armhf just made it evident.

Building the program on a x86 system without -fstack-clash-protection
but with -fsanitize=address, it segfaults:

 /usr/bin/gfortran -g -O2 x09f.f90 -o x09f -I/usr/lib/x86_64-linux-gnu/fortran/modules/plplot -lplplotfortran -fsanitize=address
 ./x09f -dev ps -o /dev/null

 Program received signal SIGSEGV: Segmentation fault - invalid memory reference.

The SIGSEGV happens in plplot_single::pltransformf2c, which is about
where the SIGBUS happens on armhf with stack-clash-protector enabled:

 Program received signal SIGSEGV, Segmentation fault.
 0x00007ffff5a000a8 in ?? ()
 (gdb) bt
 #0  0x00007ffff5a000a8 in ?? ()
 #1  0x00007ffff7f05683 in plplot_single::pltransformf2c (x=x at entry=0, y=y at entry=1, tx=4.9406564584124654e-324, 
     ty=6.9533558054215925e-310, data=<error reading variable: Attempt to dereference a generic pointer.>)
     at ./bindings/fortran/plplot_single.f90:114

Here's the SIGBUS on armhf with stack-clash-protection:

 Program received signal SIGBUS, Bus error.
 0x00400822 in x09f::mypltr (x=0, y=1, xt=0, yt=0) at x09f.f90:38
 38              xt = tr(1) * x + tr(2) * y + tr(3)
 (gdb) bt
 #0  0x00400822 in x09f::mypltr (x=0, y=1, xt=0, yt=0) at x09f.f90:38
 #1  0xf7f58a06 in plplot_single::pltransformf2c (x=<optimized out>, y=<optimized out>, tx=-9.8841854819221187e+269, 
     ty=-nan(0xe5db400000001), data=<optimized out>) at ./bindings/fortran/plplot_single.f90:114



More information about the debian-science-maintainers mailing list