Hi! 20.09.2020, 15:11, "Atri Bhattacharya" <badshah400@opensuse.org>:
Hello, When the shared library for CLN is built with link-time optimization [1] (LTO) enabled, linking against libcln.so fails (for example GiNaC fails to build).
Can't reproduce it here with gcc 7.5 and binutils 2.30. git clone git://ginac.de/ginac.git cd ginac git clone -b cmake git://github.com/asheplyakov/cln.git mkdir _build cd _build cmake -GNinja -DCMAKE_BUILD_TYPE=RelWithDebInfo -DCMAKE_SHARED_LINKER_FLAGS='-flto' -DCMAKE_CXX_FLAGS='-std=c++11 -O2 -g -Wall -flto' -DCMAKE_C_FLAGS='-O2 -g -Wall -flto' .. ninja test_suite ninja test | tail -n 3 100% tests passed, 0 tests failed out of 62 Total Test time (real) = 341.58 sec This builds both CLN and GiNaC and runs test suites (both GiNaC and CLN's ones). I've verified that '-flto' switch has been passed to the compiler and the linker, and noticed those memory hungry 'lto1' processes.
This issue was first reported [2] against openSUSE Tumbleweed which builds its packages with LTO flags by default;
$ g++ example.cpp -lginac
This looks wrong, one should link with both GiNaC and CLN: g++ example.cpp -lginac -lcln (I'm not sure this is the root cause, though) Best regards, Alexey