Big Endian broken?

Russell King - ARM Linux linux at arm.linux.org.uk
Tue Jun 3 02:56:19 PDT 2014


Last night's randconfig build had big endian enabled:

CONFIG_CPU_BIG_ENDIAN=y
CONFIG_CPU_ENDIAN_BE8=y

which found this:

  CC      lib/lockref.o
/tmp/ccWo86hf.s: Assembler messages:
/tmp/ccWo86hf.s:63: Error: even register required -- `strexd r1,r5,r6,[r4]'
/tmp/ccWo86hf.s:135: Error: even register required -- `strexd r1,r5,r6,[r4]'
/tmp/ccWo86hf.s:212: Error: even register required -- `strexd r1,r5,r6,[r4]'
/tmp/ccWo86hf.s:291: Error: even register required -- `strexd r1,r5,r6,[r4]'
/tmp/ccWo86hf.s:398: Error: even register required -- `strexd r1,r5,r6,[r4]'
make[2]: *** [lib/lockref.o] Error 1

It looks to me like a toolchain issue - the compiler has swapped the
register order from (r6,r5) to (r5,r6) for BE, but the assembler still
wants (<even>,<odd>) for this instruction.  Maybe the BE guys can take
a look?

Full config:

http://www.arm.linux.org.uk/developer/build/file.php?lid=8653

-- 
FTTC broadband for 0.8mile line: now at 9.7Mbps down 460kbps up... slowly
improving, and getting towards what was expected from it.



More information about the linux-arm-kernel mailing list