Skip to content

undefined reference to linker error when using dylibs #82151

Closed

Description

@alexkornitzer

When including mongodb (2.0.0-alpha) into a dylib'd crate that is included in an application, the linker is failing to resolve all references. It is fine when using mongodb (1.0) which makes me think this is something that tokio 1.0 is bringing to light.

This seems similar to #67276 except the workarounds it suggested at the time do not work.

Code

Due to the nature of this making a truly small example is quite challenging, I assume isolating tokio 1.2 out might work? But anyway for now, an repo for the example is here:

https://github.com/alexkornitzer/dylib-errors/tree/error/mongodb

Meta

rustc --version --verbose:

rustc 1.50.0 (cb75ad5db 2021-02-10)
binary: rustc
commit-hash: cb75ad5db02783e8b0222fee363c5f63f7e2cf5b
commit-date: 2021-02-10
host: x86_64-unknown-linux-gnu
release: 1.50.0

Error output

Click to see (large) error output
error: linking with `cc` failed: exit code: 1
  |
  = note: "cc" "-Wl,--as-needed" "-Wl,-z,noexecstack" "-m64" "-Wl,--eh-frame-hdr" "-L" "/home/alex/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib" "/tmp/dylib-errors/target/debug/deps/serverctl-075ec1ba25a9db57.1itguawvaqi4tz09.rcgu.o" "/tmp/dylib-errors/target/debug/deps/serverctl-075ec1ba25a9db57.2e2vi1eic3cq1uv0.rcgu.o" "/tmp/dylib-errors/target/debug/deps/serverctl-075ec1ba25a9db57.2xnsa9e8fo0f3vfx.rcgu.o" "/tmp/dylib-errors/target/debug/deps/serverctl-075ec1ba25a9db57.381d3dpcz550aiga.rcgu.o" "/tmp/dylib-errors/target/debug/deps/serverctl-075ec1ba25a9db57.439rmo5cmtvxqijq.rcgu.o" "/tmp/dylib-errors/target/debug/deps/serverctl-075ec1ba25a9db57.m2w4nr06rairzye.rcgu.o" "-o" "/tmp/dylib-errors/target/debug/deps/serverctl-075ec1ba25a9db57" "-Wl,--gc-sections" "-pie" "-Wl,-zrelro" "-Wl,-znow" "-nodefaultlibs" "-L" "/tmp/dylib-errors/target/debug/deps" "-L" "/tmp/dylib-errors/target/debug/build/nng-sys-f3e266d23dd4e472/out/lib" "-L" "/tmp/dylib-errors/target/debug/build/nng-sys-f3e266d23dd4e472/out/lib64" "-L" "/tmp/dylib-errors/target/debug/build/ring-bb20fb99fa6aa7fb/out" "-L" "/home/alex/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib" "-L" "/tmp/dylib-errors/target/debug/deps" "-lshared" "-L" "/tmp/dylib-errors/target/debug/deps" "-lhyper-76617ad6dff947a6" "-Wl,-Bstatic" "/tmp/dylib-errors/target/debug/deps/libenv_logger-a71078fee9c4b7c4.rlib" "/tmp/dylib-errors/target/debug/deps/libtermcolor-a5f039500e7d00fb.rlib" "/tmp/dylib-errors/target/debug/deps/libatty-19a75323732422a2.rlib" "/tmp/dylib-errors/target/debug/deps/libhumantime-96e834ce26cdaa11.rlib" "/tmp/dylib-errors/target/debug/deps/libregex-9283b86347eb36d1.rlib" "/tmp/dylib-errors/target/debug/deps/libthread_local-a7feb37262151fce.rlib" "/tmp/dylib-errors/target/debug/deps/libregex_syntax-a1379624b565cc38.rlib" "/tmp/dylib-errors/target/debug/deps/libaho_corasick-6617b386ca598d8a.rlib" "-Wl,--start-group" "-L" "/home/alex/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib" "-Wl,-Bdynamic" "-lstd-6f77337c1826707d" "-Wl,--end-group" "-Wl,-Bstatic" "/home/alex/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcompiler_builtins-d36087076e1dd756.rlib" "-Wl,-Bdynamic" "-lgcc_s" "-lutil" "-lrt" "-lpthread" "-lm" "-ldl" "-lc"
  = note: /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `<hyper::proto::h2::client::ClientTask<B> as core::future::future::Future>::poll::CALLSITE'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `core::ptr::drop_in_place'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `hyper::headers::set_content_length_if_missing'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `hyper::error::Error::new_body_write_aborted'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `core::ptr::drop_in_place'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `hyper::body::body::Body::h2'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `hyper::proto::h1::conn::Conn<I,B,T>::poll_read_head::CALLSITE'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `hyper::proto::h1::role::parse_headers::CALLSITE'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `hyper::proto::h1::conn::Conn<I,B,T>::poll_shutdown::CALLSITE'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `core::ptr::drop_in_place'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `<hyper::client::pool::Checkout<T> as core::ops::drop::Drop>::drop::CALLSITE'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `hyper::error::Error::new_closed'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `alloc::vec::Vec<T>::with_capacity'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `hyper::client::pool::Expiration::expires'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `core::ptr::drop_in_place'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `core::option::Option<T>::is_some'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `<hashbrown::raw::RawIterHash<T> as core::iter::traits::iterator::Iterator>::next'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `<hyper::client::connect::http::ConnectError as core::fmt::Display>::fmt'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `hyper::client::connect::http::get_host_port'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `core::ptr::drop_in_place'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `core::ptr::drop_in_place'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `core::ptr::drop_in_place'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `hyper::error::Error::new_user_unsupported_request_method'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `hyper::proto::h1::dispatch::Dispatcher<D,Bs,I,T>::poll_write::CALLSITE'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `alloc::alloc::box_free'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `hyper::error::Error::new'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `hyper::proto::h1::io::ReadStrategy::next'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `<core::option::Option<T> as core::clone::Clone>::clone'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `core::result::Result<T,E>::expect'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `hyper::client::client::Client<C,B>::send_request::{{closure}}::CALLSITE'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `<core::result::Result<T,E> as core::ops::try::Try>::into_result'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `<hyper::proto::h2::PipeToSendStream<S> as core::future::future::Future>::poll::CALLSITE'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `hyper::proto::h1::encode::Encoder::encode::CALLSITE'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `core::any::TypeId::of'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `core::option::Option<T>::take'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `core::ptr::drop_in_place'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `hyper::client::pool::Pool<T>::reuse::CALLSITE'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `<hyper::body::length::DecodedLength as core::fmt::Display>::fmt'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `futures_channel::lock::Lock<T>::new'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `hyper::client::client::origin_form'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `<hyper::error::Error as core::fmt::Display>::fmt'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `hyper::client::pool::IdlePopper<T>::pop::CALLSITE'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `hyper::proto::h1::decode::Decoder::decode::CALLSITE'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `core::ptr::drop_in_place'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `hyper::proto::h1::conn::Conn<I,B,T>::maybe_notify::CALLSITE'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `hyper::client::client::Builder::pool_max_idle_per_host'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `http::header::map::HeaderMap<T>::len'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `<hyper::proto::h1::dispatch::Client<B> as hyper::proto::h1::dispatch::Dispatch>::poll_msg::CALLSITE'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `hashbrown::raw::Bucket<T>::as_ref'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `hashbrown::raw::calculate_layout'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `<hyper::proto::h2::PipeToSendStream<S> as core::future::future::Future>::poll::CALLSITE'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `hyper::proto::h1::io::Buffered<T,B>::poll_flush_flattened::CALLSITE'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `core::ptr::drop_in_place'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `core::ptr::drop_in_place'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `hyper::proto::h1::conn::State::is_read_closed'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `hyper::error::Error::with'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `<hyper::client::connect::http::ConnectError as std::error::Error>::source'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `alloc::sync::Arc<T>::inner'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `hyper::client::conn::Builder::handshake::{{closure}}::CALLSITE'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `hyper::error::Error::with'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `<hyper::body::body::Body as http_body::Body>::size_hint'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `hyper::client::connect::http::HttpInfo::remote_addr'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `hashbrown::raw::Bucket<T>::from_base_index'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `hyper::error::Error::new_unexpected_message'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `alloc::sync::Arc<T>::new'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `http::response::Response<T>::extensions_mut'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `hyper::proto::h1::conn::Conn<I,B,T>::poll_read_body::CALLSITE'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `hyper::client::pool::PoolInner<T>::put::CALLSITE'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `hyper::client::connect::http::ConnectingTcp::new'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `core::fmt::ArgumentV1::new'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `hyper::proto::h2::ping::Recorder::ensure_not_timed_out'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `<core::result::Result<T,E> as core::ops::try::Try>::from_error'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `<dyn core::any::Any>::is'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `core::result::Result<T,E>::ok'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `hyper::client::connect::Connected::negotiated_h2'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `hyper::proto::h1::conn::Conn<I,B,T>::poll_read_head::CALLSITE'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `<futures_channel::lock::TryLock<T> as core::ops::deref::DerefMut>::deref_mut'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `<hashbrown::raw::RawIter<T> as core::iter::traits::iterator::Iterator>::next'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `hyper::proto::h1::role::encode_headers::CALLSITE'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `hyper::proto::h1::conn::Conn<I,B,T>::poll_read_body::CALLSITE'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `hyper::client::client::Client<C,B>::connect_to::{{closure}}::{{closure}}::{{closure}}::CALLSITE'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `alloc::sync::Arc<T>::from_inner'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `hyper::proto::h2::ping::Config::is_enabled'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `<h2::share::SendStream<hyper::proto::h2::SendBuf<B>> as hyper::proto::h2::SendStreamExt>::on_user_err::CALLSITE'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `std::sync::mutex::Mutex<T>::new'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `hashbrown::raw::Bucket<T>::as_ptr'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `core::ptr::drop_in_place'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `hyper::proto::h1::dispatch::Dispatcher<D,Bs,I,T>::poll_read_head::CALLSITE'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `<alloc::sync::Arc<T> as core::clone::Clone>::clone'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `<hyper::body::body::Body as http_body::Body>::poll_data'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `core::ptr::drop_in_place'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `futures_channel::lock::Lock<T>::try_lock'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `hyper::proto::h1::io::Buffered<T,B>::parse::CALLSITE'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `hyper::client::connect::dns::Name::new'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `hyper::client::connect::http::HttpConnector::new'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `hyper::proto::h1::dispatch::Dispatcher<D,Bs,I,T>::poll_read_head::CALLSITE'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `hyper::client::client::extract_domain'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `core::ptr::drop_in_place'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `hyper::body::body::Sender::poll_ready'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `hashbrown::raw::Bucket<T>::drop'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `hyper::proto::h1::conn::Conn<I,B,T>::require_empty_read::CALLSITE'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `hyper::proto::h1::Wants::add'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `core::ptr::read'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `core::ptr::drop_in_place'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `hyper::proto::h1::conn::State::close_write'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `hyper::headers::connection_keep_alive'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `core::option::Option<T>::as_ref'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `hyper::error::Error::new_canceled'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `core::option::Option<T>::take'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `hyper::proto::h1::conn::State::is_idle'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `hyper::error::Error::new_shutdown'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `<std::collections::hash::map::HashMap<K,V,S> as core::default::Default>::default'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `core::ptr::drop_in_place'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `<hyper::proto::h1::decode::Kind as core::fmt::Debug>::fmt'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `core::ptr::drop_in_place'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `core::ptr::drop_in_place'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `core::ptr::drop_in_place'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `<hyper::client::conn::Proto as core::fmt::Debug>::fmt'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `hyper::proto::h1::conn::State::disable_keep_alive'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `hyper::proto::h2::client::handshake::{{closure}}::{{closure}}::CALLSITE'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `tokio::sync::oneshot::Sender<T>::send'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `hyper::error::Error::new_h2'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `<T as core::convert::Into<U>>::into'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `hyper::proto::h1::conn::Conn<I,B,T>::maybe_notify::CALLSITE'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `<hyper::client::connect::http::ConnectError as core::fmt::Debug>::fmt'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `http::header::map::HeaderMap<T>::remove'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `hyper::proto::h1::decode::ChunkedState::read_body::CALLSITE'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `http::uri::builder::Builder::authority'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `hyper::proto::h1::encode::Encoder::is_close_delimited'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `hyper::proto::h1::conn::Conn<I,B,T>::poll_read_body::CALLSITE'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `hyper::proto::h1::conn::Conn<I,B,T>::force_io_read::{{closure}}::CALLSITE'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `hyper::client::connect::http::ConnectingTcpRemote::connect'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `<hyper::client::client::ResponseFuture as core::future::future::Future>::poll'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `hyper::proto::h1::decode::ChunkedState::read_trailer::CALLSITE'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `hyper::client::pool::PoolInner<T>::put::CALLSITE'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `core::ptr::drop_in_place'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `futures_channel::mpsc::queue::Queue<T>::pop_spin'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `<core::task::poll::Poll<core::result::Result<T,E>> as core::ops::try::Try>::into_result'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `core::option::Option<T>::take'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `<hyper::body::body::Body as http_body::Body>::is_end_stream'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `hyper::proto::h1::conn::State::prepare_upgrade'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `core::ptr::drop_in_place'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `hyper::proto::h1::conn::Conn<I,B,T>::poll_shutdown::CALLSITE'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `hyper::proto::h1::conn::State::is_write_closed'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `core::fmt::ArgumentV1::new'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `<hyper::proto::h1::role::Client as hyper::proto::h1::Http1Transaction>::parse'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `core::ptr::drop_in_place'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `hyper::client::conn::Http2SendRequest<B>::send_request_retryable::CALLSITE'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `hyper::body::body::Sender::send_error'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `hyper::proto::h1::io::ReadStrategy::record'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `hyper::body::body::Body::delayed_eof'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `hyper::proto::h1::conn::Conn<I,B,T>::poll_read_body::CALLSITE'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `hyper::proto::h1::io::Buffered<T,B>::parse::CALLSITE'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `hyper::error::Error::is_canceled'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `<hyper::common::never::Never as std::error::Error>::description'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `<T as core::convert::From<T>>::from'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `hashbrown::raw::RawTable<T>::iter'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `<hyper::proto::h2::PipeToSendStream<S> as core::future::future::Future>::poll::CALLSITE'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `<hyper::proto::h1::role::Client as hyper::proto::h1::Http1Transaction>::encode'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `<hyper::proto::h1::dispatch::Client<B> as hyper::proto::h1::dispatch::Dispatch>::recv_msg::CALLSITE'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `hyper::client::pool::Checkout<T>::checkout::{{closure}}::CALLSITE'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `hyper::proto::h1::decode::Decoder::decode::CALLSITE'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `hyper::proto::h2::decode_content_length'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `http::header::map::HeaderMap<T>::insert_occupied'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `<hyper::proto::h1::dispatch::Client<B> as hyper::proto::h1::dispatch::Dispatch>::poll_ready::CALLSITE'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `hyper::client::conn::Builder::http2_only'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `core::ptr::drop_in_place'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `hyper::proto::h1::decode::ChunkedState::read_extension::CALLSITE'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `core::ptr::drop_in_place'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `core::mem::drop'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `<hyper::client::pool::Pooled<T> as core::ops::drop::Drop>::drop::CALLSITE'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `hyper::error::Error::with'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `hyper::proto::h1::io::ReadStrategy::max'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `<alloc::sync::Arc<T> as core::ops::deref::Deref>::deref'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `hyper::proto::h2::client::new_builder'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `core::ptr::drop_in_place'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `hyper::body::body::Body::new_channel'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `<hyper::proto::h2::client::ClientTask<B> as core::future::future::Future>::poll::CALLSITE'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `hashbrown::raw::RawTable<T>::data_end'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `<hyper::proto::h2::client::ClientTask<B> as core::future::future::Future>::poll::CALLSITE'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `core::ptr::drop_in_place'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `hyper::client::client::ResponseFuture::error_version'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `hyper::error::Error::h2_reason'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `http::uri::builder::Builder::scheme'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `hyper::proto::h1::conn::State::close_read'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `hyper::proto::h1::io::Buffered<T,B>::parse::CALLSITE'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `core::fmt::ArgumentV1::new'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `hyper::proto::h1::conn::Conn<I,B,T>::poll_read_head::CALLSITE'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `<hyper::error::Error as core::convert::From<hyper::error::Parse>>::from'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `hyper::client::connect::http::ConnectError::m'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `hyper::proto::h1::conn::Conn<I,B,T>::maybe_notify::CALLSITE'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `hashbrown::raw::RawTable<T>::buckets'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `hyper::client::client::ResponseFuture::new'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `<core::option::Option<T> as core::clone::Clone>::clone'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `hyper::proto::h1::io::Buffered<T,B>::poll_flush::CALLSITE'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `hyper::client::connect::Connected::clone'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `hyper::client::dispatch::Callback<T,U>::send_when::{{closure}}::CALLSITE'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `hyper::error::Error::new_too_large'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `hyper::upgrade::OnUpgrade::is_none'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `core::ptr::drop_in_place'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `hyper::proto::h1::conn::Conn<I,B,T>::require_empty_read::CALLSITE'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `alloc::vec::Vec<T,A>::reserve'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `hyper::proto::h1::dispatch::Dispatcher<D,Bs,I,T>::poll_flush::{{closure}}::CALLSITE'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `hashbrown::raw::RawTable<T>::is_empty_singleton'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `<hyper::proto::h1::role::Client as hyper::proto::h1::Http1Transaction>::is_client'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `<http::uri::scheme::Scheme2<T> as core::clone::Clone>::clone'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `<&mut T as core::ops::deref::DerefMut>::deref_mut'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `hyper::proto::h1::conn::KA::status'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `hyper::proto::h1::conn::State::try_keep_alive::CALLSITE'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `std::error::<impl core::convert::From<E> for alloc::boxed::Box<dyn std::error::Error+core::marker::Sync+core::marker::Send>>::from'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `<futures_util::future::ready::Ready<T> as core::future::future::Future>::poll'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `hyper::proto::h1::Wants::contains'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `hyper::upgrade::Pending::fulfill'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `core::ptr::drop_in_place'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `<futures_channel::oneshot::Receiver<T> as core::future::future::Future>::poll'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `hyper::proto::h1::dispatch::Dispatcher<D,Bs,I,T>::poll_write::CALLSITE'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `core::fmt::ArgumentV1::new'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `hyper::client::connect::http::HttpConnector<R>::config_mut'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `core::ptr::drop_in_place'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `hyper::client::pool::PoolInner<T>::put::CALLSITE'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `<T as core::borrow::Borrow<T>>::borrow'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `core::ptr::write'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `<hyper::client::connect::dns::GaiResolver as tower_service::Service<hyper::client::connect::dns::Name>>::poll_ready'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `hyper::client::pool::Checkout<T>::checkout::CALLSITE'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `<core::task::poll::Poll<core::result::Result<T,E>> as core::ops::try::Try>::from_error'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `hashbrown::raw::RawTable<T>::new'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `hyper::proto::h1::encode::Encoder::is_last'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `hyper::proto::h1::decode::ChunkedState::read_size_lws::CALLSITE'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `hyper::proto::h1::conn::Conn<I,B,T>::on_read_head_error::CALLSITE'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `hyper::proto::h1::io::Buffered<T,B>::poll_flush::CALLSITE'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `hyper::error::Error::is_parse'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `futures_channel::mpsc::queue::Queue<T>::new'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `hyper::proto::h2::client::conn_task::{{closure}}::CALLSITE'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `hyper::client::pool::Pool<T>::connecting::CALLSITE'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `hyper::client::client::Builder::http2_only'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `hyper::client::connect::Extra::set'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `<alloc::sync::Arc<T> as core::ops::deref::Deref>::deref'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `<core::slice::iter::Iter<T> as core::iter::traits::iterator::Iterator>::next'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `hyper::proto::h2::client::new_ping_config'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `core::ptr::drop_in_place'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `hyper::proto::h1::conn::State::close'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `http::header::map::HeaderMap<T>::remove'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `hyper::proto::h1::dispatch::Dispatcher<D,Bs,I,T>::poll_read::CALLSITE'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `<hyper::proto::h1::io::ReadStrategy as core::default::Default>::default'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `<core::option::Option<T> as core::cmp::PartialEq>::eq'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `<hyper::proto::h2::client::ClientTask<B> as core::future::future::Future>::poll::{{closure}}::CALLSITE'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `core::ptr::drop_in_place'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `hyper::proto::h1::encode::Encoder::encode_and_end::CALLSITE'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `hyper::client::client::Client<C,B>::connect_to::{{closure}}::{{closure}}::{{closure}}::{{closure}}::CALLSITE'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `hyper::proto::h1::conn::KA::idle'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `hyper::error::Error::new_io'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `hashbrown::map::make_hash'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `hyper::client::pool::Config::is_enabled'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `hyper::client::connect::Connected::proxy'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `<core::option::Option<T> as core::clone::Clone>::clone'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `hyper::client::pool::PoolInner<T>::put::CALLSITE'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `hyper::body::body::Sender::try_send_data'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `hyper::proto::h1::encode::ChunkSize::new'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `<hyper::proto::h1::dispatch::Client<B> as hyper::proto::h1::dispatch::Dispatch>::poll_msg::CALLSITE'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `core::mem::drop'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `<&T as core::fmt::Display>::fmt'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `<hyper::client::connect::dns::GaiResolver as tower_service::Service<hyper::client::connect::dns::Name>>::call'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `hashbrown::raw::RawTable<T>::free_buckets'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `hyper::client::pool::PoolInner<T>::put::CALLSITE'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `<T as core::convert::From<T>>::from'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `hyper::proto::h1::io::ReadStrategy::with_max'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `core::ptr::drop_in_place'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `hyper::proto::h1::encode::Encoder::encode::CALLSITE'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `hyper::proto::h1::dispatch::Dispatcher<D,Bs,I,T>::poll_loop::CALLSITE'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `hyper::proto::h2::ping::disabled'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `hyper::client::connect::http::connect'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `hyper::client::connect::dns::SocketAddrs::try_parse'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `hyper::proto::h1::conn::Conn<I,B,T>::mid_message_detect_eof::CALLSITE'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `http::header::map::HeaderMap<T>::remove'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `hyper::client::pool::Expiration::new'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `http::header::map::VacantEntry<T>::insert'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `hyper::proto::h2::ping::Recorder::record_non_data'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `hyper::proto::h1::conn::Conn<I,B,T>::require_empty_read::CALLSITE'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `http::header::map::HeaderMap<T>::entry'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `core::result::Result<T,E>::expect'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `hyper::proto::h1::encode::Encoder::danger_full_buf::CALLSITE'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `hyper::proto::h1::conn::Conn<I,B,T>::poll_flush::CALLSITE'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `hyper::body::body::Body::take_full_data'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `core::slice::raw::from_raw_parts_mut'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `hyper::client::connect::http::ConnectError::m::{{closure}}'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `hyper::proto::h1::io::Buffered<T,B>::poll_flush_flattened::CALLSITE'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `core::ptr::drop_in_place'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `core::ptr::drop_in_place'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `hyper::proto::h1::decode::ChunkedState::read_size_lf::CALLSITE'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `alloc::sync::Arc<T>::inner'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `std::collections::hash::map::HashMap<K,V,S>::insert'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `hyper::client::connect::http::ConnectingTcp::connect'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `<hyper::proto::h1::role::Client as hyper::proto::h1::Http1Transaction>::on_error'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `core::ptr::drop_in_place'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `<hyper::proto::h2::client::ClientTask<B> as core::future::future::Future>::poll::{{closure}}::CALLSITE'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `alloc::vec::Vec<T,A>::set_len'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `core::ptr::drop_in_place'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `tokio::loom::std::unsafe_cell::UnsafeCell<T>::new'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `alloc::boxed::Box<T,A>::into_raw_with_allocator'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `core::ptr::drop_in_place'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `hyper::client::connect::http::<impl hyper::client::connect::Connection for tokio::net::tcp::stream::TcpStream>::connected'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `hyper::error::Error::new_user'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `hyper::client::connect::dns::SocketAddrs::new'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `hyper::client::client::Client<C,B>::connect_to::{{closure}}::{{closure}}::CALLSITE'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `hyper::client::connect::http::ConnectingTcpRemote::connect::{{closure}}::CALLSITE'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `alloc::sync::Arc<T>::inner'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `hyper::proto::h1::conn::Conn<I,B,T>::on_read_head_error::CALLSITE'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `<hyper::common::never::Never as core::fmt::Display>::fmt'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `alloc::vec::Vec<T,A>::capacity'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `hyper::client::client::absolute_form'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `hyper::proto::h1::conn::Conn<I,B,T>::poll_drain_or_close_read::CALLSITE'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `<hyper::client::client::Builder as core::default::Default>::default'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `<hyper::proto::h1::decode::IncompleteBody as core::fmt::Debug>::fmt'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `core::ptr::drop_in_place'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `core::ptr::drop_in_place'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `std::collections::hash::set::HashSet<T>::new'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `hyper::client::pool::PoolInner<T>::put::CALLSITE'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `<hyper::common::never::Never as core::fmt::Debug>::fmt'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `hyper::proto::h2::ping::Ponger::poll'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `hyper::proto::h1::dispatch::Dispatcher<D,Bs,I,T>::poll_write::CALLSITE'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `<dyn core::any::Any>::is'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `core::any::TypeId::of'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `hyper::proto::h1::decode::Decoder::is_eof'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `<I as core::iter::traits::collect::IntoIterator>::into_iter'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `hyper::proto::h2::ping::Recorder::for_stream'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `<hyper::proto::h2::client::ClientTask<B> as core::future::future::Future>::poll::CALLSITE'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `hyper::client::pool::IdlePopper<T>::pop::CALLSITE'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `core::ptr::non_null::NonNull<T>::as_ptr'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `core::ptr::drop_in_place'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `hyper::proto::h1::conn::Conn<I,B,T>::require_empty_read::CALLSITE'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `hyper::client::client::authority_form'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `hyper::client::client::Client<C,B>::request::CALLSITE'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `alloc::vec::Vec<T>::new'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `<hyper::proto::h1::conn::KA as core::fmt::Debug>::fmt'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `core::ptr::drop_in_place'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `core::ptr::drop_in_place'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `hashbrown::raw::RawTable<T>::iter_hash'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `core::ptr::drop_in_place'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `hyper::error::Error::new_version_h2'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `core::ptr::drop_in_place'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `hyper::proto::h1::decode::ChunkedState::read_size_lf::CALLSITE'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `hyper::error::Error::is_connect'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `hyper::proto::h1::decode::Decoder::new'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `hyper::client::client::domain_as_uri'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `hyper::proto::h1::dispatch::Dispatcher<D,Bs,I,T>::poll_read::CALLSITE'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `hyper::proto::h1::io::Cursor<alloc::vec::Vec<u8>>::reset'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `hyper::client::connect::http::ConnectingTcpRemote::connect::{{closure}}::CALLSITE'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `hyper::client::pool::Checkout<T>::poll_waiter::CANCELED'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `tokio::sync::oneshot::Inner<T>::drop_tx_task'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `<std::sync::mutex::MutexGuard<T> as core::ops::deref::DerefMut>::deref_mut'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `core::ptr::drop_in_place'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `hyper::client::connect::http::ConnectingTcpRemote::connect::{{closure}}::CALLSITE'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `futures_util::future::ready::err'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `hyper::proto::h1::encode::Encoder::is_eof'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `hyper::proto::h1::decode::ChunkedState::read_size::CALLSITE'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `<alloc::boxed::Box<T,A> as core::fmt::Debug>::fmt'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `<hyper::proto::h1::conn::State as core::fmt::Debug>::fmt'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `hyper::common::task::yield_now'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `<hyper::error::Error as core::fmt::Debug>::fmt'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `core::ptr::drop_in_place'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `core::ptr::drop_in_place'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `<alloc::sync::Arc<T> as core::ops::deref::Deref>::deref'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `<hyper::proto::h1::conn::KA as core::ops::bit::BitAndAssign<bool>>::bitand_assign'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `core::slice::<impl [T]>::iter'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `hyper::client::connect::http::ConnectError::new'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `core::ptr::drop_in_place'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `<alloc::sync::Arc<T> as core::ops::deref::Deref>::deref'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `hyper::client::connect::http::HttpConnector<R>::set_keepalive'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `core::option::Option<T>::as_ref'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `hyper::client::conn::SendRequest<B>::send_request_retryable::CALLSITE'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `core::ptr::drop_in_place'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `<hyper::client::connect::dns::GaiFuture as core::future::future::Future>::poll'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `core::result::Result<T,E>::unwrap'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `hyper::client::client::Builder::http1_title_case_headers'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `hyper::body::body::Body::new'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `<core::option::Option<T> as core::default::Default>::default'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `<hyper::proto::h1::conn::Writing as core::fmt::Debug>::fmt'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `<alloc::sync::Arc<T> as core::clone::Clone>::clone'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `hyper::proto::h2::ping::channel'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `<hyper::proto::h2::client::ClientTask<B> as core::future::future::Future>::poll::CALLSITE'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `<I as core::iter::traits::collect::IntoIterator>::into_iter'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `<T as core::convert::Into<U>>::into'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `<h2::share::SendStream<hyper::proto::h2::SendBuf<B>> as hyper::proto::h2::SendStreamExt>::send_eos_frame::CALLSITE'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `hyper::client::connect::http::HttpConnector<R>::call_async::{{closure}}::CALLSITE'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `hyper::headers::method_has_defined_payload_semantics'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `hyper::client::client::Client<C,B>::connection_for::{{closure}}::{{closure}}::CALLSITE'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `<hyper::error::Error as std::error::Error>::source'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `core::option::Option<T>::map'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `core::ptr::drop_in_place'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `<hyper::proto::h1::conn::Reading as core::fmt::Debug>::fmt'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `<core::result::Result<T,E> as core::ops::try::Try>::into_result'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `hyper::proto::h1::conn::Conn<I,B,T>::on_upgrade::CALLSITE'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `std::sync::mutex::Mutex<T>::lock'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `hyper::client::client::Client<C,B>::retryably_send_request::{{closure}}::CALLSITE'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `core::ptr::drop_in_place'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `alloc::boxed::Box<dyn core::any::Any,A>::downcast'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `hyper::error::Error::new_incomplete'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `hyper::proto::h1::conn::State::wants_keep_alive'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `hyper::proto::h1::conn::State::busy'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `<hyper::proto::h1::decode::IncompleteBody as core::fmt::Display>::fmt'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `core::mem::needs_drop'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `http::header::map::OccupiedEntry<T>::into_mut'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `<hyper::client::connect::dns::GaiAddrs as core::iter::traits::iterator::Iterator>::next'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `hyper::proto::h1::encode::Encoder::encode_and_end::CALLSITE'
          /usr/bin/ld: /tmp/dylib-errors/target/debug/deps/libshared.so: undefined reference to `hyper::proto::h2::strip_connection_headers'
          collect2: error: ld returned 1 exit status


error: aborting due to previous error

error: could not compile `serverctl`

To learn more, run the command again with --verbose.

Activity

  1. added
    C-bugCategory: This is a bug.
    I-ICEIssue: The compiler panicked, giving an Internal Compilation Error (ICE) ❄️
    T-compilerRelevant to the compiler team, which will review and decide on the PR/issue.
    on Feb 15, 2021
  2. added
    A-linkageArea: linking into static, shared libraries and binaries
    E-needs-mcveCall for participation: This issue has a repro, but needs a Minimal Complete and Verifiable Example
    on Feb 15, 2021
  3. alexkornitzer commented on Feb 15, 2021

    @alexkornitzer
    Author

    Hi @jonas-schievink, could you let me know how small the example needs to be? I have managed to shrink it to just reqwest & tokio, but might be able to get it much smaller assuming I dont need intimate compiler knowledge in order to guess what the issue could potentially be.
    https://github.com/alexkornitzer/dylib-errors/tree/error/tokio

  4. jonas-schievink commented on Feb 15, 2021

    @jonas-schievink
    Contributor

    Ideally it would not contain any external dependencies

  5. alexkornitzer commented on Feb 15, 2021

    @alexkornitzer
    Author

    Okay let me see if I can isolate it down further, but it might be beyond me.

    Musings

    Not managed to reduce it down yet but I have observed the following which seems interesting, when using reqwest "0.11" which fails the libshared.so tries to link against libhyper-*.so:

            linux-vdso.so.1 (0x00007fff2f1bd000)
    	libhyper-e9510aa4920192e8.so => not found
    	libstd-6f77337c1826707d.so => not found
    	libssl.so.1.1 => /usr/lib/libssl.so.1.1 (0x00007f0536a4c000)
    	libcrypto.so.1.1 => /usr/lib/libcrypto.so.1.1 (0x00007f053676e000)
    	libgcc_s.so.1 => /usr/lib/libgcc_s.so.1 (0x00007f0536754000)
    	libpthread.so.0 => /usr/lib/libpthread.so.0 (0x00007f0536733000)
    	libc.so.6 => /usr/lib/libc.so.6 (0x00007f0536564000)
    	/usr/lib64/ld-linux-x86-64.so.2 (0x00007f0537707000)
    	libdl.so.2 => /usr/lib/libdl.so.2 (0x00007f053655d000)
    

    but if we drop to reqwest "0.10" which succeeds then this .so is missing:

    	linux-vdso.so.1 (0x00007ffea26f3000)
    	libstd-6f77337c1826707d.so => not found
    	libssl.so.1.1 => /usr/lib/libssl.so.1.1 (0x00007f8294541000)
    	libcrypto.so.1.1 => /usr/lib/libcrypto.so.1.1 (0x00007f8294263000)
    	libgcc_s.so.1 => /usr/lib/libgcc_s.so.1 (0x00007f8294249000)
    	libpthread.so.0 => /usr/lib/libpthread.so.0 (0x00007f8294228000)
    	libdl.so.2 => /usr/lib/libdl.so.2 (0x00007f8294221000)
    	libc.so.6 => /usr/lib/libc.so.6 (0x00007f8294052000)
    	/usr/lib64/ld-linux-x86-64.so.2 (0x00007f8295434000)
    

    and if we try and bring hyper "0.14" straight into the shared lib we get dep tree errors:

    error: cannot satisfy dependencies so `hyper` only shows up once
      |
      = help: having upstream crates all available in one format will likely make this go away
    
    error: aborting due to previous error
    
    error: could not compile `serverctl`
    

    but not with hyper "0.13", I wonder if this dep tree issue is the problem?

  6. alexkornitzer commented on Feb 15, 2021

    @alexkornitzer
    Author

    Hey @jonas-schievink,

    Right got it, so its looks like the issue is when you have the following:

    application <- shared (dylib) <- foo (rlib) <- bar (["lib", "staticlib", "cdylib"])
    

    where shared is accessing bar by calling foo::bar where foo re-exports bar.

    ---bar
    pub struct Bar;
    pub fn bar() -> Bar {
      Bar
    }
    
    ---foo
    pub use bar::bar;
    pub struct Foo;
    pub fn foo() -> Foo {
      Foo
    }
    
    --shared
    pub struct Test;
    impl Test {
      pub fn new() -> Self {
        let _ = foo::foo();
        let _ = foo::bar();
        Self
      }
    }
    
    --app
    fn main() {
      let _ = shared::Test::new();
    }

    I have a minimal example here: https://github.com/alexkornitzer/dylib-errors/tree/error/nested

  7. added
    I-prioritizeIssue needs a team member to assess the impact. Will be replaced by P-{low,medium,high,critical}
    and removed
    E-needs-mcveCall for participation: This issue has a repro, but needs a Minimal Complete and Verifiable Example
    on Feb 15, 2021
  8. hameerabbasi commented on Feb 17, 2021

    @hameerabbasi
    Contributor

    Bisected, but this goes back to at least 2018-01-01. I ran cargo-bisect-rustc --test-dir=. --start=<date> with date being the first day of 2018, 2019, and 2020. Got errors of the form:

    ERROR: the start of the range (nightly-<date>) must not reproduce the regression
    
  9. apiraino commented on Feb 17, 2021

    @apiraino
    Contributor

    @rustbot label I-nominated

    We would like the compiler team to have a closer look at this (tomorrow during the meeting) to help assessing the implicatons (Zulip discussion)

  10. removed
    I-ICEIssue: The compiler panicked, giving an Internal Compilation Error (ICE) ❄️
    on Feb 25, 2021
  11. 24 remaining items

  12. added a commit that references this issue on Nov 5, 2021
  13. fpoli commented on Nov 5, 2021

    @fpoli
    Contributor

    In our project we use rustc nightly-2021-10-15 and we encountered this issue while trying to upgrade from hyper 0.13, warp 0.2, reqwest 0.10 and tokio 0.2 to hyper 0.14, warp 0.3, reqwest 0.11 and tokio 1.2. Is there any workaround other than downgrading those libraries?

  14. apiraino commented on Nov 5, 2021

    @apiraino
    Contributor

    @fpoli I am not too familiar with this issue, but I am wondering if @alexkornitzer workaround in alexkornitzer/hyper@1199048 would help (assuming is it ok for you to vendor hyper, which might not as well)

  15. fpoli commented on Nov 5, 2021

    @fpoli
    Contributor

    @fpoli I am not too familiar with this issue, but I am wondering if @alexkornitzer workaround in alexkornitzer/hyper@1199048 would help (assuming is it ok for you to vendor hyper, which might not as well)

    Thanks! So, that would solve the issue in hyper, but it cannot be upstreamed because hyper also wants to compile to a library usable from C. In our case sticking with the old version of the libraries is still preferable (for now).

  16. pnkfelix commented on Dec 16, 2022

    @pnkfelix
    Contributor

    from conversation above

    We may be able to fix that "arguably a bug", because dylibs are rare in practice now, most of crate searches will not encounter a dylib candidate.

    It sounds like this might be the right next step. I'm already spending some amount of time looking at linker issues (and this is already assigned to me), so I can continue down this path.

    (We might want an MCP for the suggested change, in any case.)

  17. bjorn3 commented on Jul 14, 2023

    @bjorn3
    Member

    Opened #113695 with a fix for what I am pretty sure is the root cause here. (The test I added fails with the same linker issue before that PR at least.)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

A-linkageArea: linking into static, shared libraries and binariesC-bugCategory: This is a bug.P-highHigh priorityT-compilerRelevant to the compiler team, which will review and decide on the PR/issue.

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions