From c3280d83e70b531193b1577f0160559d607d922e Mon Sep 17 00:00:00 2001 From: Paul Sokolovsky Date: Sun, 22 Nov 2015 00:44:22 +0200 Subject: [PATCH] unix: Use printf() implementation in terms of mp_printf(). In other words, unix port now uses overriden printf(), instead of using libc's. This should remove almost all dependency on libc stdio (which is bloated). --- lib/utils/printf.c | 7 +++++++ unix/Makefile | 1 + unix/main.c | 8 -------- unix/mpconfigport.h | 1 + 4 files changed, 9 insertions(+), 8 deletions(-) diff --git a/lib/utils/printf.c b/lib/utils/printf.c index 082b1c65a8..6dce896941 100644 --- a/lib/utils/printf.c +++ b/lib/utils/printf.c @@ -51,7 +51,14 @@ int vprintf(const char *fmt, va_list ap) { int DEBUG_printf(const char *fmt, ...) { va_list ap; va_start(ap, fmt); + #if MICROPY_DEBUG_STDERR + // Printing debug to stderr may give a chance tests which + // check stdout to pass, etc. + extern const mp_print_t mp_stderr_print; + int ret = mp_vprintf(&mp_stderr_print, fmt, ap); + #else int ret = mp_vprintf(&mp_plat_print, fmt, ap); + #endif va_end(ap); return ret; } diff --git a/unix/Makefile b/unix/Makefile index 2654c23fd5..677c3b4fde 100644 --- a/unix/Makefile +++ b/unix/Makefile @@ -129,6 +129,7 @@ endif LIB_SRC_C = $(addprefix lib/,\ $(LIB_SRC_C_EXTRA) \ + utils/printf.c \ ) OBJ = $(PY_O) diff --git a/unix/main.c b/unix/main.c index 26618af3f7..741568f753 100644 --- a/unix/main.c +++ b/unix/main.c @@ -574,14 +574,6 @@ uint mp_import_stat(const char *path) { return MP_IMPORT_STAT_NO_EXIST; } -int DEBUG_printf(const char *fmt, ...) { - va_list ap; - va_start(ap, fmt); - int ret = mp_vprintf(&mp_stderr_print, fmt, ap); - va_end(ap); - return ret; -} - void nlr_jump_fail(void *val) { printf("FATAL: uncaught NLR %p\n", val); exit(1); diff --git a/unix/mpconfigport.h b/unix/mpconfigport.h index 3d666d0221..8ff4e096d0 100644 --- a/unix/mpconfigport.h +++ b/unix/mpconfigport.h @@ -50,6 +50,7 @@ #define MICROPY_MALLOC_USES_ALLOCATED_SIZE (1) #define MICROPY_MEM_STATS (1) #define MICROPY_DEBUG_PRINTERS (1) +#define MICROPY_DEBUG_STDERR (1) #define MICROPY_USE_READLINE_HISTORY (1) #define MICROPY_HELPER_REPL (1) #define MICROPY_REPL_EMACS_KEYS (1)