🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

1 total messages Started by Dale Nielsen Fri, 08 Sep 1989 05:08
make-3.55 problems re-execing with -f flag
#410
Author: Dale Nielsen
Date: Fri, 08 Sep 1989 05:08
67 lines
2851 bytes
There is a problem with make-3.55 when it is invoked with
the -f option to specify the filename of the makefile.
Make writes over the internal makefiles struct so that when
it updates a dependent makefile and rexecutes itself part of
its new command line (as passed to execvp) is corrupted when
the contents of MAKEFLAGS is written on top of it.

I stepped through the code with dbx, and it seems that
malloc gives out the memory reserved for makefiles->list
when it is saving the MAKEFLAGS variable, so somewhere that
memory is being erroneously freed.  I haven't been able to
find out where the problem is exactly, but it wasn't there
in 3.48.

This sample makefile (named Make.test) demonstrates the bug:
##########################
foo : bar
include foo.mk
foo.mk : bar
foo bar foo.mk :
	touch $@

#########################

% gmake.new -f Make.test -d
GNU Make version 3.55, by Richard Stallman and Roland McGrath.
[... extra stuff deleted ]
Reading makefiles...
gmake.new: fopen: foo.mk: No such file or directory
Updating makefiles....
 Considering target file `foo.mk'.
  File `foo.mk' does not exist.
   Considering target file `bar'.
    Finished dependencies of target file `bar'.
   No need to remake target `bar'.
  Finished dependencies of target file `foo.mk'.
 Must remake target `foo.mk'.
touch foo.mk
 Successfully remade target file `foo.mk'.
[... extra stuff deleted ]
 Considering target file `Make.test'.
 No need to remake target `Make.test'.
Re-execing myself....
GNU Make version 3.55, by Richard Stallman and Roland McGrath.
[... extra stuff deleted ]
Reading makefiles...
gmake.new: fopen: d -S: No such file or directory
Updating makefiles....
 Considering target file `d -S'.
  File `d -S' does not exist.
  Looking for an implicit rule for `d -S'.
[... it just gets uglier from here out]
  Trying implicit dependency `SCCS/s.d -S.sh'.
  No implicit rule found for `d -S'.
  Finished dependencies of target file `d -S'.
 No commands for `d -S' and no dependencies actually changed.
 No need to remake target `d -S'.
gmake.new: No targets.  Stop.

I haven't found out where this goes wrong yet, but I wanted
to make it known.  Anybody else seen this?  Fixed it????
-- 
	--Dale Nielsen				ARPA:  dale@vicorp.UU.NET
	  V. I. Corporation			UUCP:  uunet!vicorp!dale
	  Amherst Research Park			PHONE: (413) 253-3482
	  Amherst, Massachusetts  01002		FAX:   (413) 256-0574
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads