* Big Endian broken? @ 2014-06-03 9:56 Russell King - ARM Linux 2014-06-03 10:13 ` Arnd Bergmann 0 siblings, 1 reply; 3+ messages in thread From: Russell King - ARM Linux @ 2014-06-03 9:56 UTC (permalink / raw) To: linux-arm-kernel 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. ^ permalink raw reply [flat|nested] 3+ messages in thread
* Big Endian broken? 2014-06-03 9:56 Big Endian broken? Russell King - ARM Linux @ 2014-06-03 10:13 ` Arnd Bergmann 2014-06-03 10:32 ` Russell King - ARM Linux 0 siblings, 1 reply; 3+ messages in thread From: Arnd Bergmann @ 2014-06-03 10:13 UTC (permalink / raw) To: linux-arm-kernel On Tuesday 03 June 2014 10:56:19 Russell King - ARM Linux wrote: > 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 > Which toolchain are you using? I just tried reproducing this but it works on linux-next with your config for every version I tried: ubuntu 4.6, 4.7, 4.8 and vanilla 4.8.0, 4.8.3, 4.9.0, 4.10-pre, and gas 2.23.52.20130913 as well as 2.24.51.20131021. I get the same even-odd pair for all versions: gcc-4.6 strexd r1, r2, r3, [r4] @ res, new, lockref gcc-4.7 strexd r1, r2, r3, [r8] @ res, new, lockref gcc-4.8 strexd r1, r2, r3, [r8] @ res, new, lockref gcc-4.9 strexd r1, r2, r3, [r4] @ res, new, lockref gcc-4.10 strexd ip, r2, r3, [r4] @ res, new, lockref Arbd ^ permalink raw reply [flat|nested] 3+ messages in thread
* Big Endian broken? 2014-06-03 10:13 ` Arnd Bergmann @ 2014-06-03 10:32 ` Russell King - ARM Linux 0 siblings, 0 replies; 3+ messages in thread From: Russell King - ARM Linux @ 2014-06-03 10:32 UTC (permalink / raw) To: linux-arm-kernel On Tue, Jun 03, 2014 at 12:13:37PM +0200, Arnd Bergmann wrote: > On Tuesday 03 June 2014 10:56:19 Russell King - ARM Linux wrote: > > 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 > > > > > Which toolchain are you using? I just tried reproducing this but > it works on linux-next with your config for every version I tried: > ubuntu 4.6, 4.7, 4.8 and vanilla 4.8.0, 4.8.3, 4.9.0, 4.10-pre, > and gas 2.23.52.20130913 as well as 2.24.51.20131021. stock gcc 4.6.4 with stock binutils 2.22. -- FTTC broadband for 0.8mile line: now at 9.7Mbps down 460kbps up... slowly improving, and getting towards what was expected from it. ^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2014-06-03 10:32 UTC | newest] Thread overview: 3+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2014-06-03 9:56 Big Endian broken? Russell King - ARM Linux 2014-06-03 10:13 ` Arnd Bergmann 2014-06-03 10:32 ` Russell King - ARM Linux
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).