Subject: make vs archives?
To: None <tech-userlevel@netbsd.org>
From: der Mouse <mouse@Rodents.Montreal.QC.CA>
List: tech-userlevel
Date: 11/27/2003 23:23:55
Is it just me, or is make's archive handling rather borked?

% cat z
foo.a(bar.o): bar.o
	ar rv foo.a bar.o
% make -n -f z
"z", line 1: Missing dependency operator

The exact wording of the message, and whether more messages follow,
varies with which make rev you use; I noticed it in my old (1.4T) make,
it appears to be present in 1.6.1 as well, and diffing source makes me
suspect it's in -current.  (The problem appears to be that cp is left
pointing nowhere useful after Arch_ParseArchive(), but it's used to
check the dependency operator character anyway.)

Adding a "cp = line;" in the success case (before line 1007, as of
usr.bin/make/parse.c 1.94) looks right, and appears to fix it in a
smoke-test I just did in my 1.4T make.

Worth sending-PR?

/~\ The ASCII				der Mouse
\ / Ribbon Campaign
 X  Against HTML	       mouse@rodents.montreal.qc.ca
/ \ Email!	     7D C8 61 52 5D E7 2D 39  4E F1 31 3E E8 B3 27 4B