The qemu-microblaze definition of struct stat64 seems to mismatch the kernel definition, which is using asm-generic/stat.h. See:
http://git.qemu.org/?p=qemu.git;a=blob;f=linux-user/syscall_defs.h;h=c9e6323905486452f518102bf40ba73143c9d601;hb=HEAD#l1469 http://git.qemu.org/?p=qemu.git;a=blob;f=linux-user/syscall.c;h=a50229d0d72fc68966515fcf2bc308b833a3c032;hb=HEAD#l4949 This seems to be causing a truncated-to-32-bit inode number to be stored in the location where st_ino should reside, and a spurious copy of the inode number to be written in a unused slot at the end of the structure. Is my analysis correct? Stefan Kristiansson and I found this while working on the or1k port of musl libc, where it seems our structure for the existing microblaze port is wrongly aligned with the qemu definition rather than the definition the real kernel is using. Before I try correcting this on our side, I want to make sure we're working with the right version. Rich