libgii ftbfs on armel (assembler errors)
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
libgii (Debian) |
Fix Released
|
Unknown
|
|||
libgii (Ubuntu) |
Fix Released
|
High
|
Unassigned | ||
Oneiric |
Won't Fix
|
High
|
Unassigned |
Bug Description
libtool: compile: arm-linux-
/tmp/ccUHMXVz.s: Assembler messages:
/tmp/ccUHMXVz.
/tmp/ccUHMXVz.
/tmp/ccUHMXVz.
make[4]: *** [gglock.lo] Error 1
make[4]: Leaving directory `/build/
make[3]: *** [all-recursive] Error 1
Changed in libgii (Ubuntu Oneiric): | |
importance: | Undecided → High |
status: | New → Confirmed |
tags: | added: thumb2 |
Changed in libgii (Debian): | |
status: | Unknown → New |
Changed in libgii (Debian): | |
status: | New → Fix Committed |
Changed in libgii (Debian): | |
status: | Fix Committed → Fix Released |
Thank you for the bug report. I've confirmed this with gcc-linaro- 4.6-2011. 09-1 on ARM:
michaelh@ leo2:~/ linaro/ packages/ libgii- 1.0.2/gg$ /tools/ toolchains/ arch/armv7l/ gcc-linaro- 4.6-2011. 09-armv7l- natty-cbuild181 -ursa4- cortexa9r1/ bin/gcc -g -O2 -c gglock.i s:130: Error: selected processor does not support Thumb mode `swp r3,r3,[r6]' s:164: Error: selected processor does not support Thumb mode `swp r3,r3,[r6]' s:235: Error: selected processor does not support Thumb mode `swp r3,r3,[r0]'
/tmp/ccwsQQXn.s: Assembler messages:
/tmp/ccwsQQXn.
/tmp/ccwsQQXn.
/tmp/ccwsQQXn.
The assembler is correct - the swp instruction does not exist in Thumb-2.
This is due to the inline assembly in gg/gglock.h. It should be lock_test_ and_set( ), var_compare_ and_swap( ) or similar.
replaced with the GCC builtin __sync_
__sync_
Note that the custom lock implementation can be disabled by passing --enable- mutexes= pthread to configure.