From caef97f84b8b3b0d058c69394b60c77ec9d276df Mon Sep 17 00:00:00 2001 From: lizzie Date: Wed, 16 Sep 2026 01:15:21 +0000 Subject: [PATCH] 2026-09-16 01:15:21 Signed-off-by: lizzie --- src/common/error.cpp | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/common/error.cpp b/src/common/error.cpp index 070c9a5c7e..6a30066e52 100644 --- a/src/common/error.cpp +++ b/src/common/error.cpp @@ -24,7 +24,7 @@ std::string NativeErrorToString(int e) { DWORD res = FormatMessageA(FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_IGNORE_INSERTS, nullptr, e, MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), - reinterpret_cast(&err_str), 1, nullptr); + LPSTR(&err_str), 1, nullptr); if (!res) { return "(FormatMessageA failed to format error)"; } @@ -32,9 +32,10 @@ std::string NativeErrorToString(int e) { LocalFree(err_str); return ret; #else - char err_str[255]; -#if defined(__ANDROID__) || \ - (defined(__GLIBC__) && (_GNU_SOURCE || (_POSIX_C_SOURCE < 200112L && _XOPEN_SOURCE < 600))) + char err_str[256]; + // See https://github.com/llvm/llvm-project/blob/c8fdb5f8b93c3e1da5e2ff3ba8b18627d6147b51/openmp/runtime/src/kmp_i18n.cpp#L711 + // musl doesn't provide a macro gate but defines strerror_r() even if _GNU_SOURCE is defined +#if defined(__managarm__) || (defined(__GLIBC__) || defined(__BIONIC__)) || defined(_GNU_SOURCE) // Thread safe (GNU-specific) const char* str = strerror_r(e, err_str, sizeof(err_str)); return std::string(str);