On Fri, Jun 03, 2011 at 07:38:27PM +0200, maximilian attems wrote: > dash didn't compile in DEBUG mode against klibc for all long time. > Now it fails at link stage for not having setlinebuf(3). > Fixes: > usr/dash/show.o: In function `opentrace': > show.c:(.text+0x86): undefined reference to `setlinebuf' > Signed-off-by: maximilian attems <max@xxxxxxx> > --- > the last open error, looks more like a klibc bug to me, > will fix it there: > show.c:(.text+0x36): undefined reference to `freopen' So it seems, freopen() is a perfectly valid standard C function. > src/show.c | 2 ++ > 1 files changed, 2 insertions(+), 0 deletions(-) > diff --git a/src/show.c b/src/show.c > index 14dbef3..b4160e1 100644 > --- a/src/show.c > +++ b/src/show.c > @@ -394,7 +394,9 @@ opentrace(void) > if ((flags = fcntl(fileno(tracefile), F_GETFL, 0)) >= 0) > fcntl(fileno(tracefile), F_SETFL, flags | O_APPEND); > #endif > +#ifndef SMALL > setlinebuf(tracefile); > +#endif /* SMALL */ > fputs("\nTracing started.\n", tracefile); > } > #endif /* DEBUG */ Why not just replace the non-standard setlinebuf() call with the standard setvbuf(tracefile, NULL, _IOLBF, 0); ? This appears to work just as well on FreeBSD and is C99 compliant (no POSIX needed here). The #define SMALL is only for disabling line editing and history (using libedit). Setting the trace file line buffered is useful regardless of that. -- Jilles Tjoelker -- To unsubscribe from this list: send the line "unsubscribe dash" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html