TurboActivate(static library) cause segmentation fault on CentOS6

OS: Linux CentOS6Kernel: 2.6.32-754.2.1.el6.x86_64 #1 SMPCompiler: g++ (GCC) 4.8.2 20131212 (Red Hat 4.8.2-8)

when compile Example.c and run, SIGSIGV receiveddebug InformationProgram received signal SIGSEGV, Segmentation fault.0x0000000000448bb0 in CryptoPP::BufferedTransformation::ChannelPut2(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned char const*, unsigned long, int, bool) ()Missing separate debuginfos, use: debuginfo-install libgcc-4.8.2-8.el6.x86_64 libstdc++-4.8.2-8.el6.x86_64(gdb) bt#0 0x0000000000448bb0 in CryptoPP::BufferedTransformation::ChannelPut2(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned char const*, unsigned long, int, bool) ()#1 0x0000000000433a1a in CryptoPP::StringStore::CopyRangeTo2(CryptoPP::BufferedTransformation&, unsigned long&, unsigned long, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool) const ()#2 0x00000000004286ec in CryptoPP::BufferedTransformation::CopyRangeTo(CryptoPP::BufferedTransformation&, unsigned long, unsigned long, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const ()#3 0x000000000044859d in CryptoPP::BufferedTransformation::Peek(unsigned char*, unsigned long) const ()#4 0x0000000000446508 in CryptoPP::BufferedTransformation::AnyRetrievable() const ()#5 0x0000000000446702 in CryptoPP::BufferedTransformation::TransferMessagesTo2(CryptoPP::BufferedTransformation&, unsigned int&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool) ()#6 0x0000000000446873 in CryptoPP::BufferedTransformation::TransferAllTo2(CryptoPP::BufferedTransformation&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool) ()#7 0x0000000000410f68 in CryptoPP::StringSource::StringSource(unsigned char const*, unsigned long, bool, CryptoPP::BufferedTransformation*) ()#8 0x00000000004175c0 in ProductDetails::Load(std::basic_istream<char, std::char_traits<char> >&, bool) ()#9 0x0000000000417e8b in ProductDetails::Load(char const*) ()#10 0x000000000040bef4 in TA_PDetsFromPath ()#11 0x000000000040bff7 in TATryLoadPDets() ()#12 0x000000000040c751 in TA_GetHandle ()#13 0x0000000000407c09 in main () at Example.c:70(gdb)

While the shared library works well, and static library could works on ubuntu 18.04

We'll look into this. It's likely fixed in the next version of TurboActivate (we've made a number of improvements), but we need to confirm.

This crash also might be due to a "newer" libstdc++ being linked to your app, and that mismatch is causing the crash.

Either way, the solution is to use the dynamic version of TurboActivate. This way you don't have to exactly match which libraries you link to in your app.