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
| [reply] [d/l] [select] |
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. | [reply] [d/l] |
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. | [reply] [d/l] |
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. | [reply] [d/l] |
I HAD my fingers crossed. :-/ I'm using gcc 3.4.4
... maybe if I crossed them little endian....?
| [reply] |