[gnu.utils.bug] bug in make-3.45

rwn@utacfd.UUCP (Ralph Noack) (04/06/89)

(on SunOS 4.0.1 on Sun3 hardware)
Make 3.45 (and earlier versions do not properly handle the following segment
of a makefile:

./dbg/getview.o:	getview.f
	f77 getview.f -c ; mv getview.o  ./dbg/getview.o
./dbg/journal.o:	journal.f
	f77 journal.f -c ; mv journal.o  ./dbg/journal.o


I tried tracing the problem and ran out of expertise. What I could find
is that dbg/getview.o and dbg/journal.o have the same hashval(=261) in
enter_file (in read.c). This is not the problem but the reason it
eventually dies with the message: 

make: GNUmakefile:4: commands for target `dbg/journal.o' were already 
specified at GNUmakefile:2.  Stop.

The real problem (I think) is that {x}malloc is returning an address
already in use. Then an area of memory is overwritten when it shouldnt
be. Specifically `file`files[261]->name is overwritten by out in bcopy.

A traceback of where it's occuring:
(dbxtool) where 
savestring(str = 0x2fb94 "./dbg/journal.o:^Ijournal.f", length = 15),
line 1409 in "make.c"
parse_file_seq(stringp = 0xf, stopchar = ':', size = 8), line 1136 in "read.c"
read_makefile(filename = 0x6d90 "GNUmakefile", type = 0), line 479 in "read.c"
read_all_makefiles(makefiles = 0x2fc74), line 145 in "read.c"
main(argc = 2, argv = 0x6d90, envp = 0xf), line 552 in "make.c"

Any help/fixes would be greatly appreciated.

-- 
Ralph W. Noack (817)-273-2860 Univ. of Tx at Arlington, Aerospace Eng. Dept.
uucp: ..!{killer,texsun}!utacfd!rwn 
internet: rwn@utacfd.arl.utexas.edu(129.107.2.131)