Hi,

I am getting a redefinition of 'vsnprintf' when trying to build a 32-bit gcc 
9.5.0 (sjlj/posix) with mingw-builds:

if [ x"" != x ]; then \
  /c/mingw950/i686-950-posix-sjlj-rt_v1000-rev0/build/gcc-9.5.0/./prev-gcc/xgcc 
-B/c/mingw950/i686-950-posix-sjlj-rt_v1000-rev0/build/gcc-9.5.0/./prev-gcc/ 
-B/mingw32/i686-w64-mingw32/bin/ -L/mingw32/i686-w64-mingw32/lib 
-L/mingw32/mingw/lib -isystem /mingw32/i686-w64-mingw32/include -isystem 
/mingw32/mingw/include -B/mingw32/i686-w64-mingw32/bin/ 
-B/mingw32/i686-w64-mingw32/lib/ -isystem /mingw32/i686-w64-mingw32/include 
-isystem /mingw32/i686-w64-mingw32/sys-include   -fno-checking -c 
-DHAVE_CONFIG_H -g -O2 -D__USE_MINGW_ACCESS -Wno-pedantic-ms-format 
-fno-checking -gtoggle  -I. -I../../../../src/gcc-9.5.0/libiberty/../include  
-W -Wall -Wwrite-strings -Wc++-compat -Wstrict-prototypes -Wshadow=local 
-pedantic  -D_GNU_SOURCE   ../../../../src/gcc-9.5.0/libiberty/vsnprintf.c -o 
noasan/vsnprintf.o; \
else true; fi
/c/mingw950/i686-950-posix-sjlj-rt_v1000-rev0/build/gcc-9.5.0/./prev-gcc/xgcc 
-B/c/mingw950/i686-950-posix-sjlj-rt_v1000-rev0/build/gcc-9.5.0/./prev-gcc/ 
-B/mingw32/i686-w64-mingw32/bin/ -L/mingw32/i686-w64-mingw32/lib 
-L/mingw32/mingw/lib -isystem /mingw32/i686-w64-mingw32/include -isystem 
/mingw32/mingw/include -B/mingw32/i686-w64-mingw32/bin/ 
-B/mingw32/i686-w64-mingw32/lib/ -isystem /mingw32/i686-w64-mingw32/include 
-isystem /mingw32/i686-w64-mingw32/sys-include   -fno-checking -c 
-DHAVE_CONFIG_H -g -O2 -D__USE_MINGW_ACCESS -Wno-pedantic-ms-format 
-fno-checking -gtoggle  -I. -I../../../../src/gcc-9.5.0/libiberty/../include  
-W -Wall -Wwrite-strings -Wc++-compat -Wstrict-prototypes -Wshadow=local 
-pedantic  -D_GNU_SOURCE ../../../../src/gcc-9.5.0/libiberty/vsnprintf.c -o 
vsnprintf.o
../../../../src/gcc-9.5.0/libiberty/vsnprintf.c:60:1: error: redefinition of 
'vsnprintf'
   60 | vsnprintf (char *s, size_t n, const char *format, va_list ap)
      | ^~~~~~~~~
In file included from C:/mingw950/src/gcc-9.5.0/include/libiberty.h:49,
                 from ../../../../src/gcc-9.5.0/libiberty/vsnprintf.c:56:
C:/mingw950/i686-950-posix-sjlj-rt_v1000-rev0/mingw32/mingw/include/stdio.h:464:5:
 note: previous definition of 'vsnprintf' was here
  464 | int vsnprintf (char *__stream, size_t __n, const char *__format, 
__builtin_va_list __local_argv)
      |     ^~~~~~~~~
make[3]: *** [Makefile:1610: vsnprintf.o] Error 1
make[3]: Leaving directory 
'/c/mingw950/i686-950-posix-sjlj-rt_v1000-rev0/build/gcc-9.5.0/libiberty'
make[2]: *** [Makefile:11251: all-stage2-libiberty] Error 2
make[2]: Leaving directory 
'/c/mingw950/i686-950-posix-sjlj-rt_v1000-rev0/build/gcc-9.5.0'
make[1]: *** [Makefile:22253: stage2-bubble] Error 2
make[1]: Leaving directory 
'/c/mingw950/i686-950-posix-sjlj-rt_v1000-rev0/build/gcc-9.5.0'
make: *** [Makefile:1006: all] Error 2

Checking the config.log, I find that there's two issues: one for snprintf and 
one for vsnprintf:

