about summary refs log tree commit diff
diff options
context:
space:
mode:
authorRoland McGrath <roland@hack.frob.com>2014-06-20 17:13:47 -0700
committerRoland McGrath <roland@hack.frob.com>2014-06-20 17:13:47 -0700
commit4b88139b6f22b70048793725a6c3f67bddc7baee (patch)
treec686a38eb7cb9540d217a077a258713f3bf8304f
parent9bc6103d0460686a92105410a306252238d952d8 (diff)
downloadglibc-4b88139b6f22b70048793725a6c3f67bddc7baee.tar.gz
glibc-4b88139b6f22b70048793725a6c3f67bddc7baee.tar.xz
glibc-4b88139b6f22b70048793725a6c3f67bddc7baee.zip
Move remaining SPARC code out of nptl/.
-rw-r--r--ChangeLog95
-rw-r--r--nptl/sysdeps/unix/sysv/linux/sparc/Makefile2
-rw-r--r--nptl/sysdeps/unix/sysv/linux/sparc/Versions6
-rw-r--r--nptl/sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/Makefile1
-rw-r--r--nptl/sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/cpu_relax.S1
-rw-r--r--nptl/sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/pthread_barrier_wait.c1
-rw-r--r--nptl/sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/sem_post.c1
-rw-r--r--nptl/sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/sem_timedwait.c1
-rw-r--r--nptl/sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/sem_trywait.c1
-rw-r--r--nptl/sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/sem_wait.c1
-rw-r--r--nptl/sysdeps/unix/sysv/linux/sparc/sparc64/Makefile6
-rw-r--r--nptl/sysdeps/unix/sysv/linux/sparc/sparc64/Versions7
-rw-r--r--sysdeps/sparc/nptl/internaltypes.h (renamed from nptl/sysdeps/unix/sysv/linux/sparc/internaltypes.h)3
-rw-r--r--sysdeps/sparc/nptl/pthread_barrier_destroy.c (renamed from nptl/sysdeps/unix/sysv/linux/sparc/pthread_barrier_destroy.c)0
-rw-r--r--sysdeps/sparc/nptl/pthread_barrier_init.c (renamed from nptl/sysdeps/unix/sysv/linux/sparc/pthread_barrier_init.c)0
-rw-r--r--sysdeps/sparc/nptl/pthread_barrier_wait.c (renamed from nptl/sysdeps/unix/sysv/linux/sparc/pthread_barrier_wait.c)0
-rw-r--r--sysdeps/sparc/nptl/sem_init.c (renamed from nptl/sysdeps/unix/sysv/linux/sparc/sem_init.c)0
-rw-r--r--sysdeps/sparc/nptl/sem_post.c (renamed from nptl/sysdeps/unix/sysv/linux/sparc/sem_post.c)0
-rw-r--r--sysdeps/sparc/nptl/sem_timedwait.c (renamed from nptl/sysdeps/unix/sysv/linux/sparc/sem_timedwait.c)0
-rw-r--r--sysdeps/sparc/nptl/sem_wait.c (renamed from nptl/sysdeps/unix/sysv/linux/sparc/sem_wait.c)0
-rw-r--r--sysdeps/sparc/sparc32/nptl/lowlevellock.c (renamed from nptl/sysdeps/unix/sysv/linux/sparc/sparc32/lowlevellock.c)0
-rw-r--r--sysdeps/sparc/sparc32/nptl/pthread_barrier_wait.c (renamed from nptl/sysdeps/unix/sysv/linux/sparc/sparc32/pthread_barrier_wait.c)0
-rw-r--r--sysdeps/sparc/sparc32/nptl/sem_post.c (renamed from nptl/sysdeps/unix/sysv/linux/sparc/sparc32/sem_post.c)0
-rw-r--r--sysdeps/sparc/sparc32/nptl/sem_timedwait.c (renamed from nptl/sysdeps/unix/sysv/linux/sparc/sparc32/sem_timedwait.c)0
-rw-r--r--sysdeps/sparc/sparc32/nptl/sem_trywait.c (renamed from nptl/sysdeps/unix/sysv/linux/sparc/sparc32/sem_trywait.c)0
-rw-r--r--sysdeps/sparc/sparc32/nptl/sem_wait.c (renamed from nptl/sysdeps/unix/sysv/linux/sparc/sparc32/sem_wait.c)0
-rw-r--r--sysdeps/sparc/sparc32/sparcv9/Makefile4
-rw-r--r--sysdeps/sparc/sparc32/sparcv9/nptl/cpu_relax.S1
-rw-r--r--sysdeps/sparc/sparc32/sparcv9/nptl/pthread_barrier_wait.c1
-rw-r--r--sysdeps/sparc/sparc32/sparcv9/nptl/sem_post.c1
-rw-r--r--sysdeps/sparc/sparc32/sparcv9/nptl/sem_timedwait.c1
-rw-r--r--sysdeps/sparc/sparc32/sparcv9/nptl/sem_trywait.c1
-rw-r--r--sysdeps/sparc/sparc32/sparcv9/nptl/sem_wait.c1
-rw-r--r--sysdeps/sparc/sparc64/nptl/cpu_relax.S (renamed from nptl/sysdeps/unix/sysv/linux/sparc/sparc64/cpu_relax.S)0
-rw-r--r--sysdeps/unix/sysv/linux/sparc/Makefile5
-rw-r--r--sysdeps/unix/sysv/linux/sparc/Versions8
-rw-r--r--sysdeps/unix/sysv/linux/sparc/aio_cancel.c (renamed from nptl/sysdeps/unix/sysv/linux/sparc/aio_cancel.c)0
-rw-r--r--sysdeps/unix/sysv/linux/sparc/lowlevellock.h (renamed from nptl/sysdeps/unix/sysv/linux/sparc/lowlevellock.h)0
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc32/sysdep-cancel.h (renamed from nptl/sysdeps/unix/sysv/linux/sparc/sparc32/sysdep-cancel.h)0
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/Makefile5
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/Versions8
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/sysdep-cancel.h (renamed from nptl/sysdeps/unix/sysv/linux/sparc/sparc64/sysdep-cancel.h)0
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/timer_create.c (renamed from nptl/sysdeps/unix/sysv/linux/sparc/sparc64/timer_create.c)0
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/timer_delete.c (renamed from nptl/sysdeps/unix/sysv/linux/sparc/sparc64/timer_delete.c)0
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/timer_getoverr.c (renamed from nptl/sysdeps/unix/sysv/linux/sparc/sparc64/timer_getoverr.c)0
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/timer_gettime.c (renamed from nptl/sysdeps/unix/sysv/linux/sparc/sparc64/timer_gettime.c)0
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/timer_settime.c (renamed from nptl/sysdeps/unix/sysv/linux/sparc/sparc64/timer_settime.c)0
47 files changed, 133 insertions, 29 deletions
diff --git a/ChangeLog b/ChangeLog
index 8cbe2ffa16..99e68955fd 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,98 @@
+2014-06-20  Roland McGrath  <roland@hack.frob.com>
+
+	* sysdeps/unix/sysv/linux/sparc/Makefile [$(subdir) = nptl]
+	(libpthread-routines): Add sysdep.
+	* nptl/sysdeps/unix/sysv/linux/sparc/Makefile: File removed.
+	* sysdeps/unix/sysv/linux/sparc/Versions
+	(libpthread: GLIBC_2.3.3): New version set.
+	* nptl/sysdeps/unix/sysv/linux/sparc/Versions: File removed.
+	* nptl/sysdeps/unix/sysv/linux/sparc/aio_cancel.c: Moved ...
+	* sysdeps/unix/sysv/linux/sparc/aio_cancel.c: ... here.
+	* nptl/sysdeps/unix/sysv/linux/sparc/internaltypes.h: Moved ...
+	* sysdeps/sparc/nptl/internaltypes.h: ... here.  Use #include_next.
+	* nptl/sysdeps/unix/sysv/linux/sparc/pthread_barrier_destroy.c:
+	Moved ...
+	* sysdeps/sparc/nptl/pthread_barrier_destroy.c: ... here.
+	* nptl/sysdeps/unix/sysv/linux/sparc/pthread_barrier_init.c: Moved ...
+	* sysdeps/sparc/nptl/pthread_barrier_init.c: ... here.
+	* nptl/sysdeps/unix/sysv/linux/sparc/pthread_barrier_wait.c: Moved ...
+	* sysdeps/sparc/nptl/pthread_barrier_wait.c: ... here.
+	* nptl/sysdeps/unix/sysv/linux/sparc/sem_init.c: Moved ...
+	* sysdeps/sparc/nptl/sem_init.c: ... here.
+	* nptl/sysdeps/unix/sysv/linux/sparc/sem_post.c: Moved ...
+	* sysdeps/sparc/nptl/sem_post.c: ... here.
+	* nptl/sysdeps/unix/sysv/linux/sparc/sem_timedwait.c: Moved ...
+	* sysdeps/sparc/nptl/sem_timedwait.c: ... here.
+	* nptl/sysdeps/unix/sysv/linux/sparc/sem_wait.c: Moved ...
+	* sysdeps/sparc/nptl/sem_wait.c: ... here.
+	* nptl/sysdeps/unix/sysv/linux/sparc/lowlevellock.h: Moved ...
+	* sysdeps/unix/sysv/linux/sparc/lowlevellock.h: ... here.
+	* sysdeps/sparc/sparc32/sparcv9/Makefile [$(subdir) = nptl]
+	(libpthread-routines): Add cpu_relax.
+	* nptl/sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/Makefile:
+	File removed.
+	* sysdeps/unix/sysv/linux/sparc/sparc64/Versions
+	(librt: GLIBC_2.3.3): New version set.
+	* nptl/sysdeps/unix/sysv/linux/sparc/sparc64/Versions: File removed.
+	* sysdeps/sparc/sparc64/nptl/Makefile: New file.
+	* sysdeps/unix/sysv/linux/sparc/sparc64/Makefile [$(subdir) = nptl]
+	(CFLAGS-pause.c, CFLAGS-sigsuspend.c): New variables.
+	* nptl/sysdeps/unix/sysv/linux/sparc/sparc64/Makefile: File removed.
+	* nptl/sysdeps/unix/sysv/linux/sparc/sparc32/lowlevellock.c: Moved ...
+	* sysdeps/sparc/sparc32/nptl/lowlevellock.c: ... here.
+	* nptl/sysdeps/unix/sysv/linux/sparc/sparc32/pthread_barrier_wait.c:
+	Moved ...
+	* sysdeps/sparc/sparc32/nptl/pthread_barrier_wait.c: ... here.
+	* nptl/sysdeps/unix/sysv/linux/sparc/sparc32/sem_post.c: Moved ...
+	* sysdeps/sparc/sparc32/nptl/sem_post.c: ... here.
+	* nptl/sysdeps/unix/sysv/linux/sparc/sparc32/sem_timedwait.c: Moved ...
+	* sysdeps/sparc/sparc32/nptl/sem_timedwait.c: ... here.
+	* nptl/sysdeps/unix/sysv/linux/sparc/sparc32/sem_trywait.c: Moved ...
+	* sysdeps/sparc/sparc32/nptl/sem_trywait.c: ... here.
+	* nptl/sysdeps/unix/sysv/linux/sparc/sparc32/sem_wait.c: Moved ...
+	* sysdeps/sparc/sparc32/nptl/sem_wait.c: ... here.
+	* nptl/sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/cpu_relax.S:
+	Moved ...
+	* sysdeps/sparc/sparc32/sparcv9/nptl/cpu_relax.S: ... here.
+	Update #include.
+	* nptl/sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/pthread_barrier_wait.c:
+	Moved ...
+	* sysdeps/sparc/sparc32/sparcv9/nptl/pthread_barrier_wait.c: ... here.
+	Update #include.
+	* nptl/sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/sem_post.c:
+	Moved ...
+	* sysdeps/sparc/sparc32/sparcv9/nptl/sem_post.c: ... here.
+	Update #include.
+	* nptl/sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/sem_timedwait.c:
+	Moved ...
+	* sysdeps/sparc/sparc32/sparcv9/nptl/sem_timedwait.c: ... here.
+	Update #include.
+	* nptl/sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/sem_trywait.c:
+	Moved ...
+	* sysdeps/sparc/sparc32/sparcv9/nptl/sem_trywait.c: ... here.
+	Update #include.
+	* nptl/sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/sem_wait.c:
+	Moved ...
+	* sysdeps/sparc/sparc32/sparcv9/nptl/sem_wait.c: ... here.
+	Update #include.
+	* nptl/sysdeps/unix/sysv/linux/sparc/sparc64/cpu_relax.S: Moved ...
+	* sysdeps/sparc/sparc64/nptl/cpu_relax.S: ... here.
+	* nptl/sysdeps/unix/sysv/linux/sparc/sparc32/sysdep-cancel.h: Moved ...
+	* sysdeps/unix/sysv/linux/sparc/sparc32/sysdep-cancel.h: ... here.
+	* nptl/sysdeps/unix/sysv/linux/sparc/sparc64/sysdep-cancel.h: Moved ...
+	* sysdeps/unix/sysv/linux/sparc/sparc64/sysdep-cancel.h: ... here.
+	* nptl/sysdeps/unix/sysv/linux/sparc/sparc64/timer_create.c: Moved ...
+	* sysdeps/unix/sysv/linux/sparc/sparc64/timer_create.c: ... here.
+	* nptl/sysdeps/unix/sysv/linux/sparc/sparc64/timer_delete.c: Moved ...
+	* sysdeps/unix/sysv/linux/sparc/sparc64/timer_delete.c: ... here.
+	* nptl/sysdeps/unix/sysv/linux/sparc/sparc64/timer_getoverr.c:
+	Moved ...
+	* sysdeps/unix/sysv/linux/sparc/sparc64/timer_getoverr.c: ... here.
+	* nptl/sysdeps/unix/sysv/linux/sparc/sparc64/timer_gettime.c: Moved ...
+	* sysdeps/unix/sysv/linux/sparc/sparc64/timer_gettime.c: ... here.
+	* nptl/sysdeps/unix/sysv/linux/sparc/sparc64/timer_settime.c: Moved ...
+	* sysdeps/unix/sysv/linux/sparc/sparc64/timer_settime.c: ... here.
+
 2014-06-20  Joseph Myers  <joseph@codesourcery.com>
 
 	* nptl/pthread_cond_wait.c: Include <kernel-features.h>.
