ehatfield has asked for the wisdom of the Perl Monks concerning the following question:

Howdy All,

I'm attempting to compile parrot 0.4.3 on my ix86 linux box. I've been able to compile all the previous versions, no problem, but for some reason this one poops out with:

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: 6960 Segmentation fault ./miniparrot config_lib +.pasm >runtime/parrot/include/config.fpmc gmake: *** [runtime/parrot/include/config.fpmc] Error 139

Is there something different about this release?

Any suggestions about how to proceed?

Thanks. :-)

Replies are listed 'Best First'.
Re: Unable to compile Parrot 0.4.3
by chromatic (Archbishop) on Apr 05, 2006 at 17:43 UTC

    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
      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.

Re: Unable to compile Parrot 0.4.3
by wazoox (Prior) on Apr 05, 2006 at 16:53 UTC
    Well, it says cross your fingers, I suppose it knows you need some luck to succeed :) Didn't you change anything ? DIdn't you upgrade your compiler recently ? Many programs can't compile with gcc 4.0, let alone 4.1.
      I HAD my fingers crossed. :-/ I'm using gcc 3.4.4
      ... maybe if I crossed them little endian....?