diff options
author | Joseph Myers <joseph@codesourcery.com> | 2012-02-29 22:37:38 +0000 |
---|---|---|
committer | Joseph Myers <joseph@codesourcery.com> | 2012-06-25 21:43:15 +0000 |
commit | 3e5bea052bfaa8d0a073f5e924ccc882ce3909bc (patch) | |
tree | 523fc405a17f56e71bb44597a5ccc8dbf5e2c519 | |
parent | e0ca0a0f7680a30aadc0aac30a446f5adc8eed27 (diff) | |
download | glibc-3e5bea052bfaa8d0a073f5e924ccc882ce3909bc.tar.gz glibc-3e5bea052bfaa8d0a073f5e924ccc882ce3909bc.tar.xz glibc-3e5bea052bfaa8d0a073f5e924ccc882ce3909bc.zip |
Fix x86 strcasecmp_l (bug 13786).
(cherry picked from commit 0bab47b6b255e77bd69206ab0dcfa97331fefa50)
-rw-r--r-- | ChangeLog | 12 | ||||
-rw-r--r-- | NEWS | 2 | ||||
-rw-r--r-- | sysdeps/i386/i686/multiarch/strcasecmp_l-c.c | 2 | ||||
-rw-r--r-- | sysdeps/i386/i686/multiarch/strcmp.S | 3 | ||||
-rw-r--r-- | sysdeps/i386/i686/multiarch/strncase_l-c.c | 2 |
5 files changed, 19 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog index 94b14c3c23..ae32903f52 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 <joseph@codesourcery.com> + + [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 <davem@davemloft.net> * sysdeps/ieee754/ldbl-128/s_nearbyintl.c (__nearbyintl): Do not diff --git a/NEWS b/NEWS index 2cbf346beb..c8fbcb0d01 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 d10e872568..d4fcd2b4a1 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 <string/strcasecmp.c> +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 28e2d6154c..39fa517b2d 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 0c68b8d1cb..7e601af271 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 <string/strncase.c> +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) |