From: asmwarrior <asmwarrior@gmail.com>
To: Pierre Muller <pierre.muller@ics-cnrs.unistra.fr>,
'Pedro Alves' <palves@redhat.com>
Cc: 'GDB Development' <gdb@sourceware.org>,
'Binutils Development' <binutils@sourceware.org>
Subject: Re: [RFC] BFD MinGW/Cygwin build error in bfd/peiXXgen.c
Date: Wed, 18 Dec 2013 13:25:00 -0000 [thread overview]
Message-ID: <52B1A20C.6090607@gmail.com> (raw)
In-Reply-To: <52b19d01.22cbc20a.69b0.ffffb29eSMTPIN_ADDED_BROKEN@mx.google.com>
On 2013-12-18 21:02, Pierre Muller wrote:
> Cygwin also fails to compile bfd/peigen.c, itself gebnerated
> from source bfd/peXXigen.c.
>
> The patch below allows to compile both for mingw32 and cygwin hosts.
> To fix the unknown wcsncasecmp function for mingw32 hosts,
> I added this code:
>
> +#ifdef __MINGW32__
> +#define wcsncasecmp wcsnicmp
> +#endif
> I think that using the Windows API function wcsnicmp
> here is OK, but I don't know if the code should be somehow modified to
> accept wcsncasecmp function if it is added later to mingw hosts...
>
> Pierre Muller
>
>
> bfd/ChangeLog entry:
>
> 2013-12-18 Pierre Muller <muller@sourceware.org>
>
> peXXigen.c (u16_mbtouc): Avoid unused function warning by exculding if
> __CYGWIN__ or __MINGW32__ macro is defined.
> (rsrc_cmp): Fix short Windows OS version. Also use this code
> for mingw32 systems.
> [__MINGW32__]: Alias wcsncasecmp function to Windows API wcsnicmp function.
>
> diff --git a/bfd/peXXigen.c b/bfd/peXXigen.c
> index 5e2a876..05c7d8b 100644
> --- a/bfd/peXXigen.c
> +++ b/bfd/peXXigen.c
> @@ -2930,7 +2930,7 @@ rsrc_write_directory (rsrc_write_data * data,
> BFD_ASSERT (nt == next_entry);
> }
>
> -#ifdef HAVE_WCHAR_H
> +#if defined HAVE_WCHAR_H && ! defined __CYGWIN__ && ! defined __MINGW32__
> /* Return the length (number of units) of the first character in S,
> putting its 'ucs4_t' representation in *PUC. */
>
> @@ -2979,9 +2979,16 @@ rsrc_cmp (bfd_boolean is_name, rsrc_entry * a, rsrc_entry * b)
> /* We have to perform a case insenstive, unicode string comparison... */
> int res;
>
> -#ifdef __CYGWIN__
> +#if defined __CYGWIN__ || defined __MINGW32__
> +#ifdef __MINGW32__
> +#define wcsncasecmp wcsnicmp
> +#endif
> /* Under Cygwin unicode == UTF-16 == wchar_t.
> FIXME: The same is true for MingGW - we should test for that too. */
> + bfd_byte * astring = a->name_id.name.string;
> + unsigned int alen = a->name_id.name.len;
> + bfd_byte * bstring = b->name_id.name.string;
> + unsigned int blen = b->name_id.name.len;
> res = wcsncasecmp ((const wchar_t *) astring + 2, (const wchar_t *) bstring + 2, min (alen, blen));
> #elif defined HAVE_WCHAR_H
> unsigned int i;
Thanks, just test this patch, it fix the build error under MinGW-Build 4.8.2 + MSYS.
Yuanhui Zhang
next prev parent reply other threads:[~2013-12-18 13:25 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-12-18 9:54 GDB MinGW build error: implicit declaration of function 'wcsncasecmp' asmwarrior
2013-12-18 9:58 ` asmwarrior
2013-12-18 10:06 ` BFD " Pedro Alves
2013-12-18 12:50 ` asmwarrior
2013-12-18 15:47 ` Eli Zaretskii
2013-12-18 13:03 ` [RFC] BFD MinGW/Cygwin build error in bfd/peiXXgen.c Pierre Muller
2013-12-18 17:52 ` nick clifton
2013-12-19 11:45 ` [RFC-v2] " Pierre Muller
2013-12-19 12:41 ` nick clifton
2013-12-19 13:02 ` Mark Kettenis
2013-12-19 13:18 ` Pierre Muller
2013-12-19 15:13 ` nick clifton
[not found] ` <52b19d01.22cbc20a.69b0.ffffb29eSMTPIN_ADDED_BROKEN@mx.google.com>
2013-12-18 13:25 ` asmwarrior [this message]
[not found] ` <52b19d19.0850420a.7b6a.52dcSMTPIN_ADDED_BROKEN@mx.google.com>
2013-12-18 17:56 ` [RFC] " Pedro Alves
2013-12-19 11:15 ` nick clifton
2013-12-18 15:35 ` GDB MinGW build error: implicit declaration of function 'wcsncasecmp' Eli Zaretskii
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=52B1A20C.6090607@gmail.com \
--to=asmwarrior@gmail.com \
--cc=binutils@sourceware.org \
--cc=gdb@sourceware.org \
--cc=palves@redhat.com \
--cc=pierre.muller@ics-cnrs.unistra.fr \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox