Thanks to the help of jca@ and sthen@ I got to a point where the port
builds nicely on amd64 6.1 (I know the ports tree is tracking -current).
The patch is here:
https://github.com/openbsd/ports/compare/master...blackgnezdo:proto3?expand=1

Now some tests are failing.
% make test
...
FAIL: protobuf-test
FAIL: protobuf-lazy-descriptor-test
PASS: protobuf-lite-test
PASS: google/protobuf/compiler/zip_output_unittest.sh
PASS: google/protobuf/io/gzip_stream_unittest.sh
FAIL: protobuf-lite-arena-test
PASS: no-warning-test

gdb traces are below. A couple of failures look like something I would
expect when a multi-threaded program is trying to deallocate a statically
defined string object on exit while it is being accessed from a different
thread.. The AddExpectation one is harder to pinpoint for me.

I'll keep poking this, but would be happy to entertain some hypotheses.

% LD_LIBRARY_PATH=/usr/ports/pobj/protobuf-3.2.0/build-amd64/src/.libs gdb
/usr/ports/pobj/protobuf-3.2.0/build-amd64/src/.libs/protobuf-lazy-descriptor-test


(gdb) run
[  PASSED  ] 46 tests.

Program received signal SIGBUS, Bus error.
0x00000168a266de2d in ~basic_string (this=Variable "this" is not available.
) at atomicity.h:51
51    atomicity.h: No such file or directory.
    in atomicity.h
Current language:  auto; currently c++
(gdb) where
where
#0  0x00000168a266de2d in ~basic_string (this=Variable "this" is not
available.
) at atomicity.h:51
#1  0x000001692d573b18 in __tcf_7 ()
   from /usr/ports/pobj/protobuf-3.2.0/build-amd64/src/.libs/libgmock.so.0.0
#2  0x00000168f0a75627 in *_libc___cxa_finalize (dso=0x0)
    at /usr/src/lib/libc/stdlib/atexit.c:159
#3  0x00000168f0a6dc7e in *_libc_exit (status=0) at
/usr/src/lib/libc/stdlib/exit.c:57
#4  0x000001662f202965 in _start ()
   from
/usr/ports/pobj/protobuf-3.2.0/build-amd64/src/.libs/protobuf-lazy-descriptor-test
#5  0x0000000000000000 in ?? ()
(gdb)

% LD_LIBRARY_PATH=/usr/ports/pobj/protobuf-3.2.0/build-amd64/src/.libs gdb
/usr/ports/pobj/protobuf-3.2.0/build-amd64/src/.libs/protobuf-lite-arena-test

...
[----------] Global test environment tear-down
[==========] 2 tests from 1 test case ran. (10 ms total)
[  PASSED  ] 2 tests.

Program received signal SIGBUS, Bus error.
0x00001eee6b4c0e2d in ~basic_string (this=Variable "this" is not available.
) at atomicity.h:51
51    atomicity.h: No such file or directory.
    in atomicity.h
Current language:  auto; currently c++
(gdb) where
where
#0  0x00001eee6b4c0e2d in ~basic_string (this=Variable "this" is not
available.
) at atomicity.h:51
#1  0x00001eef270cab18 in __tcf_7 ()
   from /usr/ports/pobj/protobuf-3.2.0/build-amd64/src/.libs/libgmock.so.0.0
#2  0x00001eeeaa44b627 in *_libc___cxa_finalize (dso=0x0)
    at /usr/src/lib/libc/stdlib/atexit.c:159
#3  0x00001eeeaa443c7e in *_libc_exit (status=0) at
/usr/src/lib/libc/stdlib/exit.c:57
#4  0x00001eec67f00fd5 in _start ()
   from
/usr/ports/pobj/protobuf-3.2.0/build-amd64/src/.libs/protobuf-lite-arena-test
#5  0x0000000000000000 in ?? ()
(gdb)

% LD_LIBRARY_PATH=/usr/ports/pobj/protobuf-3.2.0/build-amd64/src/.libs gdb
/usr/ports/pobj/protobuf-3.2.0/build-amd64/src/.libs/protobuf-test

(gdb) run
...
[----------] 70 tests from JsonStreamParserTest
[ RUN      ] JsonStreamParserTest.SimpleTrue

Program received signal SIGSEGV, Segmentation fault.
0x0000167fd8be45bb in testing::Sequence::AddExpectation ()
   from /usr/ports/pobj/protobuf-3.2.0/build-amd64/src/.libs/libgmock.so.0.0
(gdb) where
where
#0  0x0000167fd8be45bb in testing::Sequence::AddExpectation ()
   from /usr/ports/pobj/protobuf-3.2.0/build-amd64/src/.libs/libgmock.so.0.0
#1  0x0000167d8fe86887 in
testing::internal::MockSpec<google::protobuf::util::converter::ObjectWriter*
()(google::protobuf::StringPiece, bool)>::InternalExpectedAt ()
   from /usr/ports/pobj/protobuf-3.2.0/build-amd64/src/.libs/protobuf-test
#2  0x0000167d8fe8bb2a in
google::protobuf::util::converter::ExpectingObjectWriter::RenderBool ()
from /usr/ports/pobj/protobuf-3.2.0/build-amd64/src/.libs/protobuf-test
#3  0x0000167d8fea74a6 in
google::protobuf::util::converter::JsonStreamParserTest_SimpleTrue_Test::TestBody
()
   from /usr/ports/pobj/protobuf-3.2.0/build-amd64/src/.libs/protobuf-test
#4  0x0000167fef61c46b in
testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>
() from /usr/ports/pobj/protobuf-3.2.0/build-amd64/src/.libs/libgtest.so.1.0
#5  0x0000167fef609429 in testing::Test::Run ()
   from /usr/ports/pobj/protobuf-3.2.0/build-amd64/src/.libs/libgtest.so.1.0
#6  0x0000167fef609565 in testing::TestInfo::Run ()
   from /usr/ports/pobj/protobuf-3.2.0/build-amd64/src/.libs/libgtest.so.1.0
#7  0x0000167fef609625 in testing::TestCase::Run ()
   from /usr/ports/pobj/protobuf-3.2.0/build-amd64/src/.libs/libgtest.so.1.0
#8  0x0000167fef60e05c in testing::internal::UnitTestImpl::RunAllTests ()
   from /usr/ports/pobj/protobuf-3.2.0/build-amd64/src/.libs/libgtest.so.1.0
#9  0x0000167fef615c55 in
testing::internal::HandleSehExceptionsInMethodIfSupported<testing::internal::UnitTestImpl,
bool> ()
   from /usr/ports/pobj/protobuf-3.2.0/build-amd64/src/.libs/libgtest.so.1.0
#10 0x0000167fef61bfbc in
testing::internal::HandleExceptionsInMethodIfSupported<testing::internal::UnitTestImpl,
bool> ()
   from /usr/ports/pobj/protobuf-3.2.0/build-amd64/src/.libs/libgtest.so.1.0
#11 0x0000167fef606c85 in testing::UnitTest::Run ()
   from /usr/ports/pobj/protobuf-3.2.0/build-amd64/src/.libs/libgtest.so.1.0
#12 0x0000167ff6694f3e in main ()
   from
/usr/ports/pobj/protobuf-3.2.0/build-amd64/src/.libs/libgmock_main.so.0.0
#13 0x0000167d8fa0504e in _start ()
   from /usr/ports/pobj/protobuf-3.2.0/build-amd64/src/.libs/protobuf-test
#14 0x0000000000000000 in ?? ()
(gdb)
%

Reply via email to