add and apply sparcv9v memset patch
This commit is contained in:
parent
0cfc9dbd82
commit
afa452c3fd
75
glibc-sparcv9v-memset.patch
Normal file
75
glibc-sparcv9v-memset.patch
Normal file
@ -0,0 +1,75 @@
|
|||||||
|
2008-10-09 Jakub Jelinek <jakub@redhat.com>,
|
||||||
|
David S. Miller <davem@davemloft.net>
|
||||||
|
|
||||||
|
* 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
|
@ -23,7 +23,7 @@
|
|||||||
Summary: The GNU libc libraries
|
Summary: The GNU libc libraries
|
||||||
Name: glibc
|
Name: glibc
|
||||||
Version: 2.8.90
|
Version: 2.8.90
|
||||||
Release: 12
|
Release: 13
|
||||||
# GPLv2+ is used in a bunch of programs, LGPLv2+ is used for libraries.
|
# GPLv2+ is used in a bunch of programs, LGPLv2+ is used for libraries.
|
||||||
# Things that are linked directly into dynamically linked programs
|
# Things that are linked directly into dynamically linked programs
|
||||||
# and shared libraries (e.g. crt files, lib*_nonshared.a) have an additional
|
# 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
|
Source3: %{glibcname}-fedora-%{glibcdate}.tar.bz2
|
||||||
Patch0: %{glibcname}-fedora.patch
|
Patch0: %{glibcname}-fedora.patch
|
||||||
Patch1: %{name}-ia64-lib64.patch
|
Patch1: %{name}-ia64-lib64.patch
|
||||||
|
Patch2: glibc-sparcv9v-memset.patch
|
||||||
Buildroot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
|
Buildroot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
|
||||||
Obsoletes: glibc-profile < 2.4
|
Obsoletes: glibc-profile < 2.4
|
||||||
Provides: ldconfig
|
Provides: ldconfig
|
||||||
@ -220,6 +221,7 @@ package or when debugging this package.
|
|||||||
%patch1 -p1
|
%patch1 -p1
|
||||||
%endif
|
%endif
|
||||||
%endif
|
%endif
|
||||||
|
%patch2 -p1
|
||||||
|
|
||||||
# A lot of programs still misuse memcpy when they have to use
|
# A lot of programs still misuse memcpy when they have to use
|
||||||
# memmove. The memcpy implementation below is not tolerant at
|
# memmove. The memcpy implementation below is not tolerant at
|
||||||
@ -980,6 +982,9 @@ rm -f *.filelist*
|
|||||||
%endif
|
%endif
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Fri Oct 10 2008 Dennis Gilmore <dennis@ausil.us> 2.8.90-13
|
||||||
|
- apply sparcv9v memset patch from jakub and davem
|
||||||
|
|
||||||
* Fri Aug 29 2008 Jakub Jelinek <jakub@redhat.com> 2.8.90-12
|
* Fri Aug 29 2008 Jakub Jelinek <jakub@redhat.com> 2.8.90-12
|
||||||
- update from trunk
|
- update from trunk
|
||||||
- revert origin changes (#457849)
|
- revert origin changes (#457849)
|
||||||
|
Loading…
Reference in New Issue
Block a user