Skip to content

Building target multipass_tests fails on Ubuntu ARM64 #3739

@jason-erb

Description

@jason-erb

Running make on Ubuntu 22.04.5 ARM64 fails on the multipass_tests target results in the following failure:

/usr/bin/ld: CMakeFiles/multipass_tests.dir/linux/test_platform_linux.cpp.o: in function `multipass::DNSMasqServerFactory::DNSMasqServerFactory(multipass::PrivatePassProvider<multipass::Singleton<multipass::DNSMasqServerFactory> >::PrivatePass const&)':
test_platform_linux.cpp:(.text._ZN9multipass20DNSMasqServerFactoryC2ERKNS_19PrivatePassProviderINS_9SingletonIS0_EEE11PrivatePassE[_ZN9multipass20DNSMasqServerFactoryC5ERKNS_19PrivatePassProviderINS_9SingletonIS0_EEE11PrivatePassE]+0x1c): undefined reference to `vtable for multipass::DNSMasqServerFactory'
/usr/bin/ld: test_platform_linux.cpp:(.text._ZN9multipass20DNSMasqServerFactoryC2ERKNS_19PrivatePassProviderINS_9SingletonIS0_EEE11PrivatePassE[_ZN9multipass20DNSMasqServerFactoryC5ERKNS_19PrivatePassProviderINS_9SingletonIS0_EEE11PrivatePassE]+0x20): undefined reference to `vtable for multipass::DNSMasqServerFactory'
/usr/bin/ld: CMakeFiles/multipass_tests.dir/linux/test_platform_linux.cpp.o: in function `multipass::test::MockDNSMasqServerFactory::mock_instance()':
test_platform_linux.cpp:(.text._ZN9multipass4test24MockDNSMasqServerFactory13mock_instanceEv[_ZN9multipass4test24MockDNSMasqServerFactory13mock_instanceEv]+0x1c): undefined reference to `typeinfo for multipass::DNSMasqServerFactory'
/usr/bin/ld: test_platform_linux.cpp:(.text._ZN9multipass4test24MockDNSMasqServerFactory13mock_instanceEv[_ZN9multipass4test24MockDNSMasqServerFactory13mock_instanceEv]+0x20): undefined reference to `typeinfo for multipass::DNSMasqServerFactory'
/usr/bin/ld: CMakeFiles/multipass_tests.dir/linux/test_platform_linux.cpp.o: in function `multipass::DNSMasqServerFactory::~DNSMasqServerFactory()':
test_platform_linux.cpp:(.text._ZN9multipass20DNSMasqServerFactoryD2Ev[_ZN9multipass20DNSMasqServerFactoryD5Ev]+0xc): undefined reference to `vtable for multipass::DNSMasqServerFactory'
/usr/bin/ld: test_platform_linux.cpp:(.text._ZN9multipass20DNSMasqServerFactoryD2Ev[_ZN9multipass20DNSMasqServerFactoryD5Ev]+0x10): undefined reference to `vtable for multipass::DNSMasqServerFactory'
/usr/bin/ld: CMakeFiles/multipass_tests.dir/linux/test_platform_linux.cpp.o:(.data.rel.ro._ZTIN9multipass4test24MockDNSMasqServerFactoryE[_ZTIN9multipass4test24MockDNSMasqServerFactoryE]+0x10): undefined reference to `typeinfo for multipass::DNSMasqServerFactory'
collect2: error: ld returned 1 exit status
make[2]: *** [tests/CMakeFiles/multipass_tests.dir/build.make:1962: bin/multipass_tests] Error 1
make[1]: *** [CMakeFiles/Makefile2:4348: tests/CMakeFiles/multipass_tests.dir/all] Error 2

This failure occurs on the main branch.

I have fixed this locally and will be submitting a pull request shortly.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions