google test: segfault if static library

Модератор: Модераторы разделов

IMB
Сообщения: 2563
ОС: Debian

google test: segfault if static library

Сообщение IMB »

Доброго дня!
Используется google-test-1.11.0, gcc-11.2, если google-test cобран как shared library, при конфигурировании добавлен параметр -DBUILD_SHARED_LIBS=ON, всё работает нормально, в случае static library происходит segfault

Код: Выделить всё

(gdb) bt
#0  0x0000f84c in ?? ()
#1  0x0040ffb8 in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string<std::allocator<char> >(char const*, std::allocator<char> const&) ()
#2  0x0042a840 in testing::internal::MakeAndRegisterTestInfo (
    test_suite_name=0x4bbc88 "MuteTests", name=0x4bbc7c "isEnabled", type_param=0x0, 
    value_param=0x0, code_location=..., 
    fixture_class_id=0x507bb0 <testing::internal::TypeIdHelper<testing::Test>::dummy_>, set_up_tc=0x0, tear_down_tc=0x0, factory=0x50cd28)
    at /tmp/firmware/build-sml723x/googletest-release-1.11.0/googletest/src/gtest.cc:2763
#3  0x0040a6cc in _GLOBAL__sub_I_main.cpp ()
#4  0x77b55724 in _dl_run_init_array ()
   from /home/kirill/Projects/stb-firmware/toolchain/mipsel-rtk-linux-uclibc/mipsel-rtk-linux-uclibc/sysroot/lib/ld-uClibc-1.0.38.so
Backtrace stopped: frame did not save the PC
Хотелось бы решить эту проблему, сборка идёт под несколько SoC, падает не на всех, static library проще использовать в силу меньшего количества зависимостей.
Можете подсказать возможные причины и/или способы решения/нахождения причин?
Спасибо.
Спасибо сказали:
IMB
Сообщения: 2563
ОС: Debian

Re: google test: segfault if static library

Сообщение IMB »

Похоже решено добавлением -DCMAKE_CXX_FLAGS=-fPIC
Спасибо сказали: