Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Linker error on ubuntu 24.04, it does not occur on ubuntu 23.10 #3558

Open
georgeliao opened this issue Jul 3, 2024 · 0 comments · May be fixed by #3559
Open

Linker error on ubuntu 24.04, it does not occur on ubuntu 23.10 #3558

georgeliao opened this issue Jul 3, 2024 · 0 comments · May be fixed by #3559
Assignees
Labels

Comments

@georgeliao
Copy link
Contributor

georgeliao commented Jul 3, 2024

Describe the bug
Any executables of multipass project fail to link at the linkage phase. It is due to the system library libQt6Network.so.6.4.2 links to libcurl-gnutls.so.4 and the latter one links to libssh.so.4. In Multipass cmake environments, many targets link to Qt6::Network target which is libQt6Network.so.6.4.2 under the hood.

[ 77%] Linking CXX executable ../bin/multipass_tests
/usr/bin/ld: /lib/x86_64-linux-gnu/libcurl-gnutls.so.4: undefined reference to ssh_scp_free@LIBSSH_4_5_0' /usr/bin/ld: /lib/x86_64-linux-gnu/libcurl-gnutls.so.4: undefined reference to ssh_init@LIBSSH_4_5_0'
/usr/bin/ld: /lib/x86_64-linux-gnu/libcurl-gnutls.so.4: undefined reference to ssh_scp_read@LIBSSH_4_5_0' /usr/bin/ld: /lib/x86_64-linux-gnu/libcurl-gnutls.so.4: undefined reference to ssh_connect@LIBSSH_4_5_0'
/usr/bin/ld: /lib/x86_64-linux-gnu/libcurl-gnutls.so.4: undefined reference to ssh_userauth_kbdint@LIBSSH_4_5_0' /usr/bin/ld: /lib/x86_64-linux-gnu/libcurl-gnutls.so.4: undefined reference to sftp_opendir@LIBSSH_4_5_0'
/usr/bin/ld: /lib/x86_64-linux-gnu/libcurl-gnutls.so.4: undefined reference to ssh_get_error@LIBSSH_4_5_0' /usr/bin/ld: /lib/x86_64-linux-gnu/libcurl-gnutls.so.4: undefined reference to sftp_mkdir@LIBSSH_4_5_0'
/usr/bin/ld: /lib/x86_64-linux-gnu/libcurl-gnutls.so.4: undefined reference to sftp_seek64@LIBSSH_4_5_0' /usr/bin/ld: /lib/x86_64-linux-gnu/libcurl-gnutls.so.4: undefined reference to ssh_get_poll_flags@LIBSSH_4_5_0'
/usr/bin/ld: /lib/x86_64-linux-gnu/libcurl-gnutls.so.4: undefined reference to ssh_string_free_char@LIBSSH_4_5_0' /usr/bin/ld: /lib/x86_64-linux-gnu/libcurl-gnutls.so.4: undefined reference to sftp_attributes_free@LIBSSH_4_5_0'
/usr/bin/ld: /lib/x86_64-linux-gnu/libcurl-gnutls.so.4: undefined reference to ssh_pki_import_privkey_file@LIBSSH_4_5_0' /usr/bin/ld: /lib/x86_64-linux-gnu/libcurl-gnutls.so.4: undefined reference to ssh_version@LIBSSH_4_5_0'
/usr/bin/ld: /lib/x86_64-linux-gnu/libcurl-gnutls.so.4: undefined reference to sftp_get_error@LIBSSH_4_5_0' /usr/bin/ld: /lib/x86_64-linux-gnu/libcurl-gnutls.so.4: undefined reference to ssh_free@LIBSSH_4_5_0'
/usr/bin/ld: /lib/x86_64-linux-gnu/libcurl-gnutls.so.4: undefined reference to ssh_userauth_try_publickey@LIBSSH_4_5_0' /usr/bin/ld: /lib/x86_64-linux-gnu/libcurl-gnutls.so.4: undefined reference to ssh_get_server_publickey@LIBSSH_4_5_0'
/usr/bin/ld: /lib/x86_64-linux-gnu/libcurl-gnutls.so.4: undefined reference to ssh_scp_new@LIBSSH_4_5_0' /usr/bin/ld: /lib/x86_64-linux-gnu/libcurl-gnutls.so.4: undefined reference to ssh_pki_export_pubkey_base64@LIBSSH_4_5_0'
/usr/bin/ld: /lib/x86_64-linux-gnu/libcurl-gnutls.so.4: undefined reference to sftp_async_read_begin@LIBSSH_4_5_0' /usr/bin/ld: /lib/x86_64-linux-gnu/libcurl-gnutls.so.4: undefined reference to ssh_new@LIBSSH_4_5_0'
/usr/bin/ld: /lib/x86_64-linux-gnu/libcurl-gnutls.so.4: undefined reference to ssh_pki_import_pubkey_file@LIBSSH_4_5_0' /usr/bin/ld: /lib/x86_64-linux-gnu/libcurl-gnutls.so.4: undefined reference to sftp_file_set_nonblocking@LIBSSH_4_5_0'
/usr/bin/ld: /lib/x86_64-linux-gnu/libcurl-gnutls.so.4: undefined reference to sftp_new@LIBSSH_4_5_0' /usr/bin/ld: /lib/x86_64-linux-gnu/libcurl-gnutls.so.4: undefined reference to sftp_stat@LIBSSH_4_5_0'
/usr/bin/ld: /lib/x86_64-linux-gnu/libcurl-gnutls.so.4: undefined reference to sftp_readlink@LIBSSH_4_5_0' /usr/bin/ld: /lib/x86_64-linux-gnu/libcurl-gnutls.so.4: undefined reference to ssh_finalize@LIBSSH_4_5_0'
/usr/bin/ld: /lib/x86_64-linux-gnu/libcurl-gnutls.so.4: undefined reference to sftp_write@LIBSSH_4_5_0' /usr/bin/ld: /lib/x86_64-linux-gnu/libcurl-gnutls.so.4: undefined reference to sftp_symlink@LIBSSH_4_5_0'
/usr/bin/ld: /lib/x86_64-linux-gnu/libcurl-gnutls.so.4: undefined reference to ssh_userauth_kbdint_setanswer@LIBSSH_4_5_0' /usr/bin/ld: /lib/x86_64-linux-gnu/libcurl-gnutls.so.4: undefined reference to sftp_readdir@LIBSSH_4_5_0'
/usr/bin/ld: /lib/x86_64-linux-gnu/libcurl-gnutls.so.4: undefined reference to ssh_userauth_publickey_auto@LIBSSH_4_5_0' /usr/bin/ld: /lib/x86_64-linux-gnu/libcurl-gnutls.so.4: undefined reference to ssh_scp_init@LIBSSH_4_5_0'
/usr/bin/ld: /lib/x86_64-linux-gnu/libcurl-gnutls.so.4: undefined reference to ssh_key_free@LIBSSH_4_5_0' /usr/bin/ld: /lib/x86_64-linux-gnu/libcurl-gnutls.so.4: undefined reference to sftp_closedir@LIBSSH_4_5_0'
/usr/bin/ld: /lib/x86_64-linux-gnu/libcurl-gnutls.so.4: undefined reference to ssh_options_set@LIBSSH_4_5_0' /usr/bin/ld: /lib/x86_64-linux-gnu/libcurl-gnutls.so.4: undefined reference to sftp_free@LIBSSH_4_5_0'
/usr/bin/ld: /lib/x86_64-linux-gnu/libcurl-gnutls.so.4: undefined reference to ssh_scp_pull_request@LIBSSH_4_5_0' /usr/bin/ld: /lib/x86_64-linux-gnu/libcurl-gnutls.so.4: undefined reference to sftp_setstat@LIBSSH_4_5_0'
/usr/bin/ld: /lib/x86_64-linux-gnu/libcurl-gnutls.so.4: undefined reference to ssh_set_blocking@LIBSSH_4_5_0' /usr/bin/ld: /lib/x86_64-linux-gnu/libcurl-gnutls.so.4: undefined reference to sftp_unlink@LIBSSH_4_5_0'
/usr/bin/ld: /lib/x86_64-linux-gnu/libcurl-gnutls.so.4: undefined reference to ssh_options_parse_config@LIBSSH_4_5_0' /usr/bin/ld: /lib/x86_64-linux-gnu/libcurl-gnutls.so.4: undefined reference to sftp_lstat@LIBSSH_4_5_0'
/usr/bin/ld: /lib/x86_64-linux-gnu/libcurl-gnutls.so.4: undefined reference to sftp_init@LIBSSH_4_5_0' /usr/bin/ld: /lib/x86_64-linux-gnu/libcurl-gnutls.so.4: undefined reference to ssh_userauth_password@LIBSSH_4_5_0'
/usr/bin/ld: /lib/x86_64-linux-gnu/libcurl-gnutls.so.4: undefined reference to ssh_scp_request_get_size@LIBSSH_4_5_0' /usr/bin/ld: /lib/x86_64-linux-gnu/libcurl-gnutls.so.4: undefined reference to sftp_open@LIBSSH_4_5_0'
/usr/bin/ld: /lib/x86_64-linux-gnu/libcurl-gnutls.so.4: undefined reference to ssh_scp_write@LIBSSH_4_5_0' /usr/bin/ld: /lib/x86_64-linux-gnu/libcurl-gnutls.so.4: undefined reference to sftp_canonicalize_path@LIBSSH_4_5_0'
/usr/bin/ld: /lib/x86_64-linux-gnu/libcurl-gnutls.so.4: undefined reference to ssh_key_type@LIBSSH_4_5_0' /usr/bin/ld: /lib/x86_64-linux-gnu/libcurl-gnutls.so.4: undefined reference to ssh_scp_push_file@LIBSSH_4_5_0'
/usr/bin/ld: /lib/x86_64-linux-gnu/libcurl-gnutls.so.4: undefined reference to ssh_scp_close@LIBSSH_4_5_0' /usr/bin/ld: /lib/x86_64-linux-gnu/libcurl-gnutls.so.4: undefined reference to ssh_userauth_none@LIBSSH_4_5_0'
/usr/bin/ld: /lib/x86_64-linux-gnu/libcurl-gnutls.so.4: undefined reference to ssh_userauth_kbdint_getnprompts@LIBSSH_4_5_0' /usr/bin/ld: /lib/x86_64-linux-gnu/libcurl-gnutls.so.4: undefined reference to ssh_disconnect@LIBSSH_4_5_0'
/usr/bin/ld: /lib/x86_64-linux-gnu/libcurl-gnutls.so.4: undefined reference to ssh_userauth_publickey@LIBSSH_4_5_0' /usr/bin/ld: /lib/x86_64-linux-gnu/libcurl-gnutls.so.4: undefined reference to sftp_rename@LIBSSH_4_5_0'
/usr/bin/ld: /lib/x86_64-linux-gnu/libcurl-gnutls.so.4: undefined reference to sftp_dir_eof@LIBSSH_4_5_0' /usr/bin/ld: /lib/x86_64-linux-gnu/libcurl-gnutls.so.4: undefined reference to sftp_statvfs@LIBSSH_4_5_0'
/usr/bin/ld: /lib/x86_64-linux-gnu/libcurl-gnutls.so.4: undefined reference to sftp_close@LIBSSH_4_5_0' /usr/bin/ld: /lib/x86_64-linux-gnu/libcurl-gnutls.so.4: undefined reference to sftp_statvfs_free@LIBSSH_4_5_0'
/usr/bin/ld: /lib/x86_64-linux-gnu/libcurl-gnutls.so.4: undefined reference to ssh_session_get_known_hosts_entry@LIBSSH_4_8_1' /usr/bin/ld: /lib/x86_64-linux-gnu/libcurl-gnutls.so.4: undefined reference to ssh_clean_pubkey_hash@LIBSSH_4_5_0'
/usr/bin/ld: /lib/x86_64-linux-gnu/libcurl-gnutls.so.4: undefined reference to ssh_userauth_gssapi@LIBSSH_4_5_0' /usr/bin/ld: /lib/x86_64-linux-gnu/libcurl-gnutls.so.4: undefined reference to sftp_async_read@LIBSSH_4_5_0'
/usr/bin/ld: /lib/x86_64-linux-gnu/libcurl-gnutls.so.4: undefined reference to ssh_knownhosts_entry_free@LIBSSH_4_5_0' /usr/bin/ld: /lib/x86_64-linux-gnu/libcurl-gnutls.so.4: undefined reference to sftp_rmdir@LIBSSH_4_5_0'
/usr/bin/ld: /lib/x86_64-linux-gnu/libcurl-gnutls.so.4: undefined reference to sftp_fstat@LIBSSH_4_5_0' /usr/bin/ld: /lib/x86_64-linux-gnu/libcurl-gnutls.so.4: undefined reference to ssh_userauth_list@LIBSSH_4_5_0'
/usr/bin/ld: /lib/x86_64-linux-gnu/libcurl-gnutls.so.4: undefined reference to ssh_session_update_known_hosts@LIBSSH_4_5_0' /usr/bin/ld: /lib/x86_64-linux-gnu/libcurl-gnutls.so.4: undefined reference to ssh_get_publickey_hash@LIBSSH_4_5_0'
collect2: error: ld returned 1 exit status
make[2]: *** [tests/CMakeFiles/multipass_tests.dir/build.make:2123: bin/multipass_tests] Error 1
make[1]: *** [CMakeFiles/Makefile2:3873: tests/CMakeFiles/multipass_tests.dir/all] Error 2
make: *** [Makefile:146: all] Error 2

Additional context
It is related to #947

@georgeliao georgeliao added bug needs triage Issue needs to be triaged and removed needs triage Issue needs to be triaged labels Jul 3, 2024
@georgeliao georgeliao self-assigned this Jul 3, 2024
@georgeliao georgeliao linked a pull request Jul 3, 2024 that will close this issue
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant