If stat.st_mode returned by syscall is 0, it means that the definition
of struct stat in <asm/stat.h> is incorrect. This is the case e.g. on
mips n32 where the only available stat syscall is 64-bit but at the same
time struct stat defined by <asm/stat.h> is 32-bit.
* tests/stat.c (main) [NR_stat]: Return 77 if st_mode is 0.
if (sizeof(stb.st_size) > 4)
return 77;
assert(syscall(NR_stat, av[1], &stb) == 0);
+ if (!stb.st_mode)
+ return 77;
#else
assert(stat(av[1], &stb) == 0);
#endif