diff options
author | Joseph Myers <joseph@codesourcery.com> | 2012-02-29 22:37:38 +0000 |
---|---|---|
committer | Joseph Myers <joseph@codesourcery.com> | 2012-02-29 22:37:38 +0000 |
commit | 0bab47b6b255e77bd69206ab0dcfa97331fefa50 (patch) | |
tree | c766dace6d2302bab3edf85887c1b44fb6e78fa4 | |
parent | 0fcad3e243575f5b316a1b630fcd9ed2396fd0c8 (diff) | |
download | glibc-0bab47b6b255e77bd69206ab0dcfa97331fefa50.tar.gz glibc-0bab47b6b255e77bd69206ab0dcfa97331fefa50.tar.xz glibc-0bab47b6b255e77bd69206ab0dcfa97331fefa50.zip |
Fix x86 strcasecmp_l (bug 13786).
-rw-r--r-- | ChangeLog | 10 | ||||
-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 |
4 files changed, 16 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog index 59fc3c0d7b..e2bc926f40 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,15 @@ 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. + [BZ #5794] * math/libm-test.inc (expm1_test): Add test for bug 5794. * sysdeps/i386/fpu/libm-test-ulps: Update. 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 5410d17e09..b3b9eb87bc 100644 --- a/sysdeps/i386/i686/multiarch/strcmp.S +++ b/sysdeps/i386/i686/multiarch/strcmp.S @@ -111,6 +111,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) |