@@ -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,228 @@ 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-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
62
76
ls $(TMPDIR ) /* .dwo && exit 1 || exit 0
63
- rm -rf $(TMPDIR ) /* .dwp
77
+ rm $(TMPDIR ) /foo.dwp
78
+ rm $(TMPDIR ) /$(call BIN,foo)
64
79
65
80
packed-remapped : packed-remapped-split packed-remapped-single
66
81
82
+ # - Debuginfo in `.dwo` files
83
+ # - `.o` and binary refer to remapped `.dwo` paths which do not exist
84
+ # - `.o` deleted
85
+ # - `.dwo` deleted
86
+ # - `.dwp` present
67
87
packed-remapped-split :
68
88
$(RUSTC ) $(UNSTABLEOPTS ) -C split-debuginfo=packed -C debuginfo=2 \
69
89
-Z split-dwarf-kind=split --remap-path-prefix $(TMPDIR ) =/a foo.rs -g
70
90
objdump -Wi $(TMPDIR ) /foo | grep DW_AT_GNU_dwo_name | (! grep $( TMPDIR) ) || exit 1
91
+ ls $(TMPDIR ) /* .o && exit 1 || exit 0
92
+ ls $(TMPDIR ) /* .dwo && exit 1 || exit 0
93
+ rm $(TMPDIR ) /foo.dwp
94
+ rm $(TMPDIR ) /$(call BIN,foo)
71
95
96
+ # - Debuginfo in `.o` files
97
+ # - `.o` and binary refer to remapped `.o` paths which do not exist
98
+ # - `.o` deleted
99
+ # - `.dwo` never created
100
+ # - `.dwp` present
72
101
packed-remapped-single :
73
102
$(RUSTC ) $(UNSTABLEOPTS ) -C split-debuginfo=packed -C debuginfo=2 \
74
103
-Z split-dwarf-kind=single --remap-path-prefix $(TMPDIR ) =/a foo.rs -g
75
104
objdump -Wi $(TMPDIR ) /foo | grep DW_AT_GNU_dwo_name | (! grep $( TMPDIR) ) || exit 1
105
+ ls $(TMPDIR ) /* .o && exit 1 || exit 0
106
+ ls $(TMPDIR ) /* .dwo && exit 1 || exit 0
107
+ rm $(TMPDIR ) /foo.dwp
108
+ rm $(TMPDIR ) /$(call BIN,foo)
76
109
77
110
packed-crosscrate : packed-crosscrate-split packed-crosscrate-single
78
111
112
+ # - Debuginfo in `.dwo` files
113
+ # - (bar) `.rlib` file created, contains `.dwo`
114
+ # - (bar) `.o` deleted
115
+ # - (bar) `.dwo` deleted
116
+ # - (bar) `.dwp` never created
117
+ # - (main) `.o` deleted
118
+ # - (main) `.dwo` deleted
119
+ # - (main) `.dwp` present
79
120
packed-crosscrate-split :
80
121
$(RUSTC ) --crate-type lib $(UNSTABLEOPTS ) -C split-debuginfo=packed \
81
122
-Zsplit-dwarf-kind=split -C debuginfo=2 -g bar.rs
82
123
ls $(TMPDIR ) /* .rlib
124
+ ls $(TMPDIR ) /* .o && exit 1 || exit 0
83
125
ls $(TMPDIR ) /* .dwo && exit 1 || exit 0
84
126
ls $(TMPDIR ) /* .dwp && exit 1 || exit 0
85
- $(RUSTC ) --extern bar=$(TMPDIR ) /libbar.rlib -Z unstable-options $(UNSTABLEOPTS ) \
127
+ $(RUSTC ) --extern bar=$(TMPDIR ) /libbar.rlib $(UNSTABLEOPTS ) \
86
128
-C split-debuginfo=packed -Zsplit-dwarf-kind=split -C debuginfo=2 -g main.rs
87
- rm $(TMPDIR ) /* .dwo
129
+ ls $(TMPDIR ) /* .o && exit 1 || exit 0
130
+ ls $(TMPDIR ) /* .dwo && exit 1 || exit 0
88
131
rm $(TMPDIR ) /main.dwp
89
132
rm $(TMPDIR ) /$(call BIN,main)
90
133
134
+ # - Debuginfo in `.o` files
135
+ # - (bar) `.rlib` file created, contains `.o`
136
+ # - (bar) `.o` deleted
137
+ # - (bar) `.dwo` never created
138
+ # - (bar) `.dwp` never created
139
+ # - (main) `.o` deleted
140
+ # - (main) `.dwo` never created
141
+ # - (main) `.dwp` present
91
142
packed-crosscrate-single :
92
143
$(RUSTC ) --crate-type lib $(UNSTABLEOPTS ) -C split-debuginfo=packed \
93
144
-Zsplit-dwarf-kind=single -C debuginfo=2 -g bar.rs
94
145
ls $(TMPDIR ) /* .rlib
146
+ ls $(TMPDIR ) /* .o && exit 1 || exit 0
95
147
ls $(TMPDIR ) /* .dwo && exit 1 || exit 0
96
148
ls $(TMPDIR ) /* .dwp && exit 1 || exit 0
97
- $(RUSTC ) --extern bar=$(TMPDIR ) /libbar.rlib -Z unstable-options $(UNSTABLEOPTS ) \
149
+ $(RUSTC ) --extern bar=$(TMPDIR ) /libbar.rlib $(UNSTABLEOPTS ) \
98
150
-C split-debuginfo=packed -Zsplit-dwarf-kind=single -C debuginfo=2 -g main.rs
151
+ ls $(TMPDIR ) /* .o && exit 1 || exit 0
99
152
ls $(TMPDIR ) /* .dwo && exit 1 || exit 0
100
153
rm $(TMPDIR ) /main.dwp
101
154
rm $(TMPDIR ) /$(call BIN,main)
102
155
103
- unpacked : unpacked-split unpacked-single unpacked-remapped-split unpacked-remapped-single
156
+ unpacked : unpacked-split unpacked-single unpacked-remapped unpacked-crosscrate
104
157
158
+ # - Debuginfo in `.dwo` files
159
+ # - `.o` deleted
160
+ # - `.dwo` present
161
+ # - `.dwp` never created
105
162
unpacked-split :
106
163
$(RUSTC ) foo.rs -g $(UNSTABLEOPTS ) -C split-debuginfo=unpacked -Zsplit-dwarf-kind=split
164
+ ls $(TMPDIR ) /* .o && exit 1 || exit 0
165
+ rm $(TMPDIR ) /* .dwo
107
166
ls $(TMPDIR ) /* .dwp && exit 1 || exit 0
108
- ls $(TMPDIR ) /* .dwo
109
- rm -rf $(TMPDIR ) /* .dwp $(TMPDIR ) /* .dwo
167
+ rm $(TMPDIR ) /$(call BIN,foo)
110
168
169
+ # - Debuginfo in `.o` files
170
+ # - `.o` present
171
+ # - `.dwo` never created
172
+ # - `.dwp` never created
111
173
unpacked-single :
112
174
$(RUSTC ) foo.rs -g $(UNSTABLEOPTS ) -C split-debuginfo=unpacked -Zsplit-dwarf-kind=single
113
- ls $(TMPDIR ) /* .dwp && exit 1 || exit 0
175
+ ls $(TMPDIR ) /* .o
114
176
ls $(TMPDIR ) /* .dwo && exit 1 || exit 0
177
+ ls $(TMPDIR ) /* .dwp && exit 1 || exit 0
178
+ rm $(TMPDIR ) /$(call BIN,foo)
179
+
180
+ unpacked-remapped : unpacked-remapped-split unpacked-remapped-single
115
181
182
+ # - Debuginfo in `.dwo` files
183
+ # - `.o` and binary refer to remapped `.dwo` paths which do not exist
184
+ # - `.o` deleted
185
+ # - `.dwo` present
186
+ # - `.dwp` never created
116
187
unpacked-remapped-split :
117
188
$(RUSTC ) $(UNSTABLEOPTS ) -C split-debuginfo=unpacked -C debuginfo=2 \
118
189
-Z split-dwarf-kind=split --remap-path-prefix $(TMPDIR ) =/a foo.rs -g
119
190
objdump -Wi $(TMPDIR ) /foo | grep DW_AT_GNU_dwo_name | (! grep $( TMPDIR) ) || exit 1
191
+ ls $(TMPDIR ) /* .o && exit 1 || exit 0
192
+ rm $(TMPDIR ) /* .dwo
193
+ ls $(TMPDIR ) /* .dwp && exit 1 || exit 0
194
+ rm $(TMPDIR ) /$(call BIN,foo)
120
195
196
+ # - Debuginfo in `.o` files
197
+ # - `.o` and binary refer to remapped `.o` paths which do not exist
198
+ # - `.o` present
199
+ # - `.dwo` never created
200
+ # - `.dwp` never created
121
201
unpacked-remapped-single :
122
202
$(RUSTC ) $(UNSTABLEOPTS ) -C split-debuginfo=unpacked -C debuginfo=2 \
123
203
-Z split-dwarf-kind=single --remap-path-prefix $(TMPDIR ) =/a foo.rs -g
124
204
objdump -Wi $(TMPDIR ) /foo | grep DW_AT_GNU_dwo_name | (! grep $( TMPDIR) ) || exit 1
205
+ ls $(TMPDIR ) /* .o
206
+ ls $(TMPDIR ) /* .dwo && exit 1 || exit 0
207
+ ls $(TMPDIR ) /* .dwp && exit 1 || exit 0
208
+ rm $(TMPDIR ) /$(call BIN,foo)
209
+
210
+ unpacked-crosscrate : packed-crosscrate-split packed-crosscrate-single
211
+
212
+ # - Debuginfo in `.dwo` files
213
+ # - (bar) `.rlib` file created, contains `.dwo`
214
+ # - (bar) `.o` deleted
215
+ # - (bar) `.dwo` present
216
+ # - (bar) `.dwp` never created
217
+ # - (main) `.o` deleted
218
+ # - (main) `.dwo` present
219
+ # - (main) `.dwp` never created
220
+ unpacked-crosscrate-split :
221
+ $(RUSTC ) --crate-type lib $(UNSTABLEOPTS ) -C split-debuginfo=unpacked \
222
+ -Zsplit-dwarf-kind=split -C debuginfo=2 -g bar.rs
223
+ ls $(TMPDIR ) /* .rlib
224
+ ls $(TMPDIR ) /* .o && exit 1 || exit 0
225
+ ls $(TMPDIR ) /* .dwo
226
+ ls $(TMPDIR ) /* .dwp && exit 1 || exit 0
227
+ $(RUSTC ) --extern bar=$(TMPDIR ) /libbar.rlib $(UNSTABLEOPTS ) \
228
+ -C split-debuginfo=unpacked -Zsplit-dwarf-kind=split -C debuginfo=2 -g main.rs
229
+ ls $(TMPDIR ) /* .o && exit 1 || exit 0
230
+ rm $(TMPDIR ) /* .dwo
231
+ ls $(TMPDIR ) /* .dwp && exit 1 || exit 0
232
+ rm $(TMPDIR ) /$(call BIN,main)
233
+
234
+ # - Debuginfo in `.o` files
235
+ # - (bar) `.rlib` file created, contains `.o`
236
+ # - (bar) `.o` present
237
+ # - (bar) `.dwo` never created
238
+ # - (bar) `.dwp` never created
239
+ # - (main) `.o` present
240
+ # - (main) `.dwo` never created
241
+ # - (main) `.dwp` never created
242
+ unpacked-crosscrate-single :
243
+ $(RUSTC ) --crate-type lib $(UNSTABLEOPTS ) -C split-debuginfo=unpacked \
244
+ -Zsplit-dwarf-kind=single -C debuginfo=2 -g bar.rs
245
+ ls $(TMPDIR ) /* .rlib
246
+ ls $(TMPDIR ) /* .o
247
+ ls $(TMPDIR ) /* .dwo && exit 1 || exit 0
248
+ ls $(TMPDIR ) /* .dwp && exit 1 || exit 0
249
+ $(RUSTC ) --extern bar=$(TMPDIR ) /libbar.rlib $(UNSTABLEOPTS ) \
250
+ -C split-debuginfo=unpacked -Zsplit-dwarf-kind=single -C debuginfo=2 -g main.rs
251
+ ls $(TMPDIR ) /* .o
252
+ ls $(TMPDIR ) /* .dwo && exit 1 || exit 0
253
+ ls $(TMPDIR ) /* .dwp && exit 1 || exit 0
254
+ rm $(TMPDIR ) /$(call BIN,main)
125
255
endif
126
256
endif
0 commit comments