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.
This commit is contained in:
Andreas Schwab 2013-12-18 11:53:27 +10:00 committed by Allan McRae
parent 25de95bfd1
commit 1818483b15
7 changed files with 11 additions and 49 deletions

View File

@ -1,3 +1,12 @@
2013-12-18 Andreas Schwab <schwab@suse.de>
* sysdeps/i386/i686/multiarch/strstr.c: Remove.
* sysdeps/i386/i686/multiarch/strstr-c.c: Remove.
* sysdeps/i386/i686/multiarch/strcasestr.c: Remove.
* sysdeps/i386/i686/multiarch/strcasestr-nonascii.c: Remove.
* sysdeps/i386/i686/multiarch/Makefile: Update.
* sysdeps/i386/i686/multiarch/ifunc-impl-list.c: Update.
2013-12-17 Joseph Myers <joseph@codesourcery.com>
* sysdeps/unix/bsd/bsd4.4/bits/errno.h: Remove file.

View File

@ -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

View File

@ -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)

View File

@ -1,2 +0,0 @@
#include <nmmintrin.h>
#include <sysdeps/x86_64/multiarch/strcasestr-nonascii.c>

View File

@ -1 +0,0 @@
#include <sysdeps/x86_64/multiarch/strcasestr.c>

View File

@ -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)

View File

@ -1 +0,0 @@
#include <sysdeps/x86_64/multiarch/strstr.c>