Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

linking of libtest failed #64872

Closed
bjorn3 opened this issue Sep 28, 2019 · 27 comments · Fixed by #66018
Closed

linking of libtest failed #64872

bjorn3 opened this issue Sep 28, 2019 · 27 comments · Fixed by #66018
Assignees
Labels
A-libtest Area: #[test] related A-linkage Area: linking into static, shared libraries and binaries C-bug Category: This is a bug. O-macos Operating system: macOS P-high High priority regression-from-stable-to-beta Performance or correctness regression from stable to beta. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue.

Comments

@bjorn3
Copy link
Member

bjorn3 commented Sep 28, 2019

Probably regressed in #64324 (Fix mixing crates with different share_generics)

$ rustc -V
rustc 1.40.0-nightly (084beb83e 2019-09-27)
$ git clone https://github.com/bjorn3/rustc_codegen_cranelift.git
$ cd rustc_codegen_cranelift
$ git checkout 44792f108949048c8945a29e6eee6a35c282f210
$ ./prepare.sh
$ cd build_sysroot
$ cargo build
[...]
   Compiling test v0.0.0 (/Users/bjorn/Documents/rustc_codegen_cranelift/build_sysroot/sysroot_src/src/libtest)
warning: unused import: `getopts`
 --> sysroot_src/src/libtest/lib.rs:1:5
  |
1 | use getopts;
  |     ^^^^^^^
  |
  = note: `#[warn(unused_imports)]` on by default

