From: Joseph Myers Date: Wed, 29 Feb 2012 22:37:38 +0000 (+0000) Subject: Fix x86 strcasecmp_l (bug 13786). X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=3e5bea052bfaa8d0a073f5e924ccc882ce3909bc;p=thirdparty%2Fglibc.git Fix x86 strcasecmp_l (bug 13786). (cherry picked from commit 0bab47b6b255e77bd69206ab0dcfa97331fefa50) --- diff --git a/ChangeLog b/ChangeLog index 94b14c3c232..ae32903f520 100644 --- a/ChangeLog +++ b/ChangeLog @@ -62,6 +62,18 @@ * sysdeps/x86_64/fpu/multiarch/s_tan-fma4.c (__branred): Don't define. +2012-02-29 Joseph Myers + + [BZ #13786] + * sysdeps/i386/i686/multiarch/strcmp.S [USE_AS_STRCASECMP_L]: Do + not include ../strcmp.S. + [USE_AS_STRNCASECMP_L]: Likewise. + * sysdeps/i386/i686/multiarch/strcasecmp_l-c.c + (__strcasecmp_l_ia32): Define as alias to __strcasecmp_l_nonascii. + * sysdeps/i386/i686/multiarch/strncase_l-c.c + (__strncasecmp_l_ia32): Define as alias to + __strncasecmp_l_nonascii. + 2012-02-27 David S. Miller * sysdeps/ieee754/ldbl-128/s_nearbyintl.c (__nearbyintl): Do not diff --git a/NEWS b/NEWS index 2cbf346bebc..c8fbcb0d01d 100644 --- a/NEWS +++ b/NEWS @@ -10,7 +10,7 @@ Version 2.15.1 * The following bugs are resolved with this release: 411, 2547, 2548, 11365, 11494, 13583, 13731, 13732, 13733, 13747, 13748, - 13749, 13753, 13771, 13774, 14059, 14167 + 13749, 13753, 13771, 13774, 13786, 14059, 14167 Version 2.15 diff --git a/sysdeps/i386/i686/multiarch/strcasecmp_l-c.c b/sysdeps/i386/i686/multiarch/strcasecmp_l-c.c index d10e8725683..d4fcd2b4a18 100644 --- a/sysdeps/i386/i686/multiarch/strcasecmp_l-c.c +++ b/sysdeps/i386/i686/multiarch/strcasecmp_l-c.c @@ -6,6 +6,8 @@ extern __typeof (strcasecmp_l) __strcasecmp_l_nonascii; #define USE_IN_EXTENDED_LOCALE_MODEL 1 #include +strong_alias (__strcasecmp_l_nonascii, __strcasecmp_l_ia32) + /* The needs of strcasecmp in libc are minimal, no need to go through the IFUNC. */ strong_alias (__strcasecmp_l_nonascii, __GI___strcasecmp_l) diff --git a/sysdeps/i386/i686/multiarch/strcmp.S b/sysdeps/i386/i686/multiarch/strcmp.S index 28e2d6154c1..39fa517b2d1 100644 --- a/sysdeps/i386/i686/multiarch/strcmp.S +++ b/sysdeps/i386/i686/multiarch/strcmp.S @@ -122,6 +122,7 @@ END(STRCMP) # endif #endif -#ifndef USE_AS_STRNCMP +#if !defined USE_AS_STRNCMP && !defined USE_AS_STRCASECMP_L \ + && !defined USE_AS_STRNCASECMP_L # include "../strcmp.S" #endif diff --git a/sysdeps/i386/i686/multiarch/strncase_l-c.c b/sysdeps/i386/i686/multiarch/strncase_l-c.c index 0c68b8d1cb2..7e601af271a 100644 --- a/sysdeps/i386/i686/multiarch/strncase_l-c.c +++ b/sysdeps/i386/i686/multiarch/strncase_l-c.c @@ -6,6 +6,8 @@ extern __typeof (strncasecmp_l) __strncasecmp_l_nonascii; #define USE_IN_EXTENDED_LOCALE_MODEL 1 #include +strong_alias (__strncasecmp_l_nonascii, __strncasecmp_l_ia32) + /* The needs of strcasecmp in libc are minimal, no need to go through the IFUNC. */ strong_alias (__strncasecmp_l_nonascii, __GI___strncasecmp_l)