Source: guile-3.0
Version: 3.0.4-3
Severity: normal

Dear Maintainer,

Since version 3.0.4-1, guile-3.0 fails to build due to segmentation faults
in libguile.  See:
https://buildd.debian.org/status/logs.php?pkg=guile-3.0&arch=hppa

The first fault is here:
Core was generated by 
`/home/dave/debian/guile-3.0/guile-3.0-3.0.4/libguile/.libs/guile -e (@@ 
(guild)'.
Program terminated with signal SIGSEGV, Segmentation fault.
#0  0xf75c31cc in iprin1 (exp=0xf3d127f0, port=0xf7a61190, pstate=0xf7a676cc)
    at print.c:633
633                 if (SCM_OBJ_CLASS_FLAGS (exp) & SCM_CLASSF_GOOPS)
[Current thread is 1 (Thread 0xf7afdb40 (LWP 2407))]
(gdb) bt
#0  0xf75c31cc in iprin1 (exp=0xf3d127f0, port=0xf7a61190, pstate=0xf7a676cc)
    at print.c:633
#1  0xf75c2728 in scm_prin1 (exp=0xf3d127f0, port=<optimized out>,
    writingp=-140085516) at print.c:840
#2  0xf75c3f0c in scm_simple_format (destination=0xf3d127f0,
    message=0xf6e84800, args=0xf114cdd0) at print.c:1198
#3  0xf7579a1c in scm_apply_subr (sp=<optimized out>, idx=<optimized out>,
    nslots=<optimized out>) at gsubr.c:482
#4  0xf760d120 in vm_regular_engine (thread=0x41) at vm-engine.c:972
#5  0xf761018c in scm_call_n (proc=0xf7a61190, argv=0xf3d127f0,
    nargs=4154881740) at vm.c:1608
#6  0xf755d458 in scm_call_4 (proc=<optimized out>, arg1=<optimized out>,
    arg2=<optimized out>, arg3=<optimized out>, arg4=<optimized out>)
    at eval.c:517
#7  0xf754a7ac in scm_print_exception (port=0xf7a676cc, frame=0xf3d127f0,
    key=0xf114cdd0, args=0xf7a61190) at backtrace.c:121
#8  0xf7556620 in print_exception_and_backtrace (args=0xf114cdd0,
    tag=0xf3d127f0, port=0xf7a61190) at continuations.c:415
#9  pre_unwind_handler (error_port=0xf7a61190, tag=0xf3d127f0, args=0xf114cdd0)
    at continuations.c:453
#10 0xf7601740 in catch_pre_unwind_handler (data=0xf7a676b8, exn=0xf3d127f0)
    at throw.c:135
#11 0xf755eeec in call_exception_handler (clo=<optimized out>,
--Type <RET> for more, q to quit, c to continue without paging--
    exn=<optimized out>) at exceptions.c:100
#12 0xf75d2f38 in apply_1 (smob=<optimized out>, a=<optimized out>)
    at smob.c:144
#13 0xf7579a00 in scm_apply_subr (sp=<optimized out>, idx=<optimized out>,
    nslots=<optimized out>) at gsubr.c:480
#14 0xf760d120 in vm_regular_engine (thread=0x41) at vm-engine.c:972
#15 0xf761018c in scm_call_n (proc=0xf7a61190, argv=0xf3d127f0,
    nargs=4154881740) at vm.c:1608
#16 0xf755d764 in scm_apply_0 (proc=0xf114cdd0, args=0xf7a676cc) at eval.c:603
[...]

(gdb) disass $pc-16,$pc+16
Dump of assembler code from 0xf75c31bc to 0xf75c31dc:
   0xf75c31bc <iprin1+1332>:    ldw 24(r5),r20
   0xf75c31c0 <iprin1+1336>:    cmpb,= r20,ret0,0xf75c3a98 <iprin1+3600>
   0xf75c31c4 <iprin1+1340>:    ldo 28(r5),r9
   0xf75c31c8 <iprin1+1344>:    ldw 0(r3),ret0
=> 0xf75c31cc <iprin1+1348>:    ldw 7(ret0),ret0
   0xf75c31d0 <iprin1+1352>:    bb,>=,n ret0,16,0xf75c3a04 <iprin1+3452>
   0xf75c31d4 <iprin1+1356>:    ldw 8(r5),ret0
   0xf75c31d8 <iprin1+1360>:    cmpib,= 0,ret0,0xf75c3a3c <iprin1+3508>
End of assembler dump.
(gdb) p/x $ret0
$1 = 0x1
(gdb) p/x exp
$2 = 0xf3d127f0
(gdb) p/x $r3
$3 = 0xf3d127f0
(gdb) x/x $r3
0xf3d127f0:     0x00000001
(gdb) ptype exp
type = struct scm_unused_struct {
    char scm_unused_field;
} *
(gdb) Quit

There are some complex casting games going on here that might not work
on a big-endian target that requires strict alignment.  Nominally, exp
points to a char, yet the generated code implies that exp points to a
word that contains a pointer to some flag bits. 

Regards,
Dave Anglin

-- System Information:
Debian Release: bullseye/sid
  APT prefers buildd-unstable
  APT policy: (500, 'buildd-unstable'), (500, 'unstable')
Architecture: hppa (parisc64)

Kernel: Linux 5.9.14+ (SMP w/4 CPU threads)
Locale: LANG=C, LC_CTYPE=C.UTF-8 (charmap=UTF-8), LANGUAGE not set
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)

Reply via email to