diff options
author | Andreas Schwab <schwab@suse.de> | 2013-12-18 11:53:27 +1000 |
---|---|---|
committer | Allan McRae <allan@archlinux.org> | 2013-12-18 14:28:30 +1000 |
commit | 1818483b15d22016b0eae41d37ee91cc87b37510 (patch) | |
tree | 671c0713c560f5c493c16fb96e86c0df1e95c55b /sysdeps/i386/i686/multiarch | |
parent | 25de95bfd1f637f9392ffe7ecb6e875ac15eede5 (diff) | |
download | glibc-1818483b15d22016b0eae41d37ee91cc87b37510.tar.gz glibc-1818483b15d22016b0eae41d37ee91cc87b37510.tar.xz glibc-1818483b15d22016b0eae41d37ee91cc87b37510.zip |
Remove use of SSE4.2 functions for strstr on i686
The SSE4.2 have been removed from x86_64 by commit 584b18eb. This patch fixes the build on i686, which attempts to use the removed files.
Diffstat (limited to 'sysdeps/i386/i686/multiarch')
-rw-r--r-- | sysdeps/i386/i686/multiarch/Makefile | 7 | ||||
-rw-r--r-- | sysdeps/i386/i686/multiarch/ifunc-impl-list.c | 11 | ||||
-rw-r--r-- | sysdeps/i386/i686/multiarch/strcasestr-nonascii.c | 2 | ||||
-rw-r--r-- | sysdeps/i386/i686/multiarch/strcasestr.c | 1 | ||||
-rw-r--r-- | sysdeps/i386/i686/multiarch/strstr-c.c | 29 | ||||
-rw-r--r-- | sysdeps/i386/i686/multiarch/strstr.c | 1 |
6 files changed, 2 insertions, 49 deletions
diff --git a/sysdeps/i386/i686/multiarch/Makefile b/sysdeps/i386/i686/multiarch/Makefile index 8946bfa586..55778cbcd1 100644 --- a/sysdeps/i386/i686/multiarch/Makefile +++ b/sysdeps/i386/i686/multiarch/Makefile @@ -11,7 +11,7 @@ sysdep_routines += bzero-sse2 memset-sse2 memcpy-ssse3 mempcpy-ssse3 \ memmove-ssse3-rep bcopy-ssse3 bcopy-ssse3-rep \ memset-sse2-rep bzero-sse2-rep strcmp-ssse3 \ strcmp-sse4 strncmp-c strncmp-ssse3 strncmp-sse4 \ - memcmp-ssse3 memcmp-sse4 strcasestr-nonascii varshift \ + memcmp-ssse3 memcmp-sse4 varshift \ strlen-sse2 strlen-sse2-bsf strncpy-c strcpy-ssse3 \ strncpy-ssse3 stpcpy-ssse3 stpncpy-ssse3 strcpy-sse2 \ strncpy-sse2 stpcpy-sse2 stpncpy-sse2 strcat-ssse3 \ @@ -25,14 +25,11 @@ sysdep_routines += bzero-sse2 memset-sse2 memcpy-ssse3 mempcpy-ssse3 \ strncase_l-c strncase-c strncase_l-ssse3 \ strcasecmp_l-sse4 strncase_l-sse4 ifeq (yes,$(config-cflags-sse4)) -sysdep_routines += strcspn-c strpbrk-c strspn-c strstr-c strcasestr-c +sysdep_routines += strcspn-c strpbrk-c strspn-c CFLAGS-varshift.c += -msse4 CFLAGS-strcspn-c.c += -msse4 CFLAGS-strpbrk-c.c += -msse4 CFLAGS-strspn-c.c += -msse4 -CFLAGS-strstr.c += -msse4 -CFLAGS-strcasestr.c += -msse4 -CFLAGS-strcasestr-nonascii.c += -msse4 endif endif diff --git a/sysdeps/i386/i686/multiarch/ifunc-impl-list.c b/sysdeps/i386/i686/multiarch/ifunc-impl-list.c index 2c282bdb72..3a8d094c89 100644 --- a/sysdeps/i386/i686/multiarch/ifunc-impl-list.c +++ b/sysdeps/i386/i686/multiarch/ifunc-impl-list.c @@ -141,12 +141,6 @@ __libc_ifunc_impl_list (const char *name, struct libc_ifunc_impl *array, IFUNC_IMPL_ADD (array, i, strcasecmp_l, 1, __strcasecmp_l_ia32)) - /* Support sysdeps/i386/i686/multiarch/strcasestr.c. */ - IFUNC_IMPL (i, name, strcasestr, - IFUNC_IMPL_ADD (array, i, strcasestr, HAS_SSE4_2, - __strcasestr_sse42) - IFUNC_IMPL_ADD (array, i, strcasestr, 1, __strcasestr_ia32)) - /* Support sysdeps/i386/i686/multiarch/strcat.S. */ IFUNC_IMPL (i, name, strcat, IFUNC_IMPL_ADD (array, i, strcat, HAS_SSSE3, __strcat_ssse3) @@ -234,11 +228,6 @@ __libc_ifunc_impl_list (const char *name, struct libc_ifunc_impl *array, IFUNC_IMPL_ADD (array, i, strspn, HAS_SSE4_2, __strspn_sse42) IFUNC_IMPL_ADD (array, i, strspn, 1, __strspn_ia32)) - /* Support sysdeps/i386/i686/multiarch/strstr-c.c. */ - IFUNC_IMPL (i, name, strstr, - IFUNC_IMPL_ADD (array, i, strstr, HAS_SSE4_2, __strstr_sse42) - IFUNC_IMPL_ADD (array, i, strstr, 1, __strstr_ia32)) - /* Support sysdeps/i386/i686/multiarch/wcschr.S. */ IFUNC_IMPL (i, name, wcschr, IFUNC_IMPL_ADD (array, i, wcschr, HAS_SSE2, __wcschr_sse2) diff --git a/sysdeps/i386/i686/multiarch/strcasestr-nonascii.c b/sysdeps/i386/i686/multiarch/strcasestr-nonascii.c deleted file mode 100644 index 4cc4444f7e..0000000000 --- a/sysdeps/i386/i686/multiarch/strcasestr-nonascii.c +++ /dev/null @@ -1,2 +0,0 @@ -#include <nmmintrin.h> -#include <sysdeps/x86_64/multiarch/strcasestr-nonascii.c> diff --git a/sysdeps/i386/i686/multiarch/strcasestr.c b/sysdeps/i386/i686/multiarch/strcasestr.c deleted file mode 100644 index 511bb29ede..0000000000 --- a/sysdeps/i386/i686/multiarch/strcasestr.c +++ /dev/null @@ -1 +0,0 @@ -#include <sysdeps/x86_64/multiarch/strcasestr.c> diff --git a/sysdeps/i386/i686/multiarch/strstr-c.c b/sysdeps/i386/i686/multiarch/strstr-c.c deleted file mode 100644 index 7b8794e9f0..0000000000 --- a/sysdeps/i386/i686/multiarch/strstr-c.c +++ /dev/null @@ -1,29 +0,0 @@ -/* Multiple versions of strstr - All versions must be listed in ifunc-impl-list.c. */ - -#include "init-arch.h" - -#define STRSTR __strstr_ia32 -#if defined SHARED && !defined NO_HIDDEN -#undef libc_hidden_builtin_def -#define libc_hidden_builtin_def(name) \ - __hidden_ver1 (__strstr_ia32, __GI_strstr, __strstr_ia32); -#endif - -/* Redefine strstr so that the compiler won't complain about the type - mismatch with the IFUNC selector in strong_alias, below. */ -#undef strstr -#define strstr __redirect_strstr - -#include "string/strstr.c" - -extern __typeof (__redirect_strstr) __strstr_sse42 attribute_hidden; -extern __typeof (__redirect_strstr) __strstr_ia32 attribute_hidden; - -/* Avoid DWARF definition DIE on ifunc symbol so that GDB can handle - ifunc symbol properly. */ -extern __typeof (__redirect_strstr) __libc_strstr; -libc_ifunc (__libc_strstr, HAS_SSE4_2 ? __strstr_sse42 : __strstr_ia32) - -#undef strstr -strong_alias (__libc_strstr, strstr) diff --git a/sysdeps/i386/i686/multiarch/strstr.c b/sysdeps/i386/i686/multiarch/strstr.c deleted file mode 100644 index a97428c125..0000000000 --- a/sysdeps/i386/i686/multiarch/strstr.c +++ /dev/null @@ -1 +0,0 @@ -#include <sysdeps/x86_64/multiarch/strstr.c> |