bin/166660: [libc] [patch] New util/shlib to change per-fd default stdio buffering mode

Jeremie Le Hen jeremie at
Mon Apr 9 21:30:20 UTC 2012

The following reply was made to PR bin/166660; it has been noted by GNATS.

From: Jeremie Le Hen <jeremie at>
To: John Baldwin <jhb at>
Cc: bug-followup at, jeremie at
Subject: Re: bin/166660: [libc] [patch] New util/shlib to change per-fd
 default stdio buffering mode
Date: Mon, 9 Apr 2012 23:21:03 +0200

 Hi John,
 On Mon, Apr 09, 2012 at 11:30:08AM -0400, John Baldwin wrote:
 > I think it would be fine to do this in libc directly rather than via
 > LD_PRELOAD.  That would let it work for static binaries as well as
 > dynamic libraries.  My understanding is that this is how stdbuf works on
 > Linux (glibc honors the relevant magic environment variables).  To that
 > end, I think it would be ok to move this into libc directly.
 I thought it would be too expensive to check for three (actually up to
 six, see below) in such a critical path.  Moreover, this would have
 lowered a lot my chances to see this committed simply because very few
 committers would have taken the responsibility for this and the time to
 handle the debates that would have sprouted.
 Your point for static binaries is very valid but aren't you afraid of
 the performance impact?  I'll try to spare some time this week to move
 libstdbuf code into libc and do some benchmarks.
 > One more question, do you use the same environment variable as glibc for
 > this, or do you use a different scheme?
 I didn't like the GNU variable names (_STDBUF_I, _STDBUF_O and
 _STDBUF_E) so I used STDBUF_0, STDBUF_1 and STDBUF_2 instead.  But the
 former are supported for obvious compatibility reasons.  To be honest I
 don't really care about the names, we can use the GNU ones if you think
 it's better to avoid doing to much strcmp(3), especially if we but the
 code in the libc startup path.
 Jeremie Le Hen
 Men are born free and equal.  Later on, they're on their own.
 				Jean Yanne

More information about the freebsd-bugs mailing list