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). Please zip cURL's config.log, and attach it to the thread. Jeff -- Unsubscribe: https://lists.haxx.se/mailman/listinfo/curl-library Etiquette: https://curl.se/mail/etiquette.html