<div dir="ltr"><br><div class="gmail_extra"><br><br><div class="gmail_quote">On Thu, Feb 7, 2013 at 7:03 AM, Will Schmidt <span dir="ltr"><<a href="mailto:will_schmidt@vnet.ibm.com" target="_blank">will_schmidt@vnet.ibm.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="im">On Wed, 2013-02-06 at 18:02 -0800, Daniel Dunbar wrote:<br>
> Hi Will,<br>
><br>
><br>
> The reason TARGET_FLAGS doesn't stick is because LNT sets it<br>
> specifically on the make command line (and that overrides other uses).<br>
><br>
><br>
> Interestingly, Makefile.tests (at the top-level) actually introduces<br>
> an X_TARGET_FLAGS to work around this, but it doesn't look like the<br>
> MultiSource or SingleSource makefiles do the same thing. The right fix<br>
> is probably to do the same thing Makefile.tests is doing in each of<br>
> those places.<br>
<br>
</div>Thanks for the comments.  So with that suggestion, how about the<br>
following?<br></blockquote><div><br></div><div style>Thanks for working on it, one suggestion inline...</div><div style> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

<br>
This fixes an issue with the -maltivec flag not being passed to the<br>
build rules, which is affecting the powerpc64 LNT buildbots.<br>
<br>
Add X_TARGET_FLAGS makefile variable to MultiSource/Makefile.multisrc<br>
and SingleSource/Makefile.singlesource.  Change TARGET_FLAGS references<br>
within each to X_TARGET_FLAGS, allowing better function within the LNT<br>
environment.<br>
<br>
Update SingleSource/UnitTests/Vector/Altivec/Makefile to use<br>
TEST_TARGET_FLAGS to pass the -maltivec flag to build rules.<br>
<br>
<br>
<br>
Index: MultiSource/Makefile.multisrc<br>
===================================================================<br>
--- MultiSource/Makefile.multisrc       (revision 174514)<br>
+++ MultiSource/Makefile.multisrc       (working copy)<br>
@@ -18,6 +18,9 @@<br>
<br>
 include $(LEVEL)/Makefile.programs<br>
<br>
+# use X_TARGET_FLAGS to work around LNT behavior.<br></blockquote><div><br></div><div style>It doesn't really have anything to do with LNT behavior, its make behavior. Probably better to just take the same comment from Makefile.tests.</div>
<div style><br></div><div style>Actually, this variable definition should probably just get lifted to Makefile.programs, and then removed from all the other places.</div><div style><br></div><div style> - Daniel</div><div style>
<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
+X_TARGET_FLAGS = $(TARGET_FLAGS) $(TEST_TARGET_FLAGS)<br>
+<br>
 # Figure out what object files we want to build...<br>
 LObjs    := $(sort $(addsuffix .bc, $(notdir $(basename $(Source)))))<br>
 LObjects := $(addprefix Output/,$(LObjs))<br>
@@ -31,35 +34,35 @@<br>
 .PRECIOUS: $(LObjects) $(NObjects) $(NLObjects)<br>
<br>
 Output/%.o: %.c Output/.dir<br>
-       -$(CC) $(CPPFLAGS) $(CFLAGS) $(OPTFLAGS) $(TARGET_FLAGS) -c $< -o $@<br>
+       -$(CC) $(CPPFLAGS) $(CFLAGS) $(OPTFLAGS) $(X_TARGET_FLAGS) -c $< -o $@<br>
<br>
 Output/%.o: %.C Output/.dir<br>
-       -$(CXX) $(CPPFLAGS) $(CXXFLAGS) $(OPTFLAGS) $(TARGET_FLAGS) -c $< -o $@<br>
+       -$(CXX) $(CPPFLAGS) $(CXXFLAGS) $(OPTFLAGS) $(X_TARGET_FLAGS) -c $< -o $@<br>
<br>
 Output/%.o: %.cpp Output/.dir<br>
