]>
Commit | Line | Data |
---|---|---|
f2b60f7d | 1 | include ../tools.mk |
5869c6ff XL |
2 | |
3 | all: off packed unpacked | |
4 | ||
5 | ifeq ($(UNAME),Darwin) | |
487cf647 | 6 | # If disabled, don't run `dsymutil`. |
5869c6ff XL |
7 | off: |
8 | rm -rf $(TMPDIR)/*.dSYM | |
9 | $(RUSTC) foo.rs -g -C split-debuginfo=off | |
10 | [ ! -d $(TMPDIR)/foo.dSYM ] | |
11 | ||
12 | # Packed by default, but only if debuginfo is requested | |
13 | packed: | |
14 | rm -rf $(TMPDIR)/*.dSYM | |
15 | $(RUSTC) foo.rs | |
16 | [ ! -d $(TMPDIR)/foo.dSYM ] | |
17 | rm -rf $(TMPDIR)/*.dSYM | |
18 | $(RUSTC) foo.rs -g | |
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 | |
24 | ||
25 | # Object files are preserved with unpacked and `dsymutil` isn't run | |
26 | unpacked: | |
27 | $(RUSTC) foo.rs -g -C split-debuginfo=unpacked | |
28 | ls $(TMPDIR)/*.o | |
29 | [ ! -d $(TMPDIR)/foo.dSYM ] | |
30 | else | |
31 | ifdef IS_WINDOWS | |
487cf647 | 32 | # Windows only supports packed debuginfo - nothing to test. |
5869c6ff XL |
33 | off: |
34 | packed: | |
35 | unpacked: | |
36 | else | |
487cf647 | 37 | # Some non-Windows, non-Darwin platforms are not stable, and some are. |
f2b60f7d FG |
38 | ifeq ($(UNAME),Linux) |
39 | UNSTABLEOPTS := | |
40 | else | |
41 | UNSTABLEOPTS := -Zunstable-options | |
42 | endif | |
43 | ||
487cf647 FG |
44 | # - Debuginfo in `.o` files |
45 | # - `.o` deleted | |
46 | # - `.dwo` never created | |
47 | # - `.dwp` never created | |
5869c6ff | 48 | off: |
f2b60f7d | 49 | $(RUSTC) foo.rs -g -C $(UNSTABLEOPTS) split-debuginfo=off |
5869c6ff XL |
50 | [ ! -f $(TMPDIR)/*.dwp ] |
51 | [ ! -f $(TMPDIR)/*.dwo ] | |
5869c6ff XL |
52 | $(RUSTC) foo.rs -g |
53 | [ ! -f $(TMPDIR)/*.dwp ] | |
54 | [ ! -f $(TMPDIR)/*.dwo ] | |
55 | ||
487cf647 | 56 | packed: packed-split packed-single packed-lto packed-remapped packed-crosscrate |
a2a8927a | 57 | |
487cf647 FG |
58 | # - Debuginfo in `.dwo` files |
59 | # - `.o` deleted | |
60 | # - `.dwo` deleted | |
61 | # - `.dwp` present | |
a2a8927a | 62 | packed-split: |
f2b60f7d | 63 | $(RUSTC) foo.rs -g $(UNSTABLEOPTS) -C split-debuginfo=packed -Zsplit-dwarf-kind=split |
487cf647 FG |
64 | ls $(TMPDIR)/*.o && exit 1 || exit 0 |
65 | ls $(TMPDIR)/*.dwo && exit 1 || exit 0 | |
66 | rm $(TMPDIR)/foo.dwp | |
67 | rm $(TMPDIR)/$(call BIN,foo) | |
a2a8927a | 68 | |
487cf647 FG |
69 | # - Debuginfo in `.o` files |
70 | # - `.o` deleted | |
71 | # - `.dwo` never created | |
72 | # - `.dwp` present | |
a2a8927a | 73 | packed-single: |
f2b60f7d | 74 | $(RUSTC) foo.rs -g $(UNSTABLEOPTS) -C split-debuginfo=packed -Zsplit-dwarf-kind=single |
487cf647 FG |
75 | ls $(TMPDIR)/*.o && exit 1 || exit 0 |
76 | ls $(TMPDIR)/*.dwo && exit 1 || exit 0 | |
77 | rm $(TMPDIR)/foo.dwp | |
78 | rm $(TMPDIR)/$(call BIN,foo) | |
79 | ||
80 | packed-lto: packed-lto-split packed-lto-single | |
81 | ||
82 | # - rmeta file added to rlib, no object files are generated and thus no debuginfo is generated | |
83 | # - `.o` never created | |
84 | # - `.dwo` never created | |
85 | # - `.dwp` never created | |
86 | packed-lto-split: | |
87 | $(RUSTC) baz.rs -g $(UNSTABLEOPTS) -Csplit-debuginfo=packed -Zsplit-dwarf-kind=split \ | |
88 | --crate-type=rlib -Clinker-plugin-lto | |
89 | ls $(TMPDIR)/*.o && exit 1 || exit 0 | |
90 | ls $(TMPDIR)/*.dwo && exit 1 || exit 0 | |
91 | ls $(TMPDIR)/*.dwp && exit 1 || exit 0 | |
92 | rm $(TMPDIR)/libbaz.rlib | |
93 | ||
94 | # - rmeta file added to rlib, no object files are generated and thus no debuginfo is generated | |
95 | # - `.o` never created | |
96 | # - `.dwo` never created | |
97 | # - `.dwp` never created | |
98 | packed-lto-single: | |
99 | $(RUSTC) baz.rs -g $(UNSTABLEOPTS) -Csplit-debuginfo=packed -Zsplit-dwarf-kind=single \ | |
100 | --crate-type=rlib -Clinker-plugin-lto | |
101 | ls $(TMPDIR)/*.o && exit 1 || exit 0 | |
5869c6ff | 102 | ls $(TMPDIR)/*.dwo && exit 1 || exit 0 |
487cf647 FG |
103 | ls $(TMPDIR)/*.dwp && exit 1 || exit 0 |
104 | rm $(TMPDIR)/libbaz.rlib | |
5869c6ff | 105 | |
a2a8927a XL |
106 | packed-remapped: packed-remapped-split packed-remapped-single |
107 | ||
487cf647 FG |
108 | # - Debuginfo in `.dwo` files |
109 | # - `.o` and binary refer to remapped `.dwo` paths which do not exist | |
110 | # - `.o` deleted | |
111 | # - `.dwo` deleted | |
112 | # - `.dwp` present | |
a2a8927a | 113 | packed-remapped-split: |
f2b60f7d | 114 | $(RUSTC) $(UNSTABLEOPTS) -C split-debuginfo=packed -C debuginfo=2 \ |
a2a8927a XL |
115 | -Z split-dwarf-kind=split --remap-path-prefix $(TMPDIR)=/a foo.rs -g |
116 | objdump -Wi $(TMPDIR)/foo | grep DW_AT_GNU_dwo_name | (! grep $(TMPDIR)) || exit 1 | |
487cf647 FG |
117 | ls $(TMPDIR)/*.o && exit 1 || exit 0 |
118 | ls $(TMPDIR)/*.dwo && exit 1 || exit 0 | |
119 | rm $(TMPDIR)/foo.dwp | |
120 | rm $(TMPDIR)/$(call BIN,foo) | |
a2a8927a | 121 | |
487cf647 FG |
122 | # - Debuginfo in `.o` files |
123 | # - `.o` and binary refer to remapped `.o` paths which do not exist | |
124 | # - `.o` deleted | |
125 | # - `.dwo` never created | |
126 | # - `.dwp` present | |
a2a8927a | 127 | packed-remapped-single: |
f2b60f7d | 128 | $(RUSTC) $(UNSTABLEOPTS) -C split-debuginfo=packed -C debuginfo=2 \ |
a2a8927a XL |
129 | -Z split-dwarf-kind=single --remap-path-prefix $(TMPDIR)=/a foo.rs -g |
130 | objdump -Wi $(TMPDIR)/foo | grep DW_AT_GNU_dwo_name | (! grep $(TMPDIR)) || exit 1 | |
487cf647 FG |
131 | ls $(TMPDIR)/*.o && exit 1 || exit 0 |
132 | ls $(TMPDIR)/*.dwo && exit 1 || exit 0 | |
133 | rm $(TMPDIR)/foo.dwp | |
134 | rm $(TMPDIR)/$(call BIN,foo) | |
a2a8927a XL |
135 | |
136 | packed-crosscrate: packed-crosscrate-split packed-crosscrate-single | |
137 | ||
487cf647 FG |
138 | # - Debuginfo in `.dwo` files |
139 | # - (bar) `.rlib` file created, contains `.dwo` | |
140 | # - (bar) `.o` deleted | |
141 | # - (bar) `.dwo` deleted | |
142 | # - (bar) `.dwp` never created | |
143 | # - (main) `.o` deleted | |
144 | # - (main) `.dwo` deleted | |
145 | # - (main) `.dwp` present | |
a2a8927a | 146 | packed-crosscrate-split: |
f2b60f7d | 147 | $(RUSTC) --crate-type lib $(UNSTABLEOPTS) -C split-debuginfo=packed \ |
a2a8927a XL |
148 | -Zsplit-dwarf-kind=split -C debuginfo=2 -g bar.rs |
149 | ls $(TMPDIR)/*.rlib | |
487cf647 | 150 | ls $(TMPDIR)/*.o && exit 1 || exit 0 |
a2a8927a XL |
151 | ls $(TMPDIR)/*.dwo && exit 1 || exit 0 |
152 | ls $(TMPDIR)/*.dwp && exit 1 || exit 0 | |
487cf647 | 153 | $(RUSTC) --extern bar=$(TMPDIR)/libbar.rlib $(UNSTABLEOPTS) \ |
f2b60f7d | 154 | -C split-debuginfo=packed -Zsplit-dwarf-kind=split -C debuginfo=2 -g main.rs |
487cf647 FG |
155 | ls $(TMPDIR)/*.o && exit 1 || exit 0 |
156 | ls $(TMPDIR)/*.dwo && exit 1 || exit 0 | |
a2a8927a XL |
157 | rm $(TMPDIR)/main.dwp |
158 | rm $(TMPDIR)/$(call BIN,main) | |
159 | ||
487cf647 FG |
160 | # - Debuginfo in `.o` files |
161 | # - (bar) `.rlib` file created, contains `.o` | |
162 | # - (bar) `.o` deleted | |
163 | # - (bar) `.dwo` never created | |
164 | # - (bar) `.dwp` never created | |
165 | # - (main) `.o` deleted | |
166 | # - (main) `.dwo` never created | |
167 | # - (main) `.dwp` present | |
a2a8927a | 168 | packed-crosscrate-single: |
f2b60f7d | 169 | $(RUSTC) --crate-type lib $(UNSTABLEOPTS) -C split-debuginfo=packed \ |
a2a8927a XL |
170 | -Zsplit-dwarf-kind=single -C debuginfo=2 -g bar.rs |
171 | ls $(TMPDIR)/*.rlib | |
487cf647 | 172 | ls $(TMPDIR)/*.o && exit 1 || exit 0 |
a2a8927a XL |
173 | ls $(TMPDIR)/*.dwo && exit 1 || exit 0 |
174 | ls $(TMPDIR)/*.dwp && exit 1 || exit 0 | |
487cf647 | 175 | $(RUSTC) --extern bar=$(TMPDIR)/libbar.rlib $(UNSTABLEOPTS) \ |
f2b60f7d | 176 | -C split-debuginfo=packed -Zsplit-dwarf-kind=single -C debuginfo=2 -g main.rs |
487cf647 | 177 | ls $(TMPDIR)/*.o && exit 1 || exit 0 |
a2a8927a XL |
178 | ls $(TMPDIR)/*.dwo && exit 1 || exit 0 |
179 | rm $(TMPDIR)/main.dwp | |
180 | rm $(TMPDIR)/$(call BIN,main) | |
181 | ||
487cf647 | 182 | unpacked: unpacked-split unpacked-single unpacked-lto unpacked-remapped unpacked-crosscrate |
a2a8927a | 183 | |
487cf647 FG |
184 | # - Debuginfo in `.dwo` files |
185 | # - `.o` deleted | |
186 | # - `.dwo` present | |
187 | # - `.dwp` never created | |
a2a8927a | 188 | unpacked-split: |
f2b60f7d | 189 | $(RUSTC) foo.rs -g $(UNSTABLEOPTS) -C split-debuginfo=unpacked -Zsplit-dwarf-kind=split |
487cf647 FG |
190 | ls $(TMPDIR)/*.o && exit 1 || exit 0 |
191 | rm $(TMPDIR)/*.dwo | |
5869c6ff | 192 | ls $(TMPDIR)/*.dwp && exit 1 || exit 0 |
487cf647 | 193 | rm $(TMPDIR)/$(call BIN,foo) |
a2a8927a | 194 | |
487cf647 FG |
195 | # - Debuginfo in `.o` files |
196 | # - `.o` present | |
197 | # - `.dwo` never created | |
198 | # - `.dwp` never created | |
a2a8927a | 199 | unpacked-single: |
f2b60f7d | 200 | $(RUSTC) foo.rs -g $(UNSTABLEOPTS) -C split-debuginfo=unpacked -Zsplit-dwarf-kind=single |
487cf647 FG |
201 | ls $(TMPDIR)/*.o |
202 | ls $(TMPDIR)/*.dwo && exit 1 || exit 0 | |
203 | ls $(TMPDIR)/*.dwp && exit 1 || exit 0 | |
204 | rm $(TMPDIR)/$(call BIN,foo) | |
205 | ||
206 | unpacked-lto: packed-lto-split packed-lto-single | |
207 | ||
208 | # - rmeta file added to rlib, no object files are generated and thus no debuginfo is generated | |
209 | # - `.o` never created | |
210 | # - `.dwo` never created | |
211 | # - `.dwp` never created | |
212 | unpacked-lto-split: | |
213 | $(RUSTC) baz.rs -g $(UNSTABLEOPTS) -Csplit-debuginfo=unpacked -Zsplit-dwarf-kind=split \ | |
214 | --crate-type=rlib -Clinker-plugin-lto | |
215 | ls $(TMPDIR)/*.o && exit 1 || exit 0 | |
216 | ls $(TMPDIR)/*.dwo && exit 1 || exit 0 | |
a2a8927a | 217 | ls $(TMPDIR)/*.dwp && exit 1 || exit 0 |
487cf647 FG |
218 | rm $(TMPDIR)/libbaz.rlib |
219 | ||
220 | # - rmeta file added to rlib, no object files are generated and thus no debuginfo is generated | |
221 | # - `.o` never created | |
222 | # - `.dwo` never created | |
223 | # - `.dwp` never created | |
224 | unpacked-lto-single: | |
225 | $(RUSTC) baz.rs -g $(UNSTABLEOPTS) -Csplit-debuginfo=unpacked -Zsplit-dwarf-kind=single \ | |
226 | --crate-type=rlib -Clinker-plugin-lto | |
227 | ls $(TMPDIR)/*.o && exit 1 || exit 0 | |
a2a8927a | 228 | ls $(TMPDIR)/*.dwo && exit 1 || exit 0 |
487cf647 FG |
229 | ls $(TMPDIR)/*.dwp && exit 1 || exit 0 |
230 | rm $(TMPDIR)/libbaz.rlib | |
231 | ||
232 | unpacked-remapped: unpacked-remapped-split unpacked-remapped-single | |
a2a8927a | 233 | |
487cf647 FG |
234 | # - Debuginfo in `.dwo` files |
235 | # - `.o` and binary refer to remapped `.dwo` paths which do not exist | |
236 | # - `.o` deleted | |
237 | # - `.dwo` present | |
238 | # - `.dwp` never created | |
a2a8927a | 239 | unpacked-remapped-split: |
f2b60f7d | 240 | $(RUSTC) $(UNSTABLEOPTS) -C split-debuginfo=unpacked -C debuginfo=2 \ |
a2a8927a XL |
241 | -Z split-dwarf-kind=split --remap-path-prefix $(TMPDIR)=/a foo.rs -g |
242 | objdump -Wi $(TMPDIR)/foo | grep DW_AT_GNU_dwo_name | (! grep $(TMPDIR)) || exit 1 | |
487cf647 FG |
243 | ls $(TMPDIR)/*.o && exit 1 || exit 0 |
244 | rm $(TMPDIR)/*.dwo | |
245 | ls $(TMPDIR)/*.dwp && exit 1 || exit 0 | |
246 | rm $(TMPDIR)/$(call BIN,foo) | |
a2a8927a | 247 | |
487cf647 FG |
248 | # - Debuginfo in `.o` files |
249 | # - `.o` and binary refer to remapped `.o` paths which do not exist | |
250 | # - `.o` present | |
251 | # - `.dwo` never created | |
252 | # - `.dwp` never created | |
a2a8927a | 253 | unpacked-remapped-single: |
f2b60f7d | 254 | $(RUSTC) $(UNSTABLEOPTS) -C split-debuginfo=unpacked -C debuginfo=2 \ |
a2a8927a XL |
255 | -Z split-dwarf-kind=single --remap-path-prefix $(TMPDIR)=/a foo.rs -g |
256 | objdump -Wi $(TMPDIR)/foo | grep DW_AT_GNU_dwo_name | (! grep $(TMPDIR)) || exit 1 | |
487cf647 FG |
257 | ls $(TMPDIR)/*.o |
258 | ls $(TMPDIR)/*.dwo && exit 1 || exit 0 | |
259 | ls $(TMPDIR)/*.dwp && exit 1 || exit 0 | |
260 | rm $(TMPDIR)/$(call BIN,foo) | |
261 | ||
262 | unpacked-crosscrate: packed-crosscrate-split packed-crosscrate-single | |
263 | ||
264 | # - Debuginfo in `.dwo` files | |
265 | # - (bar) `.rlib` file created, contains `.dwo` | |
266 | # - (bar) `.o` deleted | |
267 | # - (bar) `.dwo` present | |
268 | # - (bar) `.dwp` never created | |
269 | # - (main) `.o` deleted | |
270 | # - (main) `.dwo` present | |
271 | # - (main) `.dwp` never created | |
272 | unpacked-crosscrate-split: | |
273 | $(RUSTC) --crate-type lib $(UNSTABLEOPTS) -C split-debuginfo=unpacked \ | |
274 | -Zsplit-dwarf-kind=split -C debuginfo=2 -g bar.rs | |
275 | ls $(TMPDIR)/*.rlib | |
276 | ls $(TMPDIR)/*.o && exit 1 || exit 0 | |
277 | ls $(TMPDIR)/*.dwo | |
278 | ls $(TMPDIR)/*.dwp && exit 1 || exit 0 | |
279 | $(RUSTC) --extern bar=$(TMPDIR)/libbar.rlib $(UNSTABLEOPTS) \ | |
280 | -C split-debuginfo=unpacked -Zsplit-dwarf-kind=split -C debuginfo=2 -g main.rs | |
281 | ls $(TMPDIR)/*.o && exit 1 || exit 0 | |
282 | rm $(TMPDIR)/*.dwo | |
283 | ls $(TMPDIR)/*.dwp && exit 1 || exit 0 | |
284 | rm $(TMPDIR)/$(call BIN,main) | |
285 | ||
286 | # - Debuginfo in `.o` files | |
287 | # - (bar) `.rlib` file created, contains `.o` | |
288 | # - (bar) `.o` present | |
289 | # - (bar) `.dwo` never created | |
290 | # - (bar) `.dwp` never created | |
291 | # - (main) `.o` present | |
292 | # - (main) `.dwo` never created | |
293 | # - (main) `.dwp` never created | |
294 | unpacked-crosscrate-single: | |
295 | $(RUSTC) --crate-type lib $(UNSTABLEOPTS) -C split-debuginfo=unpacked \ | |
296 | -Zsplit-dwarf-kind=single -C debuginfo=2 -g bar.rs | |
297 | ls $(TMPDIR)/*.rlib | |
298 | ls $(TMPDIR)/*.o | |
299 | ls $(TMPDIR)/*.dwo && exit 1 || exit 0 | |
300 | ls $(TMPDIR)/*.dwp && exit 1 || exit 0 | |
301 | $(RUSTC) --extern bar=$(TMPDIR)/libbar.rlib $(UNSTABLEOPTS) \ | |
302 | -C split-debuginfo=unpacked -Zsplit-dwarf-kind=single -C debuginfo=2 -g main.rs | |
303 | ls $(TMPDIR)/*.o | |
304 | ls $(TMPDIR)/*.dwo && exit 1 || exit 0 | |
305 | ls $(TMPDIR)/*.dwp && exit 1 || exit 0 | |
306 | rm $(TMPDIR)/$(call BIN,main) | |
5869c6ff XL |
307 | endif |
308 | endif |