Hello

> Tonight I was curious to test the last rakudo-star on amd64, and discovered
> that parrot build failed.
> After taking the git tree and checking many versions, I found the last
> version working is the 2.11.0 for me.
>
> It's tested with gcc-4.6 and gcc-4.4, same result.
> The error looks like this :
> ./miniparrot -Iruntime/parrot/include config_lib.pir >
> runtime/parrot/include/config.fpmc
> src/call/context_accessors.c:580: failed assertion 'ctx'
> Backtrace - Obtained 12 stack frames (max trace depth is 32).
> /home/manu/parrot/blib/lib/libparrot.so.3.0.0(+0x180506) [0x2b99f17cd506]
> /home/manu/parrot/blib/lib/libparrot.so.3.0.0(Parrot_confess+0x8a)
> [0x2b99f17cd4da]
> /home/manu/parrot/blib/lib/libparrot.so.3.0.0(Parrot_pcc_warnings_test_func+0x33)
> [0x2b99f17f18e3]
> /home/manu/parrot/blib/lib/libparrot.so.3.0.0(Parrot_warn+0xcb)
> [0x2b99f18380bb]
> /home/manu/parrot/blib/lib/libparrot.so.3.0.0(+0x1d7831) [0x2b99f1824831]
> /home/manu/parrot/blib/lib/libparrot.so.3.0.0(Parrot_encodings_init+0x102)
> [0x2b99f17cc312]
> /home/manu/parrot/blib/lib/libparrot.so.3.0.0(Parrot_str_init+0x12a)
> [0x2b99f177078a]
> /home/manu/parrot/blib/lib/libparrot.so.3.0.0(initialize_interpreter+0xd4)
> [0x2b99f17edb74]
> /home/manu/parrot/blib/lib/libparrot.so.3.0.0(Parrot_api_make_interpreter+0x120)
> [0x2b99f17c4fd0]
> ./miniparrot() [0x401501]

The segfault should be fixed in master by the commit e1483aaf3c

Attached the diff, you can try to patch with it if you want to use the
parrot provided by rakudo-star.

-- 
Salu2
commit e1483aaf3cd6020c823740169602020e7e67ecdb
Author: NotFound <[email protected]>
Date:   Sun Jul 10 03:04:27 2011 +0200

    Don't use Parrot_warn in Parrot_init_platform_encoding,
    the interpreter is not initialized enough at that point

diff --git a/src/platform/linux/encoding.c b/src/platform/linux/encoding.c
index 8c8383a..554c1c5 100644
--- a/src/platform/linux/encoding.c
+++ b/src/platform/linux/encoding.c
@@ -52,7 +52,8 @@ Parrot_init_platform_encoding(PARROT_INTERP)
         else if (STREQ(codeset, "ANSI_X3.4-1968"))
             Parrot_platform_encoding_ptr = Parrot_ascii_encoding_ptr;
         else {
-            Parrot_warn(interp, PARROT_WARNINGS_PLATFORM_FLAG,
+            /* Can't use Parrot_warn here, the interpreter is not ready */
+            fprintf(stderr,
                 "Unknown codeset `%s', defaulting to ASCII", codeset);
             Parrot_platform_encoding_ptr = Parrot_ascii_encoding_ptr;
         }
_______________________________________________
http://lists.parrot.org/mailman/listinfo/parrot-dev

Reply via email to