@@ -3,7 +3,7 @@ include ../tools.mk
3
3
all : off packed unpacked
4
4
5
5
ifeq ($(UNAME ) ,Darwin)
6
- # If disabled, don't run dsymutil
6
+ # If disabled, don't run ` dsymutil`.
7
7
off :
8
8
rm -rf $(TMPDIR ) /* .dSYM
9
9
$(RUSTC ) foo.rs -g -C split-debuginfo=off
@@ -29,98 +29,280 @@ unpacked:
29
29
[ ! -d $( TMPDIR) /foo.dSYM ]
30
30
else
31
31
ifdef IS_WINDOWS
32
- # Windows only supports = packed
32
+ # Windows only supports packed debuginfo - nothing to test.
33
33
off :
34
34
packed :
35
35
unpacked :
36
36
else
37
+ # Some non-Windows, non-Darwin platforms are not stable, and some are.
37
38
ifeq ($(UNAME ) ,Linux)
38
39
UNSTABLEOPTS :=
39
40
else
40
41
UNSTABLEOPTS := -Zunstable-options
41
42
endif
42
43
44
+ # - Debuginfo in `.o` files
45
+ # - `.o` deleted
46
+ # - `.dwo` never created
47
+ # - `.dwp` never created
43
48
off :
44
49
$(RUSTC ) foo.rs -g -C $(UNSTABLEOPTS ) split-debuginfo=off
45
50
[ ! -f $( TMPDIR) /* .dwp ]
46
51
[ ! -f $( TMPDIR) /* .dwo ]
47
-
48
52
$(RUSTC ) foo.rs -g
49
53
[ ! -f $( TMPDIR) /* .dwp ]
50
54
[ ! -f $( TMPDIR) /* .dwo ]
51
55
52
- packed : packed-split packed-single
56
+ packed : packed-split packed-single packed-lto packed-remapped packed-crosscrate
53
57
58
+ # - Debuginfo in `.dwo` files
59
+ # - `.o` deleted
60
+ # - `.dwo` deleted
61
+ # - `.dwp` present
54
62
packed-split :
55
63
$(RUSTC ) foo.rs -g $(UNSTABLEOPTS ) -C split-debuginfo=packed -Zsplit-dwarf-kind=split
56
- ls $(TMPDIR ) /* .dwp
57
- rm -rf $(TMPDIR ) /* .dwp $(TMPDIR ) /* .dwo
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)
58
68
69
+ # - Debuginfo in `.o` files
70
+ # - `.o` deleted
71
+ # - `.dwo` never created
72
+ # - `.dwp` present
59
73
packed-single :
60
74
$(RUSTC ) foo.rs -g $(UNSTABLEOPTS ) -C split-debuginfo=packed -Zsplit-dwarf-kind=single
61
- ls $(TMPDIR ) /* .dwp
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
62
102
ls $(TMPDIR ) /* .dwo && exit 1 || exit 0
63
- rm -rf $(TMPDIR ) /* .dwp
103
+ ls $(TMPDIR ) /* .dwp && exit 1 || exit 0
104
+ rm $(TMPDIR ) /libbaz.rlib
64
105
65
106
packed-remapped : packed-remapped-split packed-remapped-single
66
107
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
67
113
packed-remapped-split :
68
114
$(RUSTC ) $(UNSTABLEOPTS ) -C split-debuginfo=packed -C debuginfo=2 \
69
115
-Z split-dwarf-kind=split --remap-path-prefix $(TMPDIR ) =/a foo.rs -g
70
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
119
+ rm $(TMPDIR ) /foo.dwp
120
+ rm $(TMPDIR ) /$(call BIN,foo)
71
121
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
72
127
packed-remapped-single :
73
128
$(RUSTC ) $(UNSTABLEOPTS ) -C split-debuginfo=packed -C debuginfo=2 \
74
129
-Z split-dwarf-kind=single --remap-path-prefix $(TMPDIR ) =/a foo.rs -g
75
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
133
+ rm $(TMPDIR ) /foo.dwp
134
+ rm $(TMPDIR ) /$(call BIN,foo)
76
135
77
136
packed-crosscrate : packed-crosscrate-split packed-crosscrate-single
78
137
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
79
146
packed-crosscrate-split :
80
147
$(RUSTC ) --crate-type lib $(UNSTABLEOPTS ) -C split-debuginfo=packed \
81
148
-Zsplit-dwarf-kind=split -C debuginfo=2 -g bar.rs
82
149
ls $(TMPDIR ) /* .rlib
150
+ ls $(TMPDIR ) /* .o && exit 1 || exit 0
83
151
ls $(TMPDIR ) /* .dwo && exit 1 || exit 0
84
152
ls $(TMPDIR ) /* .dwp && exit 1 || exit 0
85
- $(RUSTC ) --extern bar=$(TMPDIR ) /libbar.rlib -Z unstable-options $(UNSTABLEOPTS ) \
153
+ $(RUSTC ) --extern bar=$(TMPDIR ) /libbar.rlib $(UNSTABLEOPTS ) \
86
154
-C split-debuginfo=packed -Zsplit-dwarf-kind=split -C debuginfo=2 -g main.rs
87
- rm $(TMPDIR ) /* .dwo
155
+ ls $(TMPDIR ) /* .o && exit 1 || exit 0
156
+ ls $(TMPDIR ) /* .dwo && exit 1 || exit 0
88
157
rm $(TMPDIR ) /main.dwp
89
158
rm $(TMPDIR ) /$(call BIN,main)
90
159
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
91
168
packed-crosscrate-single :
92
169
$(RUSTC ) --crate-type lib $(UNSTABLEOPTS ) -C split-debuginfo=packed \
93
170
-Zsplit-dwarf-kind=single -C debuginfo=2 -g bar.rs
94
171
ls $(TMPDIR ) /* .rlib
172
+ ls $(TMPDIR ) /* .o && exit 1 || exit 0
95
173
ls $(TMPDIR ) /* .dwo && exit 1 || exit 0
96
174
ls $(TMPDIR ) /* .dwp && exit 1 || exit 0
97
- $(RUSTC ) --extern bar=$(TMPDIR ) /libbar.rlib -Z unstable-options $(UNSTABLEOPTS ) \
175
+ $(RUSTC ) --extern bar=$(TMPDIR ) /libbar.rlib $(UNSTABLEOPTS ) \
98
176
-C split-debuginfo=packed -Zsplit-dwarf-kind=single -C debuginfo=2 -g main.rs
177
+ ls $(TMPDIR ) /* .o && exit 1 || exit 0
99
178
ls $(TMPDIR ) /* .dwo && exit 1 || exit 0
100
179
rm $(TMPDIR ) /main.dwp
101
180
rm $(TMPDIR ) /$(call BIN,main)
102
181
103
- unpacked : unpacked-split unpacked-single unpacked-remapped-split unpacked-remapped-single
182
+ unpacked : unpacked-split unpacked-single unpacked-lto unpacked-remapped unpacked-crosscrate
104
183
184
+ # - Debuginfo in `.dwo` files
185
+ # - `.o` deleted
186
+ # - `.dwo` present
187
+ # - `.dwp` never created
105
188
unpacked-split :
106
189
$(RUSTC ) foo.rs -g $(UNSTABLEOPTS ) -C split-debuginfo=unpacked -Zsplit-dwarf-kind=split
190
+ ls $(TMPDIR ) /* .o && exit 1 || exit 0
191
+ rm $(TMPDIR ) /* .dwo
107
192
ls $(TMPDIR ) /* .dwp && exit 1 || exit 0
108
- ls $(TMPDIR ) /* .dwo
109
- rm -rf $(TMPDIR ) /* .dwp $(TMPDIR ) /* .dwo
193
+ rm $(TMPDIR ) /$(call BIN,foo)
110
194
195
+ # - Debuginfo in `.o` files
196
+ # - `.o` present
197
+ # - `.dwo` never created
198
+ # - `.dwp` never created
111
199
unpacked-single :
112
200
$(RUSTC ) foo.rs -g $(UNSTABLEOPTS ) -C split-debuginfo=unpacked -Zsplit-dwarf-kind=single
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
113
217
ls $(TMPDIR ) /* .dwp && exit 1 || exit 0
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
114
228
ls $(TMPDIR ) /* .dwo && exit 1 || exit 0
229
+ ls $(TMPDIR ) /* .dwp && exit 1 || exit 0
230
+ rm $(TMPDIR ) /libbaz.rlib
231
+
232
+ unpacked-remapped : unpacked-remapped-split unpacked-remapped-single
115
233
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
116
239
unpacked-remapped-split :
117
240
$(RUSTC ) $(UNSTABLEOPTS ) -C split-debuginfo=unpacked -C debuginfo=2 \
118
241
-Z split-dwarf-kind=split --remap-path-prefix $(TMPDIR ) =/a foo.rs -g
119
242
objdump -Wi $(TMPDIR ) /foo | grep DW_AT_GNU_dwo_name | (! grep $( TMPDIR) ) || exit 1
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)
120
247
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
121
253
unpacked-remapped-single :
122
254
$(RUSTC ) $(UNSTABLEOPTS ) -C split-debuginfo=unpacked -C debuginfo=2 \
123
255
-Z split-dwarf-kind=single --remap-path-prefix $(TMPDIR ) =/a foo.rs -g
124
256
objdump -Wi $(TMPDIR ) /foo | grep DW_AT_GNU_dwo_name | (! grep $( TMPDIR) ) || exit 1
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)
125
307
endif
126
308
endif
0 commit comments