diff --git a/nptl/sysdeps/unix/sysv/linux/sparc/Makefile b/nptl/sysdeps/unix/sysv/linux/sparc/Makefile
deleted file mode 100644
index e98c9bd866..0000000000
--- a/nptl/sysdeps/unix/sysv/linux/sparc/Makefile
+++ /dev/null
@@ -1,2 +0,0 @@
-# pull in __syscall_error routine
-libpthread-routines += sysdep
diff --git a/nptl/sysdeps/unix/sysv/linux/sparc/Versions b/nptl/sysdeps/unix/sysv/linux/sparc/Versions
deleted file mode 100644
index d102772482..0000000000
--- a/nptl/sysdeps/unix/sysv/linux/sparc/Versions
+++ /dev/null
@@ -1,6 +0,0 @@
-libpthread {
-  GLIBC_2.3.3 {
-    # Changed PTHREAD_STACK_MIN.
-    pthread_attr_setstack; pthread_attr_setstacksize;
-  }
-}
diff --git a/nptl/sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/Makefile b/nptl/sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/Makefile
deleted file mode 100644
index f7acc019aa..0000000000
--- a/nptl/sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/Makefile
+++ /dev/null
@@ -1 +0,0 @@
-libpthread-routines += cpu_relax
diff --git a/nptl/sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/cpu_relax.S b/nptl/sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/cpu_relax.S
deleted file mode 100644
index 4ac4d14486..0000000000
--- a/nptl/sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/cpu_relax.S
+++ /dev/null
@@ -1 +0,0 @@
-#include <sparc64/cpu_relax.S>
diff --git a/nptl/sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/pthread_barrier_wait.c b/nptl/sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/pthread_barrier_wait.c
deleted file mode 100644
index 2d32e58240..0000000000
--- a/nptl/sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/pthread_barrier_wait.c
+++ /dev/null
@@ -1 +0,0 @@
-#include "../../pthread_barrier_wait.c"
diff --git a/nptl/sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/sem_post.c b/nptl/sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/sem_post.c
deleted file mode 100644
index 73d7c56675..0000000000
--- a/nptl/sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/sem_post.c
+++ /dev/null
@@ -1 +0,0 @@
-#include "../../sem_post.c"
diff --git a/nptl/sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/sem_timedwait.c b/nptl/sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/sem_timedwait.c
deleted file mode 100644
index 03945b7279..0000000000
--- a/nptl/sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/sem_timedwait.c
+++ /dev/null
@@ -1 +0,0 @@
-#include "../../sem_timedwait.c"
diff --git a/nptl/sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/sem_trywait.c b/nptl/sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/sem_trywait.c
deleted file mode 100644
index aae46f725e..0000000000
--- a/nptl/sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/sem_trywait.c
+++ /dev/null
@@ -1 +0,0 @@
-#include "../../../sem_trywait.c"
diff --git a/nptl/sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/sem_wait.c b/nptl/sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/sem_wait.c
deleted file mode 100644
index a5dbc5a4b8..0000000000
--- a/nptl/sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/sem_wait.c
+++ /dev/null
@@ -1 +0,0 @@
-#include "../../sem_wait.c"
diff --git a/nptl/sysdeps/unix/sysv/linux/sparc/sparc64/Makefile b/nptl/sysdeps/unix/sysv/linux/sparc/sparc64/Makefile
deleted file mode 100644
index 656d2e09c5..0000000000
--- a/nptl/sysdeps/unix/sysv/linux/sparc/sparc64/Makefile
+++ /dev/null
@@ -1,6 +0,0 @@
-libpthread-routines += cpu_relax
-
-ifeq ($(subdir),nptl)
-CFLAGS-pause.c += -fexceptions
-CFLAGS-sigsuspend.c += -fexceptions
-endif
diff --git a/nptl/sysdeps/unix/sysv/linux/sparc/sparc64/Versions b/nptl/sysdeps/unix/sysv/linux/sparc/sparc64/Versions
deleted file mode 100644
index 3b111ddb51..0000000000
--- a/nptl/sysdeps/unix/sysv/linux/sparc/sparc64/Versions
+++ /dev/null
@@ -1,7 +0,0 @@
-librt {
-  GLIBC_2.3.3 {
-    # Changed timer_t.
-    timer_create; timer_delete; timer_getoverrun; timer_gettime;
-    timer_settime;
-  }
-}
diff --git a/nptl/sysdeps/unix/sysv/linux/sparc/internaltypes.h b/sysdeps/sparc/nptl/internaltypes.h
index 4f400a3fe3..e5c27408d8 100644
--- a/nptl/sysdeps/unix/sysv/linux/sparc/internaltypes.h
+++ b/sysdeps/sparc/nptl/internaltypes.h
@@ -1,5 +1,6 @@
 #ifndef _INTERNALTYPES_H
