]> git.proxmox.com Git - rustc.git/blame - src/test/run-make-fulldeps/split-debuginfo/Makefile
New upstream version 1.67.1+dfsg1
[rustc.git] / src / test / run-make-fulldeps / split-debuginfo / Makefile
CommitLineData
f2b60f7d 1include ../tools.mk
5869c6ff
XL
2
3all: off packed unpacked
4
5ifeq ($(UNAME),Darwin)
487cf647 6# If disabled, don't run `dsymutil`.
5869c6ff
XL
7off:
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
13packed:
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
26unpacked:
27 $(RUSTC) foo.rs -g -C split-debuginfo=unpacked
28 ls $(TMPDIR)/*.o
29 [ ! -d $(TMPDIR)/foo.dSYM ]
30else
31ifdef IS_WINDOWS
487cf647 32# Windows only supports packed debuginfo - nothing to test.
5869c6ff
XL
33off:
34packed:
35unpacked:
36else
487cf647 37# Some non-Windows, non-Darwin platforms are not stable, and some are.
f2b60f7d
FG
38ifeq ($(UNAME),Linux)
39 UNSTABLEOPTS :=
40else
41 UNSTABLEOPTS := -Zunstable-options
42endif
43
487cf647
FG
44# - Debuginfo in `.o` files
45# - `.o` deleted
46# - `.dwo` never created
47# - `.dwp` never created
5869c6ff 48off:
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 56packed: 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 62packed-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 73packed-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
80packed-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
86packed-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
98packed-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
106packed-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 113packed-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 127packed-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
136packed-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 146packed-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 168packed-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 182unpacked: 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 188unpacked-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 199unpacked-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
206unpacked-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
212unpacked-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
224unpacked-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
232unpacked-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 239unpacked-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 253unpacked-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
262unpacked-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
272unpacked-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
294unpacked-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
307endif
308endif