in reply to Unable to compile Parrot 0.4.3

Are you building from a fresh checkout or tarball? Have you installed Parrot elsewhere on your machine already? Did you do a make realclean and then reconfigure, or just issue make again?

If none of those tips lead to a solution, can you run gdb on the code and get a backtrace and send it to the Parrot list?

gdb ./miniparrot # gdb stuff here run config_lib.pasm # segfault caught here bt

Replies are listed 'Best First'.
Re^2: Unable to compile Parrot 0.4.3
by ehatfield (Novice) on Apr 05, 2006 at 17:56 UTC
    Howdy
    I'm building from the tarball via cpan.
    Yes, I have an earlier version of parrot on this machine (0.4.2), which compiled just fine and is now in my PATH.
    Ok, I tried the 'make realclean', reconfigured, and it still segfaulted.
    Good idea: Here's what I got when I did the gdb traceback:
    compilers/imcc/main.c /usr/local/bin/perl tools/build/parrot_config_c.pl --mini > \ src/null_config.c src/null_config.c c++ -o miniparrot -L/usr/local/lib -Wl,-E compilers/imcc/main.o \ -Wl,-rpath=/home/ehatfield/builds/parrot-0.4.3/blib/lib -L/home/ehatfi +eld/builds/parrot-0.4.3/blib/lib -lparrot -lnsl -ldl -lm -lcrypt -lu +til -lpthread -lrt -lgmp src/null_config.o Invoking Parrot to generate runtime/parrot/include/config.fpmc --cross + your fingers ./miniparrot config_lib.pasm > runtime/parrot/include/config.fpmc /bin/sh: line 1: 8757 Segmentation fault ./miniparrot config_lib +.pasm >runtime/parrot/include/config.fpmc gmake: *** [runtime/parrot/include/config.fpmc] Error 139 [ehatfield@w3d221 parrot-0.4.3]$ [ehatfield@w3d221 parrot-0.4.3]$ gdb ./miniparrot GNU gdb Red Hat Linux (6.3.0.0-1.63rh) Copyright 2004 Free Software Foundation, Inc. GDB is free software, covered by the GNU General Public License, and y +ou are welcome to change it and/or distribute copies of it under certain cond +itions. Type "show copying" to see the conditions. There is absolutely no warranty for GDB. Type "show warranty" for det +ails. This GDB was configured as "i386-redhat-linux-gnu"...Using host libthr +ead_db library "/lib/tls/libthread_db.so.1". (gdb) run config_lib.pasm Starting program: /home/ehatfield/builds/parrot-0.4.3/miniparrot confi +g_lib.pasm [Thread debugging using libthread_db enabled] [New Thread -1208203584 (LWP 8761)] [New Thread -1208341584 (LWP 8764)] [New Thread -1218831440 (LWP 8765)] Program received signal SIGSEGV, Segmentation fault. [Switching to Thread -1208203584 (LWP 8761)] 0x0804a37b in main (argc=1, argv=0xbffd8998) at compilers/imcc/main.c: +512 512 IMCC_INFO(interp)->optimizer_level = 0; (gdb) bt #0 0x0804a37b in main (argc=1, argv=0xbffd8998) at compilers/imcc/mai +n.c:512 (gdb)

    Drat. Still not working...
    Thanks for the suggestions though.
      Ah, and I've just noticed one more thing:

      src/parrot_config.c looks wonky.

      It ends in this line (which isn't very 'c' like, and 'c' doesn't like, 'c'?):

      static const unsigned char parrot_config[] = {

      Really, that's the very last line of the file.

      But, of course, this file is generated by parrot.

      Thx.

        It's bad. This is line 23 and there are 1814 more lines missing... You probably should start over and download the tarball again.