[Lldb-commits] [PATCH] Clean up dependency .d.$$$$ files for tests
Pavel Labath
labath at google.com
Wed Feb 4 05:51:56 PST 2015
Hi vharron, zturner,
Mac-only tests were leaving .d.$$$$ dependency files left in the test tree. This happened
because:
1) "make clean" was invoked although no tests in the folder were run
2) The Makefile had main.d as a dependency, which meant it tried to compile the source file (to extract
dependencies).
3) The compile failed (does not compile on linux) and left behind a main.d.$$$$ temporary file.
4) "make clean" tried to clean up these temporary files, but the expansion $(wildcard *.d.[0-9]*)
was performed before the temporary file was created, so this file was not caught.
I fix this by giving all the temporary files deterministic names, which makes it easier to clean
them up afterwards. I also make the rules for generating the dependency files more robust and
less likely to leak files in the first place.
http://reviews.llvm.org/D7406
Files:
test/make/Makefile.rules
Index: test/make/Makefile.rules
===================================================================
--- test/make/Makefile.rules
+++ test/make/Makefile.rules
@@ -399,28 +399,28 @@
# and the -MM option will list all non-system dependencies.
#----------------------------------------------------------------------
%.d: %.c
- @set -e; rm -f $@; \
- $(CC) -M $(CFLAGS) $< > $@.$$$$; \
- sed 's,\($*\)\.o[ :]*,\1.o $@ : ,g' < $@.$$$$ > $@; \
- rm -f $@.$$$$
+ @rm -f $@; \
+ $(CC) -M $(CFLAGS) $< > $@.tmp && \
+ sed 's,\($*\)\.o[ :]*,\1.o $@ : ,g' < $@.tmp > $@; \
+ rm -f $@.tmp
%.d: %.cpp
- @set -e; rm -f $@; \
- $(CXX) -M $(CXXFLAGS) $< > $@.$$$$; \
- sed 's,\($*\)\.o[ :]*,\1.o $@ : ,g' < $@.$$$$ > $@; \
- rm -f $@.$$$$
+ @rm -f $@; \
+ $(CXX) -M $(CXXFLAGS) $< > $@.tmp && \
+ sed 's,\($*\)\.o[ :]*,\1.o $@ : ,g' < $@.tmp > $@; \
+ rm -f $@.tmp
%.d: %.m
- @set -e; rm -f $@; \
- $(CC) -M $(CFLAGS) $< > $@.$$$$; \
- sed 's,\($*\)\.o[ :]*,\1.o $@ : ,g' < $@.$$$$ > $@; \
- rm -f $@.$$$$
+ @rm -f $@; \
+ $(CC) -M $(CFLAGS) $< > $@.tmp && \
+ sed 's,\($*\)\.o[ :]*,\1.o $@ : ,g' < $@.tmp > $@; \
+ rm -f $@.tmp
%.d: %.mm
- @set -e; rm -f $@; \
- $(CXX) -M $(CXXFLAGS) $< > $@.$$$$; \
- sed 's,\($*\)\.o[ :]*,\1.o $@ : ,g' < $@.$$$$ > $@; \
- rm -f $@.$$$$
+ @rm -f $@; \
+ $(CXX) -M $(CXXFLAGS) $< > $@.tmp && \
+ sed 's,\($*\)\.o[ :]*,\1.o $@ : ,g' < $@.tmp > $@; \
+ rm -f $@.tmp
#----------------------------------------------------------------------
# Include all of the makefiles for each source file so we don't have
@@ -440,11 +440,10 @@
dsym: $(DSYM)
all: $(EXE) $(DSYM)
clean::
- $(RM) "$(EXE)" $(OBJECTS) $(PREREQS) $(ARCHIVE_NAME) $(ARCHIVE_OBJECTS)
- $(RM) -r $(wildcard *.d.[0-9] *.d.[0-9][0-9] *.d.[0-9][0-9][0-9] *.d.[0-9][0-9][0-9][0-9] *.d.[0-9][0-9][0-9][0-9][0-9])
+ $(RM) "$(EXE)" $(OBJECTS) $(PREREQS) $(PREREQS:.d=.d.tmp) $(ARCHIVE_NAME) $(ARCHIVE_OBJECTS)
ifneq "$(DYLIB_NAME)" ""
$(RM) -r $(DYLIB_FILENAME).dSYM
- $(RM) $(DYLIB_OBJECTS) $(DYLIB_PREREQS) $(DYLIB_FILENAME) $(DYLIB_FILENAME).debug
+ $(RM) $(DYLIB_OBJECTS) $(DYLIB_PREREQS) $(DYLIB_PREREQS:.d=.d.tmp) $(DYLIB_FILENAME) $(DYLIB_FILENAME).debug
endif
ifneq "$(DSYM)" ""
$(RM) -r "$(DSYM)"
EMAIL PREFERENCES
http://reviews.llvm.org/settings/panel/emailpreferences/
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D7406.19315.patch
Type: text/x-patch
Size: 2202 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/lldb-commits/attachments/20150204/343953c6/attachment.bin>
More information about the lldb-commits
mailing list