error: linking with `cc` failed: exit code: 1
  |
  = note: "cc" "-m64" "-L" "/Users/bjorn/.rustup/toolchains/nightly-x86_64-apple-darwin/lib/rustlib/x86_64-apple-darwin/lib" "/Users/bjorn/Documents/rustc_codegen_cranelift/build_sysroot/target/debug/deps/test.4ovhqzay5djkkv45.rcgu.o" "-o" "/Users/bjorn/Documents/rustc_codegen_cranelift/build_sysroot/target/debug/deps/libtest.dylib" "-Wl,-exported_symbols_list,/var/folders/pr/dsmnz7795h18nncdpws5d9h00000gp/T/rustcNsZBVt/list" "/Users/bjorn/Documents/rustc_codegen_cranelift/build_sysroot/target/debug/deps/test.4efq6d1me4ylpya9.rcgu.o" "-Wl,-dead_strip" "-nodefaultlibs" "-L" "/Users/bjorn/Documents/rustc_codegen_cranelift/build_sysroot/target/debug/deps" "-L" "/Users/bjorn/Documents/rustc_codegen_cranelift/build_sysroot/target/debug/build/backtrace-sys-76a10846402b651c/out" "-L" "/Users/bjorn/.rustup/toolchains/nightly-x86_64-apple-darwin/lib/rustlib/x86_64-apple-darwin/lib" "-Wl,-force_load" "-Wl,/var/folders/pr/dsmnz7795h18nncdpws5d9h00000gp/T/rustcNsZBVt/libgetopts-45b52c2aaff9e689.rlib" "-Wl,-force_load" "-Wl,/var/folders/pr/dsmnz7795h18nncdpws5d9h00000gp/T/rustcNsZBVt/libunicode_width-455d06287369bcce.rlib" "-Wl,-force_load" "-Wl,/var/folders/pr/dsmnz7795h18nncdpws5d9h00000gp/T/rustcNsZBVt/librustc_std_workspace_std-c5d4248dcba5f655.rlib" "-L" "/Users/bjorn/Documents/rustc_codegen_cranelift/build_sysroot/target/debug/deps" "-lstd" "/var/folders/pr/dsmnz7795h18nncdpws5d9h00000gp/T/rustcNsZBVt/libcompiler_builtins-825863beebf37c8c.rlib" "-lSystem" "-lresolv" "-lc" "-lm" "-dynamiclib" "-Wl,-dylib"
  = note: Undefined symbols for architecture x86_64:
            "_$LT$core..result..Result$LT$T$C$E$GT$$u20$as$u20$core..ops..try..Try$GT$::into_result::hde39a0e4a14449b2", referenced from:
                alloc::raw_vec::RawVec$LT$T$C$A$GT$::reserve_internal::h0743432eb58cd612 in libgetopts-45b52c2aaff9e689.rlib(getopts-45b52c2aaff9e689.x1xdb2luszpvb9a.rcgu.o)
                alloc::raw_vec::RawVec$LT$T$C$A$GT$::reserve_internal::h62376b63c46331f0 in libgetopts-45b52c2aaff9e689.rlib(getopts-45b52c2aaff9e689.x1xdb2luszpvb9a.rcgu.o)
                alloc::raw_vec::RawVec$LT$T$C$A$GT$::reserve_internal::h92f6f06701bbf7ec in libgetopts-45b52c2aaff9e689.rlib(getopts-45b52c2aaff9e689.x1xdb2luszpvb9a.rcgu.o)
                alloc::raw_vec::RawVec$LT$T$C$A$GT$::reserve_internal::h96bb07ab592d2734 in libgetopts-45b52c2aaff9e689.rlib(getopts-45b52c2aaff9e689.x1xdb2luszpvb9a.rcgu.o)
                alloc::raw_vec::RawVec$LT$T$C$A$GT$::reserve_internal::h9eb9efa606ae9dd0 in libgetopts-45b52c2aaff9e689.rlib(getopts-45b52c2aaff9e689.x1xdb2luszpvb9a.rcgu.o)
            "core::mem::align_of::hfc80039b764eda26", referenced from:
                core::alloc::size_align::hd6cc5daafeaab7d3 in libgetopts-45b52c2aaff9e689.rlib(getopts-45b52c2aaff9e689.tvzybqu0rn9giz4.rcgu.o)
                alloc::raw_vec::RawVec$LT$T$C$A$GT$::current_layout::hc41c4379c7659d12 in libgetopts-45b52c2aaff9e689.rlib(getopts-45b52c2aaff9e689.x1xdb2luszpvb9a.rcgu.o)
            "_$LT$core..result..Result$LT$T$C$E$GT$$u20$as$u20$core..ops..try..Try$GT$::into_result::h05a8c1133c1ed3de", referenced from:
                alloc::raw_vec::RawVec$LT$T$C$A$GT$::reserve_internal::h0743432eb58cd612 in libgetopts-45b52c2aaff9e689.rlib(getopts-45b52c2aaff9e689.x1xdb2luszpvb9a.rcgu.o)
                alloc::raw_vec::RawVec$LT$T$C$A$GT$::reserve_internal::h62376b63c46331f0 in libgetopts-45b52c2aaff9e689.rlib(getopts-45b52c2aaff9e689.x1xdb2luszpvb9a.rcgu.o)
                alloc::raw_vec::RawVec$LT$T$C$A$GT$::reserve_internal::h92f6f06701bbf7ec in libgetopts-45b52c2aaff9e689.rlib(getopts-45b52c2aaff9e689.x1xdb2luszpvb9a.rcgu.o)
                alloc::raw_vec::RawVec$LT$T$C$A$GT$::reserve_internal::h96bb07ab592d2734 in libgetopts-45b52c2aaff9e689.rlib(getopts-45b52c2aaff9e689.x1xdb2luszpvb9a.rcgu.o)
                alloc::raw_vec::RawVec$LT$T$C$A$GT$::reserve_internal::h9eb9efa606ae9dd0 in libgetopts-45b52c2aaff9e689.rlib(getopts-45b52c2aaff9e689.x1xdb2luszpvb9a.rcgu.o)
                alloc::raw_vec::RawVec$LT$T$C$A$GT$::amortized_new_size::h25e41dd8f6ee67a7 in libgetopts-45b52c2aaff9e689.rlib(getopts-45b52c2aaff9e689.x1xdb2luszpvb9a.rcgu.o)
                alloc::raw_vec::RawVec$LT$T$C$A$GT$::amortized_new_size::h25e86854cd79b395 in libgetopts-45b52c2aaff9e689.rlib(getopts-45b52c2aaff9e689.x1xdb2luszpvb9a.rcgu.o)
                ...
            "_$LT$core..result..Result$LT$T$C$E$GT$$u20$as$u20$core..ops..try..Try$GT$::from_ok::h27ef23a61a55fb8c", referenced from:
                core::iter::traits::iterator::Iterator::try_fold::h0dd4471e758664e8 in libgetopts-45b52c2aaff9e689.rlib(getopts-45b52c2aaff9e689.s0mnfj6syrrimsl.rcgu.o)
            "core::ptr::non_null::NonNull$LT$T$GT$::new_unchecked::hdb4e93989e125e24", referenced from:
                core::ptr::non_null::NonNull$LT$T$GT$::cast::h0c3b8456b3f2a78a in libgetopts-45b52c2aaff9e689.rlib(getopts-45b52c2aaff9e689.44q5jydbkicvid30.rcgu.o)
                core::ptr::non_null::NonNull$LT$T$GT$::cast::h4ae526489156a12b in libgetopts-45b52c2aaff9e689.rlib(getopts-45b52c2aaff9e689.44q5jydbkicvid30.rcgu.o)
                core::ptr::non_null::NonNull$LT$T$GT$::cast::h69850d94273e457a in libgetopts-45b52c2aaff9e689.rlib(getopts-45b52c2aaff9e689.44q5jydbkicvid30.rcgu.o)
                core::ptr::non_null::NonNull$LT$T$GT$::cast::h7544e43a57d7c3cc in libgetopts-45b52c2aaff9e689.rlib(getopts-45b52c2aaff9e689.44q5jydbkicvid30.rcgu.o)
                core::ptr::non_null::NonNull$LT$T$GT$::cast::haeba2fa044e064b1 in libgetopts-45b52c2aaff9e689.rlib(getopts-45b52c2aaff9e689.44q5jydbkicvid30.rcgu.o)
                core::ptr::non_null::NonNull$LT$T$GT$::cast::hb7be601f4174f37b in libgetopts-45b52c2aaff9e689.rlib(getopts-45b52c2aaff9e689.44q5jydbkicvid30.rcgu.o)
            "alloc::vec::Vec$LT$T$GT$::push::h1107e14b8ca6d61a", referenced from:
                alloc::string::String::push::hd088b096692d2290 in libgetopts-45b52c2aaff9e689.rlib(getopts-45b52c2aaff9e689.3sjlppp2rnqupdlh.rcgu.o)
            "_$LT$core..result..Result$LT$T$C$E$GT$$u20$as$u20$core..ops..try..Try$GT$::into_result::hedcef6027d30b433", referenced from:
                core::alloc::Layout::repeat::hf3cce47723285b1a in libgetopts-45b52c2aaff9e689.rlib(getopts-45b52c2aaff9e689.4w2kl2husa8fjuka.rcgu.o)
            "alloc::vec::Vec$LT$T$GT$::shrink_to_fit::h9e1d66951fb2a3c8", referenced from:
                alloc::string::String::shrink_to_fit::h381f813323e7aaff in libgetopts-45b52c2aaff9e689.rlib(getopts-45b52c2aaff9e689.3sjlppp2rnqupdlh.rcgu.o)
            "_$LT$alloc..vec..Vec$LT$T$GT$$u20$as$u20$core..ops..deref..Deref$GT$::deref::hf0b88855ce7fd94c", referenced from:
                _$LT$alloc..string..String$u20$as$u20$core..ops..index..Index$LT$core..ops..range..RangeFull$GT$$GT$::index::h19bc59aedb4f24b6 in libgetopts-45b52c2aaff9e689.rlib(getopts-45b52c2aaff9e689.3sjlppp2rnqupdlh.rcgu.o)
                alloc::string::String::as_bytes::h736130481d0b5005 in libgetopts-45b52c2aaff9e689.rlib(getopts-45b52c2aaff9e689.3sjlppp2rnqupdlh.rcgu.o)
                _$LT$alloc..string..String$u20$as$u20$core..ops..deref..Deref$GT$::deref::hc057a9a9fcd9dfea in libgetopts-45b52c2aaff9e689.rlib(getopts-45b52c2aaff9e689.3sjlppp2rnqupdlh.rcgu.o)
            "alloc::vec::Vec$LT$T$GT$::capacity::h2f61424507a0f902", referenced from:
                alloc::str::join_generic_copy::h8b27729af1211ca4 in libgetopts-45b52c2aaff9e689.rlib(getopts-45b52c2aaff9e689.3dak4qqiwy172p73.rcgu.o)
            "_$LT$core..result..Result$LT$T$C$E$GT$$u20$as$u20$core..ops..try..Try$GT$::from_error::hffdd99ca71a025fa", referenced from:
                core::alloc::Layout::repeat::hf3cce47723285b1a in libgetopts-45b52c2aaff9e689.rlib(getopts-45b52c2aaff9e689.4w2kl2husa8fjuka.rcgu.o)
            "alloc::vec::Vec$LT$T$GT$::extend_from_slice::ha60d10b4b10cc5e1", referenced from:
                alloc::str::join_generic_copy::h8b27729af1211ca4 in libgetopts-45b52c2aaff9e689.rlib(getopts-45b52c2aaff9e689.3dak4qqiwy172p73.rcgu.o)
                alloc::string::String::push::hd088b096692d2290 in libgetopts-45b52c2aaff9e689.rlib(getopts-45b52c2aaff9e689.3sjlppp2rnqupdlh.rcgu.o)
                alloc::string::String::push_str::he67faf61af3c9d16 in libgetopts-45b52c2aaff9e689.rlib(getopts-45b52c2aaff9e689.3sjlppp2rnqupdlh.rcgu.o)
            "alloc::vec::Vec$LT$T$GT$::len::h3fa272853b86a7ac", referenced from:
                alloc::str::join_generic_copy::h8b27729af1211ca4 in libgetopts-45b52c2aaff9e689.rlib(getopts-45b52c2aaff9e689.3dak4qqiwy172p73.rcgu.o)
                alloc::string::String::len::h30b4ac277e528db1 in libgetopts-45b52c2aaff9e689.rlib(getopts-45b52c2aaff9e689.3sjlppp2rnqupdlh.rcgu.o)
            "_$LT$alloc..vec..Vec$LT$T$GT$$u20$as$u20$core..ops..deref..DerefMut$GT$::deref_mut::ha0340dc9dde853a6", referenced from:
                alloc::str::join_generic_copy::h8b27729af1211ca4 in libgetopts-45b52c2aaff9e689.rlib(getopts-45b52c2aaff9e689.3dak4qqiwy172p73.rcgu.o)
            "core::fmt::ArgumentV1::new::h30e2f72d2e6b953e", referenced from:
                _$LT$alloc..vec..Vec$LT$T$GT$$u20$as$u20$alloc..vec..SpecExtend$LT$T$C$I$GT$$GT$::spec_extend::h1f7d0a98fb0a7f64 in libgetopts-45b52c2aaff9e689.rlib(getopts-45b52c2aaff9e689.34kbofhunnjidke2.rcgu.o)
                _$LT$alloc..vec..Vec$LT$T$GT$$u20$as$u20$alloc..vec..SpecExtend$LT$T$C$I$GT$$GT$::spec_extend::h5800566c2c1c8247 in libgetopts-45b52c2aaff9e689.rlib(getopts-45b52c2aaff9e689.34kbofhunnjidke2.rcgu.o)
                _$LT$alloc..vec..Vec$LT$T$GT$$u20$as$u20$alloc..vec..SpecExtend$LT$T$C$I$GT$$GT$::spec_extend::hb0e888f3acd000ae in libgetopts-45b52c2aaff9e689.rlib(getopts-45b52c2aaff9e689.34kbofhunnjidke2.rcgu.o)
            "core::ptr::write::h7f9470a30552345c", referenced from:
                alloc::vec::Vec$LT$T$GT$::extend_desugared::ha60a6a83bce23611 in libgetopts-45b52c2aaff9e689.rlib(getopts-45b52c2aaff9e689.34kbofhunnjidke2.rcgu.o)
                _$LT$alloc..vec..Vec$LT$T$GT$$u20$as$u20$alloc..vec..SpecExtend$LT$T$C$I$GT$$GT$::spec_extend::_$u7b$$u7b$closure$u7d$$u7d$::hf67f8c1ea1f3d9f9 in libgetopts-45b52c2aaff9e689.rlib(getopts-45b52c2aaff9e689.34kbofhunnjidke2.rcgu.o)
            "_$LT$core..result..Result$LT$T$C$E$GT$$u20$as$u20$core..ops..try..Try$GT$::into_result::hedbaf601bb645950", referenced from:
                core::iter::traits::iterator::Iterator::try_fold::h0dd4471e758664e8 in libgetopts-45b52c2aaff9e689.rlib(getopts-45b52c2aaff9e689.s0mnfj6syrrimsl.rcgu.o)
            "core::ptr::write::h060c1db77a9060a0", referenced from:
                alloc::vec::Vec$LT$T$GT$::extend_desugared::h34cd857eacd611b4 in libgetopts-45b52c2aaff9e689.rlib(getopts-45b52c2aaff9e689.34kbofhunnjidke2.rcgu.o)
                alloc::vec::Vec$LT$T$GT$::extend_desugared::h75bf064d184f8291 in libgetopts-45b52c2aaff9e689.rlib(getopts-45b52c2aaff9e689.34kbofhunnjidke2.rcgu.o)
                alloc::vec::Vec$LT$T$GT$::extend_desugared::h7f9e8c4fb102a5e3 in libgetopts-45b52c2aaff9e689.rlib(getopts-45b52c2aaff9e689.34kbofhunnjidke2.rcgu.o)
                _$LT$alloc..vec..Vec$LT$T$GT$$u20$as$u20$alloc..vec..SpecExtend$LT$T$C$I$GT$$GT$::spec_extend::_$u7b$$u7b$closure$u7d$$u7d$::ha61b3a86c36e7601 in libgetopts-45b52c2aaff9e689.rlib(getopts-45b52c2aaff9e689.34kbofhunnjidke2.rcgu.o)
                _$LT$alloc..vec..Vec$LT$T$GT$$u20$as$u20$alloc..vec..SpecExtend$LT$T$C$I$GT$$GT$::from_iter::h81d332c292fb237f in libgetopts-45b52c2aaff9e689.rlib(getopts-45b52c2aaff9e689.34kbofhunnjidke2.rcgu.o)
                _$LT$alloc..vec..Vec$LT$T$GT$$u20$as$u20$alloc..vec..SpecExtend$LT$T$C$I$GT$$GT$::from_iter::hbfd7132245d4bec7 in libgetopts-45b52c2aaff9e689.rlib(getopts-45b52c2aaff9e689.34kbofhunnjidke2.rcgu.o)
            "core::slice::_$LT$impl$u20$$u5b$T$u5d$$GT$::copy_from_slice::he849d776e26ee650", referenced from:
                alloc::str::join_generic_copy::h8b27729af1211ca4 in libgetopts-45b52c2aaff9e689.rlib(getopts-45b52c2aaff9e689.3dak4qqiwy172p73.rcgu.o)
            "_$LT$core..result..Result$LT$T$C$E$GT$$u20$as$u20$core..ops..try..Try$GT$::into_result::h36d5755a3f0baa1f", referenced from:
                core::iter::traits::iterator::Iterator::try_fold::hc46de36d5818263f in libgetopts-45b52c2aaff9e689.rlib(getopts-45b52c2aaff9e689.34kbofhunnjidke2.rcgu.o)
                core::iter::LoopState$LT$$LT$R$u20$as$u20$core..ops..try..Try$GT$..Ok$C$R$GT$::from_try::h9978a4933f8ada2a in libgetopts-45b52c2aaff9e689.rlib(getopts-45b52c2aaff9e689.3ocftim58jpsiho8.rcgu.o)
            "_$LT$T$u20$as$u20$core..convert..From$LT$T$GT$$GT$::from::h0d67417c21d89cc9", referenced from:
                core::iter::traits::iterator::Iterator::try_fold::hc46de36d5818263f in libgetopts-45b52c2aaff9e689.rlib(getopts-45b52c2aaff9e689.34kbofhunnjidke2.rcgu.o)
                core::iter::traits::iterator::Iterator::try_fold::h0dd4471e758664e8 in libgetopts-45b52c2aaff9e689.rlib(getopts-45b52c2aaff9e689.s0mnfj6syrrimsl.rcgu.o)
            "_$LT$core..result..Result$LT$T$C$E$GT$$u20$as$u20$core..ops..try..Try$GT$::from_error::ha73ae0ec6983a046", referenced from:
                core::iter::traits::iterator::Iterator::try_fold::hc46de36d5818263f in libgetopts-45b52c2aaff9e689.rlib(getopts-45b52c2aaff9e689.34kbofhunnjidke2.rcgu.o)
                core::iter::LoopState$LT$$LT$R$u20$as$u20$core..ops..try..Try$GT$..Ok$C$R$GT$::from_try::h9978a4933f8ada2a in libgetopts-45b52c2aaff9e689.rlib(getopts-45b52c2aaff9e689.3ocftim58jpsiho8.rcgu.o)
            "core::ptr::_$LT$impl$u20$$BP$mut$u20$T$GT$::is_null::h02ad3fa97ece0a17", referenced from:
                alloc::alloc::exchange_malloc::h68c690e0c78464e8 in libgetopts-45b52c2aaff9e689.rlib(getopts-45b52c2aaff9e689.2f3ve34zcsva6tt4.rcgu.o)
            "core::ptr::non_null::NonNull$LT$T$GT$::as_ptr::h469bc021ff2b32a3", referenced from:
                _$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Alloc$GT$::dealloc::h59907a919b557ade in libgetopts-45b52c2aaff9e689.rlib(getopts-45b52c2aaff9e689.2f3ve34zcsva6tt4.rcgu.o)
                _$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Alloc$GT$::realloc::hb832c6b23c7cebda in libgetopts-45b52c2aaff9e689.rlib(getopts-45b52c2aaff9e689.2f3ve34zcsva6tt4.rcgu.o)
                core::ptr::non_null::NonNull$LT$T$GT$::cast::h3bdc02ee529668ec in libgetopts-45b52c2aaff9e689.rlib(getopts-45b52c2aaff9e689.44q5jydbkicvid30.rcgu.o)
                core::ptr::non_null::NonNull$LT$T$GT$::cast::h566f17926d0996e7 in libgetopts-45b52c2aaff9e689.rlib(getopts-45b52c2aaff9e689.44q5jydbkicvid30.rcgu.o)
                core::ptr::non_null::NonNull$LT$T$GT$::cast::h656dda6866bd84f7 in libgetopts-45b52c2aaff9e689.rlib(getopts-45b52c2aaff9e689.44q5jydbkicvid30.rcgu.o)
                core::ptr::non_null::NonNull$LT$T$GT$::cast::h6c579f949dbd44af in libgetopts-45b52c2aaff9e689.rlib(getopts-45b52c2aaff9e689.44q5jydbkicvid30.rcgu.o)
                core::ptr::non_null::NonNull$LT$T$GT$::cast::ha79be2512e129dec in libgetopts-45b52c2aaff9e689.rlib(getopts-45b52c2aaff9e689.44q5jydbkicvid30.rcgu.o)
                ...
            "core::ptr::non_null::NonNull$LT$T$GT$::new::h84c9c3097428a055", referenced from:
                _$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Alloc$GT$::alloc_zeroed::hafe23eca6728b918 in libgetopts-45b52c2aaff9e689.rlib(getopts-45b52c2aaff9e689.2f3ve34zcsva6tt4.rcgu.o)
                _$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Alloc$GT$::alloc::h99c07fb300d8d283 in libgetopts-45b52c2aaff9e689.rlib(getopts-45b52c2aaff9e689.2f3ve34zcsva6tt4.rcgu.o)
                _$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Alloc$GT$::realloc::hb832c6b23c7cebda in libgetopts-45b52c2aaff9e689.rlib(getopts-45b52c2aaff9e689.2f3ve34zcsva6tt4.rcgu.o)
            "core::fmt::Write::write_fmt::heed838730fc6fd5e", referenced from:
                _$LT$T$u20$as$u20$alloc..string..ToString$GT$::to_string::h4adf319ad5f8b8d5 in libgetopts-45b52c2aaff9e689.rlib(getopts-45b52c2aaff9e689.25xhkjdqgl59q6lt.rcgu.o)
            "core::ptr::_$LT$impl$u20$$BP$const$u20$T$GT$::wrapping_add::hecd88587f1bd5068", referenced from:
                core::slice::_$LT$impl$u20$$u5b$T$u5d$$GT$::iter::h5c329da3563d78dc in libgetopts-45b52c2aaff9e689.rlib(getopts-45b52c2aaff9e689.22c90zad912daf5a.rcgu.o)
                core::slice::_$LT$impl$u20$$u5b$T$u5d$$GT$::iter::h7780cfbc4cde017d in libgetopts-45b52c2aaff9e689.rlib(getopts-45b52c2aaff9e689.22c90zad912daf5a.rcgu.o)
                core::slice::_$LT$impl$u20$$u5b$T$u5d$$GT$::iter::hf9464eb1c52455cc in libgetopts-45b52c2aaff9e689.rlib(getopts-45b52c2aaff9e689.22c90zad912daf5a.rcgu.o)
                core::slice::_$LT$impl$u20$$u5b$T$u5d$$GT$::iter::hb4e4fee671654d1c in libgetopts-45b52c2aaff9e689.rlib(getopts-45b52c2aaff9e689.25xhkjdqgl59q6lt.rcgu.o)
                core::slice::_$LT$impl$u20$$u5b$T$u5d$$GT$::iter::h0161b4b9c8d1458a in libgetopts-45b52c2aaff9e689.rlib(getopts-45b52c2aaff9e689.34kbofhunnjidke2.rcgu.o)
            "core::ptr::null::h8e4f41e5cb45be63", referenced from:
                core::ptr::_$LT$impl$u20$$BP$const$u20$T$GT$::is_null::h195dd4fa87d31817 in libgetopts-45b52c2aaff9e689.rlib(getopts-45b52c2aaff9e689.22c90zad912daf5a.rcgu.o)
                core::ptr::_$LT$impl$u20$$BP$const$u20$T$GT$::is_null::h30a0ca8648ef72af in libgetopts-45b52c2aaff9e689.rlib(getopts-45b52c2aaff9e689.22c90zad912daf5a.rcgu.o)
                core::ptr::_$LT$impl$u20$$BP$const$u20$T$GT$::is_null::hf979222c95ea81ad in libgetopts-45b52c2aaff9e689.rlib(getopts-45b52c2aaff9e689.22c90zad912daf5a.rcgu.o)
                core::ptr::_$LT$impl$u20$$BP$const$u20$T$GT$::is_null::hba051b70387e6d2a in libgetopts-45b52c2aaff9e689.rlib(getopts-45b52c2aaff9e689.25xhkjdqgl59q6lt.rcgu.o)
                core::ptr::_$LT$impl$u20$$BP$const$u20$T$GT$::is_null::h0eaf6641c5b09d4c in libgetopts-45b52c2aaff9e689.rlib(getopts-45b52c2aaff9e689.34kbofhunnjidke2.rcgu.o)
            "_$LT$alloc..raw_vec..RawVec$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$::drop::h89bc621c380ec327", referenced from:
                core::ptr::real_drop_in_place::h6858907c02138c9d in libgetopts-45b52c2aaff9e689.rlib(getopts-45b52c2aaff9e689.1wt6095x8qssn89j.rcgu.o)
            "_$LT$$RF$T$u20$as$u20$core..fmt..Debug$GT$::fmt::hdbac948e1279e559", referenced from:
                l_anon.7071cea73d0aeb162f4c3607ca6ceb11.4 in libgetopts-45b52c2aaff9e689.rlib(getopts-45b52c2aaff9e689.22c90zad912daf5a.rcgu.o)
                _$LT$alloc..vec..Vec$LT$T$GT$$u20$as$u20$alloc..vec..SpecExtend$LT$T$C$I$GT$$GT$::spec_extend::h1f7d0a98fb0a7f64 in libgetopts-45b52c2aaff9e689.rlib(getopts-45b52c2aaff9e689.34kbofhunnjidke2.rcgu.o)
                _$LT$alloc..vec..Vec$LT$T$GT$$u20$as$u20$alloc..vec..SpecExtend$LT$T$C$I$GT$$GT$::spec_extend::h5800566c2c1c8247 in libgetopts-45b52c2aaff9e689.rlib(getopts-45b52c2aaff9e689.34kbofhunnjidke2.rcgu.o)
                _$LT$alloc..vec..Vec$LT$T$GT$$u20$as$u20$alloc..vec..SpecExtend$LT$T$C$I$GT$$GT$::spec_extend::hb0e888f3acd000ae in libgetopts-45b52c2aaff9e689.rlib(getopts-45b52c2aaff9e689.34kbofhunnjidke2.rcgu.o)
            "_$LT$core..result..Result$LT$T$C$E$GT$$u20$as$u20$core..ops..try..Try$GT$::from_error::hd6072aaa9dd5c3bd", referenced from:
                core::iter::traits::iterator::Iterator::try_fold::h0dd4471e758664e8 in libgetopts-45b52c2aaff9e689.rlib(getopts-45b52c2aaff9e689.s0mnfj6syrrimsl.rcgu.o)
            "core::option::Option$LT$T$GT$::is_some::hefaab0337d9aca72", referenced from:
                getopts::Matches::opt_defined::h55a296c1e9b1113a in libgetopts-45b52c2aaff9e689.rlib(getopts-45b52c2aaff9e689.1kczxwl8hmq7fci7.rcgu.o)
            "core::ptr::null_mut::hf21d061fc1e349e8", referenced from:
                core::ptr::_$LT$impl$u20$$BP$mut$u20$T$GT$::is_null::h1e703f6814270bda in libgetopts-45b52c2aaff9e689.rlib(getopts-45b52c2aaff9e689.22c90zad912daf5a.rcgu.o)
                core::ptr::_$LT$impl$u20$$BP$mut$u20$T$GT$::is_null::h4abe1da084402217 in libgetopts-45b52c2aaff9e689.rlib(getopts-45b52c2aaff9e689.22c90zad912daf5a.rcgu.o)
                core::ptr::_$LT$impl$u20$$BP$mut$u20$T$GT$::is_null::hafa45ca177949fe2 in libgetopts-45b52c2aaff9e689.rlib(getopts-45b52c2aaff9e689.22c90zad912daf5a.rcgu.o)
                core::ptr::_$LT$impl$u20$$BP$mut$u20$T$GT$::is_null::h4c7d976898905784 in libgetopts-45b52c2aaff9e689.rlib(getopts-45b52c2aaff9e689.25xhkjdqgl59q6lt.rcgu.o)
                core::ptr::_$LT$impl$u20$$BP$mut$u20$T$GT$::is_null::ha20e0c47589f118c in libgetopts-45b52c2aaff9e689.rlib(getopts-45b52c2aaff9e689.25xhkjdqgl59q6lt.rcgu.o)
                core::ptr::_$LT$impl$u20$$BP$mut$u20$T$GT$::is_null::hd5d60f454101b1e6 in libgetopts-45b52c2aaff9e689.rlib(getopts-45b52c2aaff9e689.34kbofhunnjidke2.rcgu.o)
                core::ptr::_$LT$impl$u20$$BP$mut$u20$T$GT$::is_null::h78400e6d1f257616 in libgetopts-45b52c2aaff9e689.rlib(getopts-45b52c2aaff9e689.43flyscwxuc6mun9.rcgu.o)
                ...
            "core::result::Result$LT$T$C$E$GT$::unwrap::hb0b25ce6d581702e", referenced from:
                core::iter::traits::iterator::Iterator::fold::heb229dc9f78feaa4 in libgetopts-45b52c2aaff9e689.rlib(getopts-45b52c2aaff9e689.11saxzouilhs5cro.rcgu.o)
                core::iter::traits::iterator::Iterator::fold::h1afc5ead44ce0a6b in libgetopts-45b52c2aaff9e689.rlib(getopts-45b52c2aaff9e689.34kbofhunnjidke2.rcgu.o)
            "core::fmt::ArgumentV1::new::h612c8a5eb00fbb5a", referenced from:
                getopts::Options::short_usage::ha93da9aab723e7d8 in libgetopts-45b52c2aaff9e689.rlib(getopts-45b52c2aaff9e689.1kczxwl8hmq7fci7.rcgu.o)
                getopts::Matches::opt_vals::h73946ac8d0aa8199 in libgetopts-45b52c2aaff9e689.rlib(getopts-45b52c2aaff9e689.1kczxwl8hmq7fci7.rcgu.o)
                getopts::Options::usage::_$u7b$$u7b$closure$u7d$$u7d$::h055d7aa44b3eb731 in libgetopts-45b52c2aaff9e689.rlib(getopts-45b52c2aaff9e689.22c90zad912daf5a.rcgu.o)
            "core::mem::size_of::h85bc21d9a1532e51", referenced from:
                core::slice::from_raw_parts::h8c2d6f094e415a80 in libgetopts-45b52c2aaff9e689.rlib(getopts-45b52c2aaff9e689.1eodrlfjtmp1ki6y.rcgu.o)
                core::slice::from_raw_parts_mut::h0a59fd3756576a5c in libgetopts-45b52c2aaff9e689.rlib(getopts-45b52c2aaff9e689.1eodrlfjtmp1ki6y.rcgu.o)
                _$LT$core..slice..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$::next::hee7f5cb272e8864b in libgetopts-45b52c2aaff9e689.rlib(getopts-45b52c2aaff9e689.1eodrlfjtmp1ki6y.rcgu.o)
                _$LT$core..slice..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$::try_fold::h077d21e8d37c9367 in libgetopts-45b52c2aaff9e689.rlib(getopts-45b52c2aaff9e689.1eodrlfjtmp1ki6y.rcgu.o)
                _$LT$core..slice..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$::try_fold::h11deeff803616160 in libgetopts-45b52c2aaff9e689.rlib(getopts-45b52c2aaff9e689.1eodrlfjtmp1ki6y.rcgu.o)
                _$LT$core..slice..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$::try_fold::hbd10f55c15e87b03 in libgetopts-45b52c2aaff9e689.rlib(getopts-45b52c2aaff9e689.1eodrlfjtmp1ki6y.rcgu.o)
                core::slice::_$LT$impl$u20$$u5b$T$u5d$$GT$::iter::hb4e4fee671654d1c in libgetopts-45b52c2aaff9e689.rlib(getopts-45b52c2aaff9e689.25xhkjdqgl59q6lt.rcgu.o)
                ...
            "_$LT$core..iter..LoopState$LT$C$C$B$GT$$u20$as$u20$core..ops..try..Try$GT$::from_ok::h0fda2a20fabc44ec", referenced from:
                _$LT$core..slice..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$::try_fold::h6dde0ee9a9a83e3f in libgetopts-45b52c2aaff9e689.rlib(getopts-45b52c2aaff9e689.1eodrlfjtmp1ki6y.rcgu.o)
                _$LT$core..slice..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$::try_fold::hbd10f55c15e87b03 in libgetopts-45b52c2aaff9e689.rlib(getopts-45b52c2aaff9e689.1eodrlfjtmp1ki6y.rcgu.o)
            "_$LT$core..result..Result$LT$T$C$E$GT$$u20$as$u20$core..ops..try..Try$GT$::from_error::h9900ee87ce0c54a2", referenced from:
                alloc::raw_vec::RawVec$LT$T$C$A$GT$::reserve_internal::h0743432eb58cd612 in libgetopts-45b52c2aaff9e689.rlib(getopts-45b52c2aaff9e689.x1xdb2luszpvb9a.rcgu.o)
                alloc::raw_vec::RawVec$LT$T$C$A$GT$::reserve_internal::h62376b63c46331f0 in libgetopts-45b52c2aaff9e689.rlib(getopts-45b52c2aaff9e689.x1xdb2luszpvb9a.rcgu.o)
                alloc::raw_vec::RawVec$LT$T$C$A$GT$::reserve_internal::h92f6f06701bbf7ec in libgetopts-45b52c2aaff9e689.rlib(getopts-45b52c2aaff9e689.x1xdb2luszpvb9a.rcgu.o)
                alloc::raw_vec::RawVec$LT$T$C$A$GT$::reserve_internal::h96bb07ab592d2734 in libgetopts-45b52c2aaff9e689.rlib(getopts-45b52c2aaff9e689.x1xdb2luszpvb9a.rcgu.o)
                alloc::raw_vec::RawVec$LT$T$C$A$GT$::reserve_internal::h9eb9efa606ae9dd0 in libgetopts-45b52c2aaff9e689.rlib(getopts-45b52c2aaff9e689.x1xdb2luszpvb9a.rcgu.o)
            "_$LT$T$u20$as$u20$core..convert..From$LT$T$GT$$GT$::from::h87ff954ca727176f", referenced from:
                _$LT$core..slice..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$::try_fold::h6dde0ee9a9a83e3f in libgetopts-45b52c2aaff9e689.rlib(getopts-45b52c2aaff9e689.1eodrlfjtmp1ki6y.rcgu.o)
                _$LT$core..slice..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$::try_fold::hbd10f55c15e87b03 in libgetopts-45b52c2aaff9e689.rlib(getopts-45b52c2aaff9e689.1eodrlfjtmp1ki6y.rcgu.o)
            "_$LT$core..result..Result$LT$T$C$E$GT$$u20$as$u20$core..ops..try..Try$GT$::into_result::h2dba005f5c7aa5c2", referenced from:
                alloc::raw_vec::RawVec$LT$T$C$A$GT$::reserve_internal::h0743432eb58cd612 in libgetopts-45b52c2aaff9e689.rlib(getopts-45b52c2aaff9e689.x1xdb2luszpvb9a.rcgu.o)
                alloc::raw_vec::RawVec$LT$T$C$A$GT$::reserve_internal::h62376b63c46331f0 in libgetopts-45b52c2aaff9e689.rlib(getopts-45b52c2aaff9e689.x1xdb2luszpvb9a.rcgu.o)
                alloc::raw_vec::RawVec$LT$T$C$A$GT$::reserve_internal::h92f6f06701bbf7ec in libgetopts-45b52c2aaff9e689.rlib(getopts-45b52c2aaff9e689.x1xdb2luszpvb9a.rcgu.o)
                alloc::raw_vec::RawVec$LT$T$C$A$GT$::reserve_internal::h96bb07ab592d2734 in libgetopts-45b52c2aaff9e689.rlib(getopts-45b52c2aaff9e689.x1xdb2luszpvb9a.rcgu.o)
                alloc::raw_vec::RawVec$LT$T$C$A$GT$::reserve_internal::h9eb9efa606ae9dd0 in libgetopts-45b52c2aaff9e689.rlib(getopts-45b52c2aaff9e689.x1xdb2luszpvb9a.rcgu.o)
            "_$LT$core..iter..LoopState$LT$C$C$B$GT$$u20$as$u20$core..ops..try..Try$GT$::into_result::h4e3de2531a8ba8b2", referenced from:
                _$LT$core..slice..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$::try_fold::h6dde0ee9a9a83e3f in libgetopts-45b52c2aaff9e689.rlib(getopts-45b52c2aaff9e689.1eodrlfjtmp1ki6y.rcgu.o)
                _$LT$core..slice..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$::try_fold::hbd10f55c15e87b03 in libgetopts-45b52c2aaff9e689.rlib(getopts-45b52c2aaff9e689.1eodrlfjtmp1ki6y.rcgu.o)
            "core::ptr::_$LT$impl$u20$$BP$const$u20$T$GT$::is_null::h31f6a66de048deee", referenced from:
                _$LT$core..slice..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$::next::hee7f5cb272e8864b in libgetopts-45b52c2aaff9e689.rlib(getopts-45b52c2aaff9e689.1eodrlfjtmp1ki6y.rcgu.o)
                core::slice::_$LT$impl$u20$$u5b$T$u5d$$GT$::iter::hb4e4fee671654d1c in libgetopts-45b52c2aaff9e689.rlib(getopts-45b52c2aaff9e689.25xhkjdqgl59q6lt.rcgu.o)
            "_$LT$I$u20$as$u20$core..iter..traits..collect..IntoIterator$GT$::into_iter::hfc90073eb9873704", referenced from:
                getopts::Options::usage_items::_$u7b$$u7b$closure$u7d$$u7d$::h284ef2df7cdf5710 in libgetopts-45b52c2aaff9e689.rlib(getopts-45b52c2aaff9e689.22c90zad912daf5a.rcgu.o)
            "alloc::vec::Vec$LT$T$GT$::new::hc462009d97b92e67", referenced from:
                alloc::string::String::new::ha2c3e432576a0387 in libgetopts-45b52c2aaff9e689.rlib(getopts-45b52c2aaff9e689.3sjlppp2rnqupdlh.rcgu.o)
            "_$LT$core..iter..LoopState$LT$C$C$B$GT$$u20$as$u20$core..ops..try..Try$GT$::from_error::h810972c8936db661", referenced from:
                _$LT$core..slice..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$::try_fold::h6dde0ee9a9a83e3f in libgetopts-45b52c2aaff9e689.rlib(getopts-45b52c2aaff9e689.1eodrlfjtmp1ki6y.rcgu.o)
                _$LT$core..slice..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$::try_fold::hbd10f55c15e87b03 in libgetopts-45b52c2aaff9e689.rlib(getopts-45b52c2aaff9e689.1eodrlfjtmp1ki6y.rcgu.o)
            "core::str::next_code_point::h08ffacd3528a1c15", referenced from:
                _$LT$core..str..Chars$u20$as$u20$core..iter..traits..iterator..Iterator$GT$::next::hcbf0d425350edd31 in libgetopts-45b52c2aaff9e689.rlib(getopts-45b52c2aaff9e689.14302zzgzc0dm88x.rcgu.o)
            "core::result::Result$LT$T$C$E$GT$::expect::h9d9289672599406c", referenced from:
                _$LT$T$u20$as$u20$alloc..string..ToString$GT$::to_string::h4adf319ad5f8b8d5 in libgetopts-45b52c2aaff9e689.rlib(getopts-45b52c2aaff9e689.25xhkjdqgl59q6lt.rcgu.o)
            "core::result::Result$LT$T$C$E$GT$::unwrap::h7d073e4d25f9169d", referenced from:
                alloc::raw_vec::RawVec$LT$T$C$A$GT$::allocate_in::h02ac024a84b34c54 in libgetopts-45b52c2aaff9e689.rlib(getopts-45b52c2aaff9e689.x1xdb2luszpvb9a.rcgu.o)
                alloc::raw_vec::RawVec$LT$T$C$A$GT$::allocate_in::h209c74ea00e0bddb in libgetopts-45b52c2aaff9e689.rlib(getopts-45b52c2aaff9e689.x1xdb2luszpvb9a.rcgu.o)
                alloc::raw_vec::RawVec$LT$T$C$A$GT$::allocate_in::hf71aa8552cd2a8d2 in libgetopts-45b52c2aaff9e689.rlib(getopts-45b52c2aaff9e689.x1xdb2luszpvb9a.rcgu.o)
            "core::result::Result$LT$T$C$E$GT$::unwrap::h72edd783304f0340", referenced from:
                core::iter::traits::iterator::Iterator::fold::h138671674fb8cf5e in libgetopts-45b52c2aaff9e689.rlib(getopts-45b52c2aaff9e689.s0mnfj6syrrimsl.rcgu.o)
            "_$LT$T$u20$as$u20$core..convert..From$LT$T$GT$$GT$::from::h9cb2bab08c6b5f18", referenced from:
                _$LT$core..slice..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$::try_fold::h077d21e8d37c9367 in libgetopts-45b52c2aaff9e689.rlib(getopts-45b52c2aaff9e689.1eodrlfjtmp1ki6y.rcgu.o)
            "core::option::Option$LT$T$GT$::expect::h19a304a5582ee482", referenced from:
                alloc::str::join_generic_copy::h8b27729af1211ca4 in libgetopts-45b52c2aaff9e689.rlib(getopts-45b52c2aaff9e689.3dak4qqiwy172p73.rcgu.o)
            "core::ptr::_$LT$impl$u20$$BP$const$u20$T$GT$::wrapping_offset::hb14e6fab1cceb6f5", referenced from:
                _$LT$core..slice..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$::next::h3f222ae980428ef9 in libgetopts-45b52c2aaff9e689.rlib(getopts-45b52c2aaff9e689.1eodrlfjtmp1ki6y.rcgu.o)
                _$LT$core..slice..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$::next::h50c57a0651326514 in libgetopts-45b52c2aaff9e689.rlib(getopts-45b52c2aaff9e689.1eodrlfjtmp1ki6y.rcgu.o)
                _$LT$core..slice..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$::next::h6e9c1294721d22e3 in libgetopts-45b52c2aaff9e689.rlib(getopts-45b52c2aaff9e689.1eodrlfjtmp1ki6y.rcgu.o)
                _$LT$core..slice..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$::next::hd40db2387278252f in libgetopts-45b52c2aaff9e689.rlib(getopts-45b52c2aaff9e689.1eodrlfjtmp1ki6y.rcgu.o)
                _$LT$core..slice..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$::next::hee7f5cb272e8864b in libgetopts-45b52c2aaff9e689.rlib(getopts-45b52c2aaff9e689.1eodrlfjtmp1ki6y.rcgu.o)
                _$LT$core..slice..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$::try_fold::h077d21e8d37c9367 in libgetopts-45b52c2aaff9e689.rlib(getopts-45b52c2aaff9e689.1eodrlfjtmp1ki6y.rcgu.o)
                _$LT$core..slice..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$::try_fold::h11deeff803616160 in libgetopts-45b52c2aaff9e689.rlib(getopts-45b52c2aaff9e689.1eodrlfjtmp1ki6y.rcgu.o)
                ...
            "core::option::Option$LT$T$GT$::ok_or::hc7bd6a68e10b302c", referenced from:
                core::alloc::Layout::repeat::hf3cce47723285b1a in libgetopts-45b52c2aaff9e689.rlib(getopts-45b52c2aaff9e689.4w2kl2husa8fjuka.rcgu.o)
            "core::option::Option$LT$T$GT$::unwrap_or::he22606d42b51937f", referenced from:
                core::num::_$LT$impl$u20$usize$GT$::saturating_mul::h2c05447c9bfdc9c5 in libgetopts-45b52c2aaff9e689.rlib(getopts-45b52c2aaff9e689.2e74hvcivdr3rvuc.rcgu.o)
                _$LT$str$u20$as$u20$unicode_width..UnicodeWidthStr$GT$::width::_$u7b$$u7b$closure$u7d$$u7d$::he6c60eecc9e0b1b8 in libgetopts-45b52c2aaff9e689.rlib(getopts-45b52c2aaff9e689.3nyszcdrxbwar795.rcgu.o)
            "core::ptr::_$LT$impl$u20$$BP$mut$u20$T$GT$::add::hea1630374ba9e765", referenced from:
                core::slice::_$LT$impl$u20$$u5b$T$u5d$$GT$::split_at_mut::hbae6bf255d77cf80 in libgetopts-45b52c2aaff9e689.rlib(getopts-45b52c2aaff9e689.1eodrlfjtmp1ki6y.rcgu.o)
            "core::cmp::max::hb4e809f91230984b", referenced from:
                alloc::raw_vec::RawVec$LT$T$C$A$GT$::amortized_new_size::h25e41dd8f6ee67a7 in libgetopts-45b52c2aaff9e689.rlib(getopts-45b52c2aaff9e689.x1xdb2luszpvb9a.rcgu.o)
                alloc::raw_vec::RawVec$LT$T$C$A$GT$::amortized_new_size::h25e86854cd79b395 in libgetopts-45b52c2aaff9e689.rlib(getopts-45b52c2aaff9e689.x1xdb2luszpvb9a.rcgu.o)
                alloc::raw_vec::RawVec$LT$T$C$A$GT$::amortized_new_size::h4b8d3b98550998d5 in libgetopts-45b52c2aaff9e689.rlib(getopts-45b52c2aaff9e689.x1xdb2luszpvb9a.rcgu.o)
                alloc::raw_vec::RawVec$LT$T$C$A$GT$::amortized_new_size::h9bdd2d3dd09472c2 in libgetopts-45b52c2aaff9e689.rlib(getopts-45b52c2aaff9e689.x1xdb2luszpvb9a.rcgu.o)
                alloc::raw_vec::RawVec$LT$T$C$A$GT$::amortized_new_size::hc26c2ce5c3eb6c5c in libgetopts-45b52c2aaff9e689.rlib(getopts-45b52c2aaff9e689.x1xdb2luszpvb9a.rcgu.o)
            "core::slice::_$LT$impl$u20$$u5b$T$u5d$$GT$::as_mut_ptr::hbf52684983a481c9", referenced from:
                core::slice::_$LT$impl$u20$$u5b$T$u5d$$GT$::split_at_mut::hbae6bf255d77cf80 in libgetopts-45b52c2aaff9e689.rlib(getopts-45b52c2aaff9e689.1eodrlfjtmp1ki6y.rcgu.o)
            "core::option::Option$LT$T$GT$::ok_or::h594d9847a816ca47", referenced from:
                _$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Alloc$GT$::alloc_zeroed::hafe23eca6728b918 in libgetopts-45b52c2aaff9e689.rlib(getopts-45b52c2aaff9e689.2f3ve34zcsva6tt4.rcgu.o)
                _$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Alloc$GT$::alloc::h99c07fb300d8d283 in libgetopts-45b52c2aaff9e689.rlib(getopts-45b52c2aaff9e689.2f3ve34zcsva6tt4.rcgu.o)
                _$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Alloc$GT$::realloc::hb832c6b23c7cebda in libgetopts-45b52c2aaff9e689.rlib(getopts-45b52c2aaff9e689.2f3ve34zcsva6tt4.rcgu.o)
            "core::iter::range::_$LT$impl$u20$core..iter..traits..iterator..Iterator$u20$for$u20$core..ops..range..Range$LT$A$GT$$GT$::next::h7f8537f237617db9", referenced from:
                getopts::Options::usage_items::_$u7b$$u7b$closure$u7d$$u7d$::h284ef2df7cdf5710 in libgetopts-45b52c2aaff9e689.rlib(getopts-45b52c2aaff9e689.22c90zad912daf5a.rcgu.o)
            "core::slice::_$LT$impl$u20$$u5b$T$u5d$$GT$::is_empty::h912880ec9685e9a7", referenced from:
                core::char::methods::_$LT$impl$u20$char$GT$::encode_utf8::h494d15b7fa9ac5b1 in libgetopts-45b52c2aaff9e689.rlib(getopts-45b52c2aaff9e689.1brmg8wvg8hi85h.rcgu.o)
            "core::intrinsics::is_aligned_and_not_null::hb969411a0dcd8937", referenced from:
                core::slice::from_raw_parts_mut::ha895d9ea29c32f2d in libgetopts-45b52c2aaff9e689.rlib(getopts-45b52c2aaff9e689.1eodrlfjtmp1ki6y.rcgu.o)
            "core::option::Option$LT$T$GT$::unwrap::h687a5da44f01bf1f", referenced from:
                core::intrinsics::overlaps::hc5ea13e37b12c6b9 in libgetopts-45b52c2aaff9e689.rlib(getopts-45b52c2aaff9e689.1c4osy0y4bmlhmet.rcgu.o)
            "core::mem::size_of::h70744b83360179ed", referenced from:
                core::slice::from_raw_parts_mut::ha895d9ea29c32f2d in libgetopts-45b52c2aaff9e689.rlib(getopts-45b52c2aaff9e689.1eodrlfjtmp1ki6y.rcgu.o)
                alloc::vec::Vec$LT$T$GT$::capacity::h92baa0ba9e78348c in libgetopts-45b52c2aaff9e689.rlib(getopts-45b52c2aaff9e689.34kbofhunnjidke2.rcgu.o)
                alloc::raw_vec::alloc_guard::hac500f24dd05fada in libgetopts-45b52c2aaff9e689.rlib(getopts-45b52c2aaff9e689.3z7pb442lq2rfasb.rcgu.o)
                core::alloc::size_align::hd6cc5daafeaab7d3 in libgetopts-45b52c2aaff9e689.rlib(getopts-45b52c2aaff9e689.tvzybqu0rn9giz4.rcgu.o)
                core::alloc::Layout::array::_$u7b$$u7b$closure$u7d$$u7d$::h31f87b87af63b18f in libgetopts-45b52c2aaff9e689.rlib(getopts-45b52c2aaff9e689.tvzybqu0rn9giz4.rcgu.o)
                alloc::raw_vec::RawVec$LT$T$C$A$GT$::current_layout::hc41c4379c7659d12 in libgetopts-45b52c2aaff9e689.rlib(getopts-45b52c2aaff9e689.x1xdb2luszpvb9a.rcgu.o)
                alloc::raw_vec::RawVec$LT$T$C$A$GT$::dealloc_buffer::h8cd8a6222ce6c1a8 in libgetopts-45b52c2aaff9e689.rlib(getopts-45b52c2aaff9e689.x1xdb2luszpvb9a.rcgu.o)
                ...
            "_$LT$T$u20$as$u20$core..convert..From$LT$T$GT$$GT$::from::h7dcdb1b4e1cb941d", referenced from:
                alloc::raw_vec::RawVec$LT$T$C$A$GT$::reserve_internal::h0743432eb58cd612 in libgetopts-45b52c2aaff9e689.rlib(getopts-45b52c2aaff9e689.x1xdb2luszpvb9a.rcgu.o)
                alloc::raw_vec::RawVec$LT$T$C$A$GT$::reserve_internal::h62376b63c46331f0 in libgetopts-45b52c2aaff9e689.rlib(getopts-45b52c2aaff9e689.x1xdb2luszpvb9a.rcgu.o)
                alloc::raw_vec::RawVec$LT$T$C$A$GT$::reserve_internal::h92f6f06701bbf7ec in libgetopts-45b52c2aaff9e689.rlib(getopts-45b52c2aaff9e689.x1xdb2luszpvb9a.rcgu.o)
                alloc::raw_vec::RawVec$LT$T$C$A$GT$::reserve_internal::h96bb07ab592d2734 in libgetopts-45b52c2aaff9e689.rlib(getopts-45b52c2aaff9e689.x1xdb2luszpvb9a.rcgu.o)
                alloc::raw_vec::RawVec$LT$T$C$A$GT$::reserve_internal::h9eb9efa606ae9dd0 in libgetopts-45b52c2aaff9e689.rlib(getopts-45b52c2aaff9e689.x1xdb2luszpvb9a.rcgu.o)
                alloc::raw_vec::RawVec$LT$T$C$A$GT$::amortized_new_size::h25e41dd8f6ee67a7 in libgetopts-45b52c2aaff9e689.rlib(getopts-45b52c2aaff9e689.x1xdb2luszpvb9a.rcgu.o)
                alloc::raw_vec::RawVec$LT$T$C$A$GT$::amortized_new_size::h25e86854cd79b395 in libgetopts-45b52c2aaff9e689.rlib(getopts-45b52c2aaff9e689.x1xdb2luszpvb9a.rcgu.o)
                ...
            "core::slice::_$LT$impl$u20$$u5b$T$u5d$$GT$::get_unchecked_mut::hc3da6c00858a1035", referenced from:
                core::char::methods::_$LT$impl$u20$char$GT$::encode_utf8::h494d15b7fa9ac5b1 in libgetopts-45b52c2aaff9e689.rlib(getopts-45b52c2aaff9e689.1brmg8wvg8hi85h.rcgu.o)
            "_$LT$core..iter..LoopState$LT$C$C$B$GT$$u20$as$u20$core..cmp..PartialEq$GT$::eq::h24b003f5c7e80c14", referenced from:
                core::iter::traits::iterator::Iterator::any::h0ad09ab128e65ada in libgetopts-45b52c2aaff9e689.rlib(getopts-45b52c2aaff9e689.1eodrlfjtmp1ki6y.rcgu.o)
                core::iter::traits::iterator::Iterator::any::he6a8c17cb51b173b in libgetopts-45b52c2aaff9e689.rlib(getopts-45b52c2aaff9e689.1eodrlfjtmp1ki6y.rcgu.o)
            "_$LT$core..option..Option$LT$T$GT$$u20$as$u20$core..ops..try..Try$GT$::into_result::h1ee599dd2bf9f018", referenced from:
                _$LT$core..slice..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$::try_fold::h077d21e8d37c9367 in libgetopts-45b52c2aaff9e689.rlib(getopts-45b52c2aaff9e689.1eodrlfjtmp1ki6y.rcgu.o)
            "_$LT$core..ops..range..Range$LT$usize$GT$$u20$as$u20$core..slice..SliceIndex$LT$$u5b$T$u5d$$GT$$GT$::get_unchecked_mut::h8127e4929137285c", referenced from:
                core::slice::_$LT$impl$u20$$u5b$T$u5d$$GT$::get_unchecked_mut::h37b1768c3e32fddb in libgetopts-45b52c2aaff9e689.rlib(getopts-45b52c2aaff9e689.1eodrlfjtmp1ki6y.rcgu.o)
            "core::slice::from_raw_parts_mut::h30752eb4949fe576", referenced from:
                core::slice::_$LT$impl$u20$$u5b$T$u5d$$GT$::split_at_mut::hbae6bf255d77cf80 in libgetopts-45b52c2aaff9e689.rlib(getopts-45b52c2aaff9e689.1eodrlfjtmp1ki6y.rcgu.o)
            "core::option::Option$LT$T$GT$::map::h9fcd14c616a3f476", referenced from:
                _$LT$core..str..Chars$u20$as$u20$core..iter..traits..iterator..Iterator$GT$::next::hcbf0d425350edd31 in libgetopts-45b52c2aaff9e689.rlib(getopts-45b52c2aaff9e689.14302zzgzc0dm88x.rcgu.o)
            "core::fmt::ArgumentV1::new::he27e6e11675ae460", referenced from:
                core::char::methods::_$LT$impl$u20$char$GT$::encode_utf8::h494d15b7fa9ac5b1 in libgetopts-45b52c2aaff9e689.rlib(getopts-45b52c2aaff9e689.1brmg8wvg8hi85h.rcgu.o)
            "alloc::vec::Vec$LT$T$GT$::with_capacity::h4c483d8c08dd2648", referenced from:
                alloc::str::join_generic_copy::h8b27729af1211ca4 in libgetopts-45b52c2aaff9e689.rlib(getopts-45b52c2aaff9e689.3dak4qqiwy172p73.rcgu.o)
            "_$LT$$RF$T$u20$as$u20$core..fmt..Debug$GT$::fmt::hc095cc20a601c01a", referenced from:
                l_anon.08f4d190296540a47a17bb4ebb884768.35 in libgetopts-45b52c2aaff9e689.rlib(getopts-45b52c2aaff9e689.1kczxwl8hmq7fci7.rcgu.o)
            "_$LT$$RF$T$u20$as$u20$core..fmt..Display$GT$::fmt::h1d89dade805f6d08", referenced from:
                getopts::Options::short_usage::ha93da9aab723e7d8 in libgetopts-45b52c2aaff9e689.rlib(getopts-45b52c2aaff9e689.1kczxwl8hmq7fci7.rcgu.o)
                getopts::Matches::opt_vals::h73946ac8d0aa8199 in libgetopts-45b52c2aaff9e689.rlib(getopts-45b52c2aaff9e689.1kczxwl8hmq7fci7.rcgu.o)
                getopts::Options::usage::_$u7b$$u7b$closure$u7d$$u7d$::h055d7aa44b3eb731 in libgetopts-45b52c2aaff9e689.rlib(getopts-45b52c2aaff9e689.22c90zad912daf5a.rcgu.o)
            "core::slice::_$LT$impl$u20$$u5b$T$u5d$$GT$::get_unchecked_mut::h9e85a131413725d0", referenced from:
                core::char::methods::_$LT$impl$u20$char$GT$::encode_utf8::h494d15b7fa9ac5b1 in libgetopts-45b52c2aaff9e689.rlib(getopts-45b52c2aaff9e689.1brmg8wvg8hi85h.rcgu.o)
            "core::fmt::ArgumentV1::new::h7a9673f34a501075", referenced from:
                _$LT$alloc..vec..Vec$LT$T$GT$$u20$as$u20$alloc..vec..SpecExtend$LT$T$C$I$GT$$GT$::spec_extend::h1f7d0a98fb0a7f64 in libgetopts-45b52c2aaff9e689.rlib(getopts-45b52c2aaff9e689.34kbofhunnjidke2.rcgu.o)
                _$LT$alloc..vec..Vec$LT$T$GT$$u20$as$u20$alloc..vec..SpecExtend$LT$T$C$I$GT$$GT$::spec_extend::h5800566c2c1c8247 in libgetopts-45b52c2aaff9e689.rlib(getopts-45b52c2aaff9e689.34kbofhunnjidke2.rcgu.o)
                _$LT$alloc..vec..Vec$LT$T$GT$$u20$as$u20$alloc..vec..SpecExtend$LT$T$C$I$GT$$GT$::spec_extend::hb0e888f3acd000ae in libgetopts-45b52c2aaff9e689.rlib(getopts-45b52c2aaff9e689.34kbofhunnjidke2.rcgu.o)
            "_$LT$alloc..vec..Vec$LT$T$GT$$u20$as$u20$core..ops..drop..Drop$GT$::drop::h8292aa992f93eb1b", referenced from:
                core::ptr::real_drop_in_place::he1c0cae7302a6892 in libgetopts-45b52c2aaff9e689.rlib(getopts-45b52c2aaff9e689.1wt6095x8qssn89j.rcgu.o)
            "_$LT$core..result..Result$LT$T$C$E$GT$$u20$as$u20$core..ops..try..Try$GT$::from_error::h7c0f84ad957bfa39", referenced from:
                alloc::raw_vec::RawVec$LT$T$C$A$GT$::amortized_new_size::h25e41dd8f6ee67a7 in libgetopts-45b52c2aaff9e689.rlib(getopts-45b52c2aaff9e689.x1xdb2luszpvb9a.rcgu.o)
                alloc::raw_vec::RawVec$LT$T$C$A$GT$::amortized_new_size::h25e86854cd79b395 in libgetopts-45b52c2aaff9e689.rlib(getopts-45b52c2aaff9e689.x1xdb2luszpvb9a.rcgu.o)
                alloc::raw_vec::RawVec$LT$T$C$A$GT$::amortized_new_size::h4b8d3b98550998d5 in libgetopts-45b52c2aaff9e689.rlib(getopts-45b52c2aaff9e689.x1xdb2luszpvb9a.rcgu.o)
                alloc::raw_vec::RawVec$LT$T$C$A$GT$::amortized_new_size::h9bdd2d3dd09472c2 in libgetopts-45b52c2aaff9e689.rlib(getopts-45b52c2aaff9e689.x1xdb2luszpvb9a.rcgu.o)
                alloc::raw_vec::RawVec$LT$T$C$A$GT$::amortized_new_size::hc26c2ce5c3eb6c5c in libgetopts-45b52c2aaff9e689.rlib(getopts-45b52c2aaff9e689.x1xdb2luszpvb9a.rcgu.o)
            "alloc::slice::_$LT$impl$u20$$u5b$T$u5d$$GT$::into_vec::hdb5f0a3b7279869c", referenced from:
                alloc::str::join_generic_copy::h8b27729af1211ca4 in libgetopts-45b52c2aaff9e689.rlib(getopts-45b52c2aaff9e689.3dak4qqiwy172p73.rcgu.o)
            "_$LT$core..result..Result$LT$T$C$E$GT$$u20$as$u20$core..ops..try..Try$GT$::from_ok::h6353f17a3ec7cc89", referenced from:
                _$LT$core..iter..adapters..Take$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$::try_fold::ha03256a4b578e576 in libgetopts-45b52c2aaff9e689.rlib(getopts-45b52c2aaff9e689.11saxzouilhs5cro.rcgu.o)
                core::iter::traits::iterator::Iterator::try_fold::hc46de36d5818263f in libgetopts-45b52c2aaff9e689.rlib(getopts-45b52c2aaff9e689.34kbofhunnjidke2.rcgu.o)
                core::iter::LoopState$LT$$LT$R$u20$as$u20$core..ops..try..Try$GT$..Ok$C$R$GT$::into_try::hadb6d19ef522d7f0 in libgetopts-45b52c2aaff9e689.rlib(getopts-45b52c2aaff9e689.3ocftim58jpsiho8.rcgu.o)
            "core::option::Option$LT$T$GT$::ok_or::h642708d766492c77", referenced from:
                alloc::raw_vec::RawVec$LT$T$C$A$GT$::reserve_internal::h0743432eb58cd612 in libgetopts-45b52c2aaff9e689.rlib(getopts-45b52c2aaff9e689.x1xdb2luszpvb9a.rcgu.o)
                alloc::raw_vec::RawVec$LT$T$C$A$GT$::reserve_internal::h62376b63c46331f0 in libgetopts-45b52c2aaff9e689.rlib(getopts-45b52c2aaff9e689.x1xdb2luszpvb9a.rcgu.o)
                alloc::raw_vec::RawVec$LT$T$C$A$GT$::reserve_internal::h92f6f06701bbf7ec in libgetopts-45b52c2aaff9e689.rlib(getopts-45b52c2aaff9e689.x1xdb2luszpvb9a.rcgu.o)
                alloc::raw_vec::RawVec$LT$T$C$A$GT$::reserve_internal::h96bb07ab592d2734 in libgetopts-45b52c2aaff9e689.rlib(getopts-45b52c2aaff9e689.x1xdb2luszpvb9a.rcgu.o)
                alloc::raw_vec::RawVec$LT$T$C$A$GT$::reserve_internal::h9eb9efa606ae9dd0 in libgetopts-45b52c2aaff9e689.rlib(getopts-45b52c2aaff9e689.x1xdb2luszpvb9a.rcgu.o)
                alloc::raw_vec::RawVec$LT$T$C$A$GT$::amortized_new_size::h25e41dd8f6ee67a7 in libgetopts-45b52c2aaff9e689.rlib(getopts-45b52c2aaff9e689.x1xdb2luszpvb9a.rcgu.o)
                alloc::raw_vec::RawVec$LT$T$C$A$GT$::amortized_new_size::h25e86854cd79b395 in libgetopts-45b52c2aaff9e689.rlib(getopts-45b52c2aaff9e689.x1xdb2luszpvb9a.rcgu.o)
                ...
            "core::mem::align_of::hf35e6c6fdd75faa6", referenced from:
                core::ptr::non_null::NonNull$LT$T$GT$::dangling::he093f85c015811ad in libgetopts-45b52c2aaff9e689.rlib(getopts-45b52c2aaff9e689.44q5jydbkicvid30.rcgu.o)
                core::alloc::size_align::h38aa0924b1acb3df in libgetopts-45b52c2aaff9e689.rlib(getopts-45b52c2aaff9e689.tvzybqu0rn9giz4.rcgu.o)
                alloc::raw_vec::RawVec$LT$T$C$A$GT$::allocate_in::hf71aa8552cd2a8d2 in libgetopts-45b52c2aaff9e689.rlib(getopts-45b52c2aaff9e689.x1xdb2luszpvb9a.rcgu.o)
                alloc::raw_vec::RawVec$LT$T$C$A$GT$::current_layout::h2a3796ed4378a11d in libgetopts-45b52c2aaff9e689.rlib(getopts-45b52c2aaff9e689.x1xdb2luszpvb9a.rcgu.o)
            "core::slice::_$LT$impl$u20$$u5b$T$u5d$$GT$::len::h584b523da2d6bbed", referenced from:
                core::str::_$LT$impl$u20$str$GT$::len::hb02cd26da64488db in libgetopts-45b52c2aaff9e689.rlib(getopts-45b52c2aaff9e689.14302zzgzc0dm88x.rcgu.o)
                core::char::methods::_$LT$impl$u20$char$GT$::encode_utf8::h494d15b7fa9ac5b1 in libgetopts-45b52c2aaff9e689.rlib(getopts-45b52c2aaff9e689.1brmg8wvg8hi85h.rcgu.o)
                core::slice::_$LT$impl$u20$$u5b$T$u5d$$GT$::split_at_mut::hbae6bf255d77cf80 in libgetopts-45b52c2aaff9e689.rlib(getopts-45b52c2aaff9e689.1eodrlfjtmp1ki6y.rcgu.o)
                alloc::str::join_generic_copy::h8b27729af1211ca4 in libgetopts-45b52c2aaff9e689.rlib(getopts-45b52c2aaff9e689.3dak4qqiwy172p73.rcgu.o)
                alloc::str::join_generic_copy::_$u7b$$u7b$closure$u7d$$u7d$::_$u7b$$u7b$closure$u7d$$u7d$::h9f77cf18da6dee60 in libgetopts-45b52c2aaff9e689.rlib(getopts-45b52c2aaff9e689.3dak4qqiwy172p73.rcgu.o)
            "core::fmt::ArgumentV1::new::h205e29a724030fdd", referenced from:
                core::char::methods::_$LT$impl$u20$char$GT$::encode_utf8::h494d15b7fa9ac5b1 in libgetopts-45b52c2aaff9e689.rlib(getopts-45b52c2aaff9e689.1brmg8wvg8hi85h.rcgu.o)
            "_$LT$core..option..Option$LT$T$GT$$u20$as$u20$core..ops..try..Try$GT$::from_error::haf46418edbab87de", referenced from:
                _$LT$core..slice..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$::try_fold::h077d21e8d37c9367 in libgetopts-45b52c2aaff9e689.rlib(getopts-45b52c2aaff9e689.1eodrlfjtmp1ki6y.rcgu.o)
            "_$LT$T$u20$as$u20$core..convert..From$LT$T$GT$$GT$::from::h25a6a56d0eea3402", referenced from:
                core::alloc::Layout::repeat::hf3cce47723285b1a in libgetopts-45b52c2aaff9e689.rlib(getopts-45b52c2aaff9e689.4w2kl2husa8fjuka.rcgu.o)
            "core::slice::_$LT$impl$u20$$u5b$T$u5d$$GT$::iter::hb601f68fbe1b118e", referenced from:
                core::str::_$LT$impl$u20$str$GT$::chars::h0e217d5378e421a2 in libgetopts-45b52c2aaff9e689.rlib(getopts-45b52c2aaff9e689.14302zzgzc0dm88x.rcgu.o)
            "core::result::Result$LT$T$C$E$GT$::is_ok::h9f19eec5ef1147da", referenced from:
                core::alloc::Layout::new::h1cc064d09f1f1c5d in libgetopts-45b52c2aaff9e689.rlib(getopts-45b52c2aaff9e689.tvzybqu0rn9giz4.rcgu.o)
                core::alloc::Layout::new::h2055d735d3a93817 in libgetopts-45b52c2aaff9e689.rlib(getopts-45b52c2aaff9e689.tvzybqu0rn9giz4.rcgu.o)
                core::alloc::Layout::new::h44a9b6c78cb6200b in libgetopts-45b52c2aaff9e689.rlib(getopts-45b52c2aaff9e689.tvzybqu0rn9giz4.rcgu.o)
                core::alloc::Layout::new::h4d55b1b677e06861 in libgetopts-45b52c2aaff9e689.rlib(getopts-45b52c2aaff9e689.tvzybqu0rn9giz4.rcgu.o)
                core::alloc::Layout::new::he71184bf634b62b0 in libgetopts-45b52c2aaff9e689.rlib(getopts-45b52c2aaff9e689.tvzybqu0rn9giz4.rcgu.o)
            "alloc::vec::Vec$LT$T$GT$::set_len::h6fa91ae890a0ebf3", referenced from:
                alloc::str::join_generic_copy::h8b27729af1211ca4 in libgetopts-45b52c2aaff9e689.rlib(getopts-45b52c2aaff9e689.3dak4qqiwy172p73.rcgu.o)
            "alloc::slice::_$LT$impl$u20$alloc..borrow..ToOwned$u20$for$u20$$u5b$T$u5d$$GT$::to_owned::h50bd6892cd67e1ea", referenced from:
                alloc::str::_$LT$impl$u20$alloc..borrow..ToOwned$u20$for$u20$str$GT$::to_owned::h778f3dea29ce4df4 in libgetopts-45b52c2aaff9e689.rlib(getopts-45b52c2aaff9e689.2tohup2vj7s6a049.rcgu.o)
            "core::intrinsics::is_aligned_and_not_null::hd3b20b22b1ba7633", referenced from:
                core::slice::from_raw_parts::h8c2d6f094e415a80 in libgetopts-45b52c2aaff9e689.rlib(getopts-45b52c2aaff9e689.1eodrlfjtmp1ki6y.rcgu.o)
                core::slice::from_raw_parts_mut::h0a59fd3756576a5c in libgetopts-45b52c2aaff9e689.rlib(getopts-45b52c2aaff9e689.1eodrlfjtmp1ki6y.rcgu.o)
          ld: symbol(s) not found for architecture x86_64
          clang: error: linker command failed with exit code 1 (use -v to see invocation)
          

