diff --git a/core/shared/platform/android/platform_init.c b/core/shared/platform/android/platform_init.c index 1e7cf4447..ad206af0e 100644 --- a/core/shared/platform/android/platform_init.c +++ b/core/shared/platform/android/platform_init.c @@ -24,11 +24,15 @@ bh_platform_destroy() int os_printf(const char *fmt, ...) { - int ret; + int ret = 0; va_list ap; va_start(ap, fmt); - ret = __android_log_vprint(ANDROID_LOG_INFO, "wasm_runtime::", fmt, ap); +#ifndef BH_VPRINTF + ret += __android_log_vprint(ANDROID_LOG_INFO, "wasm_runtime::", fmt, ap); +#else + ret += BH_VPRINTF(fmt, ap); +#endif va_end(ap); return ret; @@ -37,7 +41,11 @@ os_printf(const char *fmt, ...) int os_vprintf(const char *fmt, va_list ap) { +#ifndef BH_VPRINTF return __android_log_vprint(ANDROID_LOG_INFO, "wasm_runtime::", fmt, ap); +#else + return BH_VPRINTF(fmt, ap); +#endif } #if __ANDROID_API__ < 19 diff --git a/core/shared/platform/esp-idf/espidf_platform.c b/core/shared/platform/esp-idf/espidf_platform.c index 0a1dd3c9d..8d3a9b87c 100644 --- a/core/shared/platform/esp-idf/espidf_platform.c +++ b/core/shared/platform/esp-idf/espidf_platform.c @@ -23,7 +23,11 @@ os_printf(const char *format, ...) va_list ap; va_start(ap, format); +#ifndef BH_VPRINTF ret += vprintf(format, ap); +#else + ret += BH_VPRINTF(format, ap); +#endif va_end(ap); return ret; @@ -32,7 +36,11 @@ os_printf(const char *format, ...) int os_vprintf(const char *format, va_list ap) { +#ifndef BH_VPRINTF return vprintf(format, ap); +#else + return BH_VPRINTF(format, ap); +#endif } uint64 diff --git a/doc/build_wamr.md b/doc/build_wamr.md index 75c17e634..1331f9601 100644 --- a/doc/build_wamr.md +++ b/doc/build_wamr.md @@ -176,7 +176,7 @@ Currently we only profile the memory consumption of module, module_instance and #### **Set vprintf callback** - **WAMR_BH_VPRINTF**=, default to disable if not set -> Note: if the vprintf_callback function is provided by developer, the os_printf() and os_vprintf() in Linux, Darwin, Windows and VxWorks platforms, besides WASI Libc output will call the callback function instead of libc vprintf() function to redirect the stdout output. For example, developer can define the callback function like below outside runtime lib: +> Note: if the vprintf_callback function is provided by developer, the os_printf() and os_vprintf() in Linux, Darwin, Windows, VxWorks, Android and esp-idf platforms, besides WASI Libc output will call the callback function instead of libc vprintf() function to redirect the stdout output. For example, developer can define the callback function like below outside runtime lib: > > ```C > int my_vprintf(const char *format, va_list ap)