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

Reply via email to