error: aborting due to previous error

error: could not compile `test`.

To learn more, run the command again with --verbose.
@jonas-schievink jonas-schievink added A-libtest Area: #[test] related A-linkage Area: linking into static, shared libraries and binaries C-bug Category: This is a bug. I-nominated T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. labels Sep 28, 2019
@bjorn3
Copy link
Member Author

bjorn3 commented Sep 28, 2019

When replacing getopts/src/lib.rs with #[derive(Debug)] enum Name { Short(char) } and replacing libtest/lib.rs with use getopts;, it still fails to link with:

error: linking with `cc` failed: exit code: 1
  |
  = note: "cc" "-m64" "-L" "/Users/bjorn/.rustup/toolchains/nightly-x86_64-apple-darwin/lib/rustlib/x86_64-apple-darwin/lib" "/Users/bjorn/Documents/rustc_codegen_cranelift/build_sysroot/target/debug/deps/test.4ovhqzay5djkkv45.rcgu.o" "-o" "/Users/bjorn/Documents/rustc_codegen_cranelift/build_sysroot/target/debug/deps/libtest.dylib" "-Wl,-exported_symbols_list,/var/folders/pr/dsmnz7795h18nncdpws5d9h00000gp/T/rustc8q1pCg/list" "/Users/bjorn/Documents/rustc_codegen_cranelift/build_sysroot/target/debug/deps/test.4efq6d1me4ylpya9.rcgu.o" "-Wl,-dead_strip" "-nodefaultlibs" "-L" "/Users/bjorn/Documents/rustc_codegen_cranelift/build_sysroot/target/debug/deps" "-L" "/Users/bjorn/Documents/rustc_codegen_cranelift/build_sysroot/target/debug/build/backtrace-sys-76a10846402b651c/out" "-L" "/Users/bjorn/.rustup/toolchains/nightly-x86_64-apple-darwin/lib/rustlib/x86_64-apple-darwin/lib" "-Wl,-force_load" "-Wl,/var/folders/pr/dsmnz7795h18nncdpws5d9h00000gp/T/rustc8q1pCg/libgetopts-45b52c2aaff9e689.rlib" "-Wl,-force_load" "-Wl,/var/folders/pr/dsmnz7795h18nncdpws5d9h00000gp/T/rustc8q1pCg/libunicode_width-455d06287369bcce.rlib" "-Wl,-force_load" "-Wl,/var/folders/pr/dsmnz7795h18nncdpws5d9h00000gp/T/rustc8q1pCg/librustc_std_workspace_std-c5d4248dcba5f655.rlib" "-L" "/Users/bjorn/Documents/rustc_codegen_cranelift/build_sysroot/target/debug/deps" "-lstd" "/var/folders/pr/dsmnz7795h18nncdpws5d9h00000gp/T/rustc8q1pCg/libcompiler_builtins-825863beebf37c8c.rlib" "-lSystem" "-lresolv" "-lc" "-lm" "-dynamiclib" "-Wl,-dylib"
  = note: Undefined symbols for architecture x86_64:
            "_$LT$$RF$T$u20$as$u20$core..fmt..Debug$GT$::fmt::hc095cc20a601c01a", referenced from:
                l_anon.70a160287dcd40dee570aa25e956b0d9.1 in libgetopts-45b52c2aaff9e689.rlib(getopts-45b52c2aaff9e689.1kczxwl8hmq7fci7.rcgu.o)
          ld: symbol(s) not found for architecture x86_64
          clang: error: linker command failed with exit code 1 (use -v to see invocation)

