Re: BFD MinGW build error: implicit declaration of function 'wcsncasecmp'

asmwarrior
2013-12-18T12:50:12Z

On 2013-12-18 18:06, Pedro Alves wrote:
> Hi there,
>
> Adding the binutils folks. (bfd is maintained by binutils.)
>
> Looks like fallout from the .rsrc merge support.
>
> On 12/18/2013 09:53 AM, asmwarrior wrote:
>> I see the build error when I build GDB(git head) under MSYS+MinGW, here the is build log
>>
>> mv -f .deps/pe-i386.Tpo .deps/pe-i386.Plo
>> rm -f peigen.c
>> sed -e s/XX/pe/g < ../../binutils-gdb/bfd/peXXigen.c > peigen.new
>> mv -f peigen.new peigen.c
>> /bin/sh ./libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I../../binutils-gdb/bfd -D__USE_MINGW_FSEEK -I. -I../../binutils-gdb/bfd -I../../binutils-gdb/bfd/../include -DHAVE_i386pe_vec -DHAVE_i386pei_vec -DHAVE_bfd_elf32_i386_vec -DHAVE_bfd_elf32_little_generic_vec -DHAVE_bfd_elf32_big_generic_vec -DBINDIR='"/mingw/bin"' -W -Wall -Wstrict-prototypes -Wmissing-prototypes -Wshadow -Wno-format -Werror -O0 -g -D__USE_MINGW_ACCESS -MT peigen.lo -MD -MP -MF .deps/peigen.Tpo -c -o peigen.lo peigen.c
>> libtool: compile: gcc -DHAVE_CONFIG_H -I. -I../../binutils-gdb/bfd -D__USE_MINGW_FSEEK -I. -I../../binutils-gdb/bfd -I../../binutils-gdb/bfd/../include -DHAVE_i386pe_vec -DHAVE_i386pei_vec -DHAVE_bfd_elf32_i386_vec -DHAVE_bfd_elf32_little_generic_vec -DHAVE_bfd_elf32_big_generic_vec -DBINDIR=\"/mingw/bin\" -W -Wall -Wstrict-prototypes -Wmissing-prototypes -Wshadow -Wno-format -Werror -O0 -g -D__USE_MINGW_ACCESS -MT peigen.lo -MD -MP -MF .deps/peigen.Tpo -c peigen.c -o peigen.o
>> peigen.c: In function 'rsrc_cmp':
>> peigen.c:3006:7: error: implicit declaration of function 'wcsncasecmp' [-Werror=implicit-function-declaration]
>> res = wcsncasecmp (& awc, & bwc, 1);
>> ^
>> cc1.exe: all warnings being treated as errors
>> make[4]: *** [peigen.lo] Error 1
>> make[4]: Leaving directory `/f/build_gdb/mybuild/bfd'
>> make[3]: *** [all-recursive] Error 1
>> make[3]: Leaving directory `/f/build_gdb/mybuild/bfd'
>> make[2]: *** [all] Error 2
I think under Windows, there is a function: (in wchar.h under my MinGW-W64 toolchain)

_CRTIMP int __cdecl _wcsnicmp(const wchar_t *_Str1,const wchar_t *_Str2,size_t _MaxCount);

See:http://msdn.microsoft.com/en-us/library/chd90w8e.aspx

Thanks.

Yuanhui Zhang