test fails because unhandled alignment trap
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
vowpal-wabbit (Ubuntu) |
Fix Released
|
Undecided
|
Unassigned |
Bug Description
Binary package hint: vowpal-wabbit
The package FTBFS on armel. It builds actually but the testsuite fails.
This is in dmesg
[ 4806.357452] Alignment trap: not handling instruction ecb08a01 at [<00014658>]
[ 4806.365600] Unhandled fault: alignment exception (0x011) at 0x01563321
This being a numerically intensive library it is compiled in Debian with -ffast-math. On armel this makes gcc emit some vector instructions and which are not handled by the kernel's alignment trap handler and the test crashes on a vldmia
0x00014658 <read_cached_
The C code that is compiled here uses a char * that is used to access data, so maybe that is the source of the problem.
for (;c!= end;)
{
feature f = {1., 0};
size_t temp = f.weight_index;
c = run_len_
if (f.weight_index & neg_1)
f.x = -1.;
else if (f.weight_index & general) {
f.x = *(float *)c;
c += sizeof(float); // PC at crash
}
size_t diff = f.weight_index >> 2;
int32_t s_diff = ZigZagDecode(diff);
if (s_diff < 0)
last = f.weight_index;
}
This bug was fixed in the package vowpal-wabbit - 5.0-1ubuntu1
---------------
vowpal-wabbit (5.0-1ubuntu1) natty; urgency=low
* debian/ patches/ arm_alignment_ fault.patch: Work around an ARM
alignment trap caused by accessing unaligned float values.
Thanks to Nicolas Pitre for suggesting the trick of casting
to a packed struct containing a single float value.
Fixes armel FTBFS (LP: #719305)
-- Jani Monoses <email address hidden> Tue, 15 Feb 2011 21:57:50 +0200