@bjorn3
Copy link
Member Author

bjorn3 commented Sep 28, 2019

It fails to link on macOS. It works fine on Linux however. I haven't tested it on Windows.

@bjorn3 bjorn3 changed the title linking of libtest failed [macOS] linking of libtest failed Sep 28, 2019
@bjorn3
Copy link
Member Author

bjorn3 commented Sep 28, 2019

@rustbot modify labels: +O-macos

@rustbot rustbot added the O-macos Operating system: macOS label Sep 28, 2019
@bjorn3 bjorn3 changed the title [macOS] linking of libtest failed linking of libtest failed Sep 28, 2019
@pnkfelix
Copy link
Member

pnkfelix commented Oct 3, 2019

triage: P-high for now (until I can prove to myself it deserves lower priority). Removing I-nominated label. Assigning to self.

cc @alexcrichton and @michaelwoerister

@pnkfelix pnkfelix added P-high High priority and removed I-nominated labels Oct 3, 2019
@pnkfelix pnkfelix self-assigned this Oct 3, 2019
@alexcrichton
Copy link
Member

Would it be possible to get a reduced test case that involves just poking around rustc to work with?

@bjorn3
Copy link
Member Author

bjorn3 commented Oct 3, 2019

@alexcrichton #64872 (comment) has been my reduced test case for now. I tried to reproduce it with a standalone example, but I failed. I may be able to reduce it more in a few days, when I get to use a macOS again.

