mimblewimble / grin

Minimal implementation of the Mimblewimble protocol.
https://grin.mw/
Apache License 2.0
5.04k stars 991 forks source link

error: linking with `cc` libhyper_tls hyper_tls4 undefined reference to `sk_pop' #1583

Closed givanse closed 5 years ago

givanse commented 6 years ago

This morning I updated my clone and I can't compile it anymore.

git master/head

git log -n 1
commit 82b785282c78291299c6d80c2e92110d55c00c66 (HEAD -> master, origin/master, origin/HEAD)
Author: hashmap <hashmap@gmail.com>
Date:   Sat Sep 22 21:22:02 2018 +0200

    Remove println (#1575)

Error:

cargo build --release 
   Compiling grin v0.3.0 (file:///home/sealion/code/mine-grin/grin)                                                                                                                                                                     
error: linking with `cc` failed: exit code: 1
  |
  = note: "cc" "-Wl,--as-needed" "-Wl,-z,noexecstack" "-m64" "-L"

...

"-Wl,-Bdynamic" "-lssl" "-lcrypto" "-lncursesw" "-ltinfo" "-lutil" "-lutil" "-ldl" "-lrt" "-lpthread" "-lpthread" "-lgcc_s" "-lc" "-lm" "-lrt" "-lpthread" "-lutil" "-lutil"
  = note: /home/sealion/code/mine-grin/grin/target/release/deps/libhyper_tls-97762dd2713e909c.rlib(hyper_tls-97762dd2713e909c.hyper_tls4-10b5e0aadf1c9a747036e895b69f22a9.rs.rcgu.o): In function `core::ptr::drop_in_place':
          hyper_tls4-10b5e0aadf1c9a747036e895b69f22a9.rs:(.text._ZN4core3ptr13drop_in_place17h8e4df675eabc0483E+0x32): undefined reference to `sk_pop'
          hyper_tls4-10b5e0aadf1c9a747036e895b69f22a9.rs:(.text._ZN4core3ptr13drop_in_place17h8e4df675eabc0483E+0x4c): undefined reference to `sk_pop'
          hyper_tls4-10b5e0aadf1c9a747036e895b69f22a9.rs:(.text._ZN4core3ptr13drop_in_place17h8e4df675eabc0483E+0x59): undefined reference to `sk_free'
          /home/sealion/code/mine-grin/grin/target/release/deps/libhyper_tls-97762dd2713e909c.rlib(hyper_tls-97762dd2713e909c.hyper_tls4-10b5e0aadf1c9a747036e895b69f22a9.rs.rcgu.o): In function `<hyper_tls::client::HttpsConnector<hyper::client::connect::http::HttpConnector>>::new':
          hyper_tls4-10b5e0aadf1c9a747036e895b69f22a9.rs:(.text._ZN93_$LT$hyper_tls..client..HttpsConnector$LT$hyper..client..connect..http..HttpConnector$GT$$GT$3new17ha7b3e17afc71b461E+0x1db): undefined reference to `sk_pop'
          hyper_tls4-10b5e0aadf1c9a747036e895b69f22a9.rs:(.text._ZN93_$LT$hyper_tls..client..HttpsConnector$LT$hyper..client..connect..http..HttpConnector$GT$$GT$3new17ha7b3e17afc71b461E+0x1fc): undefined reference to `sk_pop'
          hyper_tls4-10b5e0aadf1c9a747036e895b69f22a9.rs:(.text._ZN93_$LT$hyper_tls..client..HttpsConnector$LT$hyper..client..connect..http..HttpConnector$GT$$GT$3new17ha7b3e17afc71b461E+0x209): undefined reference to `sk_free'
          /home/sealion/code/mine-grin/grin/target/release/deps/libnative_tls-d430a38bdefa5b55.rlib(native_tls-d430a38bdefa5b55.native_tls0-484bef0e893e3d6692b3b7535fb8b3a7.rs.rcgu.o): In function `native_tls::imp::TlsConnector::new':
          native_tls0-484bef0e893e3d6692b3b7535fb8b3a7.rs:(.text._ZN10native_tls3imp12TlsConnector3new17h08cea90136753734E+0x34d): undefined reference to `sk_num'
          native_tls0-484bef0e893e3d6692b3b7535fb8b3a7.rs:(.text._ZN10native_tls3imp12TlsConnector3new17h08cea90136753734E+0x363): undefined reference to `sk_value'
          native_tls0-484bef0e893e3d6692b3b7535fb8b3a7.rs:(.text._ZN10native_tls3imp12TlsConnector3new17h08cea90136753734E+0x3be): undefined reference to `sk_num'
          /home/sealion/code/mine-grin/grin/target/release/deps/libopenssl-2d3fe37e2892d320.rlib(openssl-2d3fe37e2892d320.openssl0-4caa9dc574f6d28c8349bf801fd5b2de.rs.rcgu.o): In function `openssl::ssl::SslMethod::tls':
          openssl0-4caa9dc574f6d28c8349bf801fd5b2de.rs:(.text._ZN7openssl3ssl9SslMethod3tls17h53957ae5d7276975E+0x1): undefined reference to `SSLv23_method'
          /home/sealion/code/mine-grin/grin/target/release/deps/libopenssl-2d3fe37e2892d320.rlib(openssl-2d3fe37e2892d320.openssl0-4caa9dc574f6d28c8349bf801fd5b2de.rs.rcgu.o): In function `<openssl::ssl::SslContext as core::clone::Clone>::clone':
          openssl0-4caa9dc574f6d28c8349bf801fd5b2de.rs:(.text._ZN63_$LT$openssl..ssl..SslContext$u20$as$u20$core..clone..Clone$GT$5clone17h5738959ea57efe83E+0x23): undefined reference to `CRYPTO_add_lock'
          /home/sealion/code/mine-grin/grin/target/release/deps/libopenssl-2d3fe37e2892d320.rlib(openssl-2d3fe37e2892d320.openssl1-4caa9dc574f6d28c8349bf801fd5b2de.rs.rcgu.o): In function `<openssl::x509::X509Ref as alloc::borrow::ToOwned>::to_owned':
          openssl1-4caa9dc574f6d28c8349bf801fd5b2de.rs:(.text._ZN65_$LT$openssl..x509..X509Ref$u20$as$u20$alloc..borrow..ToOwned$GT$8to_owned17h1ddbb36eae341693E+0x20): undefined reference to `CRYPTO_add_lock'
          /home/sealion/code/mine-grin/grin/target/release/deps/libopenssl-2d3fe37e2892d320.rlib(openssl-2d3fe37e2892d320.openssl1-4caa9dc574f6d28c8349bf801fd5b2de.rs.rcgu.o): In function `<openssl::x509::X509 as core::clone::Clone>::clone':
          openssl1-4caa9dc574f6d28c8349bf801fd5b2de.rs:(.text._ZN58_$LT$openssl..x509..X509$u20$as$u20$core..clone..Clone$GT$5clone17h12f1f92c732d9395E+0x20): undefined reference to `CRYPTO_add_lock'
          /home/sealion/code/mine-grin/grin/target/release/deps/libopenssl-2d3fe37e2892d320.rlib(openssl-2d3fe37e2892d320.openssl15-4caa9dc574f6d28c8349bf801fd5b2de.rs.rcgu.o): In function `openssl::ssl::connector::ctx':
          openssl15-4caa9dc574f6d28c8349bf801fd5b2de.rs:(.text._ZN7openssl3ssl9connector3ctx17hd28733b20e8222f0E+0x35): undefined reference to `SSLeay'
          /home/sealion/code/mine-grin/grin/target/release/deps/libopenssl_sys-719a47055f7c6d32.rlib(openssl_sys-719a47055f7c6d32.openssl_sys11-642e17dcd23e385250c0c1af9015ac49.rs.rcgu.o): In function `std::sync::once::Once::call_once::{{closure}}':
          openssl_sys11-642e17dcd23e385250c0c1af9015ac49.rs:(.text._ZN3std4sync4once4Once9call_once28_$u7b$$u7b$closure$u7d$$u7d$17hf4fa1b6a220cf25bE+0x1e): undefined reference to `SSL_library_init'
          openssl_sys11-642e17dcd23e385250c0c1af9015ac49.rs:(.text._ZN3std4sync4once4Once9call_once28_$u7b$$u7b$closure$u7d$$u7d$17hf4fa1b6a220cf25bE+0x23): undefined reference to `SSL_load_error_strings'
          openssl_sys11-642e17dcd23e385250c0c1af9015ac49.rs:(.text._ZN3std4sync4once4Once9call_once28_$u7b$$u7b$closure$u7d$$u7d$17hf4fa1b6a220cf25bE+0x28): undefined reference to `OPENSSL_add_all_algorithms_noconf'
          openssl_sys11-642e17dcd23e385250c0c1af9015ac49.rs:(.text._ZN3std4sync4once4Once9call_once28_$u7b$$u7b$closure$u7d$$u7d$17hf4fa1b6a220cf25bE+0x2d): undefined reference to `CRYPTO_num_locks'
          openssl_sys11-642e17dcd23e385250c0c1af9015ac49.rs:(.text._ZN3std4sync4once4Once9call_once28_$u7b$$u7b$closure$u7d$$u7d$17hf4fa1b6a220cf25bE+0x22c): undefined reference to `CRYPTO_set_locking_callback'
          openssl_sys11-642e17dcd23e385250c0c1af9015ac49.rs:(.text._ZN3std4sync4once4Once9call_once28_$u7b$$u7b$closure$u7d$$u7d$17hf4fa1b6a220cf25bE+0x238): undefined reference to `CRYPTO_set_id_callback'
          collect2: error: ld returned 1 exit status