-       -$(CXX) $(CPPFLAGS) $(CXXFLAGS) $(OPTFLAGS) $(TARGET_FLAGS) -c $< -o $@<br>
+       -$(CXX) $(CPPFLAGS) $(CXXFLAGS) $(OPTFLAGS) $(X_TARGET_FLAGS) -c $< -o $@<br>
<br>
 Output/%.o: %.cc Output/.dir<br>
-       -$(CXX) $(CPPFLAGS) $(CXXFLAGS) $(OPTFLAGS) $(TARGET_FLAGS) -c $< -o $@<br>
+       -$(CXX) $(CPPFLAGS) $(CXXFLAGS) $(OPTFLAGS) $(X_TARGET_FLAGS) -c $< -o $@<br>
<br>
 Output/%.llvm.o: %.c Output/.dir<br>
        $(RUNSAFELYLOCAL) /dev/null $@.compile \<br>
-         $(LCC) $(CPPFLAGS) $(CFLAGS) $(OPTFLAGS) $(TARGET_FLAGS) -c $< -o $@<br>
+         $(LCC) $(CPPFLAGS) $(CFLAGS) $(OPTFLAGS) $(X_TARGET_FLAGS) -c $< -o $@<br>
 Output/%.llvm.o: %.m Output/.dir<br>
        $(RUNSAFELYLOCAL) /dev/null $@.compile \<br>
-         $(LCC) $(CPPFLAGS) $(CFLAGS) $(OPTFLAGS) $(TARGET_FLAGS) -c $< -o $@<br>
+         $(LCC) $(CPPFLAGS) $(CFLAGS) $(OPTFLAGS) $(X_TARGET_FLAGS) -c $< -o $@<br>
 Output/%.llvm.o: %.C Output/.dir<br>
        $(RUNSAFELYLOCAL) /dev/null $@.compile \<br>
-         $(LCXX) $(CPPFLAGS) $(CXXFLAGS) $(OPTFLAGS) $(TARGET_FLAGS) -c $< -o $@<br>
+         $(LCXX) $(CPPFLAGS) $(CXXFLAGS) $(OPTFLAGS) $(X_TARGET_FLAGS) -c $< -o $@<br>
 Output/%.llvm.o: %.cpp Output/.dir<br>
        $(RUNSAFELYLOCAL) /dev/null $@.compile \<br>
-         $(LCXX) $(CPPFLAGS) $(CXXFLAGS) $(OPTFLAGS) $(TARGET_FLAGS) -c $< -o $@<br>
+         $(LCXX) $(CPPFLAGS) $(CXXFLAGS) $(OPTFLAGS) $(X_TARGET_FLAGS) -c $< -o $@<br>
 Output/%.llvm.o: %.cc Output/.dir<br>
        $(RUNSAFELYLOCAL) /dev/null $@.compile \<br>
-         $(LCXX) $(CPPFLAGS) $(CXXFLAGS) $(OPTFLAGS) $(TARGET_FLAGS) -c $< -o $@<br>
+         $(LCXX) $(CPPFLAGS) $(CXXFLAGS) $(OPTFLAGS) $(X_TARGET_FLAGS) -c $< -o $@<br>
 Output/%.llvm.o: %.mm Output/.dir<br>
        $(RUNSAFELYLOCAL) /dev/null $@.compile \<br>
-         $(LCXX) $(CPPFLAGS) $(CXXFLAGS) $(OPTFLAGS) $(TARGET_FLAGS) -c $< -o $@<br>
+         $(LCXX) $(CPPFLAGS) $(CXXFLAGS) $(OPTFLAGS) $(X_TARGET_FLAGS) -c $< -o $@<br>
<br>
 bugpoint-opt: Output/$(PROG).bugpoint-opt<br>
 bugpoint-gccas: Output/$(PROG).bugpoint-opt<br>
@@ -89,10 +92,10 @@<br>
 /^user/ { user += $$2; }\<br>
 /^sys/ { sys += $$2; }\<br>
 END { printf("real %f\nuser %f\nsys %f\n", real, user, sys); }' > $@.compile.time<br>
