mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2024-11-23 18:14:13 +08:00
Fixes compiling peXXigen under MAC OS/X where the wcsncasecmp function is not available.
* configure.ac (AC_CHECK_HEADERS): Add wctype.h. * configure: Regenerate. * config.in: Regenerate. * peXXigen.c: Include wctype.h if HAVE_WCTYPE_H is defined. (u16_mbtowc): Use wint_t types if HAVE_WCTYPE_H is defined. (rsrc_cmp): Use towlower instead of wcsncasecmp if HAVE_WCTYPE_H is defined.
This commit is contained in:
parent
94d15024fe
commit
31593e1b96
@ -1,3 +1,13 @@
|
||||
2015-02-24 Nick Clifton <nickc@redhat.com>
|
||||
|
||||
* configure.ac (AC_CHECK_HEADERS): Add wctype.h.
|
||||
* configure: Regenerate.
|
||||
* config.in: Regenerate.
|
||||
* peXXigen.c: Include wctype.h if HAVE_WCTYPE_H is defined.
|
||||
(u16_mbtowc): Use wint_t types if HAVE_WCTYPE_H is defined.
|
||||
(rsrc_cmp): Use towlower instead of wcsncasecmp if HAVE_WCTYPE_H
|
||||
is defined.
|
||||
|
||||
2015-02-24 Nick Clifton <nickc@redhat.com>
|
||||
|
||||
* pdp11.c (set_section_contents): Pad the .text and .data sections
|
||||
|
@ -262,6 +262,9 @@
|
||||
/* Define to 1 if you have the <wchar.h> header file. */
|
||||
#undef HAVE_WCHAR_H
|
||||
|
||||
/* Define to 1 if you have the <wctype.h> header file. */
|
||||
#undef HAVE_WCTYPE_H
|
||||
|
||||
/* Define if <sys/procfs.h> has win32_pstatus_t. */
|
||||
#undef HAVE_WIN32_PSTATUS_T
|
||||
|
||||
|
2
bfd/configure
vendored
2
bfd/configure
vendored
@ -12988,7 +12988,7 @@ $as_echo "$bfd_cv_build_exeext" >&6; }
|
||||
fi
|
||||
|
||||
|
||||
for ac_header in alloca.h stddef.h string.h strings.h stdlib.h time.h unistd.h wchar.h
|
||||
for ac_header in alloca.h stddef.h string.h strings.h stdlib.h time.h unistd.h wchar.h wctype.h
|
||||
do :
|
||||
as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
|
||||
ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
|
||||
|
@ -207,7 +207,7 @@ AC_SUBST(BFD_HOSTPTR_T)
|
||||
|
||||
BFD_CC_FOR_BUILD
|
||||
|
||||
AC_CHECK_HEADERS(alloca.h stddef.h string.h strings.h stdlib.h time.h unistd.h wchar.h)
|
||||
AC_CHECK_HEADERS(alloca.h stddef.h string.h strings.h stdlib.h time.h unistd.h wchar.h wctype.h)
|
||||
AC_CHECK_HEADERS(fcntl.h sys/file.h sys/time.h sys/stat.h sys/resource.h)
|
||||
GCC_HEADER_STDINT(bfd_stdint.h)
|
||||
AC_HEADER_TIME
|
||||
|
@ -65,6 +65,9 @@
|
||||
#ifdef HAVE_WCHAR_H
|
||||
#include <wchar.h>
|
||||
#endif
|
||||
#ifdef HAVE_WCTYPE_H
|
||||
#include <wctype.h>
|
||||
#endif
|
||||
|
||||
/* NOTE: it's strange to be including an architecture specific header
|
||||
in what's supposed to be general (to PE/PEI) code. However, that's
|
||||
@ -3537,7 +3540,11 @@ rsrc_write_directory (rsrc_write_data * data,
|
||||
putting its 'ucs4_t' representation in *PUC. */
|
||||
|
||||
static unsigned int
|
||||
#if defined HAVE_WCTYPE_H
|
||||
u16_mbtouc (wint_t * puc, const unsigned short * s, unsigned int n)
|
||||
#else
|
||||
u16_mbtouc (wchar_t * puc, const unsigned short * s, unsigned int n)
|
||||
#endif
|
||||
{
|
||||
unsigned short c = * s;
|
||||
|
||||
@ -3609,20 +3616,34 @@ rsrc_cmp (bfd_boolean is_name, rsrc_entry * a, rsrc_entry * b)
|
||||
#elif defined HAVE_WCHAR_H
|
||||
{
|
||||
unsigned int i;
|
||||
|
||||
res = 0;
|
||||
for (i = min (alen, blen); i--; astring += 2, bstring += 2)
|
||||
{
|
||||
#if defined HAVE_WCTYPE_H
|
||||
wint_t awc;
|
||||
wint_t bwc;
|
||||
#else
|
||||
wchar_t awc;
|
||||
wchar_t bwc;
|
||||
#endif
|
||||
|
||||
/* Convert UTF-16 unicode characters into wchar_t characters so
|
||||
that we can then perform a case insensitive comparison. */
|
||||
int Alen = u16_mbtouc (& awc, (const unsigned short *) astring, 2);
|
||||
int Blen = u16_mbtouc (& bwc, (const unsigned short *) bstring, 2);
|
||||
/* Convert UTF-16 unicode characters into wchar_t characters
|
||||
so that we can then perform a case insensitive comparison. */
|
||||
unsigned int Alen = u16_mbtouc (& awc, (const unsigned short *) astring, 2);
|
||||
unsigned int Blen = u16_mbtouc (& bwc, (const unsigned short *) bstring, 2);
|
||||
|
||||
if (Alen != Blen)
|
||||
return Alen - Blen;
|
||||
|
||||
#ifdef HAVE_WCTYPE_H
|
||||
awc = towlower (awc);
|
||||
bwc = towlower (bwc);
|
||||
|
||||
res = awc - bwc;
|
||||
#else
|
||||
res = wcsncasecmp (& awc, & bwc, 1);
|
||||
#endif
|
||||
if (res)
|
||||
break;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user