From: Marcos Henrich Date: Tue, 21 Jun 2016 10:31:29 +0000 (+0100) Subject: [mono-symbolicate] Improved Makefile X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=commitdiff_plain;h=602b8952d573d87c964e043c6125972fdf8bfd82;p=mono.git [mono-symbolicate] Improved Makefile Makefile now stores managed assemblies into the msym dir. Each test now uses a separate directory to store stacktraces outputs and symbols. --- diff --git a/mcs/tools/mono-symbolicate/Makefile b/mcs/tools/mono-symbolicate/Makefile index 3deeee0c1d3..32059cfdc67 100644 --- a/mcs/tools/mono-symbolicate/Makefile +++ b/mcs/tools/mono-symbolicate/Makefile @@ -15,45 +15,65 @@ LIB_PATH = $(topdir)/class/lib/$(PROFILE) MONO = MONO_PATH="$(LIB_PATH)$(PLATFORM_PATH_SEPARATOR)$$MONO_PATH" $(RUNTIME) -O=-inline -MSYM_DIR = msymdir -OUT_DIR = Test/out +MSYM_DIR = $(OUT_DIR)/msymdir TEST_CS = Test/StackTraceDumper.cs TEST_EXE = $(OUT_DIR)/StackTraceDumper.exe -RELEASE_FILE = $(OUT_DIR)/release.out -SYMBOLICATE_FILE = $(OUT_DIR)/symbolicate.out +STACKTRACE_FILE = $(OUT_DIR)/stacktrace.out +SYMBOLICATE_RAW_FILE = $(OUT_DIR)/symbolicate_raw.out +SYMBOLICATE_RESULT_FILE = $(OUT_DIR)/symbolicate.result SYMBOLICATE_EXPECTED_FILE = Test/symbolicate.expected CHECK_DIFF = @\ - MONO_DEBUG=gen-compact-seq-points $(MONO) $(TEST_EXE) > $(RELEASE_FILE); \ - $(MONO) $(LIB_PATH)/$(PROGRAM) $(MSYM_DIR) $(RELEASE_FILE) | sed "s/).*Test\//) in /" > $(SYMBOLICATE_FILE); \ - DIFF=$$(diff $(SYMBOLICATE_FILE) $(SYMBOLICATE_EXPECTED_FILE)); \ + MONO_DEBUG=gen-compact-seq-points $(MONO) $(TEST_EXE) > $(STACKTRACE_FILE); \ + $(MONO) $(LIB_PATH)/$(PROGRAM) $(MSYM_DIR) $(STACKTRACE_FILE) > $(SYMBOLICATE_RAW_FILE); \ + sed "s/).*Test\//) in /" $(SYMBOLICATE_RAW_FILE) | sed '/\[MVID\]/d' | sed '/\[AOTID\]/d' > $(SYMBOLICATE_RESULT_FILE); \ + DIFF=$$(diff $(SYMBOLICATE_RESULT_FILE) $(SYMBOLICATE_EXPECTED_FILE)); \ if [ ! -z "$$DIFF" ]; then \ echo "Symbolicate tests failed."; \ - echo "If $(SYMBOLICATE_FILE) is correct copy it to $(SYMBOLICATE_EXPECTED_FILE)."; \ + echo "If $(SYMBOLICATE_RESULT_FILE) is correct copy it to $(SYMBOLICATE_EXPECTED_FILE)."; \ echo "Otherwise runtime sequence points need to be fixed."; \ echo "$$DIFF"; \ exit 1; \ fi -BUILD_TEST_EXE = \ +PREPARE_OUTDIR = @\ rm -rf $(OUT_DIR); \ mkdir -p $(OUT_DIR); \ - $(CSCOMPILE) $(TEST_CS) -out:$(TEST_EXE) + mkdir -p $(MSYM_DIR); + +COMPILE = \ + $(CSCOMPILE) $(TEST_CS) -out:$(TEST_EXE); \ + $(MONO) $(LIB_PATH)/$(PROGRAM) store-symbols $(MSYM_DIR) $(OUT_DIR) check: test-local AOT_SUPPORTED = $(shell $(MONO) --aot 2>&1 | grep -q "AOT compilation is not supported" && echo 0 || echo 1) -test-local: all - $(BUILD_TEST_EXE) - @echo "Checking $(TEST_EXE) without AOT" +test-local: test-without-aot test-with-aot test-with-aot-msym + +test-without-aot: OUT_DIR = Test/without_aot +test-without-aot: all + @echo "Checking $(TEST_EXE) without AOT in $(OUT_DIR)" + $(PREPARE_OUTDIR) + $(COMPILE) $(CHECK_DIFF) + +test-with-aot: OUT_DIR = Test/with_aot +test-with-aot: all ifeq ($(AOT_SUPPORTED), 1) - @echo "Checking $(TEST_EXE) with AOT" + @echo "Checking $(TEST_EXE) with AOT in $(OUT_DIR)" + $(PREPARE_OUTDIR) + $(COMPILE) @MONO_DEBUG=gen-compact-seq-points $(MONO) --aot $(TEST_EXE) > /dev/null $(CHECK_DIFF) - @echo "Checking $(TEST_EXE) with AOT (using .msym)" - $(BUILD_TEST_EXE) - @MONO_DEBUG=gen-compact-seq-points $(MONO) --aot=gen-seq-points-file $(TEST_EXE) > /dev/null +endif + +test-with-aot-msym: OUT_DIR = Test/with_aot_msym +test-with-aot-msym: all +ifeq ($(AOT_SUPPORTED), 1) + @echo "Checking $(TEST_EXE) with AOT (using .msym) in $(OUT_DIR)" + $(PREPARE_OUTDIR) + $(COMPILE) + @MONO_DEBUG=gen-compact-seq-points $(MONO) --aot=msym-dir=$(MSYM_DIR) $(TEST_EXE) > /dev/null $(CHECK_DIFF) endif