* configure.in: Check for strcoll.
* configure: Regenerate. * config.in: Regenerate. * nm.c (main): Set locale for LC_COLLATE category. (non_numeric_forward): Use strcoll if available.
This commit is contained in:
parent
87c4a0399d
commit
9710509e6b
5 changed files with 35 additions and 8 deletions
|
@ -1,3 +1,11 @@
|
||||||
|
2002-06-21 Mitsru Chinen <chinen@jp.ibm.com>
|
||||||
|
|
||||||
|
* configure.in: Check for strcoll.
|
||||||
|
* configure: Regenerate.
|
||||||
|
* config.in: Regenerate.
|
||||||
|
* nm.c (main): Set locale for LC_COLLATE category.
|
||||||
|
(non_numeric_forward): Use strcoll if available.
|
||||||
|
|
||||||
2002-06-20 Dave Brolley <brolley@redhat.com>
|
2002-06-20 Dave Brolley <brolley@redhat.com>
|
||||||
|
|
||||||
* MAINTAINERS: Add self as fr30 and frv maintainer.
|
* MAINTAINERS: Add self as fr30 and frv maintainer.
|
||||||
|
|
|
@ -97,6 +97,9 @@
|
||||||
/* Define if you have the strchr function. */
|
/* Define if you have the strchr function. */
|
||||||
#undef HAVE_STRCHR
|
#undef HAVE_STRCHR
|
||||||
|
|
||||||
|
/* Define if you have the strcoll function. */
|
||||||
|
#undef HAVE_STRCOLL
|
||||||
|
|
||||||
/* Define if you have the utimes function. */
|
/* Define if you have the utimes function. */
|
||||||
#undef HAVE_UTIMES
|
#undef HAVE_UTIMES
|
||||||
|
|
||||||
|
|
2
binutils/configure
vendored
2
binutils/configure
vendored
|
@ -4902,7 +4902,7 @@ EOF
|
||||||
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
for ac_func in sbrk utimes setmode getc_unlocked
|
for ac_func in sbrk utimes setmode getc_unlocked strcoll
|
||||||
do
|
do
|
||||||
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
|
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
|
||||||
echo "configure:4909: checking for $ac_func" >&5
|
echo "configure:4909: checking for $ac_func" >&5
|
||||||
|
|
|
@ -100,7 +100,7 @@ AC_SUBST(DEMANGLER_NAME)
|
||||||
AC_CHECK_HEADERS(string.h strings.h stdlib.h unistd.h fcntl.h sys/file.h)
|
AC_CHECK_HEADERS(string.h strings.h stdlib.h unistd.h fcntl.h sys/file.h)
|
||||||
AC_HEADER_SYS_WAIT
|
AC_HEADER_SYS_WAIT
|
||||||
AC_FUNC_ALLOCA
|
AC_FUNC_ALLOCA
|
||||||
AC_CHECK_FUNCS(sbrk utimes setmode getc_unlocked)
|
AC_CHECK_FUNCS(sbrk utimes setmode getc_unlocked strcoll)
|
||||||
|
|
||||||
# Check whether fopen64 is available and whether _LARGEFILE64_SOURCE
|
# Check whether fopen64 is available and whether _LARGEFILE64_SOURCE
|
||||||
# needs to be defined for it
|
# needs to be defined for it
|
||||||
|
|
|
@ -51,7 +51,7 @@ struct get_relocs_info
|
||||||
asymbol **syms;
|
asymbol **syms;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct extended_symbol_info
|
struct extended_symbol_info
|
||||||
{
|
{
|
||||||
symbol_info *sinfo;
|
symbol_info *sinfo;
|
||||||
bfd_vma ssize;
|
bfd_vma ssize;
|
||||||
|
@ -355,6 +355,7 @@ main (argc, argv)
|
||||||
#endif
|
#endif
|
||||||
#if defined (HAVE_SETLOCALE)
|
#if defined (HAVE_SETLOCALE)
|
||||||
setlocale (LC_CTYPE, "");
|
setlocale (LC_CTYPE, "");
|
||||||
|
setlocale (LC_COLLATE, "");
|
||||||
#endif
|
#endif
|
||||||
bindtextdomain (PACKAGE, LOCALEDIR);
|
bindtextdomain (PACKAGE, LOCALEDIR);
|
||||||
textdomain (PACKAGE);
|
textdomain (PACKAGE);
|
||||||
|
@ -705,8 +706,23 @@ non_numeric_forward (P_x, P_y)
|
||||||
xn = bfd_asymbol_name (x);
|
xn = bfd_asymbol_name (x);
|
||||||
yn = bfd_asymbol_name (y);
|
yn = bfd_asymbol_name (y);
|
||||||
|
|
||||||
return ((xn == NULL) ? ((yn == NULL) ? 0 : -1) :
|
if (yn == NULL)
|
||||||
((yn == NULL) ? 1 : strcmp (xn, yn)));
|
return xn != NULL;
|
||||||
|
if (xn == NULL)
|
||||||
|
return -1;
|
||||||
|
|
||||||
|
#ifdef HAVE_STRCOLL
|
||||||
|
/* Solaris 2.5 has a bug in strcoll.
|
||||||
|
strcoll returns invalid values when confronted with empty strings. */
|
||||||
|
if (*yn == '\0')
|
||||||
|
return *xn != '\0';
|
||||||
|
if (*xn == '\0')
|
||||||
|
return -1;
|
||||||
|
|
||||||
|
return strcoll (xn, yn);
|
||||||
|
#else
|
||||||
|
return strcmp (xn, yn);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
static int
|
static int
|
||||||
|
@ -886,7 +902,7 @@ sort_symbols_by_size (abfd, dynamic, minisyms, symcount, size, symsizesp)
|
||||||
|
|
||||||
sec = bfd_get_section (sym);
|
sec = bfd_get_section (sym);
|
||||||
|
|
||||||
if (bfd_get_flavour (abfd) == bfd_target_elf_flavour)
|
if (bfd_get_flavour (abfd) == bfd_target_elf_flavour)
|
||||||
sz = ((elf_symbol_type *) sym)->internal_elf_sym.st_size;
|
sz = ((elf_symbol_type *) sym)->internal_elf_sym.st_size;
|
||||||
else if (bfd_is_com_section (sec))
|
else if (bfd_is_com_section (sec))
|
||||||
sz = sym->value;
|
sz = sym->value;
|
||||||
|
@ -1186,7 +1202,7 @@ print_symbol (abfd, sym, ssize, archive_bfd)
|
||||||
bfd_get_symbol_info (abfd, sym, &syminfo);
|
bfd_get_symbol_info (abfd, sym, &syminfo);
|
||||||
info.sinfo = &syminfo;
|
info.sinfo = &syminfo;
|
||||||
info.ssize = ssize;
|
info.ssize = ssize;
|
||||||
if (bfd_get_flavour (abfd) == bfd_target_elf_flavour)
|
if (bfd_get_flavour (abfd) == bfd_target_elf_flavour)
|
||||||
info.elfinfo = (elf_symbol_type *) sym;
|
info.elfinfo = (elf_symbol_type *) sym;
|
||||||
else
|
else
|
||||||
info.elfinfo = NULL;
|
info.elfinfo = NULL;
|
||||||
|
@ -1545,7 +1561,7 @@ print_symbol_info_sysv (info, abfd)
|
||||||
printf ("| |"); /* Line, Section */
|
printf ("| |"); /* Line, Section */
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
/* Type, Size, Line, Section */
|
/* Type, Size, Line, Section */
|
||||||
if (info->elfinfo)
|
if (info->elfinfo)
|
||||||
printf ("%18s|",
|
printf ("%18s|",
|
||||||
|
|
Loading…
Reference in a new issue