@@ -8,18 +8,25 @@ use self::gimli::read::EndianSlice;
8
8
use self :: gimli:: LittleEndian as Endian ;
9
9
use self :: mmap:: Mmap ;
10
10
use self :: stash:: Stash ;
11
- use crate :: symbolize :: ResolveWhat ;
12
- use crate :: types :: BytesOrWideString ;
13
- use crate :: SymbolName ;
11
+ use super :: BytesOrWideString ;
12
+ use super :: ResolveWhat ;
13
+ use super :: SymbolName ;
14
14
use addr2line:: gimli;
15
15
use core:: convert:: TryInto ;
16
16
use core:: mem;
17
17
use core:: u32;
18
18
use libc:: c_void;
19
- use std:: ffi:: OsString ;
20
- use std:: fs:: File ;
21
- use std:: path:: Path ;
22
- use std:: prelude:: v1:: * ;
19
+ use mystd:: ffi:: OsString ;
20
+ use mystd:: fs:: File ;
21
+ use mystd:: path:: Path ;
22
+ use mystd:: prelude:: v1:: * ;
23
+
24
+ #[ cfg( backtrace_in_libstd) ]
25
+ mod mystd {
26
+ pub use crate :: * ;
27
+ }
28
+ #[ cfg( not( backtrace_in_libstd) ) ]
29
+ extern crate std as mystd;
23
30
24
31
#[ cfg( windows) ]
25
32
#[ path = "gimli/mmap_windows.rs" ]
@@ -70,8 +77,6 @@ fn cx<'data>(stash: &'data Stash, object: Object<'data>) -> Option<Context<'data
70
77
71
78
macro_rules! mk {
72
79
( Mapping { $map: expr, $inner: expr, $stash: expr } ) => { {
73
- use crate :: symbolize:: gimli:: { Context , Mapping , Mmap } ;
74
-
75
80
fn assert_lifetimes<' a>( _: & ' a Mmap , _: & Context <' a>, _: & ' a Stash ) { }
76
81
assert_lifetimes( & $map, & $inner, & $stash) ;
77
82
Mapping {
@@ -93,8 +98,9 @@ fn mmap(path: &Path) -> Option<Mmap> {
93
98
cfg_if:: cfg_if! {
94
99
if #[ cfg( windows) ] {
95
100
use core:: mem:: MaybeUninit ;
96
- use crate :: windows:: * ;
97
- use std:: os:: windows:: prelude:: * ;
101
+ use super :: super :: windows:: * ;
102
+ use mystd:: os:: windows:: prelude:: * ;
103
+ use alloc:: vec;
98
104
99
105
mod coff;
100
106
use self :: coff:: Object ;
@@ -183,8 +189,8 @@ cfg_if::cfg_if! {
183
189
// macOS uses the Mach-O file format and uses DYLD-specific APIs to
184
190
// load a list of native libraries that are part of the appplication.
185
191
186
- use std :: os:: unix:: prelude:: * ;
187
- use std :: ffi:: { OsStr , CStr } ;
192
+ use mystd :: os:: unix:: prelude:: * ;
193
+ use mystd :: ffi:: { OsStr , CStr } ;
188
194
189
195
mod macho;
190
196
use self :: macho:: Object ;
@@ -336,8 +342,8 @@ cfg_if::cfg_if! {
336
342
// and typically implement an API called `dl_iterate_phdr` to load
337
343
// native libraries.
338
344
339
- use std :: os:: unix:: prelude:: * ;
340
- use std :: ffi:: { OsStr , CStr } ;
345
+ use mystd :: os:: unix:: prelude:: * ;
346
+ use mystd :: ffi:: { OsStr , CStr } ;
341
347
342
348
mod elf;
343
349
use self :: elf:: Object ;
@@ -358,7 +364,7 @@ cfg_if::cfg_if! {
358
364
let libs = & mut * ( vec as * mut Vec <Library >) ;
359
365
let name = if ( * info) . dlpi_name. is_null( ) || * ( * info) . dlpi_name == 0 {
360
366
if libs. is_empty( ) {
361
- std :: env:: current_exe( ) . map( |e| e. into( ) ) . unwrap_or_default( )
367
+ mystd :: env:: current_exe( ) . map( |e| e. into( ) ) . unwrap_or_default( )
362
368
} else {
363
369
OsString :: new( )
364
370
}
@@ -384,6 +390,7 @@ cfg_if::cfg_if! {
384
390
// Everything else should use ELF, but doesn't know how to load native
385
391
// libraries.
386
392
393
+ use mystd:: os:: unix:: prelude:: * ;
387
394
mod elf;
388
395
use self :: elf:: Object ;
389
396
0 commit comments