configure:6469: checking for snprintf
configure:6469:  
/c/mingw950/i686-950-posix-sjlj-rt_v1000-rev0/build/gcc-9.5.0/./prev-gcc/xgcc 
-B/c/mingw950/i686-950-posix-sjlj-rt_v1000-rev0/build/gcc-9.5.0/./prev-gcc/ 
-B/mingw32/i686-w64-mingw32/bin/ -L/mingw32/i686-w64-mingw32/lib 
-L/mingw32/mingw/lib -isystem /mingw32/i686-w64-mingw32/include -isystem 
/mingw32/mingw/include -B/mingw32/i686-w64-mingw32/bin/ 
-B/mingw32/i686-w64-mingw32/lib/ -isystem /mingw32/i686-w64-mingw32/include 
-isystem /mingw32/i686-w64-mingw32/sys-include   -fno-checking -o conftest.exe 
-g -O2 -D__USE_MINGW_ACCESS -Wno-pedantic-ms-format -fno-checking -gtoggle  
-static-libstdc++ -static-libgcc -Wl,--stack,12582912 conftest.c  >&5
conftest.c:91:6: warning: conflicting types for built-in function 'snprintf'; 
expected 'int(char *, unsigned int,  const char *, ...)' 
[-Wbuiltin-declaration-mismatch]
   91 | char snprintf ();
      |      ^~~~~~~~
conftest.c:79:1: note: 'snprintf' is declared in header '<stdio.h>'
   78 | # include <limits.h>
   79 | #else
C:\mingw950\i686-950-posix-sjlj-rt_v1000-rev0\mingw32\bin\ld.exe: 
C:/mingw950/i686-950-posix-sjlj-rt_v1000-rev0/mingw32/mingw/lib/../lib/libmsvcrt.a(lib32_libmsvcrt_extra_a-_vscprintf.o):_vscprintf.c:(.text+0xc6):
 undefined reference to `_imp__GetModuleHandleW@4'
C:\mingw950\i686-950-posix-sjlj-rt_v1000-rev0\mingw32\bin\ld.exe: 
C:/mingw950/i686-950-posix-sjlj-rt_v1000-rev0/mingw32/mingw/lib/../lib/libmsvcrt.a(lib32_libmsvcrt_extra_a-_vscprintf.o):_vscprintf.c:(.text+0xde):
 undefined reference to `_imp__GetProcAddress@8'
collect2.exe: error: ld returned 1 exit status

configure:6469: checking for vsnprintf
configure:6469:  
/c/mingw950/i686-950-posix-sjlj-rt_v1000-rev0/build/gcc-9.5.0/./prev-gcc/xgcc 
-B/c/mingw950/i686-950-posix-sjlj-rt_v1000-rev0/build/gcc-9.5.0/./prev-gcc/ 
-B/mingw32/i686-w64-mingw32/bin/ -L/mingw32/i686-w64-mingw32/lib 
-L/mingw32/mingw/lib -isystem /mingw32/i686-w64-mingw32/include -isystem 
/mingw32/mingw/include -B/mingw32/i686-w64-mingw32/bin/ 
-B/mingw32/i686-w64-mingw32/lib/ -isystem /mingw32/i686-w64-mingw32/include 
-isystem /mingw32/i686-w64-mingw32/sys-include   -fno-checking -o conftest.exe 
-g -O2 -D__USE_MINGW_ACCESS -Wno-pedantic-ms-format -fno-checking -gtoggle  
-static-libstdc++ -static-libgcc -Wl,--stack,12582912 conftest.c  >&5
conftest.c:107:6: warning: conflicting types for built-in function 'vsnprintf'; 
expected 'int(char *, unsigned int,  const char *, char *)' 
[-Wbuiltin-declaration-mismatch]
  107 | char vsnprintf ();
      |      ^~~~~~~~~
conftest.c:95:1: note: 'vsnprintf' is declared in header '<stdio.h>'
   94 | # include <limits.h>
   95 | #else
C:\mingw950\i686-950-posix-sjlj-rt_v1000-rev0\mingw32\bin\ld.exe: 
C:/mingw950/i686-950-posix-sjlj-rt_v1000-rev0/mingw32/mingw/lib/../lib/libmsvcrt.a(lib32_libmsvcrt_extra_a-_vscprintf.o):_vscprintf.c:(.text+0xc6):
 undefined reference to `_imp__GetModuleHandleW@4'
C:\mingw950\i686-950-posix-sjlj-rt_v1000-rev0\mingw32\bin\ld.exe: 
C:/mingw950/i686-950-posix-sjlj-rt_v1000-rev0/mingw32/mingw/lib/../lib/libmsvcrt.a(lib32_libmsvcrt_extra_a-_vscprintf.o):_vscprintf.c:(.text+0xde):
 undefined reference to `_imp__GetProcAddress@8'
collect2.exe: error: ld returned 1 exit status

I am doing a "plain jane" build on 64-bit Windows 10 Pro with msvcrt. I am not 
using ucrt or a versioned msvcrt. This works with a 64-bit SEH build.

/allen

_______________________________________________
Mingw-w64-public mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public

Reply via email to