-       -$(LD_ENV_OVERRIDES) $(LCXX) -o $@ $(NLObjects) $(LDFLAGS) $(CFLAGS) $(TARGET_FLAGS)<br>
+       -$(LD_ENV_OVERRIDES) $(LCXX) -o $@ $(NLObjects) $(LDFLAGS) $(CFLAGS) $(X_TARGET_FLAGS)<br>
<br>
 Output/%.native: $(NObjects) $(GeneratedTestInputs)<br>
-       -$(CXX) -o $@ $(NObjects) $(LDFLAGS) $(CFLAGS) $(TARGET_FLAGS)<br>
+       -$(CXX) -o $@ $(NObjects) $(LDFLAGS) $(CFLAGS) $(X_TARGET_FLAGS)<br>
<br>
 # A simple target to run findmisopt when bugpoint isn't helping<br>
 findmisopt:<br>
Index: SingleSource/Makefile.singlesrc<br>
===================================================================<br>
--- SingleSource/Makefile.singlesrc     (revision 174514)<br>
+++ SingleSource/Makefile.singlesrc     (working copy)<br>
@@ -36,6 +36,10 @@<br>
        $(patsubst $(SourceDir)%,%,$(basename $(Source))))<br>
<br>
 include $(LEVEL)/Makefile.programs<br>
+<br>
+# use X_TARGET_FLAGS to work around LNT behavior.<br>
+X_TARGET_FLAGS = $(TARGET_FLAGS) $(TEST_TARGET_FLAGS)<br>
+<br>
 .PRECIOUS: Output/%.linked.rll<br>
<br>
 ifndef USE_PRECOMPILED_BYTECODE<br>
@@ -57,88 +61,88 @@<br>
<br>
 Output/%.llvm.o: %.c Output/.dir<br>
        $(RUNSAFELYLOCAL) /dev/null $@.compile \<br>
-         $(LCC) $(CPPFLAGS) $(CFLAGS) $(OPTFLAGS) $(TARGET_FLAGS) -c $< -o $@<br>
+         $(LCC) $(CPPFLAGS) $(CFLAGS) $(OPTFLAGS) $(X_TARGET_FLAGS) -c $< -o $@<br>
 Output/%.llvm.o: %.m Output/.dir<br>
        $(RUNSAFELYLOCAL) /dev/null $@.compile \<br>
-         $(LCC) $(CPPFLAGS) $(CFLAGS) $(OPTFLAGS) $(TARGET_FLAGS) -c $< -o $@<br>
+         $(LCC) $(CPPFLAGS) $(CFLAGS) $(OPTFLAGS) $(X_TARGET_FLAGS) -c $< -o $@<br>
 Output/%.llvm.o: %.C Output/.dir<br>
        $(RUNSAFELYLOCAL) /dev/null $@.compile \<br>
-         $(LCXX) $(CPPFLAGS) $(CXXFLAGS) $(OPTFLAGS) $(TARGET_FLAGS) -c $< -o $@<br>
+         $(LCXX) $(CPPFLAGS) $(CXXFLAGS) $(OPTFLAGS) $(X_TARGET_FLAGS) -c $< -o $@<br>
 Output/%.llvm.o: %.cpp Output/.dir<br>
        $(RUNSAFELYLOCAL) /dev/null $@.compile \<br>
-         $(LCXX) $(CPPFLAGS) $(CXXFLAGS) $(OPTFLAGS) $(TARGET_FLAGS) -c $< -o $@<br>
+         $(LCXX) $(CPPFLAGS) $(CXXFLAGS) $(OPTFLAGS) $(X_TARGET_FLAGS) -c $< -o $@<br>
 Output/%.llvm.o: %.cc Output/.dir<br>
        $(RUNSAFELYLOCAL) /dev/null $@.compile \<br>
