Yeah, I caused this.
Patch Applied
Kevin
Karl Forner wrote:
Hi,
Just checked out parrot and the build failed like this:
cc -o miniparrot -L/usr/local/lib -Wl,-E compilers/imcc/main.o \
-Wl,-rpath=/home/kforner/dev/parrot/test/parrot/blib/lib
-L/home/kforner/dev/parrot/test/parrot/blib/lib -lparrot -ldl -lm
-lpthread -lcrypt -lrt src/null_config.o
compilers/imcc/main.o: In function
`imcc_version':compilers/imcc/main.c:124: undefined reference to
`Parrot_revision'
:compilers/imcc/main.c:128: undefined reference to
`Parrot_config_revision'
collect2: ld returned 1 exit status
make: *** [miniparrot] Error 1
After a little investigation, it appears that the revision_c.pl failed
during the build process (see below) but its output is hidden in the
make output because
the make process DOES NOT STOP, and a void revision.c file is produced.
The problem for the revision_c.pl is just a missing 'use File::Spec',
see the attached patch.
src/extend_vtable.c
/usr/bin/perl -Ilib tools/build/revision_c.pl > src/revision.c
Can't locate object method "devnull" via package "File::Spec" at
lib/Parrot/Revision.pm line 35.
Compilation failed in require at tools/build/revision_c.pl line 25.
BEGIN failed--compilation aborted at tools/build/revision_c.pl line 25.
make: *** [src/revision.c] Error 255
Compiling with:
xx.c
cc -I./include -D_REENTRANT -D_GNU_SOURCE -DTHREADS_HAVE_PIDS -DDEBIAN
-pipe -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64
-g -W -Wall -Wstrict-prototypes -Wmissing-prototypes -Winline -Wshadow
-Wpointer-arith -Wcast-qual -Wwrite-strings -Waggregate-return
-Winline -Wno-unused -Wsign-compare -falign-functions=16
-Wformat-nonliteral -Wformat-security -Wpacked -Wdisabled-optimization
-mno-accumulate-outgoing-args -Wno-shadow -DHAS_JIT -DI386
-DHAVE_COMPUTED_GOTO -fPIC -I. -o xx.o -c xx.c
src/revision.c
src/packfile/pf_items.c
src/stm/backend.c
src/stm/waitlist.c
src/resources.c
src/charset/ascii.c
So the make process failed with an error 255, but it seems to continue
with the compilation, or maybe it is another make process ???????
Karl
------------------------------------------------------------------------
Index: lib/Parrot/Revision.pm
===================================================================
--- lib/Parrot/Revision.pm (revision 14971)
+++ lib/Parrot/Revision.pm (working copy)
@@ -22,8 +22,8 @@
use strict;
use warnings;
+use File::Spec;
-
our $svn_entries = undef;
sub __get_revision {