error: aborting due to previous error

Environment:

Ubuntu 18.04
{RUSTC:-rustc} --version
rustc 1.29.0 (aa3ca1994 2018-09-11)

cargo --version
cargo 1.29.0 (524a578d7 2018-08-05)

uname -rvm
4.15.0-34-generic #37-Ubuntu SMP Mon Aug 27 15:21:48 UTC 2018 x86_64

gcc --version
gcc (Ubuntu 7.3.0-16ubuntu3) 7.3.0
garyyu commented 6 years ago

Looks like the OS compatibility issue of hyper-tls 0.3 which was imported since https://github.com/mimblewimble/grin/pull/1565

In my Debian 8.5, there's no such kind of linking errors. I guess @givanse is using Ubuntu 18.04, but I can't verify it, I don't have this OS version.

givanse commented 6 years ago

Oh yeah, I just upgraded to Ubuntu 18.04. (updated initial description) I forgot to mention that I was compiling grin just fine in Ubuntu 17.10

hashmap commented 6 years ago

@givanse should be fixed by now, could you confirm?

givanse commented 5 years ago

pulled from master:

git log -n 1
commit d11088c98784000175675e96c67c5aa2c23de76c (HEAD -> master, origin/master, origin/HEAD)
Author: Quentin Le Sceller <q.lesceller@gmail.com>
Date:   Sun Oct 21 23:56:42 2018 +0200
    Fix build error (#1803)

tried to build:

cargo build --release
error: failed to run custom build command for `croaring-sys v0.3.6`
process didn't exit successfully: `/home/sealion/code/mine-grin/grin/target/release/build/croaring-sys-c8a9ee3d8cbaacf2/build-script-build` (exit code: 101)

In https://github.com/saulius/croaring-rs/issues/34 I found the workaround (fix?)

sudo apt-get purge --auto-remove clang

After that I was able to build 👌

givanse commented 5 years ago

After pulling from master I tried to build and got:

error: failed to run custom build command for `croaring-sys v0.3.6`

In the issue https://github.com/saulius/croaring-rs/issues/34 I found a workaround:

sudo apt-get purge --auto-remove clang

And then I was able to build 👌