Workaround longstanding glibc/ld bug, ala http://sources.redhat.com/bugzilla/show_bug.cgi?id=3400, which prevents "./toybox | wc" from producing any output when toybox was statically linked.
diff --git a/lib/lib.c b/lib/lib.c
index 69029a2..e7dc45e 100644
--- a/lib/lib.c
+++ b/lib/lib.c
@@ -160,7 +160,7 @@
void xputc(char c)
{
- if (EOF == fputc(c, stdout)) perror_exit("write");
+ if (EOF == fputc(c, stdout) || fflush(stdout)) perror_exit("write");
}
void xflush(void)
diff --git a/main.c b/main.c
index 1b1f0fc..f599418 100644
--- a/main.c
+++ b/main.c
@@ -133,12 +133,12 @@
}
len += printf("%s ",toy_list[i].name);
if (len>65) {
- putchar('\n');
+ xputc('\n');
len=0;
}
}
}
- putchar('\n');
+ xputc('\n');
}
int main(int argc, char *argv[])