3 all: off packed unpacked
6 # If disabled, don't run dsymutil
8 rm -rf $(TMPDIR)/*.dSYM
9 $(RUSTC) foo.rs -g -C split-debuginfo=off
10 [ ! -d $(TMPDIR)/foo.dSYM ]
12 # Packed by default, but only if debuginfo is requested
14 rm -rf $(TMPDIR)/*.dSYM
16 [ ! -d $(TMPDIR)/foo.dSYM ]
17 rm -rf $(TMPDIR)/*.dSYM
19 [ -d $(TMPDIR)/foo.dSYM ]
20 rm -rf $(TMPDIR)/*.dSYM
21 $(RUSTC) foo.rs -g -C split-debuginfo=packed
22 [ -d $(TMPDIR)/foo.dSYM ]
23 rm -rf $(TMPDIR)/*.dSYM
25 # Object files are preserved with unpacked and `dsymutil` isn't run
27 $(RUSTC) foo.rs -g -C split-debuginfo=unpacked
29 [ ! -d $(TMPDIR)/foo.dSYM ]
32 # Windows only supports =off
37 # If disabled, don't run dsymutil
39 $(RUSTC) foo.rs -g -C split-debuginfo=off -Z unstable-options
40 [ ! -f $(TMPDIR)/*.dwp ]
41 [ ! -f $(TMPDIR)/*.dwo ]
44 [ ! -f $(TMPDIR)/*.dwp ]
45 [ ! -f $(TMPDIR)/*.dwo ]
47 packed: packed-split packed-single
50 $(RUSTC) foo.rs -g -C split-debuginfo=packed -Z unstable-options -Zsplit-dwarf-kind=split
52 rm -rf $(TMPDIR)/*.dwp $(TMPDIR)/*.dwo
55 $(RUSTC) foo.rs -g -C split-debuginfo=packed -Z unstable-options -Zsplit-dwarf-kind=single
57 ls $(TMPDIR)/*.dwo && exit 1 || exit 0
58 rm -rf $(TMPDIR)/*.dwp
60 packed-remapped: packed-remapped-split packed-remapped-single
62 packed-remapped-split:
63 $(RUSTC) -Z unstable-options -C split-debuginfo=packed -C debuginfo=2 \
64 -Z split-dwarf-kind=split --remap-path-prefix $(TMPDIR)=/a foo.rs -g
65 objdump -Wi $(TMPDIR)/foo | grep DW_AT_GNU_dwo_name | (! grep $(TMPDIR)) || exit 1
67 packed-remapped-single:
68 $(RUSTC) -Z unstable-options -C split-debuginfo=packed -C debuginfo=2 \
69 -Z split-dwarf-kind=single --remap-path-prefix $(TMPDIR)=/a foo.rs -g
70 objdump -Wi $(TMPDIR)/foo | grep DW_AT_GNU_dwo_name | (! grep $(TMPDIR)) || exit 1
72 packed-crosscrate: packed-crosscrate-split packed-crosscrate-single
74 packed-crosscrate-split:
75 $(RUSTC) --crate-type lib -Z unstable-options -C split-debuginfo=packed \
76 -Zsplit-dwarf-kind=split -C debuginfo=2 -g bar.rs
78 ls $(TMPDIR)/*.dwo && exit 1 || exit 0
79 ls $(TMPDIR)/*.dwp && exit 1 || exit 0
80 $(RUSTC) --extern bar=$(TMPDIR)/libbar.rlib -Z unstable-options -C split-debuginfo=packed \
81 -Zsplit-dwarf-kind=split -C debuginfo=2 -g main.rs
84 rm $(TMPDIR)/$(call BIN,main)
86 packed-crosscrate-single:
87 $(RUSTC) --crate-type lib -Z unstable-options -C split-debuginfo=packed \
88 -Zsplit-dwarf-kind=single -C debuginfo=2 -g bar.rs
90 ls $(TMPDIR)/*.dwo && exit 1 || exit 0
91 ls $(TMPDIR)/*.dwp && exit 1 || exit 0
92 $(RUSTC) --extern bar=$(TMPDIR)/libbar.rlib -Z unstable-options -C split-debuginfo=packed \
93 -Zsplit-dwarf-kind=single -C debuginfo=2 -g main.rs
94 ls $(TMPDIR)/*.dwo && exit 1 || exit 0
96 rm $(TMPDIR)/$(call BIN,main)
98 unpacked: unpacked-split unpacked-single unpacked-remapped-split unpacked-remapped-single
101 $(RUSTC) foo.rs -g -C split-debuginfo=unpacked -Z unstable-options -Zsplit-dwarf-kind=split
102 ls $(TMPDIR)/*.dwp && exit 1 || exit 0
104 rm -rf $(TMPDIR)/*.dwp $(TMPDIR)/*.dwo
107 $(RUSTC) foo.rs -g -C split-debuginfo=unpacked -Z unstable-options -Zsplit-dwarf-kind=single
108 ls $(TMPDIR)/*.dwp && exit 1 || exit 0
109 ls $(TMPDIR)/*.dwo && exit 1 || exit 0
111 unpacked-remapped-split:
112 $(RUSTC) -Z unstable-options -C split-debuginfo=unpacked -C debuginfo=2 \
113 -Z split-dwarf-kind=split --remap-path-prefix $(TMPDIR)=/a foo.rs -g
114 objdump -Wi $(TMPDIR)/foo | grep DW_AT_GNU_dwo_name | (! grep $(TMPDIR)) || exit 1
116 unpacked-remapped-single:
117 $(RUSTC) -Z unstable-options -C split-debuginfo=unpacked -C debuginfo=2 \
118 -Z split-dwarf-kind=single --remap-path-prefix $(TMPDIR)=/a foo.rs -g
119 objdump -Wi $(TMPDIR)/foo | grep DW_AT_GNU_dwo_name | (! grep $(TMPDIR)) || exit 1