[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Gcl-devel] GNU make bug

From: Vadim V. Zhytnikov
Subject: [Gcl-devel] GNU make bug
Date: Sat, 04 Jun 2005 17:11:37 +0300
User-agent: Mozilla Thunderbird 1.0.2 (Windows/20050317)


Some time ago I wrote about GCL build
problem with recent GNU make.  The trouble is
due to some obscure make bug.  I'm not sure that
this is important since troublesome make version is cvs
beta but since bug is a bit hard to detect I decides to
post it's description and workaround.  Maybe it will
be useful to somebody.

The problem manifests itself for GCL ANSI build for any
GCL version.  The nasty thing about the problem is that
formally GCL build seems to be perfectly OK - no any warnings
or errors but resulting ANSI GCL image is broken.

1.  It does not display banner text upon start
2.  It segfaults on any lisp error, e.g. unbound
    lisp variable

The trouble is with makefile in clcs directory.
It defines the following pattern rule for .o files:

%.o: %.c %.h %.data
        $(CC) $(CFLAGS) -c $< -o $@
        ../xbin/append $*.data $@

Troublesome make ignores it and uses default built-in
rule for making .o from .c .h instead.  So formally
target is built and makes is happy.  But .data files
remain unappended to .o.

This is clear make bug which is recognized by make
developers (no fix yet).  Workaround is to replace target

all: $(addsuffix .c,$(FILES)) $(addsuffix .o,$(FILES))


all: $(addsuffix .o,$(FILES))

in clcs/makefile.  This modification seems to be
safe since .c are intermediate temporary files
and it makes our special rule for .o work
once again.

Best wishes,


     Vadim V. Zhytnikov


reply via email to

[Prev in Thread] Current Thread [Next in Thread]