diff --git a/Kernel/kprintf.cpp b/Kernel/kprintf.cpp index 6834ce00bd0..d03388c5d12 100644 --- a/Kernel/kprintf.cpp +++ b/Kernel/kprintf.cpp @@ -133,6 +133,10 @@ static void buffer_putch(char*& bufptr, char ch) *bufptr++ = ch; } +// Declare it, so that the symbol is exported, because libstdc++ uses it. +// However, *only* libstdc++ uses it, and none of the rest of the Kernel. +extern "C" int sprintf(char* buffer, const char* fmt, ...); + int sprintf(char* buffer, const char* fmt, ...) { ScopedSpinLock lock(s_log_lock); diff --git a/Kernel/kstdio.h b/Kernel/kstdio.h index 32f3b1adda3..9f30a449f7f 100644 --- a/Kernel/kstdio.h +++ b/Kernel/kstdio.h @@ -33,7 +33,6 @@ int dbgprintf(const char* fmt, ...); int dbgputstr(const char*, int); int kernelputstr(const char*, int); int kprintf(const char* fmt, ...); -int sprintf(char* buf, const char* fmt, ...); int snprintf(char* buf, size_t, const char* fmt, ...); void set_serial_debug(bool on_or_off); int get_serial_debug();