[Tarantool-patches] [PATCH v3] build: enable cmake in curl build

Alexander V. Tikhonov avtikhon at tarantool.org
Wed Oct 14 12:08:29 MSK 2020


HI Igor, I've used your solution in the patch.

On Tue, Oct 13, 2020 at 01:20:31PM +0300, Igor Munkin wrote:
> Well, I faced the following build failure on the linking stage:
> 
> | $ cmake -DCMAKE_BUILD_TYPE=Debug . && make -j
> |
> | <snipped>
> |
> | -- Found LibSSH2: /usr/lib64/libssh2.so (found version "1.9.0_DEV") 
> | -- Looking for libssh2_version
> | -- Looking for libssh2_version - found
> | -- Looking for libssh2_init
> | -- Looking for libssh2_init - found
> | -- Looking for libssh2_exit
> | -- Looking for libssh2_exit - found
> | -- Looking for libssh2_scp_send64
> | -- Looking for libssh2_scp_send64 - found
> | -- Looking for libssh2_session_handshake
> | -- Looking for libssh2_session_handshake - found
> | -- Performing Test USE_UNIX_SOCKETS
> | -- Performing Test USE_UNIX_SOCKETS - Success
> | -- Looking for include files /usr/include/libssh2.h, stdio.h
> | -- Looking for include files /usr/include/libssh2.h, stdio.h - found
> | -- Looking for 3 include files /usr/include/libssh2.h, ..., inttypes.h
> | -- Looking for 3 include files /usr/include/libssh2.h, ..., inttypes.h - found
> | -- Looking for 4 include files /usr/include/libssh2.h, ..., sys/filio.h
> | -- Looking for 4 include files /usr/include/libssh2.h, ..., sys/filio.h - not found
> | -- Looking for 4 include files /usr/include/libssh2.h, ..., sys/ioctl.h
> | -- Looking for 4 include files /usr/include/libssh2.h, ..., sys/ioctl.h - found
> | -- Looking for 5 include files /usr/include/libssh2.h, ..., sys/param.h
> | -- Looking for 5 include files /usr/include/libssh2.h, ..., sys/param.h - found
> | -- Looking for 6 include files /usr/include/libssh2.h, ..., sys/poll.h
> | -- Looking for 6 include files /usr/include/libssh2.h, ..., sys/poll.h - found
> | -- Looking for 7 include files /usr/include/libssh2.h, ..., sys/resource.h
> | -- Looking for 7 include files /usr/include/libssh2.h, ..., sys/resource.h - found
> | -- Looking for 8 include files /usr/include/libssh2.h, ..., sys/select.h
> | -- Looking for 8 include files /usr/include/libssh2.h, ..., sys/select.h - found
> | -- Looking for 9 include files /usr/include/libssh2.h, ..., sys/socket.h
> | -- Looking for 9 include files /usr/include/libssh2.h, ..., sys/socket.h - found
> | -- Looking for 10 include files /usr/include/libssh2.h, ..., sys/sockio.h
> | -- Looking for 10 include files /usr/include/libssh2.h, ..., sys/sockio.h - not found
> | -- Looking for 10 include files /usr/include/libssh2.h, ..., sys/stat.h
> | -- Looking for 10 include files /usr/include/libssh2.h, ..., sys/stat.h - found
> | -- Looking for 11 include files /usr/include/libssh2.h, ..., sys/time.h
> | -- Looking for 11 include files /usr/include/libssh2.h, ..., sys/time.h - found
> | -- Looking for 12 include files /usr/include/libssh2.h, ..., sys/types.h
> | -- Looking for 12 include files /usr/include/libssh2.h, ..., sys/types.h - found
> | -- Looking for 13 include files /usr/include/libssh2.h, ..., sys/uio.h
> | -- Looking for 13 include files /usr/include/libssh2.h, ..., sys/uio.h - found
> | -- Looking for 14 include files /usr/include/libssh2.h, ..., sys/un.h
> | -- Looking for 14 include files /usr/include/libssh2.h, ..., sys/un.h - found
> | -- Looking for 15 include files /usr/include/libssh2.h, ..., sys/utime.h
> | -- Looking for 15 include files /usr/include/libssh2.h, ..., sys/utime.h - not found
> | -- Looking for 15 include files /usr/include/libssh2.h, ..., sys/xattr.h
> | -- Looking for 15 include files /usr/include/libssh2.h, ..., sys/xattr.h - found
> | -- Looking for 16 include files /usr/include/libssh2.h, ..., alloca.h
> | -- Looking for 16 include files /usr/include/libssh2.h, ..., alloca.h - found
> | -- Looking for 17 include files /usr/include/libssh2.h, ..., arpa/inet.h
> | -- Looking for 17 include files /usr/include/libssh2.h, ..., arpa/inet.h - found
> | -- Looking for 18 include files /usr/include/libssh2.h, ..., arpa/tftp.h
> | -- Looking for 18 include files /usr/include/libssh2.h, ..., arpa/tftp.h - found
> | -- Looking for 19 include files /usr/include/libssh2.h, ..., assert.h
> | -- Looking for 19 include files /usr/include/libssh2.h, ..., assert.h - found
> | -- Looking for 20 include files /usr/include/libssh2.h, ..., crypto.h
> | -- Looking for 20 include files /usr/include/libssh2.h, ..., crypto.h - not found
> | -- Looking for 20 include files /usr/include/libssh2.h, ..., err.h
> | -- Looking for 20 include files /usr/include/libssh2.h, ..., err.h - found
> | -- Looking for 21 include files /usr/include/libssh2.h, ..., errno.h
> | -- Looking for 21 include files /usr/include/libssh2.h, ..., errno.h - found
> | -- Looking for 22 include files /usr/include/libssh2.h, ..., fcntl.h
> | -- Looking for 22 include files /usr/include/libssh2.h, ..., fcntl.h - found
> | -- Looking for 23 include files /usr/include/libssh2.h, ..., idn2.h
> | -- Looking for 23 include files /usr/include/libssh2.h, ..., idn2.h - found
> | -- Looking for 24 include files /usr/include/libssh2.h, ..., ifaddrs.h
> | -- Looking for 24 include files /usr/include/libssh2.h, ..., ifaddrs.h - found
> | -- Looking for 25 include files /usr/include/libssh2.h, ..., io.h
> | -- Looking for 25 include files /usr/include/libssh2.h, ..., io.h - not found
> | -- Looking for 25 include files /usr/include/libssh2.h, ..., krb.h
> | -- Looking for 25 include files /usr/include/libssh2.h, ..., krb.h - not found
> | -- Looking for 25 include files /usr/include/libssh2.h, ..., libgen.h
> | -- Looking for 25 include files /usr/include/libssh2.h, ..., libgen.h - found
> | -- Looking for 26 include files /usr/include/libssh2.h, ..., locale.h
> | -- Looking for 26 include files /usr/include/libssh2.h, ..., locale.h - found
> | -- Looking for 27 include files /usr/include/libssh2.h, ..., net/if.h
> | -- Looking for 27 include files /usr/include/libssh2.h, ..., net/if.h - found
> | -- Looking for 28 include files /usr/include/libssh2.h, ..., netdb.h
> | -- Looking for 28 include files /usr/include/libssh2.h, ..., netdb.h - found
> | -- Looking for 29 include files /usr/include/libssh2.h, ..., netinet/in.h
> | -- Looking for 29 include files /usr/include/libssh2.h, ..., netinet/in.h - found
> | -- Looking for 30 include files /usr/include/libssh2.h, ..., netinet/tcp.h
> | -- Looking for 30 include files /usr/include/libssh2.h, ..., netinet/tcp.h - found
> | -- Looking for 31 include files /usr/include/libssh2.h, ..., pem.h
> | -- Looking for 31 include files /usr/include/libssh2.h, ..., pem.h - not found
> | -- Looking for 31 include files /usr/include/libssh2.h, ..., poll.h
> | -- Looking for 31 include files /usr/include/libssh2.h, ..., poll.h - found
> | -- Looking for 32 include files /usr/include/libssh2.h, ..., pwd.h
> | -- Looking for 32 include files /usr/include/libssh2.h, ..., pwd.h - found
> | -- Looking for 33 include files /usr/include/libssh2.h, ..., rsa.h
> | -- Looking for 33 include files /usr/include/libssh2.h, ..., rsa.h - not found
> | -- Looking for 33 include files /usr/include/libssh2.h, ..., setjmp.h
> | -- Looking for 33 include files /usr/include/libssh2.h, ..., setjmp.h - found
> | -- Looking for 34 include files /usr/include/libssh2.h, ..., sgtty.h
> | -- Looking for 34 include files /usr/include/libssh2.h, ..., sgtty.h - found
> | -- Looking for 35 include files /usr/include/libssh2.h, ..., signal.h
> | -- Looking for 35 include files /usr/include/libssh2.h, ..., signal.h - found
> | -- Looking for 36 include files /usr/include/libssh2.h, ..., ssl.h
> | -- Looking for 36 include files /usr/include/libssh2.h, ..., ssl.h - not found
> | -- Looking for 36 include files /usr/include/libssh2.h, ..., stdbool.h
> | -- Looking for 36 include files /usr/include/libssh2.h, ..., stdbool.h - found
> | -- Looking for 37 include files /usr/include/libssh2.h, ..., stdint.h
> | -- Looking for 37 include files /usr/include/libssh2.h, ..., stdint.h - found
> | -- Looking for 39 include files /usr/include/libssh2.h, ..., stdlib.h
> | -- Looking for 39 include files /usr/include/libssh2.h, ..., stdlib.h - found
> | -- Looking for 40 include files /usr/include/libssh2.h, ..., string.h
> | -- Looking for 40 include files /usr/include/libssh2.h, ..., string.h - found
> | -- Looking for 41 include files /usr/include/libssh2.h, ..., strings.h
> | -- Looking for 41 include files /usr/include/libssh2.h, ..., strings.h - found
> | -- Looking for 42 include files /usr/include/libssh2.h, ..., stropts.h
> | -- Looking for 42 include files /usr/include/libssh2.h, ..., stropts.h - found
> | -- Looking for 43 include files /usr/include/libssh2.h, ..., termio.h
> | -- Looking for 43 include files /usr/include/libssh2.h, ..., termio.h - found
> | -- Looking for 44 include files /usr/include/libssh2.h, ..., termios.h
> | -- Looking for 44 include files /usr/include/libssh2.h, ..., termios.h - found
> | -- Looking for 45 include files /usr/include/libssh2.h, ..., time.h
> | -- Looking for 45 include files /usr/include/libssh2.h, ..., time.h - found
> | -- Looking for 46 include files /usr/include/libssh2.h, ..., unistd.h
> | -- Looking for 46 include files /usr/include/libssh2.h, ..., unistd.h - found
> | -- Looking for 47 include files /usr/include/libssh2.h, ..., utime.h
> | -- Looking for 47 include files /usr/include/libssh2.h, ..., utime.h - found
> | -- Looking for 48 include files /usr/include/libssh2.h, ..., x509.h
> | -- Looking for 48 include files /usr/include/libssh2.h, ..., x509.h - not found
> | -- Looking for 48 include files /usr/include/libssh2.h, ..., process.h
> | -- Looking for 48 include files /usr/include/libssh2.h, ..., process.h - not found
> | -- Looking for 48 include files /usr/include/libssh2.h, ..., stddef.h
> | -- Looking for 48 include files /usr/include/libssh2.h, ..., stddef.h - found
> | -- Looking for 49 include files /usr/include/libssh2.h, ..., dlfcn.h
> | -- Looking for 49 include files /usr/include/libssh2.h, ..., dlfcn.h - found
> | -- Looking for 50 include files /usr/include/libssh2.h, ..., malloc.h
> | -- Looking for 50 include files /usr/include/libssh2.h, ..., malloc.h - found
> | -- Looking for 51 include files /usr/include/libssh2.h, ..., memory.h
> | -- Looking for 51 include files /usr/include/libssh2.h, ..., memory.h - found
> | -- Looking for 52 include files /usr/include/libssh2.h, ..., netinet/if_ether.h
> | -- Looking for 52 include files /usr/include/libssh2.h, ..., netinet/if_ether.h - found
> | -- Looking for 54 include files /usr/include/libssh2.h, ..., sockio.h
> | -- Looking for 54 include files /usr/include/libssh2.h, ..., sockio.h - not found
> | -- Looking for 54 include files /usr/include/libssh2.h, ..., sys/utsname.h
> | -- Looking for 54 include files /usr/include/libssh2.h, ..., sys/utsname.h - found
> |
> | <snipped>
> |
> | /usr/lib/gcc/x86_64-pc-linux-gnu/8.3.0/../../../../x86_64-pc-linux-gnu/bin/ld: ../../build/curl/dest/lib/libcurl.a(libssh2.o): in function `ssh_knownhost':
> | libssh2.c:(.text+0x36d): undefined reference to `libssh2_session_hostkey'
> | /usr/lib/gcc/x86_64-pc-linux-gnu/8.3.0/../../../../x86_64-pc-linux-gnu/bin/ld: libssh2.c:(.text+0x4d8): undefined reference to `libssh2_knownhost_checkp'
> | /usr/lib/gcc/x86_64-pc-linux-gnu/8.3.0/../../../../x86_64-pc-linux-gnu/bin/ld: libssh2.c:(.text+0x689): undefined reference to `libssh2_knownhost_add'
> | /usr/lib/gcc/x86_64-pc-linux-gnu/8.3.0/../../../../x86_64-pc-linux-gnu/bin/ld: libssh2.c:(.text+0x6ed): undefined reference to `libssh2_knownhost_writefile'
> | /usr/lib/gcc/x86_64-pc-linux-gnu/8.3.0/../../../../x86_64-pc-linux-gnu/bin/ld: ../../build/curl/dest/lib/libcurl.a(libssh2.o): in function `ssh_check_fingerprint':
> | libssh2.c:(.text+0x792): undefined reference to `libssh2_hostkey_hash'
> | /usr/lib/gcc/x86_64-pc-linux-gnu/8.3.0/../../../../x86_64-pc-linux-gnu/bin/ld: ../../build/curl/dest/lib/libcurl.a(libssh2.o): in function `ssh_force_knownhost_key_type':
> | libssh2.c:(.text+0xade): undefined reference to `libssh2_knownhost_get'
> | /usr/lib/gcc/x86_64-pc-linux-gnu/8.3.0/../../../../x86_64-pc-linux-gnu/bin/ld: libssh2.c:(.text+0xc44): undefined reference to `libssh2_session_method_pref'
> | /usr/lib/gcc/x86_64-pc-linux-gnu/8.3.0/../../../../x86_64-pc-linux-gnu/bin/ld: ../../build/curl/dest/lib/libcurl.a(libssh2.o): in function `ssh_statemach_act':
> | libssh2.c:(.text+0xdb8): undefined reference to `libssh2_session_set_blocking'
> | /usr/lib/gcc/x86_64-pc-linux-gnu/8.3.0/../../../../x86_64-pc-linux-gnu/bin/ld: libssh2.c:(.text+0xe21): undefined reference to `libssh2_session_handshake'
> | /usr/lib/gcc/x86_64-pc-linux-gnu/8.3.0/../../../../x86_64-pc-linux-gnu/bin/ld: libssh2.c:(.text+0xe73): undefined reference to `libssh2_session_last_error'
> | /usr/lib/gcc/x86_64-pc-linux-gnu/8.3.0/../../../../x86_64-pc-linux-gnu/bin/ld: libssh2.c:(.text+0xf59): undefined reference to `libssh2_userauth_list'
> | /usr/lib/gcc/x86_64-pc-linux-gnu/8.3.0/../../../../x86_64-pc-linux-gnu/bin/ld: libssh2.c:(.text+0xf8f): undefined reference to `libssh2_userauth_authenticated'
> | /usr/lib/gcc/x86_64-pc-linux-gnu/8.3.0/../../../../x86_64-pc-linux-gnu/bin/ld: libssh2.c:(.text+0xfe8): undefined reference to `libssh2_session_last_errno'
> | /usr/lib/gcc/x86_64-pc-linux-gnu/8.3.0/../../../../x86_64-pc-linux-gnu/bin/ld: libssh2.c:(.text+0x15c3): undefined reference to `libssh2_userauth_publickey_fromfile_ex'
> | /usr/lib/gcc/x86_64-pc-linux-gnu/8.3.0/../../../../x86_64-pc-linux-gnu/bin/ld: libssh2.c:(.text+0x169c): undefined reference to `libssh2_session_last_error'
> | /usr/lib/gcc/x86_64-pc-linux-gnu/8.3.0/../../../../x86_64-pc-linux-gnu/bin/ld: libssh2.c:(.text+0x17d0): undefined reference to `libssh2_userauth_password_ex'
> | /usr/lib/gcc/x86_64-pc-linux-gnu/8.3.0/../../../../x86_64-pc-linux-gnu/bin/ld: libssh2.c:(.text+0x1932): undefined reference to `libssh2_agent_init'
> | /usr/lib/gcc/x86_64-pc-linux-gnu/8.3.0/../../../../x86_64-pc-linux-gnu/bin/ld: libssh2.c:(.text+0x19a0): undefined reference to `libssh2_agent_connect'
> | /usr/lib/gcc/x86_64-pc-linux-gnu/8.3.0/../../../../x86_64-pc-linux-gnu/bin/ld: libssh2.c:(.text+0x1a41): undefined reference to `libssh2_agent_list_identities'
> | /usr/lib/gcc/x86_64-pc-linux-gnu/8.3.0/../../../../x86_64-pc-linux-gnu/bin/ld: libssh2.c:(.text+0x1afb): undefined reference to `libssh2_agent_get_identity'
> | /usr/lib/gcc/x86_64-pc-linux-gnu/8.3.0/../../../../x86_64-pc-linux-gnu/bin/ld: libssh2.c:(.text+0x1b4c): undefined reference to `libssh2_agent_userauth'
> | /usr/lib/gcc/x86_64-pc-linux-gnu/8.3.0/../../../../x86_64-pc-linux-gnu/bin/ld: libssh2.c:(.text+0x1cef): undefined reference to `libssh2_userauth_keyboard_interactive_ex'
> | /usr/lib/gcc/x86_64-pc-linux-gnu/8.3.0/../../../../x86_64-pc-linux-gnu/bin/ld: libssh2.c:(.text+0x1e70): undefined reference to `libssh2_sftp_init'
> | /usr/lib/gcc/x86_64-pc-linux-gnu/8.3.0/../../../../x86_64-pc-linux-gnu/bin/ld: libssh2.c:(.text+0x1eb9): undefined reference to `libssh2_session_last_errno'
> | /usr/lib/gcc/x86_64-pc-linux-gnu/8.3.0/../../../../x86_64-pc-linux-gnu/bin/ld: libssh2.c:(.text+0x1ef4): undefined reference to `libssh2_session_last_error'
> | /usr/lib/gcc/x86_64-pc-linux-gnu/8.3.0/../../../../x86_64-pc-linux-gnu/bin/ld: libssh2.c:(.text+0x1f98): undefined reference to `libssh2_sftp_symlink_ex'
> | /usr/lib/gcc/x86_64-pc-linux-gnu/8.3.0/../../../../x86_64-pc-linux-gnu/bin/ld: libssh2.c:(.text+0x206b): undefined reference to `libssh2_sftp_last_error'
> | /usr/lib/gcc/x86_64-pc-linux-gnu/8.3.0/../../../../x86_64-pc-linux-gnu/bin/ld: libssh2.c:(.text+0x2be5): undefined reference to `libssh2_sftp_stat_ex'
> | /usr/lib/gcc/x86_64-pc-linux-gnu/8.3.0/../../../../x86_64-pc-linux-gnu/bin/ld: libssh2.c:(.text+0x2c31): undefined reference to `libssh2_sftp_last_error'
> | /usr/lib/gcc/x86_64-pc-linux-gnu/8.3.0/../../../../x86_64-pc-linux-gnu/bin/ld: libssh2.c:(.text+0x3121): undefined reference to `libssh2_sftp_stat_ex'
> | /usr/lib/gcc/x86_64-pc-linux-gnu/8.3.0/../../../../x86_64-pc-linux-gnu/bin/ld: libssh2.c:(.text+0x316d): undefined reference to `libssh2_sftp_last_error'
> | /usr/lib/gcc/x86_64-pc-linux-gnu/8.3.0/../../../../x86_64-pc-linux-gnu/bin/ld: libssh2.c:(.text+0x32ae): undefined reference to `libssh2_sftp_symlink_ex'
> | /usr/lib/gcc/x86_64-pc-linux-gnu/8.3.0/../../../../x86_64-pc-linux-gnu/bin/ld: libssh2.c:(.text+0x32fa): undefined reference to `libssh2_sftp_last_error'
> | /usr/lib/gcc/x86_64-pc-linux-gnu/8.3.0/../../../../x86_64-pc-linux-gnu/bin/ld: libssh2.c:(.text+0x3417): undefined reference to `libssh2_sftp_mkdir_ex'
> | /usr/lib/gcc/x86_64-pc-linux-gnu/8.3.0/../../../../x86_64-pc-linux-gnu/bin/ld: libssh2.c:(.text+0x3463): undefined reference to `libssh2_sftp_last_error'
> | /usr/lib/gcc/x86_64-pc-linux-gnu/8.3.0/../../../../x86_64-pc-linux-gnu/bin/ld: libssh2.c:(.text+0x357e): undefined reference to `libssh2_sftp_rename_ex'
> | /usr/lib/gcc/x86_64-pc-linux-gnu/8.3.0/../../../../x86_64-pc-linux-gnu/bin/ld: libssh2.c:(.text+0x35ca): undefined reference to `libssh2_sftp_last_error'
> | /usr/lib/gcc/x86_64-pc-linux-gnu/8.3.0/../../../../x86_64-pc-linux-gnu/bin/ld: libssh2.c:(.text+0x36d9): undefined reference to `libssh2_sftp_rmdir_ex'
> | /usr/lib/gcc/x86_64-pc-linux-gnu/8.3.0/../../../../x86_64-pc-linux-gnu/bin/ld: libssh2.c:(.text+0x3725): undefined reference to `libssh2_sftp_last_error'
> | /usr/lib/gcc/x86_64-pc-linux-gnu/8.3.0/../../../../x86_64-pc-linux-gnu/bin/ld: libssh2.c:(.text+0x380e): undefined reference to `libssh2_sftp_unlink_ex'
> | /usr/lib/gcc/x86_64-pc-linux-gnu/8.3.0/../../../../x86_64-pc-linux-gnu/bin/ld: libssh2.c:(.text+0x385a): undefined reference to `libssh2_sftp_last_error'
> | /usr/lib/gcc/x86_64-pc-linux-gnu/8.3.0/../../../../x86_64-pc-linux-gnu/bin/ld: libssh2.c:(.text+0x394d): undefined reference to `libssh2_sftp_statvfs'
> | /usr/lib/gcc/x86_64-pc-linux-gnu/8.3.0/../../../../x86_64-pc-linux-gnu/bin/ld: libssh2.c:(.text+0x3999): undefined reference to `libssh2_sftp_last_error'
> | /usr/lib/gcc/x86_64-pc-linux-gnu/8.3.0/../../../../x86_64-pc-linux-gnu/bin/ld: libssh2.c:(.text+0x3c1b): undefined reference to `libssh2_sftp_stat_ex'
> | /usr/lib/gcc/x86_64-pc-linux-gnu/8.3.0/../../../../x86_64-pc-linux-gnu/bin/ld: libssh2.c:(.text+0x3d6e): undefined reference to `libssh2_sftp_stat_ex'
> | /usr/lib/gcc/x86_64-pc-linux-gnu/8.3.0/../../../../x86_64-pc-linux-gnu/bin/ld: libssh2.c:(.text+0x3ea6): undefined reference to `libssh2_sftp_open_ex'
> | /usr/lib/gcc/x86_64-pc-linux-gnu/8.3.0/../../../../x86_64-pc-linux-gnu/bin/ld: libssh2.c:(.text+0x3ee4): undefined reference to `libssh2_session_last_errno'
> | /usr/lib/gcc/x86_64-pc-linux-gnu/8.3.0/../../../../x86_64-pc-linux-gnu/bin/ld: libssh2.c:(.text+0x3f16): undefined reference to `libssh2_sftp_last_error'
> | /usr/lib/gcc/x86_64-pc-linux-gnu/8.3.0/../../../../x86_64-pc-linux-gnu/bin/ld: libssh2.c:(.text+0x438e): undefined reference to `libssh2_sftp_seek64'
> | /usr/lib/gcc/x86_64-pc-linux-gnu/8.3.0/../../../../x86_64-pc-linux-gnu/bin/ld: libssh2.c:(.text+0x45f4): undefined reference to `libssh2_sftp_mkdir_ex'
> | /usr/lib/gcc/x86_64-pc-linux-gnu/8.3.0/../../../../x86_64-pc-linux-gnu/bin/ld: libssh2.c:(.text+0x4652): undefined reference to `libssh2_sftp_last_error'
> | /usr/lib/gcc/x86_64-pc-linux-gnu/8.3.0/../../../../x86_64-pc-linux-gnu/bin/ld: libssh2.c:(.text+0x4779): undefined reference to `libssh2_sftp_open_ex'
> | /usr/lib/gcc/x86_64-pc-linux-gnu/8.3.0/../../../../x86_64-pc-linux-gnu/bin/ld: libssh2.c:(.text+0x47b7): undefined reference to `libssh2_session_last_errno'
> | /usr/lib/gcc/x86_64-pc-linux-gnu/8.3.0/../../../../x86_64-pc-linux-gnu/bin/ld: libssh2.c:(.text+0x47e1): undefined reference to `libssh2_sftp_last_error'
> | /usr/lib/gcc/x86_64-pc-linux-gnu/8.3.0/../../../../x86_64-pc-linux-gnu/bin/ld: libssh2.c:(.text+0x49c5): undefined reference to `libssh2_sftp_readdir_ex'
> | /usr/lib/gcc/x86_64-pc-linux-gnu/8.3.0/../../../../x86_64-pc-linux-gnu/bin/ld: libssh2.c:(.text+0x4ce9): undefined reference to `libssh2_sftp_last_error'
> | /usr/lib/gcc/x86_64-pc-linux-gnu/8.3.0/../../../../x86_64-pc-linux-gnu/bin/ld: libssh2.c:(.text+0x4d3b): undefined reference to `libssh2_session_last_errno'
> | /usr/lib/gcc/x86_64-pc-linux-gnu/8.3.0/../../../../x86_64-pc-linux-gnu/bin/ld: libssh2.c:(.text+0x4e3f): undefined reference to `libssh2_sftp_symlink_ex'
> | /usr/lib/gcc/x86_64-pc-linux-gnu/8.3.0/../../../../x86_64-pc-linux-gnu/bin/ld: libssh2.c:(.text+0x50fe): undefined reference to `libssh2_sftp_close_handle'
> | /usr/lib/gcc/x86_64-pc-linux-gnu/8.3.0/../../../../x86_64-pc-linux-gnu/bin/ld: libssh2.c:(.text+0x5213): undefined reference to `libssh2_sftp_open_ex'
> | /usr/lib/gcc/x86_64-pc-linux-gnu/8.3.0/../../../../x86_64-pc-linux-gnu/bin/ld: libssh2.c:(.text+0x5251): undefined reference to `libssh2_session_last_errno'
> | /usr/lib/gcc/x86_64-pc-linux-gnu/8.3.0/../../../../x86_64-pc-linux-gnu/bin/ld: libssh2.c:(.text+0x527b): undefined reference to `libssh2_sftp_last_error'
> | /usr/lib/gcc/x86_64-pc-linux-gnu/8.3.0/../../../../x86_64-pc-linux-gnu/bin/ld: libssh2.c:(.text+0x5363): undefined reference to `libssh2_sftp_stat_ex'
> | /usr/lib/gcc/x86_64-pc-linux-gnu/8.3.0/../../../../x86_64-pc-linux-gnu/bin/ld: libssh2.c:(.text+0x5616): undefined reference to `libssh2_sftp_seek64'
> | /usr/lib/gcc/x86_64-pc-linux-gnu/8.3.0/../../../../x86_64-pc-linux-gnu/bin/ld: libssh2.c:(.text+0x581f): undefined reference to `libssh2_sftp_seek64'
> | /usr/lib/gcc/x86_64-pc-linux-gnu/8.3.0/../../../../x86_64-pc-linux-gnu/bin/ld: libssh2.c:(.text+0x595c): undefined reference to `libssh2_sftp_close_handle'
> | /usr/lib/gcc/x86_64-pc-linux-gnu/8.3.0/../../../../x86_64-pc-linux-gnu/bin/ld: libssh2.c:(.text+0x59aa): undefined reference to `libssh2_session_last_error'
> | /usr/lib/gcc/x86_64-pc-linux-gnu/8.3.0/../../../../x86_64-pc-linux-gnu/bin/ld: libssh2.c:(.text+0x5aaa): undefined reference to `libssh2_sftp_close_handle'
> | /usr/lib/gcc/x86_64-pc-linux-gnu/8.3.0/../../../../x86_64-pc-linux-gnu/bin/ld: libssh2.c:(.text+0x5af8): undefined reference to `libssh2_session_last_error'
> | /usr/lib/gcc/x86_64-pc-linux-gnu/8.3.0/../../../../x86_64-pc-linux-gnu/bin/ld: libssh2.c:(.text+0x5b5b): undefined reference to `libssh2_sftp_shutdown'
> | /usr/lib/gcc/x86_64-pc-linux-gnu/8.3.0/../../../../x86_64-pc-linux-gnu/bin/ld: libssh2.c:(.text+0x5d3f): undefined reference to `libssh2_scp_send64'
> | /usr/lib/gcc/x86_64-pc-linux-gnu/8.3.0/../../../../x86_64-pc-linux-gnu/bin/ld: libssh2.c:(.text+0x5d88): undefined reference to `libssh2_session_last_errno'
> | /usr/lib/gcc/x86_64-pc-linux-gnu/8.3.0/../../../../x86_64-pc-linux-gnu/bin/ld: libssh2.c:(.text+0x5dc3): undefined reference to `libssh2_session_last_error'
> | /usr/lib/gcc/x86_64-pc-linux-gnu/8.3.0/../../../../x86_64-pc-linux-gnu/bin/ld: libssh2.c:(.text+0x5f83): undefined reference to `libssh2_scp_recv2'
> | /usr/lib/gcc/x86_64-pc-linux-gnu/8.3.0/../../../../x86_64-pc-linux-gnu/bin/ld: libssh2.c:(.text+0x5fcc): undefined reference to `libssh2_session_last_errno'
> | /usr/lib/gcc/x86_64-pc-linux-gnu/8.3.0/../../../../x86_64-pc-linux-gnu/bin/ld: libssh2.c:(.text+0x6007): undefined reference to `libssh2_session_last_error'
> | /usr/lib/gcc/x86_64-pc-linux-gnu/8.3.0/../../../../x86_64-pc-linux-gnu/bin/ld: libssh2.c:(.text+0x6198): undefined reference to `libssh2_channel_send_eof'
> | /usr/lib/gcc/x86_64-pc-linux-gnu/8.3.0/../../../../x86_64-pc-linux-gnu/bin/ld: libssh2.c:(.text+0x61e6): undefined reference to `libssh2_session_last_error'
> | /usr/lib/gcc/x86_64-pc-linux-gnu/8.3.0/../../../../x86_64-pc-linux-gnu/bin/ld: libssh2.c:(.text+0x6254): undefined reference to `libssh2_channel_wait_eof'
> | /usr/lib/gcc/x86_64-pc-linux-gnu/8.3.0/../../../../x86_64-pc-linux-gnu/bin/ld: libssh2.c:(.text+0x62a2): undefined reference to `libssh2_session_last_error'
> | /usr/lib/gcc/x86_64-pc-linux-gnu/8.3.0/../../../../x86_64-pc-linux-gnu/bin/ld: libssh2.c:(.text+0x6310): undefined reference to `libssh2_channel_wait_closed'
> | /usr/lib/gcc/x86_64-pc-linux-gnu/8.3.0/../../../../x86_64-pc-linux-gnu/bin/ld: libssh2.c:(.text+0x635e): undefined reference to `libssh2_session_last_error'
> | /usr/lib/gcc/x86_64-pc-linux-gnu/8.3.0/../../../../x86_64-pc-linux-gnu/bin/ld: libssh2.c:(.text+0x63cc): undefined reference to `libssh2_channel_free'
> | /usr/lib/gcc/x86_64-pc-linux-gnu/8.3.0/../../../../x86_64-pc-linux-gnu/bin/ld: libssh2.c:(.text+0x641a): undefined reference to `libssh2_session_last_error'
> | /usr/lib/gcc/x86_64-pc-linux-gnu/8.3.0/../../../../x86_64-pc-linux-gnu/bin/ld: libssh2.c:(.text+0x64aa): undefined reference to `libssh2_channel_free'
> | /usr/lib/gcc/x86_64-pc-linux-gnu/8.3.0/../../../../x86_64-pc-linux-gnu/bin/ld: libssh2.c:(.text+0x64f8): undefined reference to `libssh2_session_last_error'
> | /usr/lib/gcc/x86_64-pc-linux-gnu/8.3.0/../../../../x86_64-pc-linux-gnu/bin/ld: libssh2.c:(.text+0x6572): undefined reference to `libssh2_session_disconnect_ex'
> | /usr/lib/gcc/x86_64-pc-linux-gnu/8.3.0/../../../../x86_64-pc-linux-gnu/bin/ld: libssh2.c:(.text+0x65c0): undefined reference to `libssh2_session_last_error'
> | /usr/lib/gcc/x86_64-pc-linux-gnu/8.3.0/../../../../x86_64-pc-linux-gnu/bin/ld: libssh2.c:(.text+0x6665): undefined reference to `libssh2_knownhost_free'
> | /usr/lib/gcc/x86_64-pc-linux-gnu/8.3.0/../../../../x86_64-pc-linux-gnu/bin/ld: libssh2.c:(.text+0x66a4): undefined reference to `libssh2_agent_disconnect'
> | /usr/lib/gcc/x86_64-pc-linux-gnu/8.3.0/../../../../x86_64-pc-linux-gnu/bin/ld: libssh2.c:(.text+0x66f2): undefined reference to `libssh2_session_last_error'
> | /usr/lib/gcc/x86_64-pc-linux-gnu/8.3.0/../../../../x86_64-pc-linux-gnu/bin/ld: libssh2.c:(.text+0x6730): undefined reference to `libssh2_agent_free'
> | /usr/lib/gcc/x86_64-pc-linux-gnu/8.3.0/../../../../x86_64-pc-linux-gnu/bin/ld: libssh2.c:(.text+0x6793): undefined reference to `libssh2_session_free'
> | /usr/lib/gcc/x86_64-pc-linux-gnu/8.3.0/../../../../x86_64-pc-linux-gnu/bin/ld: libssh2.c:(.text+0x67e1): undefined reference to `libssh2_session_last_error'
> | /usr/lib/gcc/x86_64-pc-linux-gnu/8.3.0/../../../../x86_64-pc-linux-gnu/bin/ld: ../../build/curl/dest/lib/libcurl.a(libssh2.o): in function `ssh_block2waitfor':
> | libssh2.c:(.text+0x6b7e): undefined reference to `libssh2_session_block_directions'
> | /usr/lib/gcc/x86_64-pc-linux-gnu/8.3.0/../../../../x86_64-pc-linux-gnu/bin/ld: ../../build/curl/dest/lib/libcurl.a(libssh2.o): in function `ssh_block_statemach':
> | libssh2.c:(.text+0x6d71): undefined reference to `libssh2_session_block_directions'
> | /usr/lib/gcc/x86_64-pc-linux-gnu/8.3.0/../../../../x86_64-pc-linux-gnu/bin/ld: ../../build/curl/dest/lib/libcurl.a(libssh2.o): in function `ssh_connect':
> | libssh2.c:(.text+0x6f2d): undefined reference to `libssh2_session_init_ex'
> | /usr/lib/gcc/x86_64-pc-linux-gnu/8.3.0/../../../../x86_64-pc-linux-gnu/bin/ld: libssh2.c:(.text+0x6f9c): undefined reference to `libssh2_session_flag'
> | /usr/lib/gcc/x86_64-pc-linux-gnu/8.3.0/../../../../x86_64-pc-linux-gnu/bin/ld: libssh2.c:(.text+0x6fdf): undefined reference to `libssh2_knownhost_init'
> | /usr/lib/gcc/x86_64-pc-linux-gnu/8.3.0/../../../../x86_64-pc-linux-gnu/bin/ld: libssh2.c:(.text+0x7010): undefined reference to `libssh2_session_free'
> | /usr/lib/gcc/x86_64-pc-linux-gnu/8.3.0/../../../../x86_64-pc-linux-gnu/bin/ld: libssh2.c:(.text+0x703d): undefined reference to `libssh2_knownhost_readfile'
> | /usr/lib/gcc/x86_64-pc-linux-gnu/8.3.0/../../../../x86_64-pc-linux-gnu/bin/ld: ../../build/curl/dest/lib/libcurl.a(libssh2.o): in function `scp_send':
> | libssh2.c:(.text+0x73ab): undefined reference to `libssh2_channel_write_ex'
> | /usr/lib/gcc/x86_64-pc-linux-gnu/8.3.0/../../../../x86_64-pc-linux-gnu/bin/ld: ../../build/curl/dest/lib/libcurl.a(libssh2.o): in function `scp_recv':
> | libssh2.c:(.text+0x7446): undefined reference to `libssh2_channel_read_ex'
> | /usr/lib/gcc/x86_64-pc-linux-gnu/8.3.0/../../../../x86_64-pc-linux-gnu/bin/ld: ../../build/curl/dest/lib/libcurl.a(libssh2.o): in function `sftp_send':
> | libssh2.c:(.text+0x761e): undefined reference to `libssh2_sftp_write'
> | /usr/lib/gcc/x86_64-pc-linux-gnu/8.3.0/../../../../x86_64-pc-linux-gnu/bin/ld: ../../build/curl/dest/lib/libcurl.a(libssh2.o): in function `sftp_recv':
> | libssh2.c:(.text+0x76b7): undefined reference to `libssh2_sftp_read'
> | /usr/lib/gcc/x86_64-pc-linux-gnu/8.3.0/../../../../x86_64-pc-linux-gnu/bin/ld: ../../build/curl/dest/lib/libcurl.a(libssh2.o): in function `Curl_ssh_init':
> | libssh2.c:(.text+0x7823): undefined reference to `libssh2_init'
> | /usr/lib/gcc/x86_64-pc-linux-gnu/8.3.0/../../../../x86_64-pc-linux-gnu/bin/ld: ../../build/curl/dest/lib/libcurl.a(libssh2.o): in function `Curl_ssh_cleanup':
> | libssh2.c:(.text+0x783e): undefined reference to `libssh2_exit'
> | collect2: error: ld returned 1 exit status
> | make[2]: *** [test/unit/CMakeFiles/luaL_iterator.test.dir/build.make:127: test/unit/luaL_iterator.test] Error 1
> | make[1]: *** [CMakeFiles/Makefile2:4930: test/unit/CMakeFiles/luaL_iterator.test.dir/all] Error 2
> | make[1]: *** Waiting for unfinished jobs....
> 
> There is a similar issue[1] in curl repo (unfortunately a stalled and
> closed). I faced the issue as a result of autotools replacement with
> CMake: the option was disabled by default in autoconf[2], but enabled by
> default in CMake[3]. Here is the patch fixing the issue:
> 
> ================================================================================
> 
> diff --git a/cmake/BuildLibCURL.cmake b/cmake/BuildLibCURL.cmake
> index a4e222f95..caebf1870 100644
> --- a/cmake/BuildLibCURL.cmake
> +++ b/cmake/BuildLibCURL.cmake
> @@ -106,6 +106,7 @@ macro(curl_build)
>      list(APPEND LIBCURL_CMAKE_FLAGS "-DCMAKE_USE_MBEDTLS=OFF")
>      list(APPEND LIBCURL_CMAKE_FLAGS "-DCMAKE_USE_WOLFSSL=OFF")
>      list(APPEND LIBCURL_CMAKE_FLAGS "-DCMAKE_USE_NSS=OFF")
> +    list(APPEND LIBCURL_CMAKE_FLAGS "-DCMAKE_USE_LIBSSH2=OFF")
>      list(APPEND LIBCURL_CMAKE_FLAGS "-DCURL_CA_BUNDLE=none")
>      list(APPEND LIBCURL_CMAKE_FLAGS "-DCURL_CA_PATH=none")
>      list(APPEND LIBCURL_CMAKE_FLAGS "-DUSE_LIBRTMP=OFF")
> 
> ================================================================================
> 
> After applying the patch the error is gone and tests are fine.
> 
> [1]: https://github.com/curl/curl/issues/1146
> [2]: https://github.com/tarantool/curl/blob/5a1fc8d33808d7b22f57bdf9403cda7ff07b0670/configure.ac#L2890
> [3]: https://github.com/tarantool/curl/blob/5a1fc8d33808d7b22f57bdf9403cda7ff07b0670/CMakeLists.txt#L642
> 
> -- 
> Best regards,
> IM


More information about the Tarantool-patches mailing list