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)