diff --git a/nptl/sysdeps/unix/sysv/linux/s390/Makefile b/nptl/sysdeps/unix/sysv/linux/s390/Makefile
deleted file mode 100644
index 269832f..0000000
--- a/nptl/sysdeps/unix/sysv/linux/s390/Makefile
+++ /dev/null
@@ -1,10 +0,0 @@
-ifeq ($(enable-lock-elision),yes)
-libpthread-sysdep_routines += elision-lock elision-unlock elision-timed \
-			      elision-trylock
-
-elision-CFLAGS = -mhtm
-CFLAGS-elision-lock.c = $(elision-CFLAGS)
-CFLAGS-elision-timed.c = $(elision-CFLAGS)
-CFLAGS-elision-trylock.c = $(elision-CFLAGS)
-CFLAGS-elision-unlock.c = $(elision-CFLAGS)
-endif
diff --git a/nptl/sysdeps/unix/sysv/linux/s390/Versions b/nptl/sysdeps/unix/sysv/linux/s390/Versions
deleted file mode 100644
index 58632f4..0000000
--- a/nptl/sysdeps/unix/sysv/linux/s390/Versions
+++ /dev/null
@@ -1,5 +0,0 @@
-libpthread {
-  GLIBC_2.19 {
-    longjmp; siglongjmp;
-  }
-}
diff --git a/nptl/sysdeps/unix/sysv/linux/s390/s390-64/Versions b/nptl/sysdeps/unix/sysv/linux/s390/s390-64/Versions
deleted file mode 100644
index 3b111dd..0000000
--- a/nptl/sysdeps/unix/sysv/linux/s390/s390-64/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/sysdeps/unix/sysv/linux/s390/Makefile b/sysdeps/unix/sysv/linux/s390/Makefile
index f91179d..768f926 100644
--- a/sysdeps/unix/sysv/linux/s390/Makefile
+++ b/sysdeps/unix/sysv/linux/s390/Makefile
@@ -22,3 +22,16 @@ ifeq (yes,$(build-shared))
 sysdep_routines += v1-longjmp_chk
 endif
 endif
+
+ifeq ($(subdir),nptl)
+ifeq ($(enable-lock-elision),yes)
+libpthread-sysdep_routines += elision-lock elision-unlock elision-timed \
+			      elision-trylock
+
+elision-CFLAGS = -mhtm
+CFLAGS-elision-lock.c = $(elision-CFLAGS)
+CFLAGS-elision-timed.c = $(elision-CFLAGS)
+CFLAGS-elision-trylock.c = $(elision-CFLAGS)
+CFLAGS-elision-unlock.c = $(elision-CFLAGS)
+endif
+endif
diff --git a/sysdeps/unix/sysv/linux/s390/Versions b/sysdeps/unix/sysv/linux/s390/Versions
index f71a6bd..55518a7 100644
--- a/sysdeps/unix/sysv/linux/s390/Versions
+++ b/sysdeps/unix/sysv/linux/s390/Versions
@@ -8,3 +8,9 @@ libc {
     __vdso_clock_getres;
   }
 }
