Re: Build failure on FreeBSD/PowerPC 32-bit

Curtis Hamilton <[email protected]> Mon, 3 Feb 2025 12:25:48 -0500
Newsgroups gmane.lisp.steel-bank.general
Message-ID <CAP9EAieyCHEkekx8S5XcFh33FHSN8hk0Z+g3T7EQ+9RmryEgpA@mail.gmail.com>
You make a valid point.

Further investigations now leads me to believe that the issue may be
"thread" related.  I decided to try using gdb to analyse the issue and it
returned the below:

root@blackbird-powerpc64:/usr/ports/tmp/sbcl.orig # gdb --args
./src/runtime/sbcl --core ./output/cold-sbcl.core
GNU gdb (GDB) 14.1 [GDB v14.1 for FreeBSD]
Copyright (C) 2023 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 "powerpc64-portbld-freebsd14.1".
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 ./src/runtime/sbcl...
(gdb) run
Starting program: /usr/ports/tmp/sbcl.orig/src/runtime/sbcl --core
./output/cold-sbcl.core
warning: Unable to find dynamic linker breakpoint function.
GDB will be unable to debug shared library initializers
and track explicitly loaded dynamic code.
This is SBCL 2.5.0.61-ff993cf60-WIP, an implementation of ANSI Common Lisp.
More information about SBCL is available at <http://www.sbcl.org/>.

SBCL is free software, provided as is, with absolutely no warranty.
It is mostly in the public domain; some portions are provided under
BSD-style licenses.  See the CREDITS and COPYING files in the
distribution for more information.
Initial page table:
     | Immobile Objects |
 Gen layout symbol   code  Boxed   Cons    Raw   Code  SmMix  Mixed  LgRaw
LgCode  LgMix Waste%       Alloc        Trig   Dirty GCs Mem-age
  6      0      0      0      0    365      0   3543      0   2007      0
   0      0    0.3    24147136     2000000    3543   0  0.0000
Tot      0      0      0      0    365      0   3543      0   2007      0
   0      0    0.3    24147136 [4.5% of 536870912 max]

Program received signal SIGSEGV, Segmentation fault.
Invalid permissions for mapped object.
0x5061d1ec in ?? ()
(gdb) backtrace
#0  0x5061d1ec in ?? ()
#1  0x018294d0 in create_main_lisp_thread (function=0) at thread.c:437
#2  0x00000000 in ?? ()
(gdb) disass
No function contains program counter for selected frame.
(gdb) frame 1
#1  0x018294d0 in create_main_lisp_thread (function=0) at thread.c:437
437    funcall0(function);
(gdb) disass
Dump of assembler code for function create_main_lisp_thread:
   0x01829400 <+0>: stwu    r1,-48(r1)
   0x01829404 <+4>: mflr    r0
   0x01829408 <+8>: stw     r30,40(r1)
   0x0182940c <+12>: mr      r30,r3
   0x01829410 <+16>: li      r3,0
   0x01829414 <+20>: stw     r31,44(r1)
   0x01829418 <+24>: stw     r0,52(r1)
   0x0182941c <+28>: stw     r28,32(r1)
   0x01829420 <+32>: stw     r29,36(r1)
   0x01829424 <+36>: bl      0x18290d8 <alloc_thread_struct>
   0x01829428 <+40>: mr.     r31,r3
   0x0182942c <+44>: beq     0x18294f8 <create_main_lisp_thread+248>
   0x01829430 <+48>: bl      0x182c504 <arch_os_thread_init>
   0x01829434 <+52>: cmpwi   r3,0
   0x01829438 <+56>: beq     0x18294f8 <create_main_lisp_thread+248>
   0x0182943c <+60>: lis     r29,390
   0x01829440 <+64>: li      r8,1
   0x01829444 <+68>: li      r10,0
   0x01829448 <+72>: lwz     r9,-2084(r29)
   0x0182944c <+76>: stb     r8,101(r31)
   0x01829450 <+80>: stw     r10,64(r31)
   0x01829454 <+84>: cmpwi   r9,0
   0x01829458 <+88>: beq     0x1829460 <create_main_lisp_thread+96>
   0x0182945c <+92>: stw     r31,92(r9)
   0x01829460 <+96>: li      r28,0
   0x01829464 <+100>: stw     r9,96(r31)
   0x01829468 <+104>: addi    r3,r1,8
   0x0182946c <+108>: stw     r28,92(r31)
   0x01829470 <+112>: stw     r31,-2084(r29)
   0x01829474 <+116>: bl      0x183b430 <thr_self@plt>
   0x01829478 <+120>: lwz     r9,8(r1)
   0x0182947c <+124>: li      r4,0
   0x01829480 <+128>: li      r3,1
   0x01829484 <+132>: stw     r9,68(r31)
   0x01829488 <+136>: bl      0x182971c
<protect_control_stack_hard_guard_page>
   0x0182948c <+140>: li      r4,0
   0x01829490 <+144>: li      r3,1
   0x01829494 <+148>: bl      0x18297d0
<protect_binding_stack_hard_guard_page>
   0x01829498 <+152>: li      r4,0
   0x0182949c <+156>: li      r3,1
   0x018294a0 <+160>: bl      0x182989c
<protect_alien_stack_hard_guard_page>
   0x018294a4 <+164>: li      r4,0
   0x018294a8 <+168>: li      r3,1
   0x018294ac <+172>: bl      0x1829754 <protect_control_stack_guard_page>
   0x018294b0 <+176>: li      r4,0
   0x018294b4 <+180>: li      r3,1
   0x018294b8 <+184>: bl      0x1829810 <protect_binding_stack_guard_page>
   0x018294bc <+188>: li      r4,0
   0x018294c0 <+192>: li      r3,1
   0x018294c4 <+196>: bl      0x18298d0 <protect_alien_stack_guard_page>
--Type <RET> for more, q to quit, c to continue without paging--c
   0x018294c8 <+200>: mr      r3,r30
   0x018294cc <+204>: bl      0x180eec4 <funcall0>
=> 0x018294d0 <+208>: lwz     r0,52(r1)
   0x018294d4 <+212>: mr      r3,r31
   0x018294d8 <+216>: stw     r28,-2084(r29)
   0x018294dc <+220>: lwz     r30,40(r1)
   0x018294e0 <+224>: lwz     r28,32(r1)
   0x018294e4 <+228>: mtlr    r0
   0x018294e8 <+232>: lwz     r29,36(r1)
   0x018294ec <+236>: lwz     r31,44(r1)
   0x018294f0 <+240>: addi    r1,r1,48
   0x018294f4 <+244>: b       0x182c50c <arch_os_thread_cleanup>
   0x018294f8 <+248>: lis     r3,388
   0x018294fc <+252>: addi    r3,r3,10460
   0x01829500 <+256>: crclr   4*cr1+eq
   0x01829504 <+260>: bl      0x1817858 <lose>
End of assembler dump.
(gdb) quit
A debugging session is active.

Your thoughts!

On Sun, Jan 12, 2025 at 11:46 AM Douglas Katzman <[email protected]> wrote:

> You kept out-of-tree patches for over 6 years and are just now wondering
> what changed in the interim?  The rehash-size tweak is just too magical;
> there has to be some underlying issue with floating-point not working and
> you should try to get to the bottom of it.  And with or without that, it
> would be good to find a release newer than 1.4.7 that builds.
>
>>

_______________________________________________
Sbcl-help mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/sbcl-help