I think the recent changes that moved stat() and redefined the sizes of some of the fields in struct stat (both in posix_stdio.h) might have broken st_mode. If you call it on a directory, I'm getting st_mode set to 2. It should instead have the 0x4000 bit set so that S_ISDIR works correctly. Changing struct stat back to use the version with _dev_t and _ino_t (the one wrapped in #if 0 is posix_stdio.h) fixes it, but it loses the two block-related fields.
I think the recent changes that moved
stat()and redefined the sizes of some of the fields instruct stat(both in posix_stdio.h) might have brokenst_mode. If you call it on a directory, I'm gettingst_modeset to2. It should instead have the0x4000bit set so thatS_ISDIRworks correctly. Changingstruct statback to use the version with_dev_tand_ino_t(the one wrapped in#if 0is posix_stdio.h) fixes it, but it loses the two block-related fields.