@@ -3,7 +3,7 @@ include ../tools.mk
33all : off packed unpacked
44
55ifeq ($(UNAME ) ,Darwin)
6- # If disabled, don't run dsymutil
6+ # If disabled, don't run ` dsymutil`.
77off :
88 rm -rf $(TMPDIR ) /* .dSYM
99 $(RUSTC ) foo.rs -g -C split-debuginfo=off
@@ -29,98 +29,228 @@ unpacked:
2929 [ ! -d $( TMPDIR) /foo.dSYM ]
3030else
3131ifdef IS_WINDOWS
32- # Windows only supports = packed
32+ # Windows only supports packed debuginfo - nothing to test.
3333off :
3434packed :
3535unpacked :
3636else
37+ # Some non-Windows, non-Darwin platforms are not stable, and some are.
3738ifeq ($(UNAME ) ,Linux)
3839 UNSTABLEOPTS :=
3940else
4041 UNSTABLEOPTS := -Zunstable-options
4142endif
4243
44+ # - Debuginfo in `.o` files
45+ # - `.o` deleted
46+ # - `.dwo` never created
47+ # - `.dwp` never created
4348off :
4449 $(RUSTC ) foo.rs -g -C $(UNSTABLEOPTS ) split-debuginfo=off
4550 [ ! -f $( TMPDIR) /* .dwp ]
4651 [ ! -f $( TMPDIR) /* .dwo ]
47-
4852 $(RUSTC ) foo.rs -g
4953 [ ! -f $( TMPDIR) /* .dwp ]
5054 [ ! -f $( TMPDIR) /* .dwo ]
5155
52- packed : packed-split packed-single
56+ packed : packed-split packed-single packed-remapped packed-crosscrate
5357
58+ # - Debuginfo in `.dwo` files
59+ # - `.o` deleted
60+ # - `.dwo` deleted
61+ # - `.dwp` present
5462packed-split :
5563 $(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)
5868
69+ # - Debuginfo in `.o` files
70+ # - `.o` deleted
71+ # - `.dwo` never created
72+ # - `.dwp` present
5973packed-single :
6074 $(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
6276 ls $(TMPDIR ) /* .dwo && exit 1 || exit 0
63- rm -rf $(TMPDIR ) /* .dwp
77+ rm $(TMPDIR ) /foo.dwp
78+ rm $(TMPDIR ) /$(call BIN,foo)
6479
6580packed-remapped : packed-remapped-split packed-remapped-single
6681
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
6787packed-remapped-split :
6888 $(RUSTC ) $(UNSTABLEOPTS ) -C split-debuginfo=packed -C debuginfo=2 \
6989 -Z split-dwarf-kind=split --remap-path-prefix $(TMPDIR ) =/a foo.rs -g
7090 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)
7195
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
72101packed-remapped-single :
73102 $(RUSTC ) $(UNSTABLEOPTS ) -C split-debuginfo=packed -C debuginfo=2 \
74103 -Z split-dwarf-kind=single --remap-path-prefix $(TMPDIR ) =/a foo.rs -g
75104 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)
76109
77110packed-crosscrate : packed-crosscrate-split packed-crosscrate-single
78111
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
79120packed-crosscrate-split :
80121 $(RUSTC ) --crate-type lib $(UNSTABLEOPTS ) -C split-debuginfo=packed \
81122 -Zsplit-dwarf-kind=split -C debuginfo=2 -g bar.rs
82123 ls $(TMPDIR ) /* .rlib
124+ ls $(TMPDIR ) /* .o && exit 1 || exit 0
83125 ls $(TMPDIR ) /* .dwo && exit 1 || exit 0
84126 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 ) \
86128 -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
88131 rm $(TMPDIR ) /main.dwp
89132 rm $(TMPDIR ) /$(call BIN,main)
90133
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
91142packed-crosscrate-single :
92143 $(RUSTC ) --crate-type lib $(UNSTABLEOPTS ) -C split-debuginfo=packed \
93144 -Zsplit-dwarf-kind=single -C debuginfo=2 -g bar.rs
94145 ls $(TMPDIR ) /* .rlib
146+ ls $(TMPDIR ) /* .o && exit 1 || exit 0
95147 ls $(TMPDIR ) /* .dwo && exit 1 || exit 0
96148 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 ) \
98150 -C split-debuginfo=packed -Zsplit-dwarf-kind=single -C debuginfo=2 -g main.rs
151+ ls $(TMPDIR ) /* .o && exit 1 || exit 0
99152 ls $(TMPDIR ) /* .dwo && exit 1 || exit 0
100153 rm $(TMPDIR ) /main.dwp
101154 rm $(TMPDIR ) /$(call BIN,main)
102155
103- unpacked : unpacked-split unpacked-single unpacked-remapped-split unpacked-remapped-single
156+ unpacked : unpacked-split unpacked-single unpacked-remapped unpacked-crosscrate
104157
158+ # - Debuginfo in `.dwo` files
159+ # - `.o` deleted
160+ # - `.dwo` present
161+ # - `.dwp` never created
105162unpacked-split :
106163 $(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
107166 ls $(TMPDIR ) /* .dwp && exit 1 || exit 0
108- ls $(TMPDIR ) /* .dwo
109- rm -rf $(TMPDIR ) /* .dwp $(TMPDIR ) /* .dwo
167+ rm $(TMPDIR ) /$(call BIN,foo)
110168
169+ # - Debuginfo in `.o` files
170+ # - `.o` present
171+ # - `.dwo` never created
172+ # - `.dwp` never created
111173unpacked-single :
112174 $(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
114176 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
115181
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
116187unpacked-remapped-split :
117188 $(RUSTC ) $(UNSTABLEOPTS ) -C split-debuginfo=unpacked -C debuginfo=2 \
118189 -Z split-dwarf-kind=split --remap-path-prefix $(TMPDIR ) =/a foo.rs -g
119190 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)
120195
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
121201unpacked-remapped-single :
122202 $(RUSTC ) $(UNSTABLEOPTS ) -C split-debuginfo=unpacked -C debuginfo=2 \
123203 -Z split-dwarf-kind=single --remap-path-prefix $(TMPDIR ) =/a foo.rs -g
124204 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)
125255endif
126256endif
0 commit comments