@@ -26,6 +26,11 @@ CFG_VALGRIND :=
26
26
CFG_LLVM_CONFIG ?= llvm-config
27
27
CFG_BOOT_FLAGS := $(FLAGS)
28
28
29
+ # On Darwin, we need to run dsymutil so the debugging information ends
30
+ # up in the right place. On other platforms, it automatically gets
31
+ # embedded into the executable, so use a no-op command.
32
+ DSYMUTIL := true
33
+
29
34
ifeq ($(CFG_OSTYPE), Linux)
30
35
CFG_RUNTIME := librustrt.so
31
36
CFG_STDLIB := libstd.so
@@ -56,6 +61,7 @@ ifeq ($(CFG_OSTYPE), Darwin)
56
61
# approaches welcome!
57
62
CFG_GCC_CFLAGS += -m32
58
63
CFG_GCC_LINK_FLAGS += -m32
64
+ DSYMUTIL := dsymutil
59
65
endif
60
66
61
67
ifneq ($(findstring MINGW,$(CFG_OSTYPE)),)
@@ -651,9 +657,17 @@ test/bench/shootout/%.x86$(CFG_EXE_SUFFIX): test/bench/shootout/%.rs $(REQ)
651
657
@$(call CFG_ECHO, compile [llvm]: $<)
652
658
$(CFG_QUIET)$(LLC) $(CFG_LLC_CFLAGS) -o $@ $<
653
659
654
- %.llvm$(CFG_EXE_SUFFIX): %.s $(CFG_RUNTIME)
655
- @$(call CFG_ECHO, compile [llvm]: $<)
660
+ %.o: %.s
661
+ @$(call CFG_ECHO, assemble [llvm]: $<)
662
+ $(CFG_QUIET)gcc $(CFG_GCC_CFLAGS) -o $@ -c $<
663
+
664
+ %.llvm$(CFG_EXE_SUFFIX): %.o $(CFG_RUNTIME)
665
+ @$(call CFG_ECHO, link [llvm]: $<)
656
666
$(CFG_QUIET)gcc $(CFG_GCC_CFLAGS) -o $@ $< -L. -lrustrt
667
+ @# dsymutil sometimes fails or prints a warning, but the
668
+ @# program still runs. Since it simplifies debugging other
669
+ @# programs, I\'ll live with the noise.
670
+ -$(CFG_QUIET)$(DSYMUTIL) $@
657
671
658
672
test/run-pass/%.bc: test/run-pass/%.rc $(REQ)
659
673
@$(call CFG_ECHO, compile [llvm]: $<)
@@ -802,6 +816,8 @@ clean:
802
816
$(CFG_QUIET)rm -f $(TEST_RFAIL_EXES_LLVM) $(TEST_RFAIL_OUTS_LLVM)
803
817
$(CFG_QUIET)rm -f $(TEST_CFAIL_EXES_X86) $(TEST_CFAIL_OUTS_X86)
804
818
$(CFG_QUIET)rm -f $(TEST_CFAIL_EXES_LLVM) $(TEST_CFAIL_OUTS_LLVM)
819
+ $(CFG_QUIET)rm -rf $(TEST_RPASS_EXES_LLVM:.llvm=.llvm.dSYM)
820
+ $(CFG_QUIET)rm -rf $(TEST_RFAIL_EXES_LLVM:.llvm=.llvm.dSYM)
805
821
$(CFG_QUIET)rm -Rf $(PKG_NAME)-*.tar.gz dist
806
822
$(CFG_QUIET)rm -f $(foreach ext,cmx cmi cmo cma o a d exe,\
807
823
$(wildcard boot/*/*.$(ext) boot/*/*/*.$(ext)))
0 commit comments