diff --git a/ChangeLog b/ChangeLog
index a8aa74b..f5b5599 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -7,6 +7,20 @@
 
 	* sysdeps/sparc/fpu/libm-test-ulps: Update.
 
+	* sysdeps/sparc/nptl/internaltypes.h: Delete.
+	* sysdeps/sparc/nptl/sparc-nptl.h: New file.
+	* sysdeps/sparc/nptl/pthread_barrier_destroy.c: Include it.
+	* sysdeps/sparc/nptl/pthread_barrier_init.c: Likewise.
+	* sysdeps/sparc/nptl/pthread_barrier_wait.c: Likewise.
+	* sysdeps/sparc/nptl/sem_init.c: Likewise.
+	* sysdeps/sparc/nptl/sem_post.c: Likewise.
+	* sysdeps/sparc/nptl/sem_timedwait.c: Likewise.
+	* sysdeps/sparc/nptl/sem_wait.c: Likewise.
+	* sysdeps/sparc/sparc32/nptl/pthread_barrier_wait.c: Likewise.
+	* sysdeps/sparc/sparc32/nptl/sem_post.c: Likewise.
+	* sysdeps/sparc/sparc32/nptl/sem_timedwait.c: Likewise.
+	* sysdeps/sparc/sparc32/nptl/sem_wait.c: Likewise.
+
 2014-07-09  Andreas Schwab  <schwab@suse.de>
 
 	* sysdeps/powerpc/test-gettimebase.c (do_test): Add newline to
diff --git a/sysdeps/sparc/nptl/internaltypes.h b/sysdeps/sparc/nptl/internaltypes.h
deleted file mode 100644
index e5c2740..0000000
--- a/sysdeps/sparc/nptl/internaltypes.h
+++ /dev/null
@@ -1,35 +0,0 @@
-#ifndef _INTERNALTYPES_H
-
-#include_next <internaltypes.h>
-
-union sparc_pthread_barrier
-{
-  struct pthread_barrier b;
-  struct sparc_pthread_barrier_s
-    {
-      unsigned int curr_event;
-      int lock;
-      unsigned int left;
-      unsigned int init_count;
-      unsigned char left_lock;
-      unsigned char pshared;
-    } s;
-};
-
-struct sparc_new_sem
-{
-  unsigned int value;
-  unsigned char lock;
-  unsigned char private;
-  unsigned char pad[2];
-  unsigned long int nwaiters;
-};
-
-struct sparc_old_sem
-{
-  unsigned int value;
-  unsigned char lock;
-  unsigned char private;
-};
-
-#endif
diff --git a/sysdeps/sparc/nptl/pthread_barrier_destroy.c b/sysdeps/sparc/nptl/pthread_barrier_destroy.c
index 2221a27..883a101 100644
--- a/sysdeps/sparc/nptl/pthread_barrier_destroy.c
+++ b/sysdeps/sparc/nptl/pthread_barrier_destroy.c
@@ -19,6 +19,7 @@
 #include <errno.h>
 #include "pthreadP.h"
 #include <lowlevellock.h>
+#include <sparc-nptl.h>
 
 int
 pthread_barrier_destroy (barrier)
diff --git a/sysdeps/sparc/nptl/pthread_barrier_init.c b/sysdeps/sparc/nptl/pthread_barrier_init.c
index 6af6863..c076386 100644
--- a/sysdeps/sparc/nptl/pthread_barrier_init.c
+++ b/sysdeps/sparc/nptl/pthread_barrier_init.c
@@ -19,6 +19,7 @@
 #include <errno.h>
 #include "pthreadP.h"
 #include <lowlevellock.h>
+#include <sparc-nptl.h>
 
 int
 pthread_barrier_init (barrier, attr, count)
diff --git a/sysdeps/sparc/nptl/pthread_barrier_wait.c b/sysdeps/sparc/nptl/pthread_barrier_wait.c
index ed5c1f7..525418c 100644
--- a/sysdeps/sparc/nptl/pthread_barrier_wait.c
+++ b/sysdeps/sparc/nptl/pthread_barrier_wait.c
@@ -20,6 +20,7 @@
 #include <sysdep.h>
 #include <lowlevellock.h>
 #include <pthreadP.h>
+#include <sparc-nptl.h>
 
 /* Wait on barrier.  */
 int
diff --git a/sysdeps/sparc/nptl/sem_init.c b/sysdeps/sparc/nptl/sem_init.c
index cbefdc4..d33881d 100644
--- a/sysdeps/sparc/nptl/sem_init.c
+++ b/sysdeps/sparc/nptl/sem_init.c
@@ -23,7 +23,7 @@
 #include <shlib-compat.h>
 #include "semaphoreP.h"
 #include <kernel-features.h>
-
+#include <sparc-nptl.h>
 
 int
 __new_sem_init (sem, pshared, value)
