Fw: [PATCH 0/3]: Initial Sparc multiarch support
FYI! :)
----- Forwarded message from David Miller <davem@davemloft.net> -----
Just FYI... This will decrease the overhead of building glibc
on sparc when/if this propagates some day into the debian tree.
Date: Fri, 26 Feb 2010 05:19:34 -0800 (PST)
To: libc-alpha@sourceware.org
Subject: [PATCH 0/3]: Initial Sparc multiarch support
From: David Miller <davem@davemloft.net>
Mailing-List: contact libc-alpha-help@sourceware.org; run by ezmlm
Following this posting are three patches that add initial
multiarch support for sparc. And below is the GIT pull
information to grab this work from my davem/sparc branch.
The first two patches make changes that ease the implementation
of multiarch.
We pull the __align_cpy_*() routines out of memcpy and remove
any dependency they have on the memcpy code. Incidentally these
are still not used by gcc at all. :-) In fact I doubt there are
any actual users.
Next we toss the memmove and bcopy bits in favor of the generic
code. This is a temporary measure and new optimized routines
will be added to the multiarch area at a later date.
Finally we multiarch everything. Now distribution makers only
have to build glibc 3 times to cover all possible cases.
Once for sparc-*-linux, once for sparcv9-*-linux and once for
sparc64-*-linux.
This is compared to the _9_ variants required beforehand.
Please pull, thanks a lot!
The following changes since commit 4a1297d761c3754ca2643ab6cd9e9cf952d77cf5:
Ulrich Drepper (1):
We can use the 64-bit register versions of the double functions.
are available in the git repository at:
ssh://sourceware.org/git/glibc.git davem/sparc
David S. Miller (3):
sparc: Reimplement 64-bit aligned copy routines and remove from memcpy files.
sparc: Pull bcopy/memmove out of memcpy.S implementations.
sparc: Add multiarch support for memset/bzero/memcpy.
ChangeLog | 57 ++
sysdeps/sparc/Makefile | 5 +
sysdeps/sparc/elf/rtld-global-offsets.sym | 7 +
sysdeps/sparc/sparc32/bcopy.c | 1 -
sysdeps/sparc/sparc32/memcpy.S | 347 +---------
sysdeps/sparc/sparc32/memmove.c | 1 -
sysdeps/sparc/sparc32/sparcv9/bcopy.c | 1 -
sysdeps/sparc/sparc32/sparcv9/memmove.c | 1 -
sysdeps/sparc/sparc32/sparcv9/multiarch/Makefile | 4 +
.../sparc32/sparcv9/multiarch/memcpy-niagara1.S | 2 +
.../sparc32/sparcv9/multiarch/memcpy-niagara2.S | 2 +
.../sparc32/sparcv9/multiarch/memcpy-ultra3.S | 2 +
sysdeps/sparc/sparc32/sparcv9/multiarch/memcpy.S | 4 +
.../sparc32/sparcv9/multiarch/memset-niagara1.S | 2 +
sysdeps/sparc/sparc32/sparcv9/multiarch/memset.S | 4 +
sysdeps/sparc/sparc32/sparcv9/sparcv9b/memcpy.S | 2 -
sysdeps/sparc/sparc32/sparcv9/sparcv9v/memcpy.S | 2 -
sysdeps/sparc/sparc32/sparcv9/sparcv9v/memset.S | 2 -
sysdeps/sparc/sparc32/sparcv9/sparcv9v2/memcpy.S | 2 -
sysdeps/sparc/sparc32/sparcv9/sparcv9v2/memset.S | 2 -
sysdeps/sparc/sparc64/Makefile | 4 +
sysdeps/sparc/sparc64/align-cpy.S | 85 +++
sysdeps/sparc/sparc64/bcopy.c | 1 -
sysdeps/sparc/sparc64/memcopy.h | 1 +
sysdeps/sparc/sparc64/memcpy.S | 353 ---------
sysdeps/sparc/sparc64/memmove.c | 1 -
sysdeps/sparc/sparc64/multiarch/Makefile | 4 +
sysdeps/sparc/sparc64/multiarch/memcpy-niagara1.S | 342 +++++++++
sysdeps/sparc/sparc64/multiarch/memcpy-niagara2.S | 492 +++++++++++++
sysdeps/sparc/sparc64/multiarch/memcpy-ultra3.S | 320 +++++++++
sysdeps/sparc/sparc64/multiarch/memcpy.S | 107 +++
.../memset.S => multiarch/memset-niagara1.S} | 17 +-
sysdeps/sparc/sparc64/multiarch/memset.S | 145 ++++
sysdeps/sparc/sparc64/sparcv9b/memcpy.S | 610 ----------------
sysdeps/sparc/sparc64/sparcv9v/memcpy.S | 596 ----------------
sysdeps/sparc/sparc64/sparcv9v2/memcpy.S | 746 --------------------
sysdeps/sparc/sparc64/sparcv9v2/memset.S | 1 -
37 files changed, 1599 insertions(+), 2676 deletions(-)
create mode 100644 sysdeps/sparc/elf/rtld-global-offsets.sym
delete mode 100644 sysdeps/sparc/sparc32/bcopy.c
delete mode 100644 sysdeps/sparc/sparc32/memmove.c
delete mode 100644 sysdeps/sparc/sparc32/sparcv9/bcopy.c
delete mode 100644 sysdeps/sparc/sparc32/sparcv9/memmove.c
create mode 100644 sysdeps/sparc/sparc32/sparcv9/multiarch/Makefile
create mode 100644 sysdeps/sparc/sparc32/sparcv9/multiarch/memcpy-niagara1.S
create mode 100644 sysdeps/sparc/sparc32/sparcv9/multiarch/memcpy-niagara2.S
create mode 100644 sysdeps/sparc/sparc32/sparcv9/multiarch/memcpy-ultra3.S
create mode 100644 sysdeps/sparc/sparc32/sparcv9/multiarch/memcpy.S
create mode 100644 sysdeps/sparc/sparc32/sparcv9/multiarch/memset-niagara1.S
create mode 100644 sysdeps/sparc/sparc32/sparcv9/multiarch/memset.S
delete mode 100644 sysdeps/sparc/sparc32/sparcv9/sparcv9b/memcpy.S
delete mode 100644 sysdeps/sparc/sparc32/sparcv9/sparcv9v/memcpy.S
delete mode 100644 sysdeps/sparc/sparc32/sparcv9/sparcv9v/memset.S
delete mode 100644 sysdeps/sparc/sparc32/sparcv9/sparcv9v2/memcpy.S
delete mode 100644 sysdeps/sparc/sparc32/sparcv9/sparcv9v2/memset.S
create mode 100644 sysdeps/sparc/sparc64/align-cpy.S
delete mode 100644 sysdeps/sparc/sparc64/bcopy.c
create mode 100644 sysdeps/sparc/sparc64/memcopy.h
delete mode 100644 sysdeps/sparc/sparc64/memmove.c
create mode 100644 sysdeps/sparc/sparc64/multiarch/Makefile
create mode 100644 sysdeps/sparc/sparc64/multiarch/memcpy-niagara1.S
create mode 100644 sysdeps/sparc/sparc64/multiarch/memcpy-niagara2.S
create mode 100644 sysdeps/sparc/sparc64/multiarch/memcpy-ultra3.S
create mode 100644 sysdeps/sparc/sparc64/multiarch/memcpy.S
rename sysdeps/sparc/sparc64/{sparcv9v/memset.S => multiarch/memset-niagara1.S} (94%)
create mode 100644 sysdeps/sparc/sparc64/multiarch/memset.S
delete mode 100644 sysdeps/sparc/sparc64/sparcv9b/memcpy.S
delete mode 100644 sysdeps/sparc/sparc64/sparcv9v/memcpy.S
delete mode 100644 sysdeps/sparc/sparc64/sparcv9v2/memcpy.S
delete mode 100644 sysdeps/sparc/sparc64/sparcv9v2/memset.S
----- End forwarded message -----
--
2. That which causes joy or happiness.
Reply to: