Hi,
I am the next foolish person in line trying to get any version of protobuf 3.x compiled and tests passing on OpenBSD. Release 3.5.1 compiles without much fuss but when running tests, a segmentation fault occurs at the start of JsonStreamParserTest.
[----------] 70 tests from JsonStreamParserTest
[ RUN ] JsonStreamParserTest.SimpleTrue
Program received signal SIGSEGV, Segmentation fault.
0x00000cd0eddfdd54 in testing::Sequence::AddExpectation(testing::Expectation const&) const () from /usr/ports/pobj/protobuf-3.5.1/build-amd64/src/.libs/libgmock.so.0.0
(gdb) bt
#0 0x00000cd0eddfdd54 in testing::Sequence::AddExpectation(testing::Expectation const&) const () from /usr/ports/pobj/protobuf-3.5.1/build-amd64/src/.libs/libgmock.so.0.0
#1 0x00000cceb7261033 in testing::internal::MockSpec<google::protobuf::util::converter::ObjectWriter* (google::protobuf::StringPiece, bool)>::InternalExpectedAt(char const*, int, char const*, char const*) ()
#2 0x00000cceb7266825 in google::protobuf::util::converter::ExpectingObjectWriter::RenderBool(google::protobuf::StringPiece, bool) ()
#3 0x00000cceb72805f6 in google::protobuf::util::converter::JsonStreamParserTest_SimpleTrue_Test::TestBody() ()
#4 0x00000cd1178b8d81 in void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) ()
from /usr/ports/pobj/protobuf-3.5.1/build-amd64/src/.libs/libgtest.so.0.0
#5 0x00000cd1178af48a in testing::Test::Run() () from /usr/ports/pobj/protobuf-3.5.1/build-amd64/src/.libs/libgtest.so.0.0
#6 0x00000cd1178af5d8 in testing::TestInfo::Run() () from /usr/ports/pobj/protobuf-3.5.1/build-amd64/src/.libs/libgtest.so.0.0
#7 0x00000cd1178af6b5 in testing::TestCase::Run() () from /usr/ports/pobj/protobuf-3.5.1/build-amd64/src/.libs/libgtest.so.0.0
#8 0x00000cd1178af9c8 in testing::internal::UnitTestImpl::RunAllTests() () from /usr/ports/pobj/protobuf-3.5.1/build-amd64/src/.libs/libgtest.so.0.0
#9 0x00000cd1178b92f1 in bool testing::internal::HandleExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool>(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*)(), char const*) ()
from /usr/ports/pobj/protobuf-3.5.1/build-amd64/src/.libs/libgtest.so.0.0
#10 0x00000cd1178afca7 in testing::UnitTest::Run() () from /usr/ports/pobj/protobuf-3.5.1/build-amd64/src/.libs/libgtest.so.0.0
#11 0x00000cd19db06519 in main () from /usr/ports/pobj/protobuf-3.5.1/build-amd64/src/.libs/libgmock_main.so.0.0
#12 0x00000cceb6e05026 in _start ()
(gdb)
I am woefully out of my element, and concerted Google/GitHub/mailing list searching did not produce any actionable data for me. I fully understand no developers have access to OpenBSD machines in their testing infra (and while that can be arranged to whatever specifics required, I understand the project is not interested in having an OpenBSD machine in their infra to reproduce this on).
My questions are:
1) how can I build with debug symbols to get `backtrace full` output working as intended? where do I put the -g flag to get passed to gcc in the CMake makefile system? do I pass this with ./configure?
2) would anyone be so kind as to venture a guess or three where I should be looking or attempting next?
Again, I understand no one can reproduce this due to lack (and seemingly desire) of having an OpenBSD machine. I am that someone. I am highly motivated to get this working. I humbly ask for any and all assistance anyone can be bothered to provide.
Many thanks,
Aaron