diff --git a/sysdeps/sparc/nptl/sem_post.c b/sysdeps/sparc/nptl/sem_post.c
index d83b9d8..c2dbe0a 100644
--- a/sysdeps/sparc/nptl/sem_post.c
+++ b/sysdeps/sparc/nptl/sem_post.c
@@ -24,6 +24,7 @@
 #include <semaphore.h>
 
 #include <shlib-compat.h>
+#include <sparc-nptl.h>
 
 int
 __new_sem_post (sem_t *sem)
diff --git a/sysdeps/sparc/nptl/sem_timedwait.c b/sysdeps/sparc/nptl/sem_timedwait.c
index 0557e4e..3621f0b 100644
--- a/sysdeps/sparc/nptl/sem_timedwait.c
+++ b/sysdeps/sparc/nptl/sem_timedwait.c
@@ -25,7 +25,7 @@
 
 #include <pthreadP.h>
 #include <shlib-compat.h>
-
+#include <sparc-nptl.h>
 
 extern void __sem_wait_cleanup (void *arg) attribute_hidden;
 
diff --git a/sysdeps/sparc/nptl/sem_wait.c b/sysdeps/sparc/nptl/sem_wait.c
index cfa1ef3..ccf714d 100644
--- a/sysdeps/sparc/nptl/sem_wait.c
+++ b/sysdeps/sparc/nptl/sem_wait.c
@@ -25,7 +25,7 @@
 
 #include <pthreadP.h>
 #include <shlib-compat.h>
-
+#include <sparc-nptl.h>
 
 void
 attribute_hidden
diff --git a/sysdeps/sparc/nptl/sparc-nptl.h b/sysdeps/sparc/nptl/sparc-nptl.h
new file mode 100644
index 0000000..baff918
--- /dev/null
+++ b/sysdeps/sparc/nptl/sparc-nptl.h
@@ -0,0 +1,33 @@
+#ifndef _SPARC_NPTL_H
+
+union sparc_pthread_barrier
+{
+  struct pthread_barrier b;
+  struct sparc_pthread_barrier_s
+    {
+      unsigned int curr_event;
+      int lock;
+      unsigned int left;
+      unsigned int init_count;
+      unsigned char left_lock;
+      unsigned char pshared;
+    } s;
+};
+
+struct sparc_new_sem
+{
+  unsigned int value;
+  unsigned char lock;
+  unsigned char private;
+  unsigned char pad[2];
+  unsigned long int nwaiters;
+};
+
+struct sparc_old_sem
+{
+  unsigned int value;
+  unsigned char lock;
+  unsigned char private;
+};
+
+#endif
diff --git a/sysdeps/sparc/sparc32/pthread_barrier_wait.c b/sysdeps/sparc/sparc32/pthread_barrier_wait.c
index 0fed908..318a47b 100644
--- a/sysdeps/sparc/sparc32/pthread_barrier_wait.c
+++ b/sysdeps/sparc/sparc32/pthread_barrier_wait.c
@@ -20,6 +20,7 @@
 #include <sysdep.h>
 #include <lowlevellock.h>
 #include <pthreadP.h>
+#include <sparc-nptl.h>
 
 /* Wait on barrier.  */
 int
diff --git a/sysdeps/sparc/sparc32/sem_post.c b/sysdeps/sparc/sparc32/sem_post.c
index d3846c0..40650a0 100644
--- a/sysdeps/sparc/sparc32/sem_post.c
+++ b/sysdeps/sparc/sparc32/sem_post.c
@@ -24,6 +24,7 @@
 #include <semaphore.h>
 
 #include <shlib-compat.h>
+#include <sparc-nptl.h>
 
 int
 __new_sem_post (sem_t *sem)
diff --git a/sysdeps/sparc/sparc32/sem_timedwait.c b/sysdeps/sparc/sparc32/sem_timedwait.c
index 5c48cb3..a10382a 100644
--- a/sysdeps/sparc/sparc32/sem_timedwait.c
+++ b/sysdeps/sparc/sparc32/sem_timedwait.c
@@ -25,7 +25,7 @@
 
 #include <pthreadP.h>
 #include <shlib-compat.h>
-
+#include <sparc-nptl.h>
 
 extern void __sem_wait_cleanup (void *arg) attribute_hidden;
 
diff --git a/sysdeps/sparc/sparc32/sem_wait.c b/sysdeps/sparc/sparc32/sem_wait.c
index 8c072fe..81dcd09 100644
--- a/sysdeps/sparc/sparc32/sem_wait.c
+++ b/sysdeps/sparc/sparc32/sem_wait.c
@@ -25,7 +25,7 @@
 
 #include <pthreadP.h>
 #include <shlib-compat.h>
-
+#include <sparc-nptl.h>
 
 void
 attribute_hidden
