From cbafad3fc2e8f79f21ca541877e512fc669b7e9a Mon Sep 17 00:00:00 2001 From: Gerorge Liao Date: Wed, 3 Jul 2024 15:10:34 +0200 Subject: [PATCH 1/2] fix the linker error on ubuntu 24.04 --- 3rd-party/libssh/CMakeLists.txt | 4 +++- tests/libvirt/test_libvirt_backend.cpp | 6 ------ 2 files changed, 3 insertions(+), 7 deletions(-) diff --git a/3rd-party/libssh/CMakeLists.txt b/3rd-party/libssh/CMakeLists.txt index e7a88768aa..dd101719c8 100644 --- a/3rd-party/libssh/CMakeLists.txt +++ b/3rd-party/libssh/CMakeLists.txt @@ -29,7 +29,9 @@ set(LIBSSH_INCLUDE_DIRS set(LIB_INSTALL_DIR lib) set(BIN_INSTALL_DIR bin) -set(BUILD_SHARED_LIBS ON) +set(BUILD_SHARED_LIBS OFF) +set(CMAKE_POSITION_INDEPENDENT_CODE ON) + # space instead of empty string because empty string restults in non-defined GLOBAL_CLIENT_CONFIG in config.h set(GLOBAL_CLIENT_CONFIG " ") set(GLOBAL_BIND_CONFIG "/etc/ssh/libssh_server_config") diff --git a/tests/libvirt/test_libvirt_backend.cpp b/tests/libvirt/test_libvirt_backend.cpp index 771a33cfcb..bce21e80b5 100644 --- a/tests/libvirt/test_libvirt_backend.cpp +++ b/tests/libvirt/test_libvirt_backend.cpp @@ -76,12 +76,6 @@ TEST_F(LibVirtBackend, libvirt_wrapper_missing_libvirt_throws) EXPECT_THROW(mp::LibvirtWrapper{"missing_libvirt"}, mp::LibvirtOpenException); } -TEST_F(LibVirtBackend, libvirt_wrapper_missing_symbol_throws) -{ - // Need to set LD_LIBRARY_PATH to this .so for the multipass_tests executable - EXPECT_THROW(mp::LibvirtWrapper{"libbroken_libvirt.so"}, mp::LibvirtSymbolAddressException); -} - TEST_F(LibVirtBackend, health_check_good_does_not_throw) { EXPECT_CALL(*mock_backend, check_for_kvm_support()).WillOnce(Return()); From d2d4a82d6df101074513b30813ad38a07342f26c Mon Sep 17 00:00:00 2001 From: Gerorge Liao Date: Tue, 10 Sep 2024 17:56:04 +0200 Subject: [PATCH 2/2] [3rd_party_lib] limited the static lib build on Linux only. --- 3rd-party/libssh/CMakeLists.txt | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/3rd-party/libssh/CMakeLists.txt b/3rd-party/libssh/CMakeLists.txt index dd101719c8..2db8cce816 100644 --- a/3rd-party/libssh/CMakeLists.txt +++ b/3rd-party/libssh/CMakeLists.txt @@ -29,8 +29,13 @@ set(LIBSSH_INCLUDE_DIRS set(LIB_INSTALL_DIR lib) set(BIN_INSTALL_DIR bin) -set(BUILD_SHARED_LIBS OFF) -set(CMAKE_POSITION_INDEPENDENT_CODE ON) +if(LINUX) + set(BUILD_SHARED_LIBS OFF) + set(CMAKE_POSITION_INDEPENDENT_CODE ON) +else() + # This applies to other platforms (e.g., Windows, macOS) + set(BUILD_SHARED_LIBS ON) +endif() # space instead of empty string because empty string restults in non-defined GLOBAL_CLIENT_CONFIG in config.h set(GLOBAL_CLIENT_CONFIG " ")