glibc/i686-strcasecmp-fallback.patch
Andreas Schwab a70ef84746 Accepting request 185399 from home:Andreas_Schwab:Factory
- i686-strcasecmp-fallback.patch: fix fallback in i686
  strcasecmp/strncasecmp
- nonascii-case.patch: also test strncasecmp
- pldd-wait-ptrace-stop.patch: fix pldd not to leave process stopped after
  detaching (bnc#819383)

OBS-URL: https://build.opensuse.org/request/show/185399
OBS-URL: https://build.opensuse.org/package/show/Base:System/glibc?expand=0&rev=302
2013-08-01 09:02:44 +00:00

75 lines
2.0 KiB
Diff

* sysdeps/i386/i686/multiarch/strcmp-sse4.S (__strcasecmp_sse4_2)
(__strncasecmp_sse4_2) [PIC]: Restore %ebx before falling through
to __strcasecmp_nonascii and __strncasecmp_nonascii.
* sysdeps/i386/i686/multiarch/strcmp-ssse3.S (__strcasecmp_ssse3)
(__strncasecmp_ssse3) [PIC]: Likewise.
Index: glibc-2.17/sysdeps/i386/i686/multiarch/strcmp-sse4.S
===================================================================
--- glibc-2.17.orig/sysdeps/i386/i686/multiarch/strcmp-sse4.S
+++ glibc-2.17/sysdeps/i386/i686/multiarch/strcmp-sse4.S
@@ -121,8 +121,14 @@ ENTRY (__strcasecmp_sse4_2)
movl (%eax), %eax
# endif
testl $1, LOCALE_DATA_VALUES+_NL_CTYPE_NONASCII_CASE*SIZEOF_VALUES(%eax)
+# ifdef PIC
+ je L(ascii)
+ POP (%ebx)
+ jmp __strcasecmp_nonascii
+# else
jne __strcasecmp_nonascii
jmp L(ascii)
+# endif
END (__strcasecmp_sse4_2)
#endif
@@ -152,8 +158,14 @@ ENTRY (__strncasecmp_sse4_2)
movl (%eax), %eax
# endif
testl $1, LOCALE_DATA_VALUES+_NL_CTYPE_NONASCII_CASE*SIZEOF_VALUES(%eax)
+# ifdef PIC
+ je L(ascii)
+ POP (%ebx)
+ jmp __strncasecmp_nonascii
+# else
jne __strncasecmp_nonascii
jmp L(ascii)
+# endif
END (__strncasecmp_sse4_2)
#endif
Index: glibc-2.17/sysdeps/i386/i686/multiarch/strcmp-ssse3.S
===================================================================
--- glibc-2.17.orig/sysdeps/i386/i686/multiarch/strcmp-ssse3.S
+++ glibc-2.17/sysdeps/i386/i686/multiarch/strcmp-ssse3.S
@@ -138,8 +138,14 @@ ENTRY (__strcasecmp_ssse3)
movl (%eax), %eax
# endif
testl $1, LOCALE_DATA_VALUES+_NL_CTYPE_NONASCII_CASE*SIZEOF_VALUES(%eax)
+# ifdef PIC
+ je L(ascii)
+ POP (%ebx)
+ jmp __strcasecmp_nonascii
+# else
jne __strcasecmp_nonascii
jmp L(ascii)
+# endif
END (__strcasecmp_ssse3)
#endif
@@ -169,8 +175,14 @@ ENTRY (__strncasecmp_ssse3)
movl (%eax), %eax
# endif
testl $1, LOCALE_DATA_VALUES+_NL_CTYPE_NONASCII_CASE*SIZEOF_VALUES(%eax)
+# ifdef PIC
+ je L(ascii)
+ POP (%ebx)
+ jmp __strncasecmp_nonascii
+# else
jne __strncasecmp_nonascii
jmp L(ascii)
+# endif
END (__strncasecmp_ssse3)
#endif