__fpending prototype in stdio.h conflicts with pkgsrc m4 1.4.17
DragonFly's prototype for __fpending in /usr/include/stdio.h of
__ssize_t __fpending(const FILE *);
conflicts with building current pkgsrc cvs m4 1.4.17. The concern isn't necessarily that it conflicts with pkgsrc, the concern is that in the future there will be conflict with all the updated GNU software that would assume __fpending's prototype is more like:
size_t __fpending(FILE *);
A private branch from master redefining the prototype to be:
__size_t __fpending(FILE *);
and a full buildworld allowed current pkgsrc m4 1.4.17 to be built.
A quick grep of FreeBSD 10.0 alpha4's source reveals no definition of __fpending; therefore, there would be no reason for developers of GNU software to suspect any breakage on a BSD system.
Attached is the simplistic patch redefining the prototype of __fpending in stdio.h and for the implementation of __fpending in lib/libc/stdio/__fpending.c.
#1 Updated by marino about 2 years ago
FreeBSD redefined __fpending a few years ago (and it was quite painful I understand).
In practice there are only a handful of ports this affects (e.g. less than 5). The situation has been known for a few years and it's doesn't seem to threaten to get out of control.