From 0bab47b6b255e77bd69206ab0dcfa97331fefa50 Mon Sep 17 00:00:00 2001 From: Joseph Myers Date: Wed, 29 Feb 2012 22:37:38 +0000 Subject: [PATCH] Fix x86 strcasecmp_l (bug 13786). --- ChangeLog | 10 ++++++++++ sysdeps/i386/i686/multiarch/strcasecmp_l-c.c | 2 ++ sysdeps/i386/i686/multiarch/strcmp.S | 3 ++- sysdeps/i386/i686/multiarch/strncase_l-c.c | 2 ++ 4 files changed, 16 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index 59fc3c0..e2bc926 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,15 @@ 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. + [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 d10e872..d4fcd2b 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 5410d17..b3b9eb8 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 0c68b8d..7e601af 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) -- 2.7.4