-         $(LCXX) $(CPPFLAGS) $(CXXFLAGS) $(OPTFLAGS) $(TARGET_FLAGS) -c $< -o $@<br>
+         $(LCXX) $(CPPFLAGS) $(CXXFLAGS) $(OPTFLAGS) $(X_TARGET_FLAGS) -c $< -o $@<br>
 Output/%.llvm.o: %.mm Output/.dir<br>
        $(RUNSAFELYLOCAL) /dev/null $@.compile \<br>
-         $(LCXX) $(CPPFLAGS) $(CXXFLAGS) $(OPTFLAGS) $(TARGET_FLAGS) -c $< -o $@<br>
+         $(LCXX) $(CPPFLAGS) $(CXXFLAGS) $(OPTFLAGS) $(X_TARGET_FLAGS) -c $< -o $@<br>
 .PRECIOUS: Output/%.llvm.o<br>
<br>
 Output/%.simple: Output/%.llvm.o Output/.dir<br>
        -$(CP) $<.compile.time $@.compile.time<br>
-       -$(LD_ENV_OVERRIDES) $(LCXX) -o $@ $< $(LDFLAGS) $(CFLAGS) $(TARGET_FLAGS)<br>
+       -$(LD_ENV_OVERRIDES) $(LCXX) -o $@ $< $(LDFLAGS) $(CFLAGS) $(X_TARGET_FLAGS)<br>
<br>
 # FIXME: LIBS should be specified, not hardcoded to -lm<br>
 Output/%.native: $(SourceDir)/%.c Output/.dir<br>
-       -$(CC) $(CPPFLAGS) $(CFLAGS) $(OPTFLAGS) $(TARGET_FLAGS) $< -lm -o $@ $(LDFLAGS)<br>
+       -$(CC) $(CPPFLAGS) $(CFLAGS) $(OPTFLAGS) $(X_TARGET_FLAGS) $< -lm -o $@ $(LDFLAGS)<br>
<br>
 Output/%.native: $(SourceDir)/%.cpp Output/.dir<br>
-       -$(CXX) $(CPPFLAGS) $(CXXFLAGS) $(OPTFLAGS) $(TARGET_FLAGS) $< -lm -o $@ $(LDFLAGS)<br>
+       -$(CXX) $(CPPFLAGS) $(CXXFLAGS) $(OPTFLAGS) $(X_TARGET_FLAGS) $< -lm -o $@ $(LDFLAGS)<br>
<br>
 Output/%.native: $(SourceDir)/%.m Output/.dir<br>
-       -$(CC) $(CPPFLAGS) $(CFLAGS) $(OPTFLAGS) $(TARGET_FLAGS) $< -lm -o $@ $(LDFLAGS)<br>
+       -$(CC) $(CPPFLAGS) $(CFLAGS) $(OPTFLAGS) $(X_TARGET_FLAGS) $< -lm -o $@ $(LDFLAGS)<br>
<br>
 Output/%.native: $(SourceDir)/%.mm Output/.dir<br>
-       -$(CXX) $(CPPFLAGS) $(CXXFLAGS) $(OPTFLAGS) $(TARGET_FLAGS) $< -lm -o $@ $(LDFLAGS)<br>
+       -$(CXX) $(CPPFLAGS) $(CXXFLAGS) $(OPTFLAGS) $(X_TARGET_FLAGS) $< -lm -o $@ $(LDFLAGS)<br>
<br>
 Output/%.native.dbg: $(SourceDir)/%.c Output/.dir<br>
-       -$(CC) -g $(CPPFLAGS) $(CFLAGS) $(TARGET_FLAGS) $< -lm -o $@ $(LDFLAGS)<br>
+       -$(CC) -g $(CPPFLAGS) $(CFLAGS) $(X_TARGET_FLAGS) $< -lm -o $@ $(LDFLAGS)<br>
<br>
 Output/%.native.dbg: $(SourceDir)/%.cpp Output/.dir<br>
