From owner-freebsd-bugs@FreeBSD.ORG Mon Apr 9 21:30:19 2012 Return-Path: Delivered-To: freebsd-bugs@hub.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id DB0CB106566B for ; Mon, 9 Apr 2012 21:30:19 +0000 (UTC) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:4f8:fff6::28]) by mx1.freebsd.org (Postfix) with ESMTP id B79FB8FC08 for ; Mon, 9 Apr 2012 21:30:19 +0000 (UTC) Received: from freefall.freebsd.org (localhost [127.0.0.1]) by freefall.freebsd.org (8.14.5/8.14.5) with ESMTP id q39LUJjs017875 for ; Mon, 9 Apr 2012 21:30:19 GMT (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.14.5/8.14.5/Submit) id q39LUJrH017873; Mon, 9 Apr 2012 21:30:19 GMT (envelope-from gnats) Date: Mon, 9 Apr 2012 21:30:19 GMT Message-Id: <201204092130.q39LUJrH017873@freefall.freebsd.org> To: freebsd-bugs@FreeBSD.org From: Jeremie Le Hen Cc: Subject: Re: bin/166660: [libc] [patch] New util/shlib to change per-fd default stdio buffering mode X-BeenThere: freebsd-bugs@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: Jeremie Le Hen List-Id: Bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 09 Apr 2012 21:30:20 -0000 The following reply was made to PR bin/166660; it has been noted by GNATS. From: Jeremie Le Hen To: John Baldwin Cc: bug-followup@FreeBSD.org, jeremie@le-hen.org 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. Regards, -- Jeremie Le Hen Men are born free and equal. Later on, they're on their own. Jean Yanne