Cannot link static TurboActivate with Linux OSSolved

Hi,

I cannot link static TurboActivate version 4.1.9.0 on CentOS 7 (inside Docker container), with g++ (GCC) 4.8.5 20150623 (Red Hat 4.8.5-36)the following linking errors are raised:

/usr/local/src/TurboActivateFloat-4.1.9.0-linux-static/x64/libTurboActivate.a(TurboActivate.o): In function `boost::detail::sp_counted_impl_p<boost::exception_detail::clone_impl<boost::exception_detail::bad_exception_> >::~sp_counted_impl_p()':TurboActivate.cpp:(.text._ZN5boost6detail17sp_counted_impl_pINS_16exception_detail10clone_implINS2_14bad_exception_EEEED0Ev[_ZN5boost6detail17sp_counted_impl_pINS_16exception_detail10clone_implINS2_14bad_exception_EEEED5Ev]+0x6): undefined reference to `operator delete(void*, unsigned long)'/usr/local/src/TurboActivateFloat-4.1.9.0-linux-static/x64/libTurboActivate.a(TurboActivate.o): In function `boost::detail::sp_counted_impl_p<boost::exception_detail::clone_impl<boost::exception_detail::bad_alloc_> >::~sp_counted_impl_p()':TurboActivate.cpp:(.text._ZN5boost6detail17sp_counted_impl_pINS_16exception_detail10clone_implINS2_10bad_alloc_EEEED0Ev[_ZN5boost6detail17sp_counted_impl_pINS_16exception_detail10clone_implINS2_10bad_alloc_EEEED5Ev]+0x6): undefined reference to `operator delete(void*, unsigned long)'/usr/local/src/TurboActivateFloat-4.1.9.0-linux-static/x64/libTurboActivate.a(TurboActivate.o): In function `boost::system::system_error::~system_error()':TurboActivate.cpp:(.text._ZN5boost6system12system_errorD0Ev[_ZN5boost6system12system_errorD5Ev]+0x13): undefined reference to `operator delete(void*, unsigned long)'/usr/local/src/TurboActivateFloat-4.1.9.0-linux-static/x64/libTurboActivate.a(TurboActivate.o): In function `boost::thread_exception::~thread_exception()':TurboActivate.cpp:(.text._ZN5boost16thread_exceptionD0Ev[_ZN5boost16thread_exceptionD5Ev]+0x13): undefined reference to `operator delete(void*, unsigned long)'/usr/local/src/TurboActivateFloat-4.1.9.0-linux-static/x64/libTurboActivate.a(TurboActivate.o): In function `boost::lock_error::~lock_error()':TurboActivate.cpp:(.text._ZN5boost10lock_errorD0Ev[_ZN5boost10lock_errorD5Ev]+0x13): undefined reference to `operator delete(void*, unsigned long)'/usr/local/src/TurboActivateFloat-4.1.9.0-linux-static/x64/libTurboActivate.a(TurboActivate.o):TurboActivate.cpp:(.text._ZN5boost21thread_resource_errorD0Ev[_ZN5boost21thread_resource_errorD5Ev]+0x13): more undefined references to `operator delete(void*, unsigned long)' follow/usr/local/src/TurboActivateFloat-4.1.9.0-linux-static/x64/libTurboActivate.a(TurboActivate.o): In function `robin_hood::detail::unordered_map<false, 80ul, std::string, unsigned int, robin_hood::hash<std::string>, std::equal_to<std::string> >::throwOverflowError() const [clone .isra.238]':TurboActivate.cpp:(.text._ZNK10robin_hood6detail13unordered_mapILb0ELm80ESsjNS_4hashISsEESt8equal_toISsEE18throwOverflowErrorEv.isra.238+0x1b): undefined reference to `std::overflow_error::overflow_error(char const*)'/usr/local/src/TurboActivateFloat-4.1.9.0-linux-static/x64/libTurboActivate.a(TurboActivate.o): In function `boost::exception_detail::error_info_injector<boost::thread_resource_error>::~error_info_injector()':TurboActivate.cpp:(.text._ZN5boost16exception_detail19error_info_injectorINS_21thread_resource_errorEED0Ev[_ZN5boost16exception_detail19error_info_injectorINS_21thread_resource_errorEED5Ev]+0x13): undefined reference to `operator delete(void*, unsigned long)'

Some error for Debian 8, with g++ (Debian 4.9.2-10+deb8u2) 4.9.2

/usr/local/src/TurboActivateFloat-4.1.9.0-linux-static/x64/libTurboActivate.a(TurboActivate.o): In function `boost::detail::sp_counted_impl_p<boost::exception_detail::clone_impl<boost::exception_detail::bad_exception_> >::~sp_counted_impl_p()':TurboActivate.cpp:(.text._ZN5boost6detail17sp_counted_impl_pINS_16exception_detail10clone_implINS2_14bad_exception_EEEED0Ev[_ZN5boost6detail17sp_counted_impl_pINS_16exception_detail10clone_implINS2_14bad_exception_EEEED5Ev]+0x6): undefined reference to `operator delete(void*, unsigned long)'/usr/local/src/TurboActivateFloat-4.1.9.0-linux-static/x64/libTurboActivate.a(TurboActivate.o): In function `boost::detail::sp_counted_impl_p<boost::exception_detail::clone_impl<boost::exception_detail::bad_alloc_> >::~sp_counted_impl_p()':TurboActivate.cpp:(.text._ZN5boost6detail17sp_counted_impl_pINS_16exception_detail10clone_implINS2_10bad_alloc_EEEED0Ev[_ZN5boost6detail17sp_counted_impl_pINS_16exception_detail10clone_implINS2_10bad_alloc_EEEED5Ev]+0x6): undefined reference to `operator delete(void*, unsigned long)'/usr/bin/ld: /usr/local/src/TurboActivateFloat-4.1.9.0-linux-static/x64/libTurboActivate.a(TurboActivate.o): unrecognized relocation (0x2a) in section `.text._ZN5boost6system12system_errorD2Ev[_ZN5boost6system12system_errorD5Ev]'/usr/bin/ld: final link failed: Bad valuecollect2: error: ld returned 1 exit status

The same code is working on Debian 9, 10, and all Ubuntu releases.

Either don't use the static libraries (use the dynamic libraries) or use modern compilers (we recommend at least devtoolset-8: https://www.softwarecollections.org/en/scls/rhscl/devtoolset-8/)