Cannot Build with OpenSSL 1.1.1f on Ubuntu 20.04 LTS

Open
#2,306 1 comment 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
4/5
Estimated time
3-5 days
Newbie friendliness
35/100
Issue type
Bug
Clarity
Needs clarification
Activity status
Stale
Tech stack
rust

Research direction

Start by reproducing the Cargo build on Ubuntu 20.04 with the reported OpenSSL 1.1.1f packages and environment variables. Inspect the openssl-sys build output and linker errors; done means the project builds without the reported SSL_read_ex, SSL_write_ex, SSL_CTX_ctrl, and SSL_ctrl failures.

Written by the indexing model from the issue text.

Description

/usr/bin/ld: /root/testing/target/debug/deps/libreqwest-e63f940b995b3a5a.rlib(reqwest-e63f940b995b3a5a.reqwest.2b69ba60e2e131ae-cgu.03.rcgu.o): in function 'openssl::ssl::SslStream<S>::ssl_read_uninit': /root/.cargo/registry/src/index.crates.io-6f17d22bba15001f/openssl-0.10.66/src/ssl/mod.rs:3786: undefined reference to 'SSL_read_ex' /usr/bin/ld: /root/testing/target/debug/deps/libreqwest-e63f940b995b3a5a.rlib(reqwest-e63f940b995b3a5a.reqwest.2b69ba60e2e131ae-cgu.03.rcgu.o): in function 'openssl::ssl::SslStream<S>::ssl_read_uninit': /root/.cargo/registry/src/index.crates.io-6f17d22bba15001f/openssl-0.10.66/src/ssl/mod.rs:3786: undefined reference to 'SSL_read_ex' /usr/bin/ld: /root/testing/target/debug/deps/libreqwest-e63f940b995b3a5a.rlib(reqwest-e63f940b995b3a5a.reqwest.2b69ba60e2e131ae-cgu.03.rcgu.o): in function 'openssl::ssl::SslStream<S>::ssl_write': /root/.cargo/registry/src/index.crates.io-6f17d22bba15001f/openssl-0.10.66/src/ssl/mod.rs:3827: undefined reference to 'SSL_write_ex' /usr/bin/ld: /root/testing/target/debug/deps/libreqwest-e63f940b995b3a5a.rlib(reqwest-e63f940b995b3a5a.reqwest.2b69ba60e2e131ae-cgu.03.rcgu.o): in function 'openssl::ssl::SslStream<S>::ssl_write': /root/.cargo/registry/src/index.crates.io-6f17d22bba15001f/openssl-0.10.66/src/ssl/mod.rs:3827: undefined reference to 'SSL_write_ex' /usr/bin/ld: /root/testing/target/debug/deps/libopenssl_sys-4170f4211535d644.rlib(openssl_sys-4170f4211535d644.openssl_sys.74c5284e5add6480-cgu.0.rcgu.o): in function 'openssl_sys::openssl::ssl::SSL_CTX_set_mode': /root/.cargo/registry/src/index.crates.io-6f17d22bba15001f/openssl-sys-0.9.103/src/./ssl.rs:246: undefined reference to 'SSL_CTX_ctrl' /usr/bin/ld: /root/testing/target/debug/deps/libopenssl_sys-4170f4211535d644.rlib(openssl_sys-4170f4211535d644.openssl_sys.74c5284e5add6480-cgu.0.rcgu.o): in function 'openssl_sys::openssl::ssl::SSL_CTX_add_extra_chain_cert': /root/.cargo/registry/src/index.crates.io-6f17d22bba15001f/openssl-sys-0.9.103/src/./ssl.rs:384: undefined reference to 'SSL_CTX_ctrl' /usr/bin/ld: /root/testing/target/debug/deps/libopenssl_sys-4170f4211535d644.rlib(openssl_sys-4170f4211535d644.openssl_sys.74c5284e5add6480-cgu.0.rcgu.o): in function 'openssl_sys::openssl::tls1::SSL_set_tlsext_host_name': /root/.cargo/registry/src/index.crates.io-6f17d22bba15001f/openssl-sys-0.9.103/src/./tls1.rs:24: undefined reference to 'SSL_ctrl' /usr/bin/ld: /root/testing/target/debug/deps/libopenssl_sys-4170f4211535d644.rlib(openssl_sys-4170f4211535d644.openssl_sys.74c5284e5add6480-cgu.0.rcgu.o): in function 'openssl_sys::openssl::ssl::SSL_CTX_set_min_proto_version': /root/.cargo/registry/src/index.crates.io-6f17d22bba15001f/openssl-sys-0.9.103/src/./ssl.rs:459: undefined reference to 'SSL_CTX_ctrl' /usr/bin/ld: /root/testing/target/debug/deps/libopenssl_sys-4170f4211535d644.rlib(openssl_sys-4170f4211535d644.openssl_sys.74c5284e5add6480-cgu.0.rcgu.o): in function 'openssl_sys::openssl::ssl::SSL_CTX_set_max_proto_version': /root/.cargo/registry/src/index.crates.io-6f17d22bba15001f/openssl-sys-0.9.103/src/./ssl.rs:468: undefined reference to 'SSL_CTX_ctrl' collect2: error: ld returned 1 exit status