@alexcrichton
Copy link
Member

Ah true yeah, but I'm also curious if this can be reproduced without using the cranelift backend, because it seems like this could be a bug in that backend vs in the common shared code?

@bjorn3
Copy link
Member Author

bjorn3 commented Oct 3, 2019

It can be reproduced without the cranelift backend. I thought that it was a bug in the cranelift backend at first, but when I couldn't find a difference between cg_llvm and cg_clif, I tried to use cg_llvm, which failed too. Running cargo build is enough. I linked to the cg_clif repo, because I know that that specific setup to compile libtest fails.

@alexcrichton
Copy link
Member

Ok I want to poke around, but it doesn't currently reproduce because patches fail. Would it be possible to fix that and/or try to reduce further to not require a bunch of rustup stuff and patching sysroot files directly?

@bjorn3
Copy link
Member Author

bjorn3 commented Oct 3, 2019

I am not sure if those patches are actually required to reproduce the problem. I am currently working on fixing the patches though.

@bjorn3
Copy link
Member Author

bjorn3 commented Oct 3, 2019

Pushed a new set of patches.

@bjorn3
Copy link
Member Author

bjorn3 commented Oct 6, 2019

The patches are not necessary. I have uploaded a repro with just the necessary Cargo.toml and a script to fetch the sysroot src at https://github.com/bjorn3/rust_issue_64872_repro.