-#include "../internaltypes.h"
+
+#include_next <internaltypes.h>
 
 union sparc_pthread_barrier
 {
diff --git a/nptl/sysdeps/unix/sysv/linux/sparc/pthread_barrier_destroy.c b/sysdeps/sparc/nptl/pthread_barrier_destroy.c
index 2221a27e22..2221a27e22 100644
--- a/nptl/sysdeps/unix/sysv/linux/sparc/pthread_barrier_destroy.c
+++ b/sysdeps/sparc/nptl/pthread_barrier_destroy.c
diff --git a/nptl/sysdeps/unix/sysv/linux/sparc/pthread_barrier_init.c b/sysdeps/sparc/nptl/pthread_barrier_init.c
index 6af686361d..6af686361d 100644
--- a/nptl/sysdeps/unix/sysv/linux/sparc/pthread_barrier_init.c
+++ b/sysdeps/sparc/nptl/pthread_barrier_init.c
diff --git a/nptl/sysdeps/unix/sysv/linux/sparc/pthread_barrier_wait.c b/sysdeps/sparc/nptl/pthread_barrier_wait.c
index ed5c1f7071..ed5c1f7071 100644
--- a/nptl/sysdeps/unix/sysv/linux/sparc/pthread_barrier_wait.c
+++ b/sysdeps/sparc/nptl/pthread_barrier_wait.c
diff --git a/nptl/sysdeps/unix/sysv/linux/sparc/sem_init.c b/sysdeps/sparc/nptl/sem_init.c
index cbefdc4823..cbefdc4823 100644
--- a/nptl/sysdeps/unix/sysv/linux/sparc/sem_init.c
+++ b/sysdeps/sparc/nptl/sem_init.c
diff --git a/nptl/sysdeps/unix/sysv/linux/sparc/sem_post.c b/sysdeps/sparc/nptl/sem_post.c
index d83b9d8e2e..d83b9d8e2e 100644
--- a/nptl/sysdeps/unix/sysv/linux/sparc/sem_post.c
+++ b/sysdeps/sparc/nptl/sem_post.c
diff --git a/nptl/sysdeps/unix/sysv/linux/sparc/sem_timedwait.c b/sysdeps/sparc/nptl/sem_timedwait.c
index 0557e4e709..0557e4e709 100644
--- a/nptl/sysdeps/unix/sysv/linux/sparc/sem_timedwait.c
+++ b/sysdeps/sparc/nptl/sem_timedwait.c
diff --git a/nptl/sysdeps/unix/sysv/linux/sparc/sem_wait.c b/sysdeps/sparc/nptl/sem_wait.c
index cfa1ef3727..cfa1ef3727 100644
--- a/nptl/sysdeps/unix/sysv/linux/sparc/sem_wait.c
+++ b/sysdeps/sparc/nptl/sem_wait.c
diff --git a/nptl/sysdeps/unix/sysv/linux/sparc/sparc32/lowlevellock.c b/sysdeps/sparc/sparc32/nptl/lowlevellock.c
index 8384281c3a..8384281c3a 100644
--- a/nptl/sysdeps/unix/sysv/linux/sparc/sparc32/lowlevellock.c
+++ b/sysdeps/sparc/sparc32/nptl/lowlevellock.c
diff --git a/nptl/sysdeps/unix/sysv/linux/sparc/sparc32/pthread_barrier_wait.c b/sysdeps/sparc/sparc32/nptl/pthread_barrier_wait.c
index 0fed908865..0fed908865 100644
--- a/nptl/sysdeps/unix/sysv/linux/sparc/sparc32/pthread_barrier_wait.c
+++ b/sysdeps/sparc/sparc32/nptl/pthread_barrier_wait.c
diff --git a/nptl/sysdeps/unix/sysv/linux/sparc/sparc32/sem_post.c b/sysdeps/sparc/sparc32/nptl/sem_post.c
index d3846c045c..d3846c045c 100644
--- a/nptl/sysdeps/unix/sysv/linux/sparc/sparc32/sem_post.c
+++ b/sysdeps/sparc/sparc32/nptl/sem_post.c
diff --git a/nptl/sysdeps/unix/sysv/linux/sparc/sparc32/sem_timedwait.c b/sysdeps/sparc/sparc32/nptl/sem_timedwait.c
index 5c48cb385a..5c48cb385a 100644
--- a/nptl/sysdeps/unix/sysv/linux/sparc/sparc32/sem_timedwait.c
+++ b/sysdeps/sparc/sparc32/nptl/sem_timedwait.c
diff --git a/nptl/sysdeps/unix/sysv/linux/sparc/sparc32/sem_trywait.c b/sysdeps/sparc/sparc32/nptl/sem_trywait.c
index 7d0fc556f9..7d0fc556f9 100644
--- a/nptl/sysdeps/unix/sysv/linux/sparc/sparc32/sem_trywait.c
+++ b/sysdeps/sparc/sparc32/nptl/sem_trywait.c
diff --git a/nptl/sysdeps/unix/sysv/linux/sparc/sparc32/sem_wait.c b/sysdeps/sparc/sparc32/nptl/sem_wait.c
index 8c072fe5f4..8c072fe5f4 100644
--- a/nptl/sysdeps/unix/sysv/linux/sparc/sparc32/sem_wait.c
+++ b/sysdeps/sparc/sparc32/nptl/sem_wait.c
diff --git a/sysdeps/sparc/sparc32/sparcv9/Makefile b/sysdeps/sparc/sparc32/sparcv9/Makefile
index 7d475b0897..36f889ec96 100644
--- a/sysdeps/sparc/sparc32/sparcv9/Makefile
+++ b/sysdeps/sparc/sparc32/sparcv9/Makefile
@@ -18,3 +18,7 @@ ASFLAGS-.op += -Wa,-Av9a
 ASFLAGS-.og += -Wa,-Av9a
 ASFLAGS-.oS += -Wa,-Av9a
 endif
+
+ifeq ($(subdir), nptl)
+libpthread-routines += cpu_relax
+endif
diff --git a/sysdeps/sparc/sparc32/sparcv9/nptl/cpu_relax.S b/sysdeps/sparc/sparc32/sparcv9/nptl/cpu_relax.S
new file mode 100644
index 0000000000..fa886470cd
--- /dev/null
+++ b/sysdeps/sparc/sparc32/sparcv9/nptl/cpu_relax.S
@@ -0,0 +1 @@
+#include <sysdeps/sparc/sparc64/nptl/cpu_relax.S>
diff --git a/sysdeps/sparc/sparc32/sparcv9/nptl/pthread_barrier_wait.c b/sysdeps/sparc/sparc32/sparcv9/nptl/pthread_barrier_wait.c
new file mode 100644
index 0000000000..8336f5e00c
--- /dev/null
+++ b/sysdeps/sparc/sparc32/sparcv9/nptl/pthread_barrier_wait.c
@@ -0,0 +1 @@
+#include <sysdeps/sparc/nptl/pthread_barrier_wait.c>
diff --git a/sysdeps/sparc/sparc32/sparcv9/nptl/sem_post.c b/sysdeps/sparc/sparc32/sparcv9/nptl/sem_post.c
new file mode 100644
index 0000000000..3c4b940fe6
--- /dev/null
+++ b/sysdeps/sparc/sparc32/sparcv9/nptl/sem_post.c
@@ -0,0 +1 @@
+#include <sysdeps/sparc/nptl/sem_post.c>
diff --git a/sysdeps/sparc/sparc32/sparcv9/nptl/sem_timedwait.c b/sysdeps/sparc/sparc32/sparcv9/nptl/sem_timedwait.c
new file mode 100644
index 0000000000..f19b2c5487
--- /dev/null
+++ b/sysdeps/sparc/sparc32/sparcv9/nptl/sem_timedwait.c
@@ -0,0 +1 @@
+#include <sysdeps/sparc/nptl/sem_timedwait.c>
diff --git a/sysdeps/sparc/sparc32/sparcv9/nptl/sem_trywait.c b/sysdeps/sparc/sparc32/sparcv9/nptl/sem_trywait.c
new file mode 100644
index 0000000000..80157c5d2a
--- /dev/null
+++ b/sysdeps/sparc/sparc32/sparcv9/nptl/sem_trywait.c
@@ -0,0 +1 @@
+#include <sysdeps/unix/sysv/linux/sem_trywait.c>
diff --git a/sysdeps/sparc/sparc32/sparcv9/nptl/sem_wait.c b/sysdeps/sparc/sparc32/sparcv9/nptl/sem_wait.c
new file mode 100644
index 0000000000..b6d8287d92
--- /dev/null
+++ b/sysdeps/sparc/sparc32/sparcv9/nptl/sem_wait.c
@@ -0,0 +1 @@
+#include <sysdeps/sparc/nptl/sem_wait.c>
diff --git a/nptl/sysdeps/unix/sysv/linux/sparc/sparc64/cpu_relax.S b/sysdeps/sparc/sparc64/nptl/cpu_relax.S
index 9d45eb7e42..9d45eb7e42 100644
--- a/nptl/sysdeps/unix/sysv/linux/sparc/sparc64/cpu_relax.S
+++ b/sysdeps/sparc/sparc64/nptl/cpu_relax.S
diff --git a/sysdeps/unix/sysv/linux/sparc/Makefile b/sysdeps/unix/sysv/linux/sparc/Makefile
index 96b783e5bb..e67aecf8f0 100644
--- a/sysdeps/unix/sysv/linux/sparc/Makefile
+++ b/sysdeps/unix/sysv/linux/sparc/Makefile
@@ -11,3 +11,8 @@ endif
 ifeq ($(subdir),sysvipc)
 sysdep_routines += getshmlba
 endif
+
+ifeq ($(subdir),nptl)
+# pull in __syscall_error routine
+libpthread-routines += sysdep
+endif
diff --git a/sysdeps/unix/sysv/linux/sparc/Versions b/sysdeps/unix/sysv/linux/sparc/Versions
index 5d31d1d14a..4dc1cd720b 100644
--- a/sysdeps/unix/sysv/linux/sparc/Versions
+++ b/sysdeps/unix/sysv/linux/sparc/Versions
@@ -30,6 +30,14 @@ libc {
     __getshmlba;
   }
 }
