Reported by Tony Cooper, Mar 27, 2011
I have experienced two problems when building and running mtn on WhiteBox Linux 4 respin 2 (pretty much equivalent to RHAS 4.2/4.3 Intel 32 bit). 1) The link command for mtn is missing -ldl and -lrt. Adding these makes it link ok. (-lrt needed for clock_gettime() and -ldl for a number of the dl library routines). 2) When run for most things it errors with an illegal instruction message: ----- $ mtn --db=test-1_00.mtn db init mtn: fatal signal: Illegal instruction this is almost certainly a bug in monotone. please send this error message, the output of 'mtn version --full', and a description of what you were doing to < https://code.monotone.ca/p/monotone/issues/> do not send a core dump, but if you have one, please preserve it in case we ask you for information from it. Illegal instruction ----- mtn version --full gives: ----- monotone 1.0 (base revision: 3405a2457cf8869f247a293d30cfe3a41b5eb5a2) Running on : Linux 2.6.9-34.EL #1 Sun Mar 19 13:34:16 CST 2006 i686 C++ compiler : GNU C++ version 3.4.5 20051201 (Red Hat 3.4.5-2) C++ standard library: GNU libstdc++ version 20051201 Boost version : 1_33_1 SQLite version : 3.4.2 (compiled against 3.4.2) Lua version : Lua 5.1 PCRE version : 4.5 01-December-2003 (compiled against 7.9) Botan version : 1.8.2 (compiled against 1.8.2) Changes since base revision: format_version "1" new_manifest [b252820fde344fd3f5d023fd91de86522baa671d] old_revision [3405a2457cf8869f247a293d30cfe3a41b5eb5a2] patch "NEWS" from [c636641e064654102ff4c37362c07cad9726c7a2] to [282addc1d59cc722b9e713aa5e04605e9bd2289d] Generated from data cached in the distribution; further changes may have been made. ----- I should also say that I have never had issues with the pre-built binaries. I can provide an strace should that be useful. Running in a debugger I get the following stack trace at the time the signal is caught: #0 0x08515843 in botan_sha1_sse2_compress () #1 0x00000000 in ?? () Cheers, Tony.
Comment 1 by Stephen Leake, Mar 29, 2011
The stack trace indicates that Botan is trying to use SSE2 instructions; does your CPU actually have those? Did you compile Botan from source? If not, try that, and try explicitly disabling SSE2. Also, the PCRE versions don't match; it says you compiled with version 7.9, but are using 4.5 runtime library.
Comment 2 by Tony Cooper, Apr 9, 2011
As I suspected - this was a bit of a red herring. Builds ok on Debian 5/6 and runs without crashing. I like Stephen's theory on this one, no SSE processor support for for an SSE enabled Botan library. The old build environment was a VM that was run on processors with and without SSE support and I suspect that when the Botan library was built it was on the box with SSE support. However I could not get Botan to build (I have no idea or record of how I did this before either, too old an STL perhaps?). On Debian 5/6 it built but it missed off some linker library switches on Deb5. I tracked this down to a missing .pc file for one of the additional libraries installed via a standard Debian package. Recreating this file led to a completely clean build and so this is a Deb 5 packaging issue. The Debian 5/6 binaries ran with no problems. So I am closing this ticket. Cheers, Tony.
Comment 3 by Tony Cooper, Apr 9, 2011