On Wed, Jan 27, 2010 at 11:47:42AM +0100, Petr Baudis wrote:
> > This patch is already included in the Debian libc6 package. It actually
> > may be the cause of the problem you reported.
> 
> This problem is already fixed in 2.11.1 or master. Have you also applied
> the proper _second_ patch in that bug? C.f. my and H.J.Lu's comments and
> mailing list posts.
> 

Here is the patch that is applied. It makes memchr.S identical to the
current HEAD version. I guess the problem is *not* fixed in HEAD or
2.11.1. What is fixed is the stratcliff testsuite problem, and this
fixes may have actually introduced this problem.


2009-11-18  H.J. Lu  <hongjiu...@intel.com>

        [BZ #10162]
        * sysdeps/ia64/memchr.S: Don't use a simple loop on data shorter
        than software pipeline.  Properly recover from shorter read.

2009-11-09  H.J. Lu  <hongjiu...@intel.com>

        [BZ #10162]
        * sysdeps/ia64/memchr.S: Use a simple loop on data shorter than
        software pipeline.

diff --git a/sysdeps/ia64/memchr.S b/sysdeps/ia64/memchr.S
index cd062b2..cdd71ca 100644
--- a/sysdeps/ia64/memchr.S
+++ b/sysdeps/ia64/memchr.S
@@ -126,7 +126,16 @@ ENTRY(__memchr)
        br.ret.sptk.many b0
 
 .recovery:
-       adds    ret0 = -((MEMLAT + 1) * 8), ret0;;
+#if MEMLAT != 6
+# error "MEMLAT must be 6!"
+#endif
+(p[MEMLAT-6])  add     ret0 = -8, ret0;;
+(p[MEMLAT-5])  add     ret0 = -8, ret0;;
+(p[MEMLAT-4])  add     ret0 = -8, ret0;;
+(p[MEMLAT-3])  add     ret0 = -8, ret0;;
+(p[MEMLAT-2])  add     ret0 = -8, ret0;;
+(p[MEMLAT-1])  add     ret0 = -8, ret0;;
+(p[MEMLAT])    add     ret0 = -8, ret0;;
 (p[MEMLAT+1])  add     ret0 = -8, ret0;;
 (p[MEMLAT+2])  add     ret0 = -8, ret0;;
 .l4:

-- 
Aurelien Jarno                          GPG: 1024D/F1BCDB73
aurel...@aurel32.net                 http://www.aurel32.net



-- 
To UNSUBSCRIBE, email to debian-glibc-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org

Reply via email to