+
+libpthread {
+  GLIBC_2.3.3 {
+    # Changed PTHREAD_STACK_MIN.
+    pthread_attr_setstack; pthread_attr_setstacksize;
+  }
+}
+
 librt {
   GLIBC_2.3 {
     # AIO functions.
diff --git a/nptl/sysdeps/unix/sysv/linux/sparc/aio_cancel.c b/sysdeps/unix/sysv/linux/sparc/aio_cancel.c
index 0d6da82919..0d6da82919 100644
--- a/nptl/sysdeps/unix/sysv/linux/sparc/aio_cancel.c
+++ b/sysdeps/unix/sysv/linux/sparc/aio_cancel.c
diff --git a/nptl/sysdeps/unix/sysv/linux/sparc/lowlevellock.h b/sysdeps/unix/sysv/linux/sparc/lowlevellock.h
index d4ed7a9bd7..d4ed7a9bd7 100644
--- a/nptl/sysdeps/unix/sysv/linux/sparc/lowlevellock.h
+++ b/sysdeps/unix/sysv/linux/sparc/lowlevellock.h
diff --git a/nptl/sysdeps/unix/sysv/linux/sparc/sparc32/sysdep-cancel.h b/sysdeps/unix/sysv/linux/sparc/sparc32/sysdep-cancel.h
index fd9968f911..fd9968f911 100644
--- a/nptl/sysdeps/unix/sysv/linux/sparc/sparc32/sysdep-cancel.h
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/sysdep-cancel.h
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/Makefile b/sysdeps/unix/sysv/linux/sparc/sparc64/Makefile
index 715af3df7b..7ea433f21f 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/Makefile
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/Makefile
@@ -7,3 +7,8 @@ LD += -melf64_sparc
 ifeq ($(subdir),stdlib)
 sysdep_routines += __start_context
 endif
+
+ifeq ($(subdir),nptl)
+CFLAGS-pause.c += -fexceptions
+CFLAGS-sigsuspend.c += -fexceptions
+endif
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/Versions b/sysdeps/unix/sysv/linux/sparc/sparc64/Versions
index cfcc15b119..fbea1bb2ef 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/Versions
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/Versions
@@ -9,3 +9,11 @@ libc {
     wordexp;
   }
 }
+
+librt {
+  GLIBC_2.3.3 {
+    # Changed timer_t.
+    timer_create; timer_delete; timer_getoverrun; timer_gettime;
+    timer_settime;
+  }
+}
diff --git a/nptl/sysdeps/unix/sysv/linux/sparc/sparc64/sysdep-cancel.h b/sysdeps/unix/sysv/linux/sparc/sparc64/sysdep-cancel.h
index 4dad994ab3..4dad994ab3 100644
--- a/nptl/sysdeps/unix/sysv/linux/sparc/sparc64/sysdep-cancel.h
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/sysdep-cancel.h
diff --git a/nptl/sysdeps/unix/sysv/linux/sparc/sparc64/timer_create.c b/sysdeps/unix/sysv/linux/sparc/sparc64/timer_create.c
index d307135003..d307135003 100644
--- a/nptl/sysdeps/unix/sysv/linux/sparc/sparc64/timer_create.c
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/timer_create.c
diff --git a/nptl/sysdeps/unix/sysv/linux/sparc/sparc64/timer_delete.c b/sysdeps/unix/sysv/linux/sparc/sparc64/timer_delete.c
index 2dd94f5c7a..2dd94f5c7a 100644
--- a/nptl/sysdeps/unix/sysv/linux/sparc/sparc64/timer_delete.c
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/timer_delete.c
diff --git a/nptl/sysdeps/unix/sysv/linux/sparc/sparc64/timer_getoverr.c b/sysdeps/unix/sysv/linux/sparc/sparc64/timer_getoverr.c
index 22eaff5cda..22eaff5cda 100644
--- a/nptl/sysdeps/unix/sysv/linux/sparc/sparc64/timer_getoverr.c
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/timer_getoverr.c
diff --git a/nptl/sysdeps/unix/sysv/linux/sparc/sparc64/timer_gettime.c b/sysdeps/unix/sysv/linux/sparc/sparc64/timer_gettime.c
index cea524bae5..cea524bae5 100644
--- a/nptl/sysdeps/unix/sysv/linux/sparc/sparc64/timer_gettime.c
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/timer_gettime.c
diff --git a/nptl/sysdeps/unix/sysv/linux/sparc/sparc64/timer_settime.c b/sysdeps/unix/sysv/linux/sparc/sparc64/timer_settime.c
index fa231149d5..fa231149d5 100644
--- a/nptl/sysdeps/unix/sysv/linux/sparc/sparc64/timer_settime.c
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/timer_settime.c