@alexcrichton
Copy link
Member

Sorry I do not have time to continue to investigate this and help minifying, but wanted to be sure to say so.

@bjorn3
Copy link
Member Author

bjorn3 commented Oct 15, 2019

No problem. I will try to minify it myself once I have time to do so.

@pnkfelix
Copy link
Member

I've reproduced the issue via the repository @bjorn3 linked above. I'll see if I can do any mini-fication.

@pnkfelix
Copy link
Member

nominating for discussion: I want T-compiler to consider whether, in the short term, we should revert PR #64324 as a way to address this bug.

(It seems to me like the risks of linker errors due to mixed optimization levels are less than the risks presented here in this ticket, and that is an argument for reverting #64324 in the short term.)

In the meantime I will continue to investigate the bug independently, but the higher level bit of whether to revert seems worth discussion.

@pnkfelix
Copy link
Member

discussed in yesterdays T-compiler meeting. There was some support for hypothetically reverting PR #64324 in the short term. But there was also concern that no one would do the follow-up work afterward, and also that it would be a shame to lose the various improvements we got from PR #64324

Overall we decided to leave this nominated to be revisited next week, and in the meantime I will try to minimize the bug and maybe identify what its root cause is.

@pnkfelix
Copy link
Member

I spent some time today working to minimize the input that stills sees a linker failure.

Here's what I've gotten down to so far:

// libtest/src/lib.rs
#![crate_name = "test"]
extern crate getopts;
// getopts/src/lib.rs
#[derive(Debug)]
enum Name { _Short(u32) }
// libstd/lib.rs
#![no_std]

#![feature(needs_panic_runtime)]
#![needs_panic_runtime]

#![feature(lang_items)]

#![feature(rustc_attrs)]
#![feature(alloc_error_handler)]
#![feature(allocator_internals)]

#![default_lib_allocator]

extern crate alloc as alloc_crate;

use core::panic::PanicInfo;

#[panic_handler]
pub fn rust_begin_panic(_info: &PanicInfo<'_>) -> ! {
    loop { }
}

pub mod prelude {
    pub mod v1 {
        pub use core::prelude::v1::{Debug};
    }
}

use alloc_crate::alloc::Layout;

#[alloc_error_handler]
pub fn rust_oom(_layout: Layout) -> ! { loop { } }

#[rustc_std_internal_symbol]
pub unsafe extern fn __rdl_alloc(_size: usize, _align: usize) -> *mut u8 { loop { } }

#[rustc_std_internal_symbol]
pub unsafe extern fn __rdl_dealloc(_ptr: *mut u8,
                                   _size: usize,
                                   _align: usize) { loop { } }

#[rustc_std_internal_symbol]
pub unsafe extern fn __rdl_realloc(_ptr: *mut u8,
                                   _old_size: usize,
                                   _align: usize,
                                   _new_size: usize) -> *mut u8 { loop { } }

#[rustc_std_internal_symbol]
pub unsafe extern fn __rdl_alloc_zeroed(_size: usize, _align: usize) -> *mut u8 { loop { } }

(And I confirmed that this is still tickling the same bug, because when I change the Cargo.toml for libstd to say crate-type = ["cdylib", "rlib"] instead of crate-type = ["dylib", "rlib"], it compiles without a linker error.)

@pnkfelix
Copy link
Member

pnkfelix commented Oct 23, 2019

More data: I've reduced all of libcore, libstd, getopts, libtests, and the crate using them down to something really small. (I'll put the reduced test case up in its own repo, or a gist, later today...)

