Bug#1119850: netpbm-free: FTBFS on arm* (testsuite error) with gcc-15

Andreas Metzler ametzler at bebt.de
Sat Nov 1 12:26:49 GMT 2025


Source: netpbm-free
Version: 2:11.11.01-1
Severity: serious
Tags: ftbfs
Justification: fails to build from source (but built successfully in the past)
X-Debbugs-Cc: debian-arm at lists.debian.org
User: debian-arm at lists.debian.org
Usertags: arm64 armel armhf

netpbm-free (both the version in forky and the current version in sid)
FTBFS with segfaults when running the testsuite. There is only a single
segfault on arm64 (stdin-pam1.test, when running pamtilt)) and multiple
ones on armel armhf.

I have tried debugging on amdahl.debian.org:
This started with the upgrade to gcc-15, building with gcc-14 still
works.
Building with -O0 or -O1 (instead of -O2) makes the problem go away.
The exact failing command on arm64 is
analyzer/pamtilt /path/to/small.pbm

(small.pbm is generated with 
./generator/pbmmake -g 5 5 > /path/to/small.pbm
attached for simplicity)

gdb backtrace:
8X=============================================
GNU gdb (Debian 16.3-5) 16.3
Copyright (C) 2024 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Type "show copying" and "show warranty" for details.
This GDB was configured as "aarch64-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<https://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
    <http://www.gnu.org/software/gdb/documentation/>.

