Path: utzoo!utgpu!jarvis.csri.toronto.edu!mailrus!csd4.milw.wisc.edu!lll-winken!killer!utacfd!rwn From: rwn@utacfd.UUCP (Ralph Noack) Newsgroups: gnu.utils.bug Subject: bug in make-3.45(and earlier versions) Keywords: make,malloc Message-ID: <522@utacfd.UUCP> Date: 5 Apr 89 20:33:15 GMT Reply-To: rwn@utacfd.UUCP (Ralph Noack) Distribution: gnu Organization: Univ. of Tx at Arlington, Comp. Fluid Dyn. Center, Arlington, Tx Lines: 37 (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)