Bug #2594

__fpending prototype in stdio.h conflicts with pkgsrc m4 1.4.17

Added by davshao almost 3 years ago. Updated almost 3 years ago.

Status:ClosedStart date:10/05/2013
Priority:NormalDue date:
Assignee:-% Done:


Target version:-


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.

fpending.diff Magnifier (780 Bytes) davshao, 10/05/2013 04:54 PM


#1 Updated by marino almost 3 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.

#2 Updated by marino almost 3 years ago

  • Status changed from New to Closed

Fixed upstream -- in gnulib -- thanks to Rolinh following up on this.

Also available in: Atom PDF