online icon indicating copy to clipboard operation
online copied to clipboard

Private/mmeeks/zstd

Open mmeeks opened this issue 3 years ago • 2 comments

  • 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 run and manually verified that everything looks okay
  • [ ] Documentation (manuals or wiki) has been updated or is not required

mmeeks avatar Sep 20 '22 03:09 mmeeks

Thanks Andras - you rock =) so we can hard-code the level from minCLevel as a number I believe instead.

mmeeks avatar Sep 20 '22 12:09 mmeeks

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.

timar avatar Sep 20 '22 13:09 timar

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

timar avatar Oct 07 '22 19:10 timar

Android against Core co-22.05 — SUCCESS

timar avatar Oct 12 '22 10:10 timar

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

timar avatar Oct 12 '22 20:10 timar

iOS against Core co-22.05 — SUCCESS

timar avatar Nov 02 '22 07:11 timar