On 16 July 2014 05:02, Rich Felker <dal...@libc.org> wrote:
> 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.

Sounds quite plausible -- we've had issues with other archs
not having correct stat struct definitions in QEMU. I don't
suppose anybody's done much testing of the microblaze
linux-user code.

> 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.

I would definitely trust the kernel definition, not QEMU's!

thanks
-- PMM

Reply via email to