In the absence of further feedback I'll be checking in the following patch as the fix for https://issues.apache.org/jira/browse/STDCXX-650.
Index: etc/config/makefile.rules =================================================================== --- etc/config/makefile.rules (revision 602767) +++ etc/config/makefile.rules (working copy) @@ -87,9 +87,17 @@ endif # ifneq ($(AS_EXT),".") endif # ifneq ($(AS_EXT),) +# make the rule match for sources matching *.out.cpp +%.out.o: %.out.cpp + $(CXX) -c $(CPPFLAGS) $(CXXFLAGS) $(call CXX.repo,$<) $< + %.o: %.cpp $(CXX) -c $(CPPFLAGS) $(CXXFLAGS) $(call CXX.repo,$<) $< +# make the rule match for objects matching *.out.o +%.out: %.out.o + $(LD) $< -o $@ $(LDFLAGS) $(LDLIBS) $(call CXX.repo,$<) + %: %.o $(LD) $< -o $@ $(LDFLAGS) $(LDLIBS) $(call CXX.repo,$<) Martin Sebor wrote: > > Well, what do you think? > > Martin > > > Martin Sebor wrote: >> >> Travis Vitek wrote: >> [...] >>> So now we are pretty sure we know what is happening. All target names >>> that >>> end in .out will match to the pattern rule for generating .out files >>> first. >>> The question is how to fix it. Here are the options I see. >> >> Thanks for the analysis! >> >>> >>> 1. rename the source file so the generated executable will not end >>> in >>> .out >>> 2. change the .out rule to generate output files with some other >>> extension >>> 3. create an rule that is a better match than %.out so that rule is >>> selected for 22.locale.codecvt.out >>> 4. create a new makefile that includes the original GNUmakefile.tst, >>> but >>> defines the more explicit rule mentioned in 3 >>> >>> I dislike option 3 the most, >> >> Between 2 and 3 I think I actually like 3 better. It seems general >> enough to eliminate all ill-effects of the overly generic %.out: % >> rule. And it's very simple (at least in my tests it was): >> >> %.foo: %.foo.c >> touch $@ >> >>> and from the sound of it you won't want to use >>> option 1. So how does option 2 sound? >> >> Another possibility might be to enable the %.out: % rule only for >> examples and disable it for tests and everything else work? We don't >> need to create .out files anywhere else, do we? >> >> Martin >> >> > > -- View this message in context: http://www.nabble.com/missing-build-line-for-22.locale.codecvt.out-tp12503279p14245955.html Sent from the stdcxx-dev mailing list archive at Nabble.com.