[plt-scheme] Can't compile 372 on PPC64

From: Paulo J. Matos (pocm at soton.ac.uk)
Date: Thu Mar 13 19:09:32 EDT 2008

On Wed, Mar 12, 2008 at 9:37 PM, Matthew Flatt <mflatt at cs.utah.edu> wrote:
> At Wed, 12 Mar 2008 21:29:20 +0000, "Paulo J. Matos" wrote:
>  > I've just tried to build PLT Scheme 372 on my PS3, PPC64 and got the
>  > following error:
>  >
>  > cd gc2; make gen-deps
>  > make[4]: Entering directory `/home/pmatos/plt-372/src/mred/gc2'
>  > ../../mzscheme/mzscheme3m -qr "./gen-deps.ss"
>  > Seg fault (internal error) at 0x40000030000
>  > make[4]: *** [gen-deps] Aborted
>  >
>  > I was expecting it to work. Is there any architecture dependent code
>  > that doesnt support ppc64?
>  My guess is that something is wrong with the 3m write-barrier signal
>  handler, but that's just a guess.
>  Can you get a stack trace? I expect that just starting mzscheme3m will
>  crash.

Here's the trace:
Program received signal SIGSEGV, Segmentation fault.
symbol_bucket (table=0x400002c6c58, key=0x40000000008 "",
length=33685760, naya=0x40000000000)
    at xsrc/symbol.c:39
39            int c = key [i ++ ] ;
(gdb) bt
#0  symbol_bucket (table=0x400002c6c58, key=0x40000000008 "", length=33685760,
    naya=0x40000000000) at xsrc/symbol.c:39
#1  0x0000000010131c2c in symbol_bucket (table=<value optimized out>,
    key=<value optimized out>, length=14, naya=0x400002d0fbc) at
#2  0x0000000010131e24 in scheme_intern_exact_symbol_in_table
    kind=0, name=0x10194630 "#%module-begin", len=14) at xsrc/symbol.c:265
#3  0x00000000101323ac in scheme_intern_symbol (name=0x10194630
    at xsrc/symbol.c:373
#4  0x000000001008bd90 in scheme_init_module (env=0x400002c6b14) at
#5  0x0000000010028844 in scheme_basic_env () at xsrc/env.c:246
#6  0x000000001001b728 in actual_main (argc=<value optimized out>,
    at xsrc/main.c:2104
#7  0x0000000010076874 in scheme_image_main (argc=<value optimized out>,
    argv=<value optimized out>) at xsrc/image.c:9
#8  0x000000001001d488 in main (argc=1, argv=<value optimized out>) at

>  By poking at plt/src/mzscheme/gc2/newgc.c, can you confirm that
>  SIXTY_FOUR_BIT_INTEGERS is correctly #defined (should be automatic), so
>  that the GC knows that it's working in 64-bit mode?

newgc.c comes during the compulation of gc2.c:
gcc -g -O2 -DNEWGC_BTC_ACCOUNT  -I./.. -I./../include  -Wall  -c
./gc2.c -o gc2.o
In file included from ./gc2.c:15:
./newgc.c: In function 'pop_ptr':
./newgc.c:1349: warning: dereferencing type-punned pointer will break
strict-aliasing rules

Nothing shows that SIXTY_FOUR_BIT_INTEGERS is defined during compilation.

Can I be of any further help? If so, let me know.

Paulo Matos

>  Thanks,
>  Matthew

Paulo Jorge Matos - pocm at soton.ac.uk
PhD Student @ ECS
University of Southampton, UK
Sponsor ECS runners - Action against Hunger:

Posted on the users mailing list.