bugmake - Bugs: bug #16053, second stem overwrites the first...

 
 

bug #16053: second stem overwrites the first per-prerequisite stem

Submitted by:  None
Submitted on:  Fri 10 Mar 2006 08:57:07 AM UTC  
 
Severity: 3 - NormalItem Group: Bug
Status: FixedPrivacy: Public
Assigned to: Boris Kolpackov <bosk>Open/Closed: Closed
Component Version: 4.0Operating System: POSIX-Based
Fixed Release: 3.81Triage Status: None

Add a New Comment (Rich MarkupRich Markup):
   

You are not logged in

Please log in, so followups can be emailed to you.

 

Fri 17 Mar 2006 02:25:39 PM UTC, comment #4:

Fix is in CVS.

Boris Kolpackov <bosk>
Project MemberIn charge of this item.
Wed 15 Mar 2006 07:05:30 PM UTC, comment #3:

I would rather fix it properly right away than to come back to it. Will try to fix it before the end of the week.

Boris Kolpackov <bosk>
Project MemberIn charge of this item.
Wed 15 Mar 2006 03:56:30 PM UTC, comment #2:

Hm. I don't know if we can release 3.81 with this kind of regression: it's different than releasing with a bug in new behavior or with an old bug not fixed.

Another idea which would resolve this problem but not the general case (when .SECONDARYEXPANSION is enabled) would be to go back to 3.80 processing for static pattern rules when .SECONDARYEXPANSION is not defined, and replace the "%" with the stem immediately as the rule is parsed, rather than replacing it with $* and waiting until the target is built.

Paul D. Smith <psmith>
Project Administrator
Wed 15 Mar 2006 10:05:27 AM UTC, comment #1:

Attaching a minimized test case. It prints "all.foo.one all.foo.two" while should print "all.one all.foo.two".

I also checked the code and it seems that keeping stem in prerequisites is the best way to solve this. I am not sure, however, if we should do it for 3.81. There will be quite a bit of changes.

Boris Kolpackov <bosk>
Project MemberIn charge of this item.
Fri 10 Mar 2006 08:57:07 AM UTC, original submission:

previous discussion:
http://lists.gnu.org/archive/html/bug-make/2006-03/msg00064.html

make-3.80 works ok.
3.81beta4, 3.81rc1 don't work.

Sample output with attached testcase:

/tmp/m/obj$ make --version
GNU Make 3.80
/tmp/m/obj$ make -f ../src/Makefile
mkdir -p /tmp/m/obj/dir
cc -c -o /tmp/m/obj/dir/a.o /tmp/m/src/dir/a.c
cc -c -o /tmp/m/obj/dir/b.o /tmp/m/src/dir/b.c
ar cru /tmp/m/obj/my.a /tmp/m/obj/dir/a.o /tmp/m/obj/dir/b.o

fails with e.g. make from cvs:
/tmp/m/obj$ rm -rf *.a dir
/tmp/m/obj$ make --version
GNU Make 3.81rc1
/tmp/m/obj$ make -f ../src/Makefile
make: *** No rule to make target `/tmp/m/src/dir/dir/a.c', needed by
`/tmp/m/obj/dir/a.o'. Stop.

Anonymous

 

(Note: upload size limit is set to 16384 kB, after insertion of the required escape characters.)

Attach File(s):
   
   
Comment:
   

Attached Files
file #1501:  makefile added by bosk (96B - application/octet-stream)
file #1512:  make-3.81rc1_possible_bug.tar added by None (10kB - application/x-tar - testcase for second stem overwrites the first per-prerequisite stem)

 

Depends on the following items: None found

Items that depend on this one: None found

 

CC list is empty

 

Do you think this task is very important?
If so, you can click here to add your encouragement to it.
This task has 0 encouragements so far.

Only logged-in users can vote.

 

Please enter the title of George Orwell's famous dystopian book (it's a date):

 

 

Follow 7 latest changes.

Date Changed By Updated Field Previous Value => Replaced By
Sat 01 Apr 2006 07:20:30 AM UTCpsmithFixed Release4.0=>3.81
Fri 17 Mar 2006 02:25:39 PM UTCboskStatusNone=>Fixed
  Open/ClosedOpen=>Closed
  Fixed ReleaseNone=>4.0
Wed 15 Mar 2006 07:05:30 PM UTCboskAssigned toNone=>bosk
Wed 15 Mar 2006 10:05:27 AM UTCboskAttached File-=>Added makefile, #3502
Fri 10 Mar 2006 08:57:07 AM UTCNoneAttached File-=>Added make-3.81rc1_possible_bug.tar, #3486

Back to the top


Powered by Savane 3.1-cleanup