+
+libpthread {
+  GLIBC_2.19 {
+    longjmp; siglongjmp;
+  }
+}
diff --git a/nptl/sysdeps/unix/sysv/linux/s390/elision-conf.c b/sysdeps/unix/sysv/linux/s390/elision-conf.c
similarity index 100%
rename from nptl/sysdeps/unix/sysv/linux/s390/elision-conf.c
rename to sysdeps/unix/sysv/linux/s390/elision-conf.c
diff --git a/nptl/sysdeps/unix/sysv/linux/s390/elision-conf.h b/sysdeps/unix/sysv/linux/s390/elision-conf.h
similarity index 100%
rename from nptl/sysdeps/unix/sysv/linux/s390/elision-conf.h
rename to sysdeps/unix/sysv/linux/s390/elision-conf.h
diff --git a/nptl/sysdeps/unix/sysv/linux/s390/elision-lock.c b/sysdeps/unix/sysv/linux/s390/elision-lock.c
similarity index 100%
rename from nptl/sysdeps/unix/sysv/linux/s390/elision-lock.c
rename to sysdeps/unix/sysv/linux/s390/elision-lock.c
diff --git a/nptl/sysdeps/unix/sysv/linux/s390/elision-timed.c b/sysdeps/unix/sysv/linux/s390/elision-timed.c
similarity index 100%
rename from nptl/sysdeps/unix/sysv/linux/s390/elision-timed.c
rename to sysdeps/unix/sysv/linux/s390/elision-timed.c
diff --git a/nptl/sysdeps/unix/sysv/linux/s390/elision-trylock.c b/sysdeps/unix/sysv/linux/s390/elision-trylock.c
similarity index 100%
rename from nptl/sysdeps/unix/sysv/linux/s390/elision-trylock.c
rename to sysdeps/unix/sysv/linux/s390/elision-trylock.c
diff --git a/nptl/sysdeps/unix/sysv/linux/s390/elision-unlock.c b/sysdeps/unix/sysv/linux/s390/elision-unlock.c
similarity index 100%
rename from nptl/sysdeps/unix/sysv/linux/s390/elision-unlock.c
rename to sysdeps/unix/sysv/linux/s390/elision-unlock.c
diff --git a/nptl/sysdeps/unix/sysv/linux/s390/force-elision.h b/sysdeps/unix/sysv/linux/s390/force-elision.h
similarity index 100%
rename from nptl/sysdeps/unix/sysv/linux/s390/force-elision.h
rename to sysdeps/unix/sysv/linux/s390/force-elision.h
diff --git a/nptl/sysdeps/unix/sysv/linux/s390/jmp-unwind.c b/sysdeps/unix/sysv/linux/s390/jmp-unwind.c
similarity index 100%
rename from nptl/sysdeps/unix/sysv/linux/s390/jmp-unwind.c
rename to sysdeps/unix/sysv/linux/s390/jmp-unwind.c
diff --git a/nptl/sysdeps/unix/sysv/linux/s390/lowlevellock.h b/sysdeps/unix/sysv/linux/s390/lowlevellock.h
similarity index 100%
rename from nptl/sysdeps/unix/sysv/linux/s390/lowlevellock.h
rename to sysdeps/unix/sysv/linux/s390/lowlevellock.h
diff --git a/nptl/sysdeps/unix/sysv/linux/s390/pt-longjmp.c b/sysdeps/unix/sysv/linux/s390/pt-longjmp.c
similarity index 100%
rename from nptl/sysdeps/unix/sysv/linux/s390/pt-longjmp.c
rename to sysdeps/unix/sysv/linux/s390/pt-longjmp.c
diff --git a/nptl/sysdeps/unix/sysv/linux/s390/pthread_mutex_cond_lock.c b/sysdeps/unix/sysv/linux/s390/pthread_mutex_cond_lock.c
similarity index 100%
rename from nptl/sysdeps/unix/sysv/linux/s390/pthread_mutex_cond_lock.c
rename to sysdeps/unix/sysv/linux/s390/pthread_mutex_cond_lock.c
diff --git a/nptl/sysdeps/unix/sysv/linux/s390/pthread_mutex_lock.c b/sysdeps/unix/sysv/linux/s390/pthread_mutex_lock.c
similarity index 100%
rename from nptl/sysdeps/unix/sysv/linux/s390/pthread_mutex_lock.c
rename to sysdeps/unix/sysv/linux/s390/pthread_mutex_lock.c
diff --git a/nptl/sysdeps/unix/sysv/linux/s390/pthread_mutex_timedlock.c b/sysdeps/unix/sysv/linux/s390/pthread_mutex_timedlock.c
similarity index 100%
rename from nptl/sysdeps/unix/sysv/linux/s390/pthread_mutex_timedlock.c
rename to sysdeps/unix/sysv/linux/s390/pthread_mutex_timedlock.c
diff --git a/nptl/sysdeps/unix/sysv/linux/s390/pthread_mutex_trylock.c b/sysdeps/unix/sysv/linux/s390/pthread_mutex_trylock.c
similarity index 100%
rename from nptl/sysdeps/unix/sysv/linux/s390/pthread_mutex_trylock.c
rename to sysdeps/unix/sysv/linux/s390/pthread_mutex_trylock.c
diff --git a/nptl/sysdeps/unix/sysv/linux/s390/pthread_once.c b/sysdeps/unix/sysv/linux/s390/pthread_once.c
similarity index 100%
rename from nptl/sysdeps/unix/sysv/linux/s390/pthread_once.c
rename to sysdeps/unix/sysv/linux/s390/pthread_once.c
diff --git a/nptl/sysdeps/unix/sysv/linux/s390/s390-32/sysdep-cancel.h b/sysdeps/unix/sysv/linux/s390/s390-32/sysdep-cancel.h
similarity index 100%
rename from nptl/sysdeps/unix/sysv/linux/s390/s390-32/sysdep-cancel.h
rename to sysdeps/unix/sysv/linux/s390/s390-32/sysdep-cancel.h
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/Versions b/sysdeps/unix/sysv/linux/s390/s390-64/Versions
index 83092db..3f4d960 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/Versions
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/Versions
@@ -5,3 +5,11 @@ libc {
     __frame_state_for; __register_frame_info_table;
   }
 }
+
+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/s390/s390-64/sysdep-cancel.h b/sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h
similarity index 100%
rename from nptl/sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h
rename to sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h
diff --git a/nptl/sysdeps/unix/sysv/linux/s390/s390-64/timer_create.c b/sysdeps/unix/sysv/linux/s390/s390-64/timer_create.c
similarity index 100%
rename from nptl/sysdeps/unix/sysv/linux/s390/s390-64/timer_create.c
rename to sysdeps/unix/sysv/linux/s390/s390-64/timer_create.c
diff --git a/nptl/sysdeps/unix/sysv/linux/s390/s390-64/timer_delete.c b/sysdeps/unix/sysv/linux/s390/s390-64/timer_delete.c
similarity index 100%
rename from nptl/sysdeps/unix/sysv/linux/s390/s390-64/timer_delete.c
rename to sysdeps/unix/sysv/linux/s390/s390-64/timer_delete.c
diff --git a/nptl/sysdeps/unix/sysv/linux/s390/s390-64/timer_getoverr.c b/sysdeps/unix/sysv/linux/s390/s390-64/timer_getoverr.c
similarity index 100%
rename from nptl/sysdeps/unix/sysv/linux/s390/s390-64/timer_getoverr.c
rename to sysdeps/unix/sysv/linux/s390/s390-64/timer_getoverr.c
diff --git a/nptl/sysdeps/unix/sysv/linux/s390/s390-64/timer_gettime.c b/sysdeps/unix/sysv/linux/s390/s390-64/timer_gettime.c
similarity index 100%
rename from nptl/sysdeps/unix/sysv/linux/s390/s390-64/timer_gettime.c
rename to sysdeps/unix/sysv/linux/s390/s390-64/timer_gettime.c
diff --git a/nptl/sysdeps/unix/sysv/linux/s390/s390-64/timer_settime.c b/sysdeps/unix/sysv/linux/s390/s390-64/timer_settime.c
similarity index 100%
rename from nptl/sysdeps/unix/sysv/linux/s390/s390-64/timer_settime.c
rename to sysdeps/unix/sysv/linux/s390/s390-64/timer_settime.c
