]> git.proxmox.com Git - rustc.git/blob - tests/run-make-fulldeps/split-debuginfo/Makefile
New upstream version 1.68.2+dfsg1
[rustc.git] / tests / run-make-fulldeps / split-debuginfo / Makefile
1 include ../tools.mk
2
3 all: off packed unpacked
4
5 ifeq ($(UNAME),Darwin)
6 # If disabled, don't run `dsymutil`.
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
32 # Windows only supports packed debuginfo - nothing to test.
33 off:
34 packed:
35 unpacked:
36 else
37 # Some non-Windows, non-Darwin platforms are not stable, and some are.
38 ifeq ($(UNAME),Linux)
39 UNSTABLEOPTS :=
40 else
41 UNSTABLEOPTS := -Zunstable-options
42 endif
43
44 # - Debuginfo in `.o` files
45 # - `.o` deleted
46 # - `.dwo` never created
47 # - `.dwp` never created
48 off:
49 $(RUSTC) foo.rs -g -C $(UNSTABLEOPTS) split-debuginfo=off
50 [ ! -f $(TMPDIR)/*.dwp ]
51 [ ! -f $(TMPDIR)/*.dwo ]
52 $(RUSTC) foo.rs -g
53 [ ! -f $(TMPDIR)/*.dwp ]
54 [ ! -f $(TMPDIR)/*.dwo ]
55
56 packed: packed-split packed-single packed-lto packed-remapped packed-crosscrate
57
58 # - Debuginfo in `.dwo` files
59 # - `.o` deleted
60 # - `.dwo` deleted
61 # - `.dwp` present
62 packed-split:
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
66 rm $(TMPDIR)/foo.dwp
67 rm $(TMPDIR)/$(call BIN,foo)
68
69 # - Debuginfo in `.o` files
70 # - `.o` deleted
71 # - `.dwo` never created
72 # - `.dwp` present
73 packed-single:
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
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
102 ls $(TMPDIR)/*.dwo && exit 1 || exit 0
103 ls $(TMPDIR)/*.dwp && exit 1 || exit 0
104 rm $(TMPDIR)/libbaz.rlib
105
106 packed-remapped: packed-remapped-split packed-remapped-single
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
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
119 rm $(TMPDIR)/foo.dwp
120 rm $(TMPDIR)/$(call BIN,foo)
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
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
133 rm $(TMPDIR)/foo.dwp
134 rm $(TMPDIR)/$(call BIN,foo)
135
136 packed-crosscrate: packed-crosscrate-split packed-crosscrate-single
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
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
149 ls $(TMPDIR)/*.rlib
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)
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
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
171 ls $(TMPDIR)/*.rlib
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)
181
182 unpacked: unpacked-split unpacked-single unpacked-lto unpacked-remapped unpacked-crosscrate
183
184 # - Debuginfo in `.dwo` files
185 # - `.o` deleted
186 # - `.dwo` present
187 # - `.dwp` never created
188 unpacked-split:
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
192 ls $(TMPDIR)/*.dwp && exit 1 || exit 0
193 rm $(TMPDIR)/$(call BIN,foo)
194
195 # - Debuginfo in `.o` files
196 # - `.o` present
197 # - `.dwo` never created
198 # - `.dwp` never created
199 unpacked-single:
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
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
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
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
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
244 rm $(TMPDIR)/*.dwo
245 ls $(TMPDIR)/*.dwp && exit 1 || exit 0
246 rm $(TMPDIR)/$(call BIN,foo)
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
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
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)
307 endif
308 endif