On Sun, Apr 16, 2023 at 1:36 PM Jeffrey Walton <noloa...@gmail.com> wrote: > > On Sun, Apr 16, 2023 at 1:07 PM Rahul Sabnis via curl-library > <curl-library@lists.haxx.se> wrote: > > > > Hello, > > > > I get below errors when I try to compile Curl 8.0.1 with OpenSSL 3.1.0 > > (Same error with OpenSSL 3.0.8 & 3.0.7) > > ../lib/.libs/libcurl.so: undefined reference to `EVP_PKEY_id' > > ../lib/.libs/libcurl.so: undefined reference to `ENGINE_get_next' > > ../lib/.libs/libcurl.so: undefined reference to `EVP_PKEY_get0_DH' > > ../lib/.libs/libcurl.so: undefined reference to `MD4_Update' > > ../lib/.libs/libcurl.so: undefined reference to `EVP_PKEY_get0_RSA' > > ../lib/.libs/libcurl.so: undefined reference to `ENGINE_get_first' > > ../lib/.libs/libcurl.so: undefined reference to `SSL_get_peer_certificate' > > ../lib/.libs/libcurl.so: undefined reference to `ENGINE_load_private_key' > > ../lib/.libs/libcurl.so: undefined reference to `ENGINE_finish' > > ../lib/.libs/libcurl.so: undefined reference to `ENGINE_get_id' > > ../lib/.libs/libcurl.so: undefined reference to `ENGINE_ctrl_cmd' > > ../lib/.libs/libcurl.so: undefined reference to `EVP_PKEY_get0_DSA' > > ../lib/.libs/libcurl.so: undefined reference to `DSA_get0_key' > > ../lib/.libs/libcurl.so: undefined reference to `RSA_get0_key' > > ../lib/.libs/libcurl.so: undefined reference to `DH_get0_key' > > ../lib/.libs/libcurl.so: undefined reference to `ENGINE_set_default' > > ../lib/.libs/libcurl.so: undefined reference to `DSA_get0_pqg' > > ../lib/.libs/libcurl.so: undefined reference to `ENGINE_free' > > ../lib/.libs/libcurl.so: undefined reference to `MD4_Final' > > ../lib/.libs/libcurl.so: undefined reference to `DH_get0_pqg' > > ../lib/.libs/libcurl.so: undefined reference to `MD4_Init' > > ../lib/.libs/libcurl.so: undefined reference to `ENGINE_ctrl' > > ../lib/.libs/libcurl.so: undefined reference to `ENGINE_by_id' > > ../lib/.libs/libcurl.so: undefined reference to `ENGINE_init' > > collect2: error: ld returned 1 exit status > > make[2]: *** [curl] Error 1 > > > > Configure command used: > > ./configure --prefix=/home/builder/curl --enable-http --with-openssl > > --enable-cookies --enable-shared=yes --enable-static=no --without-zlib > > --disable-ldap --disable-ldaps --disable-unix-sockets --disable-rtsp > > --disable-threaded-resolver --disable-ntlm > > > > Configure command output below. Added few other parameters as can be seen > > below: > > Host setup: x86_64-pc-linux-gnu > > Install prefix: /home/builder/curl > > Compiler: gcc -std=gnu11 > > CFLAGS: -fPIC -Werror-implicit-function-declaration -O2 > > -Wno-system-headers > > CPPFLAGS: -Dlinux26 -isystem > > /home/builder/openssl/include/openssl -DOPENSSL_NO_DEPRECATED_3_0 > > LDFLAGS: -Wl,-R/home/builder/openssl/lib64 > > -L/home/builder/openssl/lib64 > > LIBS: -lssl -lcrypto -ldl > > > > curl version: 8.0.1 > > SSL: enabled (OpenSSL) > > SSH: no (--with-{libssh,libssh2}) > > zlib: no (--with-zlib) > > brotli: no (--with-brotli) > > zstd: no (--with-zstd) > > GSS-API: no (--with-gssapi) > > GSASL: no (libgsasl not found) > > TLS-SRP: no (--enable-tls-srp) > > resolver: default (--enable-ares / --enable-threaded-resolver) > > IPv6: enabled > > Unix sockets: no (--enable-unix-sockets) > > IDN: no (--with-{libidn2,winidn}) > > Build libcurl: Shared=yes, Static=no > > Built-in manual: enabled > > --libcurl option: enabled (--disable-libcurl-option) > > Verbose errors: enabled (--disable-verbose) > > Code coverage: disabled > > SSPI: no (--enable-sspi) > > ca cert bundle: /etc/pki/tls/certs/ca-bundle.crt > > ca cert path: no > > ca fallback: no > > LDAP: no (--enable-ldap / --with-ldap-lib / > > --with-lber-lib) > > LDAPS: no (--enable-ldaps) > > RTSP: no (--enable-rtsp) > > RTMP: no (--with-librtmp) > > PSL: no (libpsl not found) > > Alt-svc: enabled (--disable-alt-svc) > > Headers API: enabled (--disable-headers-api) > > HSTS: enabled (--disable-hsts) > > HTTP1: enabled (internal) > > HTTP2: no (--with-nghttp2, --with-hyper) > > HTTP3: no (--with-ngtcp2, --with-quiche --with-msh3) > > ECH: no (--enable-ech) > > WebSockets: no (--enable-websockets) > > Protocols: DICT FILE FTP FTPS GOPHER GOPHERS HTTP HTTPS IMAP IMAPS > > MQTT POP3 POP3S SMTP SMTPS TELNET TFTP > > Features: HSTS HTTPS-proxy IPv6 Largefile SSL alt-svc > > > > Compilation is successful if I use --without-ssl option. > > > > I tried with and withoutthe flag OPENSSL_NO_DEPRECATED_3_0. But no change > > in result. > > > > Not sure what I am missing here. > > For EVP_PKEY_id, the OpenSSL man page says > (https://www.openssl.org/docs/man3.0/man3/EVP_PKEY_id.html): > > <SNIP> > The EVP_PKEY_id() and EVP_PKEY_base_id() functions were renamed to > include get in their names in OpenSSL 3.0, respectively. The old names > are kept as non-deprecated alias macros. > </SNIP> > > It sounds like you are not compiling against OpenSSL 3.0. You are > compiling against an older OpenSSL that provides the symbol > EVP_PKEY_id, and not the newer OpenSSL that provides the symbol > EVP_PKEY_get_id (with EVP_PKEY_id supplied as a #define).
And it might be worth mentioning... You might find it easier to use PKG_CONFIG_PATH: export PKG_CONFIG_PATH=/home/builder/openssl/lib64 ./configure ... It should pick up the OpenSSL at the place you installed it. Jeff -- Unsubscribe: https://lists.haxx.se/mailman/listinfo/curl-library Etiquette: https://curl.se/mail/etiquette.html