It seems like the problem here manifests itself when both libcore and getopts have a derive(Debug) on a struct with a field of the same type. In my particular minification, the two crates both have structs that eventually get to a field of type u32.

if you eliminate that commonality, then the linking proceeds successfully.

This makes me hypothesize that the bug here might be something where the compilation of the downstream crate (getopts here) is able to see that there was a monomorphization of fmt::Debug for u32 (or maybe &u32, not certain), and so the compiler decides that getopts should be able to link to that rather than generate its own monomorphization of fmt::Debug for the same type

  • Further reduction indicates that the problem has something to do with linking to the code generated for &u as &dyn fmt::Debug, as described in my readme

@michaelwoerister
Copy link
Member

michaelwoerister commented Oct 23, 2019

@pnkfelix Can you take a look at the symbols defined in the upstream crate? Is the missing function present there (but maybe as a local symbol). nm should do the trick.

@michaelwoerister
Copy link
Member

(And I confirmed that this is still tickling the same bug, because when I change the Cargo.toml for libstd to say crate-type = ["cdylib", "rlib"] instead of crate-type = ["dylib", "rlib"], it compiles without a linker error.)

This sounds like rustc assuming that it can re-use a monomorphization from a Rust dylib, even though that isn't possible anymore since #64324. Maybe it has something to do with libstd being available both as rlib and as dylib? (cc @alexcrichton)

