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 =packed
40 UNSTABLEOPTS := -Zunstable-options
44 $(RUSTC) foo.rs -g -C $(UNSTABLEOPTS) split-debuginfo=off
45 [ ! -f $(TMPDIR)/*.dwp ]
46 [ ! -f $(TMPDIR)/*.dwo ]
49 [ ! -f $(TMPDIR)/*.dwp ]
50 [ ! -f $(TMPDIR)/*.dwo ]
52 packed: packed-split packed-single
55 $(RUSTC) foo.rs -g $(UNSTABLEOPTS) -C split-debuginfo=packed -Zsplit-dwarf-kind=split
57 rm -rf $(TMPDIR)/*.dwp $(TMPDIR)/*.dwo
60 $(RUSTC) foo.rs -g $(UNSTABLEOPTS) -C split-debuginfo=packed -Zsplit-dwarf-kind=single
62 ls $(TMPDIR)/*.dwo && exit 1 || exit 0
63 rm -rf $(TMPDIR)/*.dwp
65 packed-remapped: packed-remapped-split packed-remapped-single
67 packed-remapped-split:
68 $(RUSTC) $(UNSTABLEOPTS) -C split-debuginfo=packed -C debuginfo=2 \
69 -Z split-dwarf-kind=split --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-remapped-single:
73 $(RUSTC) $(UNSTABLEOPTS) -C split-debuginfo=packed -C debuginfo=2 \
74 -Z split-dwarf-kind=single --remap-path-prefix $(TMPDIR)=/a foo.rs -g
75 objdump -Wi $(TMPDIR)/foo | grep DW_AT_GNU_dwo_name | (! grep $(TMPDIR)) || exit 1
77 packed-crosscrate: packed-crosscrate-split packed-crosscrate-single
79 packed-crosscrate-split:
80 $(RUSTC) --crate-type lib $(UNSTABLEOPTS) -C split-debuginfo=packed \
81 -Zsplit-dwarf-kind=split -C debuginfo=2 -g bar.rs
83 ls $(TMPDIR)/*.dwo && exit 1 || exit 0
84 ls $(TMPDIR)/*.dwp && exit 1 || exit 0
85 $(RUSTC) --extern bar=$(TMPDIR)/libbar.rlib -Z unstable-options $(UNSTABLEOPTS) \
86 -C split-debuginfo=packed -Zsplit-dwarf-kind=split -C debuginfo=2 -g main.rs
89 rm $(TMPDIR)/$(call BIN,main)
91 packed-crosscrate-single:
92 $(RUSTC) --crate-type lib $(UNSTABLEOPTS) -C split-debuginfo=packed \
93 -Zsplit-dwarf-kind=single -C debuginfo=2 -g bar.rs
95 ls $(TMPDIR)/*.dwo && exit 1 || exit 0
96 ls $(TMPDIR)/*.dwp && exit 1 || exit 0
97 $(RUSTC) --extern bar=$(TMPDIR)/libbar.rlib -Z unstable-options $(UNSTABLEOPTS) \
98 -C split-debuginfo=packed -Zsplit-dwarf-kind=single -C debuginfo=2 -g main.rs
99 ls $(TMPDIR)/*.dwo && exit 1 || exit 0
100 rm $(TMPDIR)/main.dwp
101 rm $(TMPDIR)/$(call BIN,main)
103 unpacked: unpacked-split unpacked-single unpacked-remapped-split unpacked-remapped-single
106 $(RUSTC) foo.rs -g $(UNSTABLEOPTS) -C split-debuginfo=unpacked -Zsplit-dwarf-kind=split
107 ls $(TMPDIR)/*.dwp && exit 1 || exit 0
109 rm -rf $(TMPDIR)/*.dwp $(TMPDIR)/*.dwo
112 $(RUSTC) foo.rs -g $(UNSTABLEOPTS) -C split-debuginfo=unpacked -Zsplit-dwarf-kind=single
113 ls $(TMPDIR)/*.dwp && exit 1 || exit 0
114 ls $(TMPDIR)/*.dwo && exit 1 || exit 0
116 unpacked-remapped-split:
117 $(RUSTC) $(UNSTABLEOPTS) -C split-debuginfo=unpacked -C debuginfo=2 \
118 -Z split-dwarf-kind=split --remap-path-prefix $(TMPDIR)=/a foo.rs -g
119 objdump -Wi $(TMPDIR)/foo | grep DW_AT_GNU_dwo_name | (! grep $(TMPDIR)) || exit 1
121 unpacked-remapped-single:
122 $(RUSTC) $(UNSTABLEOPTS) -C split-debuginfo=unpacked -C debuginfo=2 \
123 -Z split-dwarf-kind=single --remap-path-prefix $(TMPDIR)=/a foo.rs -g
124 objdump -Wi $(TMPDIR)/foo | grep DW_AT_GNU_dwo_name | (! grep $(TMPDIR)) || exit 1