Slim down static binaries by avoiding stdio.

It's okay for a program to choose to drag in stdio, but it's unfortunate
if even the minimal "int main() { return 42; }" drags in stdio...

This brings the minimal static binary on ARM down from 78KiB to 46KiB.

Given that we don't have a separate -lpthread it's not obvious to me that
we can shave this down any further. I'm not sure whether this is a worthwhile
change for that reason. (And the fact that dynamic binaries, the usual case,
are unaffected either way.)

Change-Id: I02f91dcff37d14354314a30b72fed2563f431c88
This commit is contained in:
Elliott Hughes
2014-07-10 12:34:23 -07:00
parent f0f8cd1ff3
commit 91570ce987
9 changed files with 19 additions and 16 deletions

View File

@@ -88,7 +88,7 @@ __LIBC_HIDDEN__ void __libc_fatal_no_abort(const char* format, ...)
//
// Formatting routines for the C library's internal debugging.
// Unlike the usual alternatives, these don't allocate.
// Unlike the usual alternatives, these don't allocate, and they don't drag in all of stdio.
//
__LIBC_HIDDEN__ int __libc_format_buffer(char* buffer, size_t buffer_size, const char* format, ...)