From afa452c3fd79b594ddd04989a39bbe1569d4ed6b Mon Sep 17 00:00:00 2001 From: Dennis Gilmore Date: Oct 11 2008 00:58:22 +0000 Subject: add and apply sparcv9v memset patch --- diff --git a/glibc-sparcv9v-memset.patch b/glibc-sparcv9v-memset.patch new file mode 100644 index 0000000..4169304 --- /dev/null +++ b/glibc-sparcv9v-memset.patch @@ -0,0 +1,75 @@ +2008-10-09 Jakub Jelinek , + David S. Miller + + * sysdeps/sparc/sparc64/sparcv9v/memcpy.S, + sysdeps/sparc/sparc64/sparcv9v/memset.S, + sysdeps/sparc/sparc64/sparcv9v2/memcpy.S: When not USE_BPR, + make sure any registers used with 64-bit 'branch-on-register' + instructions have their top 32-bits clear. + +diff --git a/sysdeps/sparc/sparc64/sparcv9v/memcpy.S b/sysdeps/sparc/sparc64/sparcv9v/memcpy.S +index 05c837f..ad2b0f7 100644 +--- a/sysdeps/sparc/sparc64/sparcv9v/memcpy.S ++++ b/sysdeps/sparc/sparc64/sparcv9v/memcpy.S +@@ -1,5 +1,5 @@ + /* Copy SIZE bytes from SRC to DEST. For SUN4V Niagara. +- Copyright (C) 2006 Free Software Foundation, Inc. ++ Copyright (C) 2006, 2008 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by David S. Miller (davem@davemloft.net) + +@@ -61,6 +61,9 @@ END(bcopy) + + .align 32 + ENTRY(memcpy) ++#ifndef USE_BPR ++ srl %o2, 0, %o2 ++#endif + 100: /* %o0=dst, %o1=src, %o2=len */ + mov %o0, %g5 + cmp %o2, 0 +diff --git a/sysdeps/sparc/sparc64/sparcv9v/memset.S b/sysdeps/sparc/sparc64/sparcv9v/memset.S +index ac0a50c..64817b8 100644 +--- a/sysdeps/sparc/sparc64/sparcv9v/memset.S ++++ b/sysdeps/sparc/sparc64/sparcv9v/memset.S +@@ -1,5 +1,5 @@ + /* Set a block of memory to some byte value. For SUN4V Niagara. +- Copyright (C) 2006 Free Software Foundation, Inc. ++ Copyright (C) 2006, 2008 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by David S. Miller (davem@davemloft.net) + +@@ -49,7 +49,11 @@ END(memset) + + ENTRY(__bzero) + clr %o2 +-1: brz,pn %o1, 90f ++1: ++#ifndef USE_BRP ++ srl %o1, 0, %o1 ++#endif ++ brz,pn %o1, 90f + mov %o0, %o3 + + wr %g0, ASI_P, %asi +diff --git a/sysdeps/sparc/sparc64/sparcv9v2/memcpy.S b/sysdeps/sparc/sparc64/sparcv9v2/memcpy.S +index d94dd47..b261f46 100644 +--- a/sysdeps/sparc/sparc64/sparcv9v2/memcpy.S ++++ b/sysdeps/sparc/sparc64/sparcv9v2/memcpy.S +@@ -1,5 +1,5 @@ + /* Copy SIZE bytes from SRC to DEST. For SUN4V Niagara-2. +- Copyright (C) 2007 Free Software Foundation, Inc. ++ Copyright (C) 2007, 2008 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by David S. Miller (davem@davemloft.net) + +@@ -163,6 +163,9 @@ END(bcopy) + + .align 32 + ENTRY(memcpy) ++#ifndef USE_BPR ++ srl %o2, 0, %o2 ++#endif + 100: /* %o0=dst, %o1=src, %o2=len */ + mov %o0, %g5 + cmp %o2, 0 diff --git a/glibc.spec b/glibc.spec index 45f3e17..73fb6e0 100644 --- a/glibc.spec +++ b/glibc.spec @@ -23,7 +23,7 @@ Summary: The GNU libc libraries Name: glibc Version: 2.8.90 -Release: 12 +Release: 13 # GPLv2+ is used in a bunch of programs, LGPLv2+ is used for libraries. # Things that are linked directly into dynamically linked programs # and shared libraries (e.g. crt files, lib*_nonshared.a) have an additional @@ -41,6 +41,7 @@ Source2: %(echo %{glibcsrcdir} | sed s/glibc-/glibc-libidn-/).tar.bz2 Source3: %{glibcname}-fedora-%{glibcdate}.tar.bz2 Patch0: %{glibcname}-fedora.patch Patch1: %{name}-ia64-lib64.patch +Patch2: glibc-sparcv9v-memset.patch Buildroot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) Obsoletes: glibc-profile < 2.4 Provides: ldconfig @@ -220,6 +221,7 @@ package or when debugging this package. %patch1 -p1 %endif %endif +%patch2 -p1 # A lot of programs still misuse memcpy when they have to use # memmove. The memcpy implementation below is not tolerant at @@ -980,6 +982,9 @@ rm -f *.filelist* %endif %changelog +* Fri Oct 10 2008 Dennis Gilmore 2.8.90-13 +- apply sparcv9v memset patch from jakub and davem + * Fri Aug 29 2008 Jakub Jelinek 2.8.90-12 - update from trunk - revert origin changes (#457849)