This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
Re: MinGW compilation errors due to strcasecmp
- From: Pedro Alves <palves at redhat dot com>
- To: Eli Zaretskii <eliz at gnu dot org>, gdb-patches at sourceware dot org
- Date: Wed, 12 Oct 2016 18:46:28 +0100
- Subject: Re: MinGW compilation errors due to strcasecmp
- Authentication-results: sourceware.org; auth=none
- References: <83oa2tg459.fsf@gnu.org>
On 10/09/2016 12:20 PM, Eli Zaretskii wrote:
> I've upgraded to the latest mingw.org's MinGW runtime lately, and that
> triggers compilation errors building GDB 7.12:
>
> g++ -O2 -gdwarf-4 -g3 -I. -I. -I./common -I./config -DLOCALEDIR="\"d:/usr/share/locale\"" -DHAVE_CONFIG_H -I./../include/opcode -I./../opcodes/.. -I./../readline/.. -I../bfd -I./../bfd -I./../include -I../libdecnumber -I./../libdecnumber -I./gnulib/import -Ibuild-gnulib/import -DTUI=1 -Id:/usr/include -Id:/usr/include/guile/2.0 -Id:/usr/Python26/include -Id:/usr/Python26/include -Wall -Wpointer-arith -Wno-unused -Wunused-value -Wunused-function -Wno-switch -Wno-char-subscripts -Wempty-body -Wunused-but-set-parameter -Wunused-but-set-variable -Wno-sign-compare -Wno-write-strings -Wno-narrowing -Wno-format -c -o windows-nat.o -MT windows-nat.o -MMD -MP -MF .deps/windows-nat.Tpo windows-nat.c
> windows-nat.c: In function 'so_list* windows_make_so(const char*, LPVOID)':
> windows-nat.c:608:35: error: 'strcasecmp' was not declared in this scope
> if (strcasecmp (buf, "ntdll.dll") == 0)
> ^
> windows-nat.c: In function 'int envvar_cmp(const void*, const void*)':
> windows-nat.c:2031:28: error: 'strcasecmp' was not declared in this scope
> return strcasecmp (*p, *q);
> ^
> Makefile:1134: recipe for target `windows-nat.o' failed
> make[2]: *** [windows-nat.o] Error 1
>
> A similar error happens in stap-probe.c.
>
> The reason for this is that MinGW runtime changed the place where the
> prototypes of strcasecmp and strncasecmp are declared: they are now in
> strings.h (which AFAIU is more compatible to other systems). But we
> don't include strings.h anywhere, although the configure script probes
> for it. I guess other platforms include that header indirectly
> somehow.
>
> My suggestion is to include it in common-defs.h, as shown below.
>
> Is it okay to push such a change to the repository (with a suitable
> ChangeLog entry, of course)?
Sure.
Thanks,
Pedro Alves