This is the mail archive of the
gdb@sourceware.org
mailing list for the GDB project.
Re: BFD MinGW build error: implicit declaration of function 'wcsncasecmp'
- From: Pedro Alves <palves at redhat dot com>
- To: asmwarrior <asmwarrior at gmail dot com>
- Cc: GDB Development <gdb at sourceware dot org>, Binutils Development <binutils at sourceware dot org>
- Date: Wed, 18 Dec 2013 10:06:05 +0000
- Subject: Re: BFD MinGW build error: implicit declaration of function 'wcsncasecmp'
- Authentication-results: sourceware.org; auth=none
- References: <52B17083 dot 7040404 at gmail dot com>
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 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
>
--
Pedro Alves