Description of problem: During the course of working on bug 1788297 and the affiliated upstream bug[1], I discovered that capnproto's test suite only segfaults on ARM when I use the Fedora default compiler flags. If I compile with just "-g", everything passes. Upstream has suggested this is a GCC bug, and I'm inclined to agree. [1]: https://github.com/capnproto/capnproto/issues/937 Version-Release number of selected component (if applicable): 10.0.1-0.8.fc33 How reproducible: Always Steps to Reproduce: 1. fedpkg clone -a capnproto && cd capnproto 2. fedpkg scratch-build --arches armv7hl Actual results: Segfault while trying to run "table-test.c++:786: large tree table" test Expected results: All tests pass. Additional info: This is blocking resolving a FTBFS issue with capnproto.
Tried building it on x86_64 with -O0 -g -fsanitize=undefined,address and it FAILs there too, e.g. src/capnp/compiler/module-loader.c++:118:65: runtime error: signed integer overflow: 1535247712000000000 * 73 cannot be represented in type 'long int' src/kj/array.h:466:14: runtime error: reference binding to misaligned address 0x7f9ca0e74dae for type 'const struct ArrayDisposer', which requires 8 byte alignment src/kj/string.c++:190:25: runtime error: negation of -9223372036854775808 cannot be represented in type 'long int'; cast to an unsigned type to negate this value to itself src/kj/array.h:466:14: runtime error: reference binding to misaligned address 0x000000000002 for type 'const struct ArrayDisposer', which requires 8 byte alignment 0x000000000002: note: pointer points here <memory cannot be printed> (just a couple of different messages from src/capnp/compiler/capnp-test.sh.log). Furthermore, lots of warnings like: ./src/kj/common.h:1267:23: warning: initializing ‘kj::ArrayPtr<const kj::ArrayPtr<const unsigned char> >::ptr’ from ‘std::initializer_list<kj::ArrayPtr<const unsigned char> >::begin’ does not extend the lifetime of the underlying array [-Winit-list-lifetime] So not really sure I want to spend too much time looking into it, because it is very likely just buggy package.
As mentioned in https://github.com/capnproto/capnproto/issues/937 , this is a capnproto aliasing violation.
FEDORA-2020-3e12574632 has been submitted as an update to Fedora 32. https://bodhi.fedoraproject.org/updates/FEDORA-2020-3e12574632
capnproto-0.7.0-6.fc32 has been pushed to the Fedora 32 testing repository. If problems still persist, please make note of it in this bug report. See https://fedoraproject.org/wiki/QA:Updates_Testing for instructions on how to install test updates. You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2020-3e12574632
capnproto-0.7.0-6.fc32 has been pushed to the Fedora 32 stable repository. If problems still persist, please make note of it in this bug report.