Private/mmeeks/zstd
- Resolves: #
- Target version: master
Summary
TODO
- [ ] ...
Checklist
- [ ] Code is properly formatted
- [ ] All commits have Change-Id
- [ ] I have run tests with
make check - [ ] I have issued
make runand manually verified that everything looks okay - [ ] Documentation (manuals or wiki) has been updated or is not required
Thanks Andras - you rock =) so we can hard-code the level from minCLevel as a number I believe instead.
Thanks Andras - you rock =) so we can hard-code the level from minCLevel as a number I believe instead.
If you can use the lowest version API, then it'd be the easiest, otherwise we could try to build latest libzstd everywhere and link statically. Android and iOS may be problematic, too.
The idea was to require libzsdt >= 1.4.0, because code uses 1.4.0+ API. On modern distros it's not a problem, and on older distros (Ubuntu 16.04, Ubuntu 18.04, Debian 9) I installed static libzstd 1.5.2 in /usr/local.
Wrt. failure with "Fast Build against Core co-22.05" on Ubuntu 18.04, order of libraries matter, see below. But it's not a problem e.g. on Debian 9!
We had similar issue in the past, cf. 5a0e357f78759be09ab21e06156f1a749244c2c1
collabora@ubuntu1804:~/jenkins/workspace/github_online_master_vs_co-22.05$ /bin/bash ./libtool --tag=CXX --mode=link g++ -g -O2 -Wall -Wextra -Wshadow -Wundef -Werror -std=c++17 -pthread -Wl,-E -lpam -lz -L/usr/local/lib -lzstd -lssl -lcrypto -L/opt/poco/lib -o lokitclient common/Log.o common/DummyTraceEventEmitter.o tools/KitClient.o common/Protocol.o common/StringVector.o common/TraceEvent.o common/Util.o -lpam -lcap -lpng -ldl -lstdc++fs -lPocoNetSSL -lPocoNet -lPocoUtil -lPocoJSON -lPocoXML -lPocoFoundation -lPocoCrypto -lssl -lcrypto libtool: link: g++ -g -O2 -Wall -Wextra -Wshadow -Wundef -Werror -std=c++17 -pthread -Wl,-E -o lokitclient common/Log.o common/DummyTraceEventEmitter.o tools/KitClient.o common/Protocol.o common/StringVector.o common/TraceEvent.o common/Util.o -lz -L/usr/local/lib -lzstd -L/opt/poco/lib -lpam -lcap -lpng -ldl -lstdc++fs -lPocoNetSSL -lPocoNet -lPocoUtil -lPocoJSON -lPocoXML -lPocoFoundation -lPocoCrypto -lssl -lcrypto -pthread common/Log.o: In function `Log::initialize(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool, bool, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > const&)': /home/collabora/jenkins/workspace/github_online_master_vs_co-22.05/common/Log.cpp:311: undefined reference to `Poco::Logger::create(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, Poco::AutoPtr<Poco::Channel>, int)' common/Log.o: In function `Log::setThreadLocalLogLevel(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)': /home/collabora/jenkins/workspace/github_online_master_vs_co-22.05/common/Log.cpp:374: undefined reference to `Poco::Logger::create(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, Poco::AutoPtr<Poco::Channel>, int)' common/Util.o: In function `Util::JsonToMap(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)': /home/collabora/jenkins/workspace/github_online_master_vs_co-22.05/common/Util.cpp:657: undefined reference to `Poco::JSON::Parser::Parser(Poco::SharedPtr<Poco::JSON::Handler, Poco::ReferenceCounter, Poco::ReleasePolicy<Poco::JSON::Handler> > const&)' common/Util.o: In function `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > Poco::format<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >(char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)': /opt/poco/include/Poco/Format.h:172: undefined reference to `Poco::format(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, char const*, std::vector<Poco::Any, std::allocator<Poco::Any> > const&)' collect2: error: ld returned 1 exit status collabora@ubuntu1804:~/jenkins/workspace/github_online_master_vs_co-22.05$ /bin/bash ./libtool --tag=CXX --mode=link g++ -g -O2 -Wall -Wextra -Wshadow -Wundef -Werror -std=c++17 -pthread -Wl,-E -lpam -lz -lssl -lcrypto -L/opt/poco/lib -o lokitclient common/Log.o common/DummyTraceEventEmitter.o tools/KitClient.o common/Protocol.o common/StringVector.o common/TraceEvent.o common/Util.o -lpam -lcap -lpng -ldl -lstdc++fs -lPocoNetSSL -lPocoNet -lPocoUtil -lPocoJSON -lPocoXML -lPocoFoundation -lPocoCrypto -lssl -lcrypto -L/usr/local/lib -lzstd libtool: link: g++ -g -O2 -Wall -Wextra -Wshadow -Wundef -Werror -std=c++17 -pthread -Wl,-E -o lokitclient common/Log.o common/DummyTraceEventEmitter.o tools/KitClient.o common/Protocol.o common/StringVector.o common/TraceEvent.o common/Util.o -lz -L/opt/poco/lib -lpam -lcap -lpng -ldl -lstdc++fs -lPocoNetSSL -lPocoNet -lPocoUtil -lPocoJSON -lPocoXML -lPocoFoundation -lPocoCrypto -lssl -lcrypto -L/usr/local/lib -lzstd -pthread collabora@ubuntu1804:~/jenkins/workspace/github_online_master_vs_co-22.05$ ls -l lokitclient -rwxrwxr-x 1 collabora collabora 7013304 Oct 7 19:10 lokitclient
Android against Core co-22.05 — SUCCESS
I fixed the link issue, the reason was that we had stray poco libs in /usr/local/libs and they messed up the linking when we introduced /usr/local/lib path for libzstd. That leaves us with 1 unit test failure with make check: wsd-54795-54795 2022-10-12 20:28:04.711327 +0000 [ coolwsd ] ERR Failed to inflate zimage| kit/Delta.hpp:623 then segfault
iOS against Core co-22.05 — SUCCESS