Hi, I noticed that strmode(3) says that the first argument should be mode_t. OpenBSD declares it with int which is not compatible since mode_t appears to be unsigned, from what I can tell.
NetBSD fixed this a long time ago and FreeBSD did the same before the 14.0 release. Apologies for the lack of diff, I don't have access to an OpenBSD machine at the moment. I think something like this would work though: In sys/_types.h: #ifndef _MODE_T_DEFINED_ #define _MODE_T_DEFINED_ typedef __mode_t mode_t #endif and then in string.h: #ifndef _MODE_T_DEFINED_ #define _MODE_T_DEFINED_ typedef __mode_t mode_t #endif void strmode(mode_t, char *); Thanks, Collin