-       -$(CXX) -g $(CPPFLAGS) $(CXXFLAGS) $(TARGET_FLAGS) $< -lm -o $@ $(LDFLAGS)<br>
+       -$(CXX) -g $(CPPFLAGS) $(CXXFLAGS) $(X_TARGET_FLAGS) $< -lm -o $@ $(LDFLAGS)<br>
<br>
 Output/%.native.dbg: $(SourceDir)/%.m Output/.dir<br>
-       -$(CC) -g $(CPPFLAGS) $(CFLAGS) $(TARGET_FLAGS) $< -lm -o $@ $(LDFLAGS)<br>
+       -$(CC) -g $(CPPFLAGS) $(CFLAGS) $(X_TARGET_FLAGS) $< -lm -o $@ $(LDFLAGS)<br>
<br>
 Output/%.native.dbg: $(SourceDir)/%.mm Output/.dir<br>
-       -$(CXX) -g $(CPPFLAGS) $(CXXFLAGS) $(TARGET_FLAGS) $< -lm -o $@ $(LDFLAGS)<br>
+       -$(CXX) -g $(CPPFLAGS) $(CXXFLAGS) $(X_TARGET_FLAGS) $< -lm -o $@ $(LDFLAGS)<br>
<br>
 Output/%.native.dbg.opt: $(SourceDir)/%.c Output/.dir<br>
-       -$(CC) -g $(CPPFLAGS) $(CFLAGS) $(OPTFLAGS) $(TARGET_FLAGS) $< -lm -o $@ $(LDFLAGS)<br>
+       -$(CC) -g $(CPPFLAGS) $(CFLAGS) $(OPTFLAGS) $(X_TARGET_FLAGS) $< -lm -o $@ $(LDFLAGS)<br>
<br>
 Output/%.native.dbg.opt: $(SourceDir)/%.cpp Output/.dir<br>
-       -$(CXX) -g $(CPPFLAGS) $(CXXFLAGS) $(OPTFLAGS) $(TARGET_FLAGS) $< -lm -o $@ $(LDFLAGS)<br>
+       -$(CXX) -g $(CPPFLAGS) $(CXXFLAGS) $(OPTFLAGS) $(X_TARGET_FLAGS) $< -lm -o $@ $(LDFLAGS)<br>
<br>
 Output/%.native.dbg.opt: $(SourceDir)/%.m Output/.dir<br>
-       -$(CC) -g $(CPPFLAGS) $(CFLAGS) $(OPTFLAGS) $(TARGET_FLAGS) $< -lm -o $@ $(LDFLAGS)<br>
+       -$(CC) -g $(CPPFLAGS) $(CFLAGS) $(OPTFLAGS) $(X_TARGET_FLAGS) $< -lm -o $@ $(LDFLAGS)<br>
<br>
 Output/%.native.dbg.opt: $(SourceDir)/%.mm Output/.dir<br>
-       -$(CXX) -g $(CPPFLAGS) $(CXXFLAGS) $(OPTFLAGS) $(TARGET_FLAGS) $< -lm -o $@ $(LDFLAGS)<br>
+       -$(CXX) -g $(CPPFLAGS) $(CXXFLAGS) $(OPTFLAGS) $(X_TARGET_FLAGS) $< -lm -o $@ $(LDFLAGS)<br>
<br>
 Output/%.dbg: $(SourceDir)/%.c Output/.dir<br>
-       -$(LCC) -g $(CPPFLAGS) $(CFLAGS) $(TARGET_FLAGS) $< -lm -o $@ $(LDFLAGS)<br>
+       -$(LCC) -g $(CPPFLAGS) $(CFLAGS) $(X_TARGET_FLAGS) $< -lm -o $@ $(LDFLAGS)<br>
<br>
 Output/%.dbg: $(SourceDir)/%.cpp Output/.dir<br>
-       -$(LCXX) -g $(CPPFLAGS) $(CXXFLAGS) $(TARGET_FLAGS) $< -lm -o $@ $(LDFLAGS)<br>
+       -$(LCXX) -g $(CPPFLAGS) $(CXXFLAGS) $(X_TARGET_FLAGS) $< -lm -o $@ $(LDFLAGS)<br>
<br>
 Output/%.dbg: $(SourceDir)/%.m Output/.dir<br>
