summary refs log tree commit diff
path: root/src/test/run-make-fulldeps/split-debuginfo/Makefile
blob: c89f2ae8349e538fffed9bdb78b1d9ad7f1d15d5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
-include ../tools.mk

# min-llvm-version: 11.0

all: off packed unpacked

ifeq ($(UNAME),Darwin)
# If disabled, don't run dsymutil
off:
	rm -rf $(TMPDIR)/*.dSYM
	$(RUSTC) foo.rs -g -C split-debuginfo=off
	[ ! -d $(TMPDIR)/foo.dSYM ]

# Packed by default, but only if debuginfo is requested
packed:
	rm -rf $(TMPDIR)/*.dSYM
	$(RUSTC) foo.rs
	[ ! -d $(TMPDIR)/foo.dSYM ]
	rm -rf $(TMPDIR)/*.dSYM
	$(RUSTC) foo.rs -g
	[ -d $(TMPDIR)/foo.dSYM ]
	rm -rf $(TMPDIR)/*.dSYM
	$(RUSTC) foo.rs -g -C split-debuginfo=packed
	[ -d $(TMPDIR)/foo.dSYM ]
	rm -rf $(TMPDIR)/*.dSYM

# Object files are preserved with unpacked and `dsymutil` isn't run
unpacked:
	$(RUSTC) foo.rs -g -C split-debuginfo=unpacked
	ls $(TMPDIR)/*.o
	[ ! -d $(TMPDIR)/foo.dSYM ]
else
ifdef IS_WINDOWS
# Windows only supports =off
off:
packed:
unpacked:
else
# If disabled, don't run dsymutil
off:
	$(RUSTC) foo.rs -g -C split-debuginfo=off -Z unstable-options
	[ ! -f $(TMPDIR)/*.dwp ]
	[ ! -f $(TMPDIR)/*.dwo ]

	$(RUSTC) foo.rs -g
	[ ! -f $(TMPDIR)/*.dwp ]
	[ ! -f $(TMPDIR)/*.dwo ]

packed:
	$(RUSTC) foo.rs -g -C split-debuginfo=packed -Z unstable-options
	ls $(TMPDIR)/*.dwp
	ls $(TMPDIR)/*.dwo && exit 1 || exit 0
	rm -rf $(TMPDIR)/*.dwp

unpacked:
	$(RUSTC) foo.rs -g -C split-debuginfo=unpacked -Z unstable-options
	ls $(TMPDIR)/*.dwp && exit 1 || exit 0
	ls $(TMPDIR)/*.dwo
	rm -rf $(TMPDIR)/*.dwo
endif
endif