On 02/13/2017 02:22, Ed Schouten wrote:
2017-02-11 15:28 GMT+01:00 Eric van Gyzen <e...@vangyzen.net>:
I would be concerned that app developers would read this definition, ignore
the one in the man page, and use the __-prefixed types in their apps.

I think that's a concern that's not specific to the change at hand, as
that's simply how BSD header files work. Take a look at the
declaration of kill() in our copy of <signal.h>:

int     kill(__pid_t, int);

This is simply the construct that the BSDs use to depend on a type
without exposing it.

Note that we [usually] expose that type earlier in that same file:

#if __POSIX_VISIBLE >= 200112 || __XSI_VISIBLE
#ifndef _PID_T_DECLARED
typedef __pid_t         pid_t;
#define _PID_T_DECLARED
#endif
#endif

Apparently, signal.h should not expose pid_t in a strict pre-2001 POSIX environment. Without this restriction, the prototype for kill() would probably use pid_t, as is done in several other files, such as spawn.h:

#ifndef _PID_T_DECLARED
typedef __pid_t         pid_t;
#define _PID_T_DECLARED
#endif

int posix_spawn(pid_t * __restrict, const char * __restrict,
...

Let me be clear: Your change is useful and good, and I think you should commit it. I would suggest using the above construct for the __-prefixed types, but it's only a suggestion.

Cheers,

Eric
_______________________________________________
svn-src-all@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to