5,593,793 Members 46,420 Now Online
XDA Developers Android and Mobile Development Forum

Error: LDREX/STREXEQ not supported by armv6

Tip us?
 
check3r
Old
#1  
Junior Member - OP
Thanks Meter 0
Posts: 5
Join Date: Dec 2013
Default Error: LDREX/STREXEQ not supported by armv6

Hi,

I try to compile Android 4.4.2 for an Armv6j processor.
When it comes to the file build_info.cc i get an error:

Code:
target thumb C++: base_base_gyp <= external/chromium_org/base/android/build_info.cc
{standard input}: Assembler messages:
{standard input}:1228: Error: selected processor does not support Thumb mode `ldrex r5,[r4]'
{standard input}:1231: Error: selected processor does not support Thumb mode `strexeq r1,r2,[r4]'
But LDREX and STREXEQ are supported by Armv6. What's wrong here?
 
fk.
Old
#2  
Junior Member
Thanks Meter 7
Posts: 8
Join Date: Dec 2010
Well, I found this thread, might as well reply... I'm no ARM expert, but I think the problem is that ARMv6j supports these instructions only while compiling in 'arm' mode, not while compiling in 'thumb' mode. At least, that's my reading of the ARM developer manual thingy:
http://infocenter.arm.com/help/index.../Cihbghef.html

What's worked for me is force-compile any offending files in arm mode like this:
Code:
LOCAL_SRC_FILES := AudioFlinger.cpp.arm
i.e. adding '.arm' after the file name in the Makefile (don't rename the files though). Alternatively, there's
Code:
LOCAL_ARM_MODE := arm
which disables thumb for the entire module.
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes