GDB MinGW build error: implicit declaration of function 'wcsncasecmp'

asmwarrior
2013-12-18T09:54:36Z

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 just see this is related to the change of this commit:

Revision: 5879bb8fc592e4aea85bdc2a84381d89850e5770
Author: Nick Clifton <nickc@redhat.com>
Date: 2013-12-17 23:39:13
Message:
* peXXigen.c: Include wchar.h if available.

Include safe-ctype.h.
(HighBitSet, SetHighBit, WithoutHighBit): New macros.
(pe_print_resource_entries): Rename to
rsrc_print_resource_entries. Handle names that are not RVAs.
(pe_print_resource_directory): Rename to
rsrc_print_resource_directory.
(pe_print_rsrc): Rename to rsrc_print_section. Corrupt
computation of RVA bias.
(rsrc_count_entries): New function.
(rsrc_count_directory): New function.
(rsrc_parse_entry): New function.
(rsrc_parse_entries): New function.
(rsrc_parse_directory): New function.
(rsrc_write_string): New function.
(rsrc_compute_rva): New function.
(rsrc_write_leaf): New function.
(rsrc_write_entry): New function.
(rsrc_write_directory): New function.
(u16_mbtouc): New function.
(rsrc_cmp): New function.
(rsrc_print_name): New function.
(rsrc_resource_name): New function.
(rsrc_merge_string_entries): New function.
(rsrc_sort_entries): New function.
(rsrc_attach_chain): New function.
(rsrc_merge): New function.
(rsrc_process_section): New function - merges the contents of a
.rsrc section.
(_bfd_XXi_final_link_postscript): Call rsrc_process_section.
* configure.in (AC_CHECK_HEADERS): Add wchar.h
* config.in: Regenerate.
* configure: Regenerate.
----
Modified: bfd/ChangeLog
Modified: bfd/config.in
Modified: bfd/configure
Modified: bfd/configure.in
Modified: bfd/peXXigen.c

In my ststem, wchar.h exists, but I see there is no functionwcsncasecmp() here.

Thanks

Yuanhui Zhang