I'm trying exempi-2.1.0 on NetBSD-5.0RC2/amd64 with expat-2.0.1 and boost-1.38.0. 'cd exempti/test && make check' reports: PASS: testcore.sh terminate called after throwing an instance of 'boost::system_error' [1] Abort trap (core dumped) TEST_DIR=. BOOST... FAIL: testinit terminate called after throwing an instance of 'boost::system_error' [1] Abort trap (core dumped) TEST_DIR=. BOOST... FAIL: testexempicore terminate called after throwing an instance of 'boost::system_error' [1] Abort trap (core dumped) TEST_DIR=. BOOST... FAIL: testserialise terminate called after throwing an instance of 'boost::system_error' [1] Abort trap (core dumped) TEST_DIR=. BOOST... FAIL: testwritenewprop terminate called after throwing an instance of 'boost::system_error' [1] Abort trap (core dumped) TEST_DIR=. BOOST... FAIL: testtiffleak terminate called after throwing an instance of 'boost::system_error' [1] Abort trap (core dumped) TEST_DIR=. BOOST... FAIL: testxmpfiles terminate called after throwing an instance of 'boost::system_error' [1] Abort trap (core dumped) TEST_DIR=. BOOST... FAIL: testxmpfileswrite terminate called after throwing an instance of 'boost::system_error' [1] Abort trap (core dumped) TEST_DIR=. BOOST... FAIL: test3 terminate called after throwing an instance of 'boost::system_error' [1] Abort trap (core dumped) TEST_DIR=. BOOST... FAIL: testfdo18635 ==================== 9 of 10 tests failed ==================== *** Error code 1 There are two different error cases: Most backtraces look like this: gdb test3 test3.core GNU gdb 6.5 Copyright (C) 2006 Free Software Foundation, Inc. GDB is free software, covered by the GNU General Public License, and you are welcome to change it and/or distribute copies of it under certain conditions. Type "show copying" to see the conditions. There is absolutely no warranty for GDB. Type "show warranty" for details. This GDB was configured as "x86_64--netbsd"... Reading symbols from /usr/X11R7/lib/libexpat.so.1...done. Loaded symbols for /usr/X11R7/lib/libexpat.so.1 Reading symbols from /usr/lib/libz.so.1...done. Loaded symbols for /usr/lib/libz.so.1 Reading symbols from /usr/lib/libstdc++.so.6...done. Loaded symbols for /usr/lib/libstdc++.so.6 Reading symbols from /usr/lib/libm.so.0...done. Loaded symbols for /usr/lib/libm.so.0 Reading symbols from /usr/lib/libgcc_s.so.1...done. Loaded symbols for /usr/lib/libgcc_s.so.1 Reading symbols from /usr/lib/libc.so.12...done. Loaded symbols for /usr/lib/libc.so.12 Reading symbols from /usr/libexec/ld.elf_so...done. Loaded symbols for /usr/libexec/ld.elf_so Core was generated by `test3'. Program terminated with signal 6, Aborted. #0 0x00007f7ffd1db99a in _lwp_kill () from /usr/lib/libc.so.12 (gdb) bt #0 0x00007f7ffd1db99a in _lwp_kill () from /usr/lib/libc.so.12 #1 0x00007f7ffd1db272 in abort () from /usr/lib/libc.so.12 #2 0x00007f7ffd8c0b0d in __gnu_cxx::__verbose_terminate_handler () from /usr/lib/libstdc++.so.6 #3 0x00007f7ffd8c4f13 in __cxxabiv1::__terminate () from /usr/lib/libstdc++.so.6 #4 0x00007f7ffd8c5a1b in __cxa_call_terminate () from /usr/lib/libstdc++.so.6 #5 0x00007f7ffd8c5807 in __gxx_personality_v0 () from /usr/lib/libstdc++.so.6 #6 0x00007f7ffd403a68 in _Unwind_Backtrace () from /usr/lib/libgcc_s.so.1 #7 0x00007f7ffd403cdb in _Unwind_Resume () from /usr/lib/libgcc_s.so.1 #8 0x000000000040952a in ~signal_handler (this=0x7f7fffffd400) at /usr/pkg/include/boost/test/impl/execution_monitor.ipp:686 #9 0x000000000040a6d9 in boost::execution_monitor::catch_signals ( this=0x7f7fffffd6c0, F=@0x7f7fffffd6e0) at /usr/pkg/include/boost/test/impl/execution_monitor.ipp:764 #10 0x000000000040a71c in boost::execution_monitor::execute ( this=0x7f7fffffd6c0, F=@0x7f7fffffd6e0) at /usr/pkg/include/boost/test/impl/execution_monitor.ipp:1091 #11 0x000000000040aca0 in main (argc=1, argv=<value optimized out>) at /usr/pkg/include/boost/test/minimal.hpp:115 (gdb) The one exception: gdb testxmpfiles GNU gdb 6.5 Copyright (C) 2006 Free Software Foundation, Inc. GDB is free software, covered by the GNU General Public License, and you are welcome to change it and/or distribute copies of it under certain conditions. Type "show copying" to see the conditions. There is absolutely no warranty for GDB. Type "show warranty" for details. This GDB was configured as "x86_64--netbsd"... (gdb) r Starting program: /home/wiz/exempi-2.1.0/exempi/tests/testxmpfiles assertion "srcdir != __null" failed: file "utils.cpp", line 52, function "void p repare_test(int, char**, const char*)" Program received signal SIGABRT, Aborted. 0x00007f7ffd1db99a in _lwp_kill () from /usr/lib/libc.so.12 (gdb)
bug 19858 has other symptoms but is about the same thing. BTW, for the last bits, "assertion "srcdir != __null" failed: file "utils.cpp", line 52, function "void [...]" means that srcdir env is not defined.... This is expected and is set by "make check" therefor, it is not relevant. Works fine here on boost 1.36 / Linux. If you really want to give a valid stack trace, just break for when the execption is thrown.
I started one of the tests as: $ TEST_DIR=. BOOST_TEST_CATCH_SYSTEM_ERRORS=no gdb ./testxmpfiles The last step before the segfault is ... (gdb) 55 56 static TLS int g_error = 0; 57 58 static void set_error(int err) 59 { 60 g_error = err; 61 } 62 63 #else 64 (gdb) bt #0 set_error (err=0) at exempi.cpp:60 #1 0x000000000040bd55 in xmp_files_open_new ( path=0x7f7ffd00d088 "./../../samples/testfiles/BlueSquare.jpg", options=XMP_OPEN_READ) at exempi.cpp:255 #2 0x000000000040a29f in test_main (argc=<value optimized out>, argv=<value optimized out>) at test-xmpfiles.cpp:61 #3 0x0000000000409cb0 in boost::execution_monitor::catch_signals ( this=0x7f7fffffd680, F=@0x7f7fffffd6a0) at /usr/pkg/include/boost/test/utils/callback.hpp:118 #4 0x0000000000409d5c in boost::execution_monitor::execute ( this=0x7f7fffffd680, F=@0x7f7fffffd6a0) at /usr/pkg/include/boost/test/impl/execution_monitor.ipp:1091 #5 0x000000000040a6a0 in main (argc=1, argv=<value optimized out>) at /usr/pkg/include/boost/test/minimal.hpp:115 (gdb) s Program received signal SIGSEGV, Segmentation fault. set_error (err=0) at exempi.cpp:60 60 g_error = err; (gdb) Is this the information you're looking for? What else can I provide?
Looks like it is crashing when trying to access thread local data. No idea why. What is the compilation line like?
The compilation line is: /bin/ksh ../../libtool --tag=CXX --mode=compile g++ -DPACKAGE_NAME=\"\" -DPACKAGE_TARNAME=\"\" -DPACKAGE_VERSION=\"\" -DPACKAGE _STRING=\"\" -DPACKAGE_BUGREPORT=\"\" -DPACKAGE=\"exempi\" -DVERSION=\"2.1.0\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_ST AT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNIST D_H=1 -DHAVE_DLFCN_H=1 -DLT_OBJDIR=\".libs/\" -DCHECKED_ENDIANNESS=1 -DICONV_CONST=const -DTLS=__thread -DHAVE_NATIVE_TLS=1 -DHAVE _BOOST_TEST_UNIT_TEST_HPP=1 -I. -I../../public/include -I../../public/include/client-glue -I../../build/ -I./../common/ -I../. ./third-party/MD5 -Wall -DUNIX_ENV=1 -DXMP_IMPL=1 -DXMP_ClientBuild=0 -D_FILE_OFFSET_BITS=64 -DHAVE_EXPAT_CONFIG_H=1 -DXML_STAT IC=1 -I/usr/pkg/include -I/usr/X11R7/include -Wno-multichar -Wno-implicit -Wno-ctor-dtor-privacy -funsigned-char -fexceptions -g -O2 -MT ExpatAdapter.lo -MD -MP -MF .deps/ExpatAdapter.Tpo -c -o ExpatAdapter.lo ExpatAdapter.cpp In the meantime I've found out that the NetBSD pthread library cannot coexist with anything using user defined stacks. Could this have anything to do with that core dump?
The tests in 2.3.0 do not report any errors. They do not seem to do anything else either though: # make test Making check in tests make testcore.sh test1.xmp fdo18635.jpg fdo83313.jpg `testcore.sh' is up to date. `test1.xmp' is up to date. `fdo18635.jpg' is up to date. `fdo83313.jpg' is up to date. make check-TESTS ============================================================================ Testsuite summary for exempi 2.3.0 ============================================================================ # TOTAL: 0 # PASS: 0 # SKIP: 0 # XFAIL: 0 # FAIL: 0 # XPASS: 0 # ERROR: 0 ============================================================================
If I install boost before, 12 tests are built and work.
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.