For this code, Clang produces the following warning:
../stdio/_scprintf.c:32:20: warning: function 'init_scprintf' has internal
linkage but is not defined [-Wundefined-internal]
To avoid this ambiguity, make the symbol external, and add it
a namespace prefix.
Signed-off-by: Martin Storsjö <[email protected]>
---
mingw-w64-crt/stdio/_scprintf.c | 8 ++++----
mingw-w64-crt/stdio/_scwprintf.c | 8 ++++----
2 files changed, 8 insertions(+), 8 deletions(-)
diff --git a/mingw-w64-crt/stdio/_scprintf.c b/mingw-w64-crt/stdio/_scprintf.c
index 42f2e5f23..8dabf95df 100644
--- a/mingw-w64-crt/stdio/_scprintf.c
+++ b/mingw-w64-crt/stdio/_scprintf.c
@@ -29,9 +29,9 @@ int (__cdecl *__MINGW_IMP_SYMBOL(_scprintf))(const char *
__restrict__, ...) = _
#include <msvcrt.h>
-static int __cdecl init_scprintf(const char * __restrict__ format, ...);
+int __cdecl __mingw_init_scprintf(const char * __restrict__ format, ...);
-int (__cdecl *__MINGW_IMP_SYMBOL(_scprintf))(const char * __restrict__, ...) =
init_scprintf;
+int (__cdecl *__MINGW_IMP_SYMBOL(_scprintf))(const char * __restrict__, ...) =
__mingw_init_scprintf;
__attribute__((used))
static void resolve_scprintf(void)
@@ -52,8 +52,8 @@ static void resolve_scprintf(void)
* this source file is used only on i386, so do this function redirect via
inline i386 assembly */
#define ASM_SYM(sym) __MINGW64_STRINGIFY(__MINGW_USYMBOL(sym))
asm (
-".def\t" ASM_SYM(init_scprintf) ";\t.scl\t3;\t.type\t32;\t.endef\n"
-ASM_SYM(init_scprintf) ":\n\t"
+".def\t" ASM_SYM(__mingw_init_scprintf) ";\t.scl\t3;\t.type\t32;\t.endef\n"
+ASM_SYM(__mingw_init_scprintf) ":\n\t"
"pushal\n\t"
"call\t" ASM_SYM(resolve_scprintf) "\n\t"
"popal\n\t"
diff --git a/mingw-w64-crt/stdio/_scwprintf.c b/mingw-w64-crt/stdio/_scwprintf.c
index a3da9b8f0..e92479fd8 100644
--- a/mingw-w64-crt/stdio/_scwprintf.c
+++ b/mingw-w64-crt/stdio/_scwprintf.c
@@ -29,9 +29,9 @@ int (__cdecl *__MINGW_IMP_SYMBOL(_scwprintf))(const wchar_t *
__restrict__, ...)
#include <msvcrt.h>
-static int __cdecl init_scwprintf(const wchar_t * __restrict__ format, ...);
+int __cdecl __mingw_init_scwprintf(const wchar_t * __restrict__ format, ...);
-int (__cdecl *__MINGW_IMP_SYMBOL(_scwprintf))(const wchar_t * __restrict__,
...) = init_scwprintf;
+int (__cdecl *__MINGW_IMP_SYMBOL(_scwprintf))(const wchar_t * __restrict__,
...) = __mingw_init_scwprintf;
__attribute__((used))
static void resolve_scwprintf(void)
@@ -52,8 +52,8 @@ static void resolve_scwprintf(void)
* this source file is used only on i386, so do this function redirect via
inline i386 assembly */
#define ASM_SYM(sym) __MINGW64_STRINGIFY(__MINGW_USYMBOL(sym))
asm (
-".def\t" ASM_SYM(init_scwprintf) ";\t.scl\t3;\t.type\t32;\t.endef\n"
-ASM_SYM(init_scwprintf) ":\n\t"
+".def\t" ASM_SYM(__mingw_init_scwprintf) ";\t.scl\t3;\t.type\t32;\t.endef\n"
+ASM_SYM(__mingw_init_scwprintf) ":\n\t"
"pushal\n\t"
"call\t" ASM_SYM(resolve_scwprintf) "\n\t"
"popal\n\t"
--
2.43.0
_______________________________________________
Mingw-w64-public mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public