For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from ./analyzer/pamtilt...
[?2004h(gdb) set pagination off
[?2004l
[?2004h(gdb) run /home/ametzler/NETPBM/small.pbm
/home/ametzler/NETPBM/small.pbm
[?2004l
Starting program: /home/ametzler/NETPBM/64/netpbm-free-11.11.01/analyzer/pamtilt /home/ametzler/NETPBM/small.pbm

This GDB supports auto-downloading debuginfo from the following URLs:
  <https://debuginfod.debian.net>
[?2004hEnable debuginfod for this session? (y or [n]) y
[?2004l
Debuginfod has been enabled.
To make this setting permanent, add 'set debuginfod enabled on' to .gdbinit.
Downloading 456.12 K separate debug info for /lib/ld-linux-aarch64.so.1...
Downloading 37.90 K separate debug info for system-supplied DSO at 0xfffff7ffa000...
Downloading 1.15 M separate debug info for /lib/aarch64-linux-gnu/libm.so.6...
Downloading 5.22 M separate debug info for /lib/aarch64-linux-gnu/libc.so.6...
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/aarch64-linux-gnu/libthread_db.so.1".

Program received signal SIGSEGV, Segmentation fault.
pm_optParseOptions4 (argcP=argcP at entry=0xffffffffefac, 
    argv=argv at entry=0xfffffffff328, opt=..., 
    optStructSize=optStructSize at entry=16, flags=flags at entry=0)
    at ./lib/util/shhopt.c:936
936	    zeroSpecified(opt.opt_table);
[?2004h[?2004l
[?2004h(gdb) backtrace full
backtrace full
[?2004l
#0  pm_optParseOptions4 (argcP=argcP at entry=0xffffffffefac, 
    argv=argv at entry=0xfffffffff328, opt=..., 
    optStructSize=optStructSize at entry=16, flags=flags at entry=0)
    at ./lib/util/shhopt.c:936
        ai = <optimized out>
        tokensConsumed = 4160744704
        noMoreOptions = <optimized out>
#1  0x0000aaaaaaaa0f38 in parseCommandLine (argc=<optimized out>, 
    argv=0xfffffffff328, cmdlineP=0xffffffffefb0) at ./analyzer/pamtilt.c:79
        option_def_index = 8
        option_def = {{shortName = 0 '\000', longName = 0xaaaaaaaa1958 "fast", 
            type = OPT_FLAG, arg = 0x0, specified = 0xffffffffefd0, 
            flags = 0}, {shortName = 0 '\000', 
            longName = 0xaaaaaaaa1960 "verbose", type = OPT_FLAG, arg = 0x0, 
            specified = 0xffffffffefd4, flags = 0}, {shortName = 0 '\000', 
            longName = 0xaaaaaaaa1968 "angle", type = OPT_FLOAT, 
            arg = 0xffffffffefb8, specified = 0x0, flags = 0}, {
            shortName = 0 '\000', longName = 0xaaaaaaaa1970 "quality", 
            type = OPT_FLOAT, arg = 0xffffffffefc0, specified = 0x0, 
            flags = 0}, {shortName = 0 '\000', 
            longName = 0xaaaaaaaa1978 "astep", type = OPT_FLOAT, 
            arg = 0xffffffffefbc, specified = 0x0, flags = 0}, {
            shortName = 0 '\000', longName = 0xaaaaaaaa1980 "hstep", 
            type = OPT_UINT, arg = 0xffffffffefc4, specified = 0x0, 
            flags = 0}, {shortName = 0 '\000', 
            longName = 0xaaaaaaaa1988 "vstep", type = OPT_UINT, 
            arg = 0xffffffffefc8, specified = 0x0, flags = 0}, {
            shortName = 0 '\000', longName = 0xaaaaaaaa1990 "dstep", 
            type = OPT_UINT, arg = 0xffffffffefcc, specified = 0x0, 
            flags = 0}, {shortName = 0 '\000', longName = 0x0, type = OPT_END, 
            arg = 0x0, specified = 0x0, flags = 0} <repeats 42 times>}
        opt = {short_allowed = 0 '\000', allowNegNum = 0 '\000', 
          opt_table = 0xaaaaaaac0020 <option_def>}
#2  main (argc=<optimized out>, argv=0xfffffffff328)
    at ./analyzer/pamtilt.c:536
        cmdline = {inputFilename = 0xfffff7ffa170 "Z", maxangle = 10, 
          astep = 1, qmin = 1, hstep = 11, vstep = 5, dstep = 2, fast = 0, 
          verbose = 0}
        pam = {size = 0, len = 0, file = 0xfffffffff1b0, format = -134402472, 
          plainformat = 65535, height = -134230016, width = 65535, 
          depth = 4160737280, maxval = 281474842483504, 
          bytes_per_sample = 4160479232, 
          tuple_type = "\377\377", '\000' <repeats 26 times>, "@\000\252\252\252\252\000\0008\000\000\000\000\000\000\000\f\000\000\000\000\000\000\000\000\020\000\000\000\000\000\000\000\340\373\367\377\377\000\000\000\000\000\000\000\000\000\000\200\023\252\252\252\252", '\000' <repeats 26 times>, "\v\n\000\000\000\000\000\000\v\n\000\000\000\000\000\000\210\365\377\377\377\377\000\000\377\237\021\000\000\000\000\000d", '\000' <repeats 63 times>..., 
          allocation_depth = 65535, comment_p = 0x0, visual = -134242304, 
          color_depth = 65535, have_opacity = 0, opacity_plane = 0, 
          is_seekable = 0, raster_pos = 0}
        pixels = <optimized out>
        hsampleCt = <optimized out>
        hstep = <optimized out>
        vstep = <optimized out>
        angle = <optimized out>
[?2004h(gdb) info registers
info registers
[?2004l
x0             0xfffff7ffdb28      281474842483496
x1             0x0                 0
x2             0x0                 0
x3             0x0                 0
x4             0x10                16
x5             0x0                 0
x6             0xfffff7e2a340      281474840568640
x7             0xfffffffff5d9      281474976708057
x8             0x101010101010101   72340172838076673
x9             0x30                48
x10            0xfffffffffffca91d  -218851
x11            0x0                 0
x12            0xfffff7fff370      281474842489712
x13            0xffffffffee80      281474976706176
x14            0x0                 0
x15            0xf7803b            16220219
x16            0xaaaaaaabff40      187649984560960
x17            0xfffff7f7d4c0      281474841957568
x18            0xfff               4095
x19            0xfffffffff328      281474976707368
x20            0x2                 2
x21            0xaaaaaaabfcc8      187649984560328
x22            0x0                 0
x23            0xfffffffff340      281474976707392
x24            0xfffff7ffdb30      281474842483504
x25            0xffffffffefac      281474976706476
x26            0xfffff7ffe000      281474842484736
x27            0xfffffffff328      281474976707368
x28            0x0                 0
x29            0xffffffffef20      281474976706336
x30            0xaaaaaaaa0f38      187649984433976
sp             0xffffffffeed0      0xffffffffeed0
pc             0xfffff7f7d50c      0xfffff7f7d50c <pm_optParseOptions4+76>
cpsr           0x60001000          [ EL=0 BTYPE=0 SSBS C Z ]
fpsr           0x0                 [ ]
fpcr           0x0                 [ Len=0 Stride=0 RMode=0 ]
tpidr          0xfffff7fee740      0xfffff7fee740
tpidr2         0x0                 0x0
[?2004h(gdb) x/16i $pc
x/16i $pc
[?2004l
=> 0xfffff7f7d50c <pm_optParseOptions4+76>:	ldr	w0, [x3, #16]
   0xfffff7f7d510 <pm_optParseOptions4+80>:	
    mov	w3, #0x30                  	// #48
   0xfffff7f7d514 <pm_optParseOptions4+84>:	
    cbz	w0, 0xfffff7f7d53c <pm_optParseOptions4+124>
   0xfffff7f7d518 <pm_optParseOptions4+88>:	nop
   0xfffff7f7d51c <pm_optParseOptions4+92>:	nop
   0xfffff7f7d520 <pm_optParseOptions4+96>:	ldr	x2, [x2, #32]
   0xfffff7f7d524 <pm_optParseOptions4+100>:	
    cbz	x2, 0xfffff7f7d52c <pm_optParseOptions4+108>
   0xfffff7f7d528 <pm_optParseOptions4+104>:	str	wzr, [x2]
   0xfffff7f7d52c <pm_optParseOptions4+108>:	add	w1, w1, #0x1
   0xfffff7f7d530 <pm_optParseOptions4+112>:	umaddl	x2, w1, w3, x22
   0xfffff7f7d534 <pm_optParseOptions4+116>:	ldr	w0, [x2, #16]
   0xfffff7f7d538 <pm_optParseOptions4+120>:	
    cbnz	w0, 0xfffff7f7d520 <pm_optParseOptions4+96>
   0xfffff7f7d53c <pm_optParseOptions4+124>:	ldr	w26, [x25]
   0xfffff7f7d540 <pm_optParseOptions4+128>:	
    mov	w20, #0x0                   	// #0
   0xfffff7f7d544 <pm_optParseOptions4+132>:	
    mov	x24, #0x0                   	// #0
   0xfffff7f7d548 <pm_optParseOptions4+136>:	
    cbz	w26, 0xfffff7f7d5a4 <pm_optParseOptions4+228>
[?2004h(gdb) thread apply all backtrace
thread apply all backtrace
[?2004l
Thread 1 (Thread 0xfffff7fee020 (LWP 1974608) "pamtilt"):
#0  pm_optParseOptions4 (argcP=argcP at entry=0xffffffffefac, argv=argv at entry=0xfffffffff328, opt=..., optStructSize=optStructSize at entry=16, flags=flags at entry=0) at ./lib/util/shhopt.c:936
#1  0x0000aaaaaaaa0f38 in parseCommandLine (argc=<optimized out>, argv=0xfffffffff328, cmdlineP=0xffffffffefb0) at ./analyzer/pamtilt.c:79
#2  main (argc=<optimized out>, argv=0xfffffffff328) at ./analyzer/pamtilt.c:536
[?2004h(gdb) quitquit
[?2004l
[?2004hA debugging session is active.

	Inferior 1 [process 1974608] will be killed.

Quit anyway? (y or n) y
[?2004l
8X=============================================

cu Andreas
-------------- next part --------------
A non-text attachment was scrubbed...
Name: small.pbm
Type: image/x-portable-bitmap
Size: 12 bytes
Desc: not available
URL: <http://alioth-lists.debian.net/pipermail/pkg-phototools-devel/attachments/20251101/0cd833c5/attachment.pbm>


More information about the Pkg-phototools-devel mailing list