confirmed to have non conflicting versions;

`apt search ^libssl | grep installed

WARNING: apt does not have a stable CLI interface. Use with caution in scripts.

libssl-dev/focal-updates,focal-security,now 1.1.1f-1ubuntu2.23 amd64 [installed]
libssl1.1/focal-updates,focal-security,now 1.1.1f-1ubuntu2.23 amd64 [installed]`


build output

cargo:rustc-check-cfg=cfg(osslconf, values("OPENSSL_NO_OCB", "OPENSSL_NO_SM4", "OPENSSL_NO_SEED", "OPENSSL_NO_CHACHA", "OPENSSL_NO_CAST", "OPENSSL_NO_IDEA", "OPENSSL_NO_CAMELLIA", "OPENSSL_NO_RC4", "OPENSSL_NO_BF", "OPENSSL_NO_PSK", "OPENSSL_NO_DEPRECATED_3_0", "OPENSSL_NO_SCRYPT", "OPENSSL_NO_SM3", "OPENSSL_NO_RMD160", "OPENSSL_NO_EC2M", "OPENSSL_NO_OCSP", "OPENSSL_NO_CMS", "OPENSSL_NO_COMP", "OPENSSL_NO_SOCK", "OPENSSL_NO_STDIO")) cargo:rustc-check-cfg=cfg(openssl) cargo:rustc-check-cfg=cfg(libressl) cargo:rustc-check-cfg=cfg(boringssl) cargo:rustc-check-cfg=cfg(libressl250) cargo:rustc-check-cfg=cfg(libressl251) cargo:rustc-check-cfg=cfg(libressl252) cargo:rustc-check-cfg=cfg(libressl261) cargo:rustc-check-cfg=cfg(libressl270) cargo:rustc-check-cfg=cfg(libressl271) cargo:rustc-check-cfg=cfg(libressl273) cargo:rustc-check-cfg=cfg(libressl280) cargo:rustc-check-cfg=cfg(libressl281) cargo:rustc-check-cfg=cfg(libressl291) cargo:rustc-check-cfg=cfg(libressl310) cargo:rustc-check-cfg=cfg(libressl321) cargo:rustc-check-cfg=cfg(libressl332) cargo:rustc-check-cfg=cfg(libressl340) cargo:rustc-check-cfg=cfg(libressl350) cargo:rustc-check-cfg=cfg(libressl360) cargo:rustc-check-cfg=cfg(libressl361) cargo:rustc-check-cfg=cfg(libressl370) cargo:rustc-check-cfg=cfg(libressl380) cargo:rustc-check-cfg=cfg(libressl381) cargo:rustc-check-cfg=cfg(libressl382) cargo:rustc-check-cfg=cfg(libressl390) cargo:rustc-check-cfg=cfg(libressl400) cargo:rustc-check-cfg=cfg(ossl101) cargo:rustc-check-cfg=cfg(ossl102) cargo:rustc-check-cfg=cfg(ossl102f) cargo:rustc-check-cfg=cfg(ossl102h) cargo:rustc-check-cfg=cfg(ossl110) cargo:rustc-check-cfg=cfg(ossl110f) cargo:rustc-check-cfg=cfg(ossl110g) cargo:rustc-check-cfg=cfg(ossl110h) cargo:rustc-check-cfg=cfg(ossl111) cargo:rustc-check-cfg=cfg(ossl111b) cargo:rustc-check-cfg=cfg(ossl111c) cargo:rustc-check-cfg=cfg(ossl111d) cargo:rustc-check-cfg=cfg(ossl300) cargo:rustc-check-cfg=cfg(ossl310) cargo:rustc-check-cfg=cfg(ossl320) cargo:rustc-check-cfg=cfg(ossl330) cargo:rerun-if-env-changed=X86_64_UNKNOWN_LINUX_GNU_OPENSSL_LIB_DIR X86_64_UNKNOWN_LINUX_GNU_OPENSSL_LIB_DIR unset cargo:rerun-if-env-changed=OPENSSL_LIB_DIR OPENSSL_LIB_DIR = /usr/lib/x86_64-linux-gnu cargo:rerun-if-env-changed=X86_64_UNKNOWN_LINUX_GNU_OPENSSL_INCLUDE_DIR X86_64_UNKNOWN_LINUX_GNU_OPENSSL_INCLUDE_DIR unset cargo:rerun-if-env-changed=OPENSSL_INCLUDE_DIR OPENSSL_INCLUDE_DIR = /usr/include/openssl cargo:rustc-link-search=native=/usr/lib/x86_64-linux-gnu cargo:include=/usr/include/openssl cargo:rerun-if-changed=build/expando.c OPT_LEVEL = Some(0) TARGET = Some(x86_64-unknown-linux-gnu) OUT_DIR = Some(/root/testing/target/debug/build/openssl-sys-0276375ae411a7a7/out) HOST = Some(x86_64-unknown-linux-gnu) cargo:rerun-if-env-changed=CC_x86_64-unknown-linux-gnu CC_x86_64-unknown-linux-gnu = None cargo:rerun-if-env-changed=CC_x86_64_unknown_linux_gnu CC_x86_64_unknown_linux_gnu = None cargo:rerun-if-env-changed=HOST_CC HOST_CC = None cargo:rerun-if-env-changed=CC CC = None cargo:rerun-if-env-changed=CC_ENABLE_DEBUG_OUTPUT RUSTC_WRAPPER = None cargo:rerun-if-env-changed=CRATE_CC_NO_DEFAULTS CRATE_CC_NO_DEFAULTS = None DEBUG = Some(true) CARGO_CFG_TARGET_FEATURE = Some(fxsr,sse,sse2) cargo:rerun-if-env-changed=CFLAGS_x86_64-unknown-linux-gnu CFLAGS_x86_64-unknown-linux-gnu = None cargo:rerun-if-env-changed=CFLAGS_x86_64_unknown_linux_gnu CFLAGS_x86_64_unknown_linux_gnu = None cargo:rerun-if-env-changed=HOST_CFLAGS HOST_CFLAGS = None cargo:rerun-if-env-changed=CFLAGS CFLAGS = None cargo:rustc-cfg=osslconf="OPENSSL_NO_IDEA" cargo:rustc-cfg=osslconf="OPENSSL_NO_SSL3_METHOD" cargo:conf=OPENSSL_NO_IDEA,OPENSSL_NO_SSL3_METHOD cargo:rustc-cfg=openssl cargo:rustc-cfg=ossl101 cargo:rustc-cfg=ossl102 cargo:rustc-cfg=ossl102f cargo:rustc-cfg=ossl102h cargo:rustc-cfg=ossl110 cargo:rustc-cfg=ossl110f cargo:rustc-cfg=ossl110g cargo:rustc-cfg=ossl110h cargo:rustc-cfg=ossl111 cargo:rustc-cfg=ossl111b cargo:rustc-cfg=ossl111c cargo:rustc-cfg=ossl111d cargo:version_number=1010106f cargo:version=111 cargo:rerun-if-env-changed=X86_64_UNKNOWN_LINUX_GNU_OPENSSL_LIBS X86_64_UNKNOWN_LINUX_GNU_OPENSSL_LIBS unset cargo:rerun-if-env-changed=OPENSSL_LIBS OPENSSL_LIBS unset cargo:rerun-if-env-changed=X86_64_UNKNOWN_LINUX_GNU_OPENSSL_STATIC X86_64_UNKNOWN_LINUX_GNU_OPENSSL_STATIC unset cargo:rerun-if-env-changed=OPENSSL_STATIC OPENSSL_STATIC unset cargo:rustc-link-lib=dylib=ssl cargo:rustc-link-lib=dylib=crypto

Dominant language
Rust
Stars
1.6k
Forks
841
Avg merge
6h 51m
Merged PRs (30d)
4

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from rust-openssl/rust-openssl

All issues in rust-openssl/rust-openssl

Similar issues

More Rust issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.