pkgsrc bash-4.1 won't build

Steve O'Hara-Smith steve at
Mon Feb 8 00:03:18 PST 2010


	I've just done a pkgsrc update and fired off a build of my packages
only to find that bash fails to build because of this bit of code:

# if defined __sferror || defined __DragonFly__ /* FreeBSD, NetBSD,
# OpenBSD, Dra
gonFly, MacOS X, Cygwin */
  if (result == 0)
    /* Correct the invariants that fpurge broke.
       <stdio.h> on BSD systems says:
         "The following always hold: if _flags & __SRD, _w is 0."
       If this invariant is not fulfilled and the stream is read-write but
       currently writing, subsequent putc or fputc calls will write directly
       into the buffer, although they shouldn't be allowed to.  */
    if ((fp->_flags & __SRD) != 0)
      fp->_w = 0;
# endif

	I can't get it to compile because of course FILE is unavailable,
but is the statement that DragonFly fpurge breaks an important invariant
correct ? If so fixing it in fpurge is of course trivial and I think
desirable - if not then I think bash should not be fixing it outside libc.

Steve O'Hara-Smith                          |   Directable Mirror Arrays
C:>WIN                                      | A better way to focus the sun
The computer obeys and wins.                |    licences available see
You lose and Bill collects.                 |

More information about the Users mailing list