(Cc'ing to Edgar work's address)

On 30/9/25 12:24, Philippe Mathieu-Daudé wrote:
Hi Edgar,

(sorry for the delay)

On 24/8/25 22:18, Edgar E. Iglesias wrote:
Hi Phil,

While trying microblazeel-linux-user on the master branch I hit this:

$ qemu-microblazeel ctest
qemu: uncaught target signal 11 (Segmentation fault) - core dumped
Segmentation fault (core dumped)

Bisect found this commit:
415aae543edad19eda8f66955dde386c7fd7c680 is the first bad commit
commit 415aae543edad19eda8f66955dde386c7fd7c680
Author: Philippe Mathieu-Daudé <[email protected]>
Date:   Tue Sep 24 23:45:54 2024 +0200

     target/microblaze: Consider endianness while translating code
     Consider the CPU ENDI bit, swap instructions when the CPU
     endianness doesn't match the binary one.
     Signed-off-by: Philippe Mathieu-Daudé <[email protected]>
     Reviewed-by: Richard Henderson <[email protected]>
     Message-Id: <[email protected]>

  target/microblaze/cpu.h       | 7 +++++++
  target/microblaze/translate.c | 5 +++--
  2 files changed, 10 insertions(+), 2 deletions(-)
bisect found first bad commit


It looks like we're getting the endianness wrong in this case.

This works:
qemu-microblazeel -cpu microblaze,little-endian=on ctest

Was this intended while moving towards single binary?

Yes!

If yes, I wonder if we also should change the default to little-endian.
Big-endian MB is discontinued from newer Microblaze versions.
I'd rather have to type -cpu microblaze,little-endian=off for big-endian.

I suspect it is just a matter of updating get_elf_cpu_model() in
linux-user/microblaze/elfload.c to not use 'any' CPU by default.

I wonder why our CI didn't bark, since we run:

  $ make run-tcg-tests-microblaze-linux-user

Oh, now I see, the log is filled with:

  SKIPPED gdbstub test $FOO on microblaze because need working gdb with microblaze support
   ...

So we aren't testing microblaze user-mode...

$ ./qemu-microblaze tests/tcg/microblaze-linux-user/sha1
SHA1=70f1d4d65eb47309ffacc5a28ff285ad826006da
$ ./qemu-microblazeel tests/tcg/microblaze-linux-user/sha1
qemu-microblazeel: tests/tcg/microblaze-linux-user/sha1: Invalid ELF image for this architecture

Do you mind sharing your ctest binary? (Also consider adding it
to tests/tcg/microblaze/).

Regards,

Phil.


Reply via email to