From: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Date: Sat, 20 Nov 2021 12:28:33 +0000 (+0100)
Subject: sandbox: replace putchar(ch) by fputc(ch, stdout)
X-Git-Tag: v2025.01-rc5-pxa1908~1591^2~12^2~32
X-Git-Url: http://git.dujemihanovic.xyz/img/static/%7B%7B?a=commitdiff_plain;h=34bee10e00bc77bbe4287abe15a16f3048085424;p=u-boot.git

sandbox: replace putchar(ch) by fputc(ch, stdout)

When compiled with -Og for better debugability u-boot ends up in a stack
overflow using

    gcc (Ubuntu 11.2.0-7ubuntu2) 11.2.0
    GNU Binutils for Ubuntu 2.37

putchar(ch) is defined as a macro which ends up calling U-Boot's putc()
implementation instead of the glibc one, which calls os_putc() ...

Let's use fputc(ch, stdout) instead as fputc() does not exist in U-Boot.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
---

diff --git a/arch/sandbox/cpu/os.c b/arch/sandbox/cpu/os.c
index 873f85ac3b..6837bfceaf 100644
--- a/arch/sandbox/cpu/os.c
+++ b/arch/sandbox/cpu/os.c
@@ -638,7 +638,7 @@ int os_get_filesize(const char *fname, loff_t *size)
 
 void os_putc(int ch)
 {
-	putchar(ch);
+	fputc(ch, stdout);
 }
 
 void os_puts(const char *str)