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 debuginfo - nothing to test.
37 # Some non-Windows, non-Darwin platforms are not stable, and some are.
41 UNSTABLEOPTS
:= -Zunstable-options
44 # - Debuginfo in `.o` files
46 # - `.dwo` never created
47 # - `.dwp` never created
49 $(RUSTC
) foo.rs
-g
-C
$(UNSTABLEOPTS
) split-debuginfo
=off
50 [ ! -f
$(TMPDIR
)/*.dwp
]
51 [ ! -f
$(TMPDIR
)/*.dwo
]
53 [ ! -f
$(TMPDIR
)/*.dwp
]
54 [ ! -f
$(TMPDIR
)/*.dwo
]
56 packed
: packed-split packed-single packed-lto packed-remapped packed-crosscrate
58 # - Debuginfo in `.dwo` files
63 $(RUSTC
) foo.rs
-g
$(UNSTABLEOPTS
) -C split-debuginfo
=packed
-Zsplit-dwarf-kind
=split
64 ls
$(TMPDIR
)/*.o
&& exit
1 || exit
0
65 ls
$(TMPDIR
)/*.dwo
&& exit
1 || exit
0
67 rm $(TMPDIR
)/$(call BIN
,foo
)
69 # - Debuginfo in `.o` files
71 # - `.dwo` never created
74 $(RUSTC
) foo.rs
-g
$(UNSTABLEOPTS
) -C split-debuginfo
=packed
-Zsplit-dwarf-kind
=single
75 ls
$(TMPDIR
)/*.o
&& exit
1 || exit
0
76 ls
$(TMPDIR
)/*.dwo
&& exit
1 || exit
0
78 rm $(TMPDIR
)/$(call BIN
,foo
)
80 packed-lto
: packed-lto-split packed-lto-single
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
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
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
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
102 ls
$(TMPDIR
)/*.dwo
&& exit
1 || exit
0
103 ls
$(TMPDIR
)/*.dwp
&& exit
1 || exit
0
104 rm $(TMPDIR
)/libbaz.rlib
106 packed-remapped
: packed-remapped-split packed-remapped-single
108 # - Debuginfo in `.dwo` files
109 # - `.o` and binary refer to remapped `.dwo` paths which do not exist
113 packed-remapped-split
:
114 $(RUSTC
) $(UNSTABLEOPTS
) -C split-debuginfo
=packed
-C debuginfo
=2 \
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
117 ls
$(TMPDIR
)/*.o
&& exit
1 || exit
0
118 ls
$(TMPDIR
)/*.dwo
&& exit
1 || exit
0
120 rm $(TMPDIR
)/$(call BIN
,foo
)
122 # - Debuginfo in `.o` files
123 # - `.o` and binary refer to remapped `.o` paths which do not exist
125 # - `.dwo` never created
127 packed-remapped-single
:
128 $(RUSTC
) $(UNSTABLEOPTS
) -C split-debuginfo
=packed
-C debuginfo
=2 \
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
131 ls
$(TMPDIR
)/*.o
&& exit
1 || exit
0
132 ls
$(TMPDIR
)/*.dwo
&& exit
1 || exit
0
134 rm $(TMPDIR
)/$(call BIN
,foo
)
136 packed-crosscrate
: packed-crosscrate-split packed-crosscrate-single
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
146 packed-crosscrate-split
:
147 $(RUSTC
) --crate-type lib
$(UNSTABLEOPTS
) -C split-debuginfo
=packed \
148 -Zsplit-dwarf-kind
=split
-C debuginfo
=2 -g bar.rs
150 ls
$(TMPDIR
)/*.o
&& exit
1 || exit
0
151 ls
$(TMPDIR
)/*.dwo
&& exit
1 || exit
0
152 ls
$(TMPDIR
)/*.dwp
&& exit
1 || exit
0
153 $(RUSTC
) --extern bar
=$(TMPDIR
)/libbar.rlib
$(UNSTABLEOPTS
) \
154 -C split-debuginfo
=packed
-Zsplit-dwarf-kind
=split
-C debuginfo
=2 -g main.rs
155 ls
$(TMPDIR
)/*.o
&& exit
1 || exit
0
156 ls
$(TMPDIR
)/*.dwo
&& exit
1 || exit
0
157 rm $(TMPDIR
)/main.dwp
158 rm $(TMPDIR
)/$(call BIN
,main
)
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
168 packed-crosscrate-single
:
169 $(RUSTC
) --crate-type lib
$(UNSTABLEOPTS
) -C split-debuginfo
=packed \
170 -Zsplit-dwarf-kind
=single
-C debuginfo
=2 -g bar.rs
172 ls
$(TMPDIR
)/*.o
&& exit
1 || exit
0
173 ls
$(TMPDIR
)/*.dwo
&& exit
1 || exit
0
174 ls
$(TMPDIR
)/*.dwp
&& exit
1 || exit
0
175 $(RUSTC
) --extern bar
=$(TMPDIR
)/libbar.rlib
$(UNSTABLEOPTS
) \
176 -C split-debuginfo
=packed
-Zsplit-dwarf-kind
=single
-C debuginfo
=2 -g main.rs
177 ls
$(TMPDIR
)/*.o
&& exit
1 || exit
0
178 ls
$(TMPDIR
)/*.dwo
&& exit
1 || exit
0
179 rm $(TMPDIR
)/main.dwp
180 rm $(TMPDIR
)/$(call BIN
,main
)
182 unpacked
: unpacked-split unpacked-single unpacked-lto unpacked-remapped unpacked-crosscrate
184 # - Debuginfo in `.dwo` files
187 # - `.dwp` never created
189 $(RUSTC
) foo.rs
-g
$(UNSTABLEOPTS
) -C split-debuginfo
=unpacked
-Zsplit-dwarf-kind
=split
190 ls
$(TMPDIR
)/*.o
&& exit
1 || exit
0
192 ls
$(TMPDIR
)/*.dwp
&& exit
1 || exit
0
193 rm $(TMPDIR
)/$(call BIN
,foo
)
195 # - Debuginfo in `.o` files
197 # - `.dwo` never created
198 # - `.dwp` never created
200 $(RUSTC
) foo.rs
-g
$(UNSTABLEOPTS
) -C split-debuginfo
=unpacked
-Zsplit-dwarf-kind
=single
202 ls
$(TMPDIR
)/*.dwo
&& exit
1 || exit
0
203 ls
$(TMPDIR
)/*.dwp
&& exit
1 || exit
0
204 rm $(TMPDIR
)/$(call BIN
,foo
)
206 unpacked-lto
: packed-lto-split packed-lto-single
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
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
217 ls
$(TMPDIR
)/*.dwp
&& exit
1 || exit
0
218 rm $(TMPDIR
)/libbaz.rlib
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
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
228 ls
$(TMPDIR
)/*.dwo
&& exit
1 || exit
0
229 ls
$(TMPDIR
)/*.dwp
&& exit
1 || exit
0
230 rm $(TMPDIR
)/libbaz.rlib
232 unpacked-remapped
: unpacked-remapped-split unpacked-remapped-single
234 # - Debuginfo in `.dwo` files
235 # - `.o` and binary refer to remapped `.dwo` paths which do not exist
238 # - `.dwp` never created
239 unpacked-remapped-split
:
240 $(RUSTC
) $(UNSTABLEOPTS
) -C split-debuginfo
=unpacked
-C debuginfo
=2 \
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
243 ls
$(TMPDIR
)/*.o
&& exit
1 || exit
0
245 ls
$(TMPDIR
)/*.dwp
&& exit
1 || exit
0
246 rm $(TMPDIR
)/$(call BIN
,foo
)
248 # - Debuginfo in `.o` files
249 # - `.o` and binary refer to remapped `.o` paths which do not exist
251 # - `.dwo` never created
252 # - `.dwp` never created
253 unpacked-remapped-single
:
254 $(RUSTC
) $(UNSTABLEOPTS
) -C split-debuginfo
=unpacked
-C debuginfo
=2 \
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
258 ls
$(TMPDIR
)/*.dwo
&& exit
1 || exit
0
259 ls
$(TMPDIR
)/*.dwp
&& exit
1 || exit
0
260 rm $(TMPDIR
)/$(call BIN
,foo
)
262 unpacked-crosscrate
: packed-crosscrate-split packed-crosscrate-single
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
276 ls
$(TMPDIR
)/*.o
&& exit
1 || exit
0
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
283 ls
$(TMPDIR
)/*.dwp
&& exit
1 || exit
0
284 rm $(TMPDIR
)/$(call BIN
,main
)
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
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
304 ls
$(TMPDIR
)/*.dwo
&& exit
1 || exit
0
305 ls
$(TMPDIR
)/*.dwp
&& exit
1 || exit
0
306 rm $(TMPDIR
)/$(call BIN
,main
)