-       -$(LCC) -g $(CPPFLAGS) $(CFLAGS) $(TARGET_FLAGS) $< -lm -o $@ $(LDFLAGS)<br>
+       -$(LCC) -g $(CPPFLAGS) $(CFLAGS) $(X_TARGET_FLAGS) $< -lm -o $@ $(LDFLAGS)<br>
<br>
 Output/%.dbg: $(SourceDir)/%.mm Output/.dir<br>
-       -$(LCXX) -g $(CPPFLAGS) $(CXXFLAGS) $(TARGET_FLAGS) $< -lm -o $@ $(LDFLAGS)<br>
+       -$(LCXX) -g $(CPPFLAGS) $(CXXFLAGS) $(X_TARGET_FLAGS) $< -lm -o $@ $(LDFLAGS)<br>
<br>
 Output/%.dbg.opt: $(SourceDir)/%.c Output/.dir<br>
-       -$(LCC) -g $(CPPFLAGS) $(CFLAGS) $(OPTFLAGS) $(TARGET_FLAGS) $< -lm -o $@ $(LDFLAGS)<br>
+       -$(LCC) -g $(CPPFLAGS) $(CFLAGS) $(OPTFLAGS) $(X_TARGET_FLAGS) $< -lm -o $@ $(LDFLAGS)<br>
<br>
 Output/%.dbg.opt: $(SourceDir)/%.cpp Output/.dir<br>
-       -$(LCXX) -g $(CPPFLAGS) $(CXXFLAGS) $(OPTFLAGS) $(TARGET_FLAGS) $< -lm -o $@ $(LDFLAGS)<br>
+       -$(LCXX) -g $(CPPFLAGS) $(CXXFLAGS) $(OPTFLAGS) $(X_TARGET_FLAGS) $< -lm -o $@ $(LDFLAGS)<br>
<br>
 Output/%.dbg.opt: $(SourceDir)/%.m Output/.dir<br>
-       -$(LCC) -g $(CPPFLAGS) $(CFLAGS) $(OPTFLAGS) $(TARGET_FLAGS) $< -lm -o $@ $(LDFLAGS)<br>
+       -$(LCC) -g $(CPPFLAGS) $(CFLAGS) $(OPTFLAGS) $(X_TARGET_FLAGS) $< -lm -o $@ $(LDFLAGS)<br>
<br>
 Output/%.dbg.opt: $(SourceDir)/%.mm Output/.dir<br>
-       -$(LCXX) -g $(CPPFLAGS) $(CXXFLAGS) $(OPTFLAGS) $(TARGET_FLAGS) $< -lm -o $@ $(LDFLAGS)<br>
+       -$(LCXX) -g $(CPPFLAGS) $(CXXFLAGS) $(OPTFLAGS) $(X_TARGET_FLAGS) $< -lm -o $@ $(LDFLAGS)<br>
<br>
 bugpoint-gccas bugpoint-opt bugpoint-jit bugpoint-llc bugpoint-llc-beta:<br>
        @echo "The $@ target doesn't work in SingleSource.  Try:"<br>
Index: SingleSource/UnitTests/Vector/Altivec/Makefile<br>
===================================================================<br>
--- SingleSource/UnitTests/Vector/Altivec/Makefile      (revision 174514)<br>
+++ SingleSource/UnitTests/Vector/Altivec/Makefile      (working copy)<br>
@@ -9,6 +9,8 @@<br>
<div class="im"> FP_TOLERANCE := 0.002<br>
<br>
 TARGET_FLAGS += -maltivec<br>
</div>+# also set TEST_TARGET_FLAGS for the LNT environment.<br>
+TEST_TARGET_FLAGS += -maltivec<br>
 LCCFLAGS += -maltivec<br>
<br>
 include $(LEVEL)/SingleSource/Makefile.singlesrc<br>
<br>
<br>
</blockquote></div><br></div></div>