URL: <http://savannah.gnu.org/bugs/?25780>
Summary: .SECONDEXPANSION: of $$+ harmed by set_file_variables() side effect Project: make Submitted by: None Submitted on: Fri 06 Mar 2009 07:04:38 PM UTC Severity: 3 - Normal Item Group: Bug Status: None Privacy: Public Assigned to: None Open/Closed: Open Discussion Lock: Any Component Version: 3.81 Operating System: Any Fixed Release: None _______________________________________________________ Details: The following command line session describes and demonstrates the issue. It is from Ubuntu x86_64, but probably the behavior is platform-independent. -- John Carey > cat /etc/issue Ubuntu 8.04.2 \n \l > make --version GNU Make 3.81 Copyright (C) 2006 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. This program built for x86_64-pc-linux-gnu > ls -1 Makefile.1 Makefile.2 > cat Makefile.1 # The output should have 4 "foo"s, but instead we see 3. # It appears that second expansion calls set_file_variables() # repeatedly for the same target, but set_file_variables() # eliminates redundant dependencies just after computing "$+". all : foo foo .SECONDEXPANSION: all : $$+ ; @echo '$+' foo : ; > make -f Makefile.1 foo foo foo > cat Makefile.2 # The output should be "q1x bar bar q2x bar bar", # but instead we see "q1x bar q2x bar". # Once again second expansion results in multiple calls to # set_file_variables() for the same target, with bad side effects, # but here the effect appears to be amplified by pattern matching. all : bar bar bar : ; q%x : ; .SECONDEXPANSION: a%l: q1x $$+ q2x ; @echo '$+' > make -f Makefile.2 q1x bar q2x bar _______________________________________________________ File Attachments: ------------------------------------------------------- Date: Fri 06 Mar 2009 07:04:38 PM UTC Name: Makefile.1 Size: 307B By: None <http://savannah.gnu.org/bugs/download.php?file_id=17602> ------------------------------------------------------- Date: Fri 06 Mar 2009 07:04:38 PM UTC Name: Makefile.2 Size: 364B By: None <http://savannah.gnu.org/bugs/download.php?file_id=17603> _______________________________________________________ Reply to this item at: <http://savannah.gnu.org/bugs/?25780> _______________________________________________ Message sent via/by Savannah http://savannah.gnu.org/ _______________________________________________ Bug-make mailing list Bug-make@gnu.org http://lists.gnu.org/mailman/listinfo/bug-make