[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

Forums >

comp.lang.ruby

building parse.o

MenTaLguY

1/3/2006 10:54:00 PM

Hey, I've got this HP-UX 11i box which I'm trying to build Ruby
1.8.4 on. gcc 3.3.2.

Things go well, except it dies on parse.o:

gcc -g -O2 -DRUBY_EXPORT -I. -I. -c parse.c
In file included from parse.y:3338:
keywords:11: error: parse error before '{' token
keywords:45: error: syntax error before '{' token
parse.y: In function `ruby_yylex':
parse.y:4439: warning: assignment makes pointer from integer
without a cast
*** Error exit code 1

Looking at lex.c:

#line 21 "keywords"
{"for, {kFOR, kFOR}, EXPR_BEG"},
#line 11 "keywords"
{"case, {kCASE, kCASE}, EXPR_BEG"},

That looks valid, and I can't even find anything which would
correspond to line 45 from keywords. There is, however, this
around line 40ish of lex.c:

unsigned int
{
static unsigned char asso_values[] =
{

That definitely doesn't look right.

I've got gperf 3.0.1. Is this a gperf bug? Has anyone else hit
this before?

-mental


2 Answers

vanekl

1/4/2006 1:05:00 AM

0

MenTaLguY

1/4/2006 5:37:00 PM

0

Quoting Lou Vanek <vanek@acd.net>:

> why are you running gperf? lex.c should have come with the rest
> of the code already pre-assembled (it did for me).

Blame HP-UX's make.

> The entire file, lex.c, is pretty much generic C code. There
> shouldn't be any need to re-generate the file unless you are
> adding new keywords into the Ruby language.

It turns out I've got two problems:

1. HP-UX's make considers a file out-of-date if it is the same
age as its dependencies -- since lex.c is unpacked with the
same timestamp as keywords, /usr/bin/make decides that it
needs to be regenerated.

2. The build of gperf on this box is badly broken

Workaround: touch lex.c before building.

Lesson: Always use gmake.

-mental