pnkfelix added a commit to pnkfelix/rust_issue_64872_repro that referenced this issue Oct 23, 2019
@pnkfelix
Copy link
Member

@michaelwoerister here is some nm output:

% nm -m target/debug/deps/libstd.dylib 
0000000000000f50 (__TEXT,__text) non-external (was a private external) __ZN4core18real_drop_in_place17h4b4dd2bb45fd3677E
0000000000000f60 (__TEXT,__text) non-external (was a private external) __ZN4core6Object6method17h3c307b2b614e132dE
0000000000000f20 (__TEXT,__text) external __ZN4core6unused17hd61432153ff90e94E
0000000000000ea0 (__TEXT,__text) external ___rdl_alloc
0000000000000f00 (__TEXT,__text) external ___rdl_alloc_zeroed
0000000000000ec0 (__TEXT,__text) external ___rdl_dealloc
0000000000000ee0 (__TEXT,__text) external ___rdl_realloc
0000000000000f70 (__TEXT,__text) non-external (was a private external) ___rust_probestack
0000000000000e80 (__TEXT,__text) external _rust_eh_personality
0000000000001020 (__DATA,.rustc) external _rust_metadata_std_c479832d91af15fa73418ccc139c3e9
                 (undefined) external dyld_stub_binder (from libSystem)
% 

For this reduction, the symbol we are looking for is __ZN4core6Object6method17h3c307b2b614e132dE, so that does seem to confirm the hypothesis that rustc is making assumptions about what monomorphizations (or vtables? Take a look at my minimization, linked above) it can re-use.

@pnkfelix
Copy link
Member

@michaelwoerister wrote:

Maybe it has something to do with libstd being available both as rlib and as dylib?

I don't think this explains it. I tried removing rlib from all the crate-type settings in the Cargo.tomls (so that they all say crate-type = ["dyllb"]), and the bug still reproduces then.

@pnkfelix
Copy link
Member

There was further discussion with @michaelwoerister and @alexcrichton on zulip. I think I'll have a patch up today that should address the problem here, hopefully without causing any problems anywhere else.

@nikomatsakis
Copy link
Contributor

Removing nomination label since it seems like this is in hand.

@pnkfelix
Copy link
Member

By the way, @alexcrichton and I managed to construct a very nice minimized version of the bug here: https://gist.github.com/alexcrichton/b3ba3becdf2009973270d2aef3453670

pnkfelix added a commit to pnkfelix/rust that referenced this issue Oct 30, 2019
they will be statically linked.

In the particular case of rust-lang#64872, we get burned by an
attempt to link to a monomorphization in libcore.rlib that ends up not
being exported by libstd.dylib. (For that scenario, the attempt to
lookup the linkage returns `None`, which led us terribly astray.)
(That scenario is encoded in a test in a follow-on commit.)

Also added some `log::info` output for the `None` case, because I want
easy access in all of our builds to inspect what goes on in this
logic.

In response to review feedback, I had tried to revise the fix to be
more nuanced in handling of `None` (i.e., the case which I've
previously asserted to be "unknown linkage"). Alex's take on matters
is that we should use the output crate type to determine what format
the dependency here will have. However, further testing showed that
approach to be flawed.

So I added debugflag: `-Z share-generics-for-unknown-linkage`, to make
it easy to recover the earlier behavior (which I nonetheless assert to
be buggy in general), and use that flag to keep one of our codegen
tests working.
@pnkfelix pnkfelix added the regression-from-stable-to-beta Performance or correctness regression from stable to beta. label Oct 31, 2019
@pnkfelix
Copy link
Member

(based on my further testing, this is readily reproducible without using any unstable features, and thus is a stable-to-beta regression. See discussion in #65781 )

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-libtest Area: #[test] related A-linkage Area: linking into static, shared libraries and binaries C-bug Category: This is a bug. O-macos Operating system: macOS P-high High priority regression-from-stable-to-beta Performance or correctness regression from stable to beta. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue.
Projects
None yet
7 participants