<thejpster[m]>
So … should we just give up on these targets that are hopelessly broken?
AshconMohseninia has quit [Quit: Idle timeout reached: 172800s]
Noah[m] has quit [Quit: Idle timeout reached: 172800s]
Ralph[m] has quit [Quit: Idle timeout reached: 172800s]
Foxyloxy has quit [Read error: Connection reset by peer]
<thejpster[m]>
I spent another hour digging through qemu code and ... yeah, the Arm Big Endian targets should be Tier 3 due to lack of ability to test them. If someone wants to turn up with a Hercules board, they can get them promoted back up again.
<thejpster[m]>
As best as I can tell, when you give QEMU a big-endian Arm ELF, it just activates a 32-bit byte swap on memory. Then the big-endian instructions appear as little-endian instructions, and everything works out fine. Until a third-party observer (semihosting or GDB) attempts to look at guest memory, where they will find everything byte swapped. In fact, GDB won't even run until you lie and say you have a little endian target -
<thejpster[m]>
because otherwise things appear in the wrong order to how it expects, and it starts looking up totally the wrong symbols.