about summary refs log tree commit diff
path: root/sysdeps/s390/s390-64
diff options
context:
space:
mode:
authorZack Weinberg <zackw@panix.com>2017-06-08 15:39:03 -0400
committerZack Weinberg <zackw@panix.com>2017-06-08 15:39:03 -0400
commit5046dbb4a7eba5eccfd258f92f4735c9ffc8d069 (patch)
tree4470480d904b65cf14ca524f96f79eca818c3eaf /sysdeps/s390/s390-64
parent199fc19d3aaaf57944ef036e15904febe877fc93 (diff)
downloadglibc-zack/build-layout-experiment.tar.gz
glibc-zack/build-layout-experiment.tar.xz
glibc-zack/build-layout-experiment.zip
Prepare for radical source tree reorganization. zack/build-layout-experiment
All top-level files and directories are moved into a temporary storage
directory, REORG.TODO, except for files that will certainly still
exist in their current form at top level when we're done (COPYING,
COPYING.LIB, LICENSES, NEWS, README), all old ChangeLog files (which
are moved to the new directory OldChangeLogs, instead), and the
generated file INSTALL (which is just deleted; in the new order, there
will be no generated files checked into version control).
Diffstat (limited to 'sysdeps/s390/s390-64')
-rw-r--r--sysdeps/s390/s390-64/Implies1
-rw-r--r--sysdeps/s390/s390-64/Makefile9
-rw-r--r--sysdeps/s390/s390-64/__longjmp.c89
-rw-r--r--sysdeps/s390/s390-64/add_n.S63
-rw-r--r--sysdeps/s390/s390-64/backtrace.c147
-rw-r--r--sysdeps/s390/s390-64/bcopy.S71
-rw-r--r--sysdeps/s390/s390-64/bits/wordsize.h11
-rw-r--r--sysdeps/s390/s390-64/bsd-_setjmp.S1
-rw-r--r--sysdeps/s390/s390-64/bsd-setjmp.S1
-rw-r--r--sysdeps/s390/s390-64/bzero.S41
-rw-r--r--sysdeps/s390/s390-64/crti.S91
-rw-r--r--sysdeps/s390/s390-64/crtn.S50
-rw-r--r--sysdeps/s390/s390-64/dl-machine.h476
-rw-r--r--sysdeps/s390/s390-64/dl-trampoline.S33
-rw-r--r--sysdeps/s390/s390-64/dl-trampoline.h225
-rw-r--r--sysdeps/s390/s390-64/memchr.S40
-rw-r--r--sysdeps/s390/s390-64/memcmp.S64
-rw-r--r--sysdeps/s390/s390-64/memcpy.S88
-rw-r--r--sysdeps/s390/s390-64/memset.S64
-rw-r--r--sysdeps/s390/s390-64/multiarch/Makefile4
-rw-r--r--sysdeps/s390/s390-64/multiarch/memchr.c21
-rw-r--r--sysdeps/s390/s390-64/multiarch/memcmp-s390x.S104
-rw-r--r--sysdeps/s390/s390-64/multiarch/memcmp.c27
-rw-r--r--sysdeps/s390/s390-64/multiarch/memcpy-s390x.S122
-rw-r--r--sysdeps/s390/s390-64/multiarch/memcpy.c27
-rw-r--r--sysdeps/s390/s390-64/multiarch/memset-s390x.S112
-rw-r--r--sysdeps/s390/s390-64/multiarch/memset.c26
-rw-r--r--sysdeps/s390/s390-64/multiarch/strcmp.c21
-rw-r--r--sysdeps/s390/s390-64/multiarch/strcpy.c21
-rw-r--r--sysdeps/s390/s390-64/multiarch/strncpy.c21
-rw-r--r--sysdeps/s390/s390-64/s390x-mcount.S77
-rw-r--r--sysdeps/s390/s390-64/setjmp.S118
-rw-r--r--sysdeps/s390/s390-64/stackguard-macros.h18
-rw-r--r--sysdeps/s390/s390-64/start.S100
-rw-r--r--sysdeps/s390/s390-64/strcmp.S41
-rw-r--r--sysdeps/s390/s390-64/strcpy.S35
-rw-r--r--sysdeps/s390/s390-64/strncpy.S90
-rw-r--r--sysdeps/s390/s390-64/sub_n.S60
-rw-r--r--sysdeps/s390/s390-64/sysdep.h94
-rw-r--r--sysdeps/s390/s390-64/tls-macros.h88
-rw-r--r--sysdeps/s390/s390-64/tst-audit.h25
41 files changed, 0 insertions, 2817 deletions
diff --git a/sysdeps/s390/s390-64/Implies b/sysdeps/s390/s390-64/Implies
deleted file mode 100644
index a8cae95f9d..0000000000
--- a/sysdeps/s390/s390-64/Implies
+++ /dev/null
@@ -1 +0,0 @@
-wordsize-64
diff --git a/sysdeps/s390/s390-64/Makefile b/sysdeps/s390/s390-64/Makefile
deleted file mode 100644
index b4d793bb3d..0000000000
--- a/sysdeps/s390/s390-64/Makefile
+++ /dev/null
@@ -1,9 +0,0 @@
-ifeq ($(subdir),gmon)
-sysdep_routines += s390x-mcount
-endif
-
-ifeq ($(subdir),elf)
-CFLAGS-rtld.c += -Wno-uninitialized -Wno-unused
-CFLAGS-dl-load.c += -Wno-unused
-CFLAGS-dl-reloc.c += -Wno-unused
-endif
diff --git a/sysdeps/s390/s390-64/__longjmp.c b/sysdeps/s390/s390-64/__longjmp.c
deleted file mode 100644
index f7be9ddb18..0000000000
--- a/sysdeps/s390/s390-64/__longjmp.c
+++ /dev/null
@@ -1,89 +0,0 @@
-/* Copyright (C) 2001-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com).
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <errno.h>
-#include <sysdep.h>
-#include <setjmp.h>
-#include <bits/setjmp.h>
-#include <stdlib.h>
-#include <unistd.h>
-#include <stap-probe.h>
-
-/* Jump to the position specified by ENV, causing the
-   setjmp call there to return VAL, or 1 if VAL is 0.  */
-void
-__longjmp (__jmp_buf env, int val)
-{
-#ifdef PTR_DEMANGLE
-  uintptr_t guard = THREAD_GET_POINTER_GUARD ();
-# ifdef CHECK_SP
-  CHECK_SP (env, guard);
-# endif
-#elif defined CHECK_SP
-  CHECK_SP (env, 0);
-#endif
-  register long int r2 __asm__ ("%r2") = val == 0 ? 1 : val;
-#ifdef PTR_DEMANGLE
-  register uintptr_t r3 __asm__ ("%r3") = guard;
-  register void *r1 __asm__ ("%r1") = (void *) env;
-#endif
-  /* Restore registers and jump back.  */
-  __asm__ __volatile__ (
-			/* longjmp probe expects longjmp first argument, second
-			   argument and target address.  */
-#ifdef PTR_DEMANGLE
-			"lmg  %%r4,%%r5,64(%1)\n\t"
-			"xgr  %%r4,%2\n\t"
-			"xgr  %%r5,%2\n\t"
-			LIBC_PROBE_ASM (longjmp, 8@%1 -4@%0 8@%%r4)
-#else
-			LIBC_PROBE_ASM (longjmp, 8@%1 -4@%0 8@%%r14)
-#endif
-
-			/* restore fpregs  */
-			"ld    %%f8,80(%1)\n\t"
-			"ld    %%f9,88(%1)\n\t"
-			"ld    %%f10,96(%1)\n\t"
-			"ld    %%f11,104(%1)\n\t"
-			"ld    %%f12,112(%1)\n\t"
-			"ld    %%f13,120(%1)\n\t"
-			"ld    %%f14,128(%1)\n\t"
-			"ld    %%f15,136(%1)\n\t"
-
-			/* restore gregs and return to jmp_buf target  */
-#ifdef PTR_DEMANGLE
-			"lmg  %%r6,%%r13,0(%1)\n\t"
-			"lgr  %%r15,%%r5\n\t"
-			LIBC_PROBE_ASM (longjmp_target, 8@%1 -4@%0 8@%%r4)
-			"br   %%r4"
-#else
-			"lmg  %%r6,%%r15,0(%1)\n\t"
-			LIBC_PROBE_ASM (longjmp_target, 8@%1 -4@%0 8@%%r14)
-			"br   %%r14"
-#endif
-			: : "r" (r2),
-#ifdef PTR_DEMANGLE
-			  "r" (r1), "r" (r3)
-#else
-			  "a" (env)
-#endif
-			);
-
-  /* Avoid `volatile function does return' warnings.  */
-  for (;;);
-}
diff --git a/sysdeps/s390/s390-64/add_n.S b/sysdeps/s390/s390-64/add_n.S
deleted file mode 100644
index 89197b2dbf..0000000000
--- a/sysdeps/s390/s390-64/add_n.S
+++ /dev/null
@@ -1,63 +0,0 @@
-/* Add two limb vectors of the same length > 0 and store sum in a third
-   limb vector.
-   Copyright (C) 2001-2017 Free Software Foundation, Inc.
-   Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com).
-   This file is part of the GNU MP Library.
-
-   The GNU MP Library is free software; you can redistribute it and/or modify
-   it under the terms of the GNU Lesser General Public License as published by
-   the Free Software Foundation; either version 2.1 of the License, or (at your
-   option) any later version.
-
-   The GNU MP Library is distributed in the hope that it will be useful, but
-   WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-   or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public
-   License for more details.
-
-   You should have received a copy of the GNU Lesser General Public License
-   along with the GNU MP Library; see the file COPYING.LIB.  If not,
-   see <http://www.gnu.org/licenses/>.  */
-
-/*
-   INPUT PARAMETERS
-   res_ptr	%r2
-   s1_ptr	%r3
-   s2_ptr	%r4
-   size		%r5
-*/
-
-#include "sysdep.h"
-#include "asm-syntax.h"
-
-	.text
-ENTRY(__mpn_add_n)
-	stg    %r6,48(%r15)   # save register 6
-	cfi_offset (%r6,-112)
-	slgr   %r1,%r1
-        lghi   %r0,1          # cannot use ahi to add carry, use alr
-.L0:	lg     %r6,0(%r1,%r3) # .L0 -> no carry from last add
-	alg    %r6,0(%r1,%r4)
-	stg    %r6,0(%r1,%r2)
-	la     %r1,8(%r1)
-	brc    3,.L3
-.L1:	brct   %r5,.L0
-	slgr   %r2,%r2        # no last carry to return
-	j      .Lexit
-.L2:    lg     %r6,0(%r1,%r3) # .L2 -> carry from last add
-	alg    %r6,0(%r1,%r4)
-	brc    3,.L4
-	algr   %r6,%r0        # no carry yet, add carry from last add
-	stg    %r6,0(%r1,%r2)
-	la     %r1,8(%r1)
-	brc    12,.L1          # new carry ?
-.L3:	brct   %r5,.L2
-	lgr    %r2,%r0        # return last carry
-	j      .Lexit
-.L4:	algr   %r6,%r0        # already a carry, add carry from last add
-	stg    %r6,0(%r1,%r2)
-	la     %r1,8(%r1)
-	brct   %r5,.L2
-	lgr    %r2,%r0        # return last carry
-.Lexit:	lg     %r6,48(%r15)   # restore register 6
-	br     %r14
-END(__mpn_add_n)
diff --git a/sysdeps/s390/s390-64/backtrace.c b/sysdeps/s390/s390-64/backtrace.c
deleted file mode 100644
index 4843db623a..0000000000
--- a/sysdeps/s390/s390-64/backtrace.c
+++ /dev/null
@@ -1,147 +0,0 @@
-/* Return backtrace of current program state.  64 bit S/390 version.
-   Copyright (C) 2001-2017 Free Software Foundation, Inc.
-   Contributed by Martin Schwidefsky <schwidefsky@de.ibm.com>.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <libc-lock.h>
-#include <dlfcn.h>
-#include <execinfo.h>
-#include <stddef.h>
-#include <stdlib.h>
-#include <unwind.h>
-
-
-/* This is a global variable set at program start time.  It marks the
-   highest used stack address.  */
-extern void *__libc_stack_end;
-
-
-/* This is the stack layout we see for every non-leaf function.
-           size                    offset
-    %r15 ->    +------------------+
-             8 | back chain       |   0
-             8 | end of stack     |   8
-            32 | scratch          |  16
-            80 | save area r6-r15 |  48
-            16 | save area f4,f6  | 128
-            16 | empty            | 144
-               +------------------+
-   r14 in the save area holds the return address.
-*/
-
-struct layout
-{
-  long back_chain;
-  long end_of_stack;
-  long scratch[4];
-  long save_grps[10];
-  long save_fp[2];
-  long empty[2];
-};
-
-struct trace_arg
-{
-  void **array;
-  int cnt, size;
-};
-
-#ifdef SHARED
-static _Unwind_Reason_Code (*unwind_backtrace) (_Unwind_Trace_Fn, void *);
-static _Unwind_Ptr (*unwind_getip) (struct _Unwind_Context *);
-
-static void
-init (void)
-{
-  void *handle = __libc_dlopen ("libgcc_s.so.1");
-
-  if (handle == NULL)
-    return;
-
-  unwind_backtrace = __libc_dlsym (handle, "_Unwind_Backtrace");
-  unwind_getip = __libc_dlsym (handle, "_Unwind_GetIP");
-  if (unwind_getip == NULL)
-    unwind_backtrace = NULL;
-}
-
-static int
-__backchain_backtrace (void **array, int size)
-{
-  /* We assume that all the code is generated with frame pointers set.  */
-  struct layout *stack;
-  int cnt = 0;
-
-  __asm__ ("LGR  %0,%%r15" : "=d" (stack) );
-  /* We skip the call to this function, it makes no sense to record it.  */
-  stack = (struct layout *) stack->back_chain;
-  while (cnt < size)
-    {
-      if (stack == NULL || (void *) stack > __libc_stack_end)
-	/* This means the address is out of range.  Note that for the
-	   toplevel we see a frame pointer with value NULL which clearly is
-	   out of range.  */
-	break;
-
-      array[cnt++] = (void *) stack->save_grps[8];
-
-      stack = (struct layout *) stack->back_chain;
-    }
-
-  return cnt;
-}
-#else
-# define unwind_backtrace _Unwind_Backtrace
-# define unwind_getip _Unwind_GetIP
-#endif
-
-static _Unwind_Reason_Code
-backtrace_helper (struct _Unwind_Context *ctx, void *a)
-{
-  struct trace_arg *arg = a;
-
-  /* We are first called with address in the __backtrace function.
-     Skip it.  */
-  if (arg->cnt != -1)
-    arg->array[arg->cnt] = (void *) unwind_getip (ctx);
-  if (++arg->cnt == arg->size)
-    return _URC_END_OF_STACK;
-  return _URC_NO_REASON;
-}
-
-int
-__backtrace (void **array, int size)
-{
-  struct trace_arg arg = { .array = array, .size = size, .cnt = -1 };
-
-  if (size <= 0)
-    return 0;
-
-#ifdef SHARED
-  __libc_once_define (static, once);
-
-  __libc_once (once, init);
-
-  if (unwind_backtrace == NULL)
-    return __backchain_backtrace (array, size);
-#endif
-
-  unwind_backtrace (backtrace_helper, &arg);
-
-  return arg.cnt != -1 ? arg.cnt : 0;
-}
-
-weak_alias (__backtrace, backtrace)
-libc_hidden_def (__backtrace)
diff --git a/sysdeps/s390/s390-64/bcopy.S b/sysdeps/s390/s390-64/bcopy.S
deleted file mode 100644
index 235fc85568..0000000000
--- a/sysdeps/s390/s390-64/bcopy.S
+++ /dev/null
@@ -1,71 +0,0 @@
-/* bcopy -- copy a block from source to destination.  64 bit S/390 version.
-   This file is part of the GNU C Library.
-   Copyright (C) 2000-2017 Free Software Foundation, Inc.
-   Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com).
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-/* INPUT PARAMETERS
-     %r2 = address of source
-     %r3 = address of destination
-     %r4 = number of bytes to copy.  */
-
-#include "sysdep.h"
-#include "asm-syntax.h"
-
-	.text
-ENTRY(__bcopy)
-	ltgr	%r1,%r4		    # zero bcopy ?
-	jz	.L4
-	clgr	%r2,%r3		    # check against destructive overlap
-	jnl	.L0
-	algr	%r1,%r2
-	clgr	%r1,%r3
-	jh	.L7
-.L0:	aghi	%r4,-1		    # length - 1
-	srlg	%r1,%r4,8
-	ltgr	%r1,%r1             # < 256 bytes to move ?
-	jz	.L2
-	cghi    %r1,255             # > 1MB to move ?
-	jh      .L5
-.L1:	mvc	0(256,%r3),0(%r2)   # move in 256 byte chunks
-	la	%r2,256(%r2)
-	la	%r3,256(%r3)
-	brctg	%r1,.L1
-.L2:	bras	%r1,.L3		    # setup base pointer for execute
-	mvc	0(1,%r3),0(%r2)	    # instruction for execute
-.L3:	ex	%r4,0(%r1)	    # execute mvc with length ((%r4)&255)+1
-.L4:	br	%r14
-	# data copies > 1MB are faster with mvcle.
-.L5:	aghi    %r4,1               # length + 1
-	lgr	%r5,%r4	            # source length
-	lgr	%r4,%r2             # source address
-	lgr	%r2,%r3             # set destination
-	lgr	%r3,%r5             # destination length = source length
-.L6:	mvcle	%r2,%r4,0           # thats it, MVCLE is your friend
-	jo	.L6
-	br	%r14
-.L7:				    # destructive overlay, can not use mvcle
-	lgr	%r1,%r2		    # bcopy is called with source,dest
-	lgr	%r2,%r3		    # memmove with dest,source! Oh, well...
-	lgr	%r3,%r1
-	jg	HIDDEN_BUILTIN_JUMPTARGET(memmove)
-
-END(__bcopy)
-
-#ifndef NO_WEAK_ALIAS
-weak_alias (__bcopy, bcopy)
-#endif
-
diff --git a/sysdeps/s390/s390-64/bits/wordsize.h b/sysdeps/s390/s390-64/bits/wordsize.h
deleted file mode 100644
index 00e88b0628..0000000000
--- a/sysdeps/s390/s390-64/bits/wordsize.h
+++ /dev/null
@@ -1,11 +0,0 @@
-/* Determine the wordsize from the preprocessor defines.  */
-
-#if defined __s390x__
-# define __WORDSIZE	64
-#else
-# define __WORDSIZE	32
-# define __WORDSIZE32_SIZE_ULONG       1
-# define __WORDSIZE32_PTRDIFF_LONG     0
-#endif
-
-#define __WORDSIZE_TIME64_COMPAT32     0
diff --git a/sysdeps/s390/s390-64/bsd-_setjmp.S b/sysdeps/s390/s390-64/bsd-_setjmp.S
deleted file mode 100644
index 1417270201..0000000000
--- a/sysdeps/s390/s390-64/bsd-_setjmp.S
+++ /dev/null
@@ -1 +0,0 @@
-/* We don't need any code here since the setjmp.S file contains it.  */
diff --git a/sysdeps/s390/s390-64/bsd-setjmp.S b/sysdeps/s390/s390-64/bsd-setjmp.S
deleted file mode 100644
index 1417270201..0000000000
--- a/sysdeps/s390/s390-64/bsd-setjmp.S
+++ /dev/null
@@ -1 +0,0 @@
-/* We don't need any code here since the setjmp.S file contains it.  */
diff --git a/sysdeps/s390/s390-64/bzero.S b/sysdeps/s390/s390-64/bzero.S
deleted file mode 100644
index 119c20dcb9..0000000000
--- a/sysdeps/s390/s390-64/bzero.S
+++ /dev/null
@@ -1,41 +0,0 @@
-/* bzero -- set a block of memory to zero.  64 bit S/390 version.
-   This file is part of the GNU C Library.
-   Copyright (C) 2001-2017 Free Software Foundation, Inc.
-   Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com).
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-/* INPUT PARAMETERS
-     %r2 = address of memory area
-     %r3 = number of bytes to fill.  */
-
-#include "sysdep.h"
-#include "asm-syntax.h"
-
-	.text
-ENTRY(__bzero)
-	ltgr	%r3,%r3
-	jz	.L1
-	sgr	%r1,%r1		    # set pad byte to zero
-	sgr	%r4,%r4		    # no source for MVCLE, only a pad byte
-	sgr	%r5,%r5
-.L0:	mvcle	%r2,%r4,0(%r1)	    # thats it, MVCLE is your friend
-	jo	.L0
-.L1:	br	%r14
-END(__bzero)
-
-#ifndef NO_WEAK_ALIAS
-weak_alias (__bzero, bzero)
-#endif
diff --git a/sysdeps/s390/s390-64/crti.S b/sysdeps/s390/s390-64/crti.S
deleted file mode 100644
index c9583bb9c9..0000000000
--- a/sysdeps/s390/s390-64/crti.S
+++ /dev/null
@@ -1,91 +0,0 @@
-/* Special .init and .fini section support for 64 bit S/390.
-   Copyright (C) 2001-2017 Free Software Foundation, Inc.
-   Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com).
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   In addition to the permissions in the GNU Lesser General Public
-   License, the Free Software Foundation gives you unlimited
-   permission to link the compiled version of this file with other
-   programs, and to distribute those programs without any restriction
-   coming from the use of this file. (The GNU Lesser General Public
-   License restrictions do apply in other respects; for example, they
-   cover modification of the file, and distribution when not linked
-   into another program.)
-
-   Note that people who make modified versions of this file are not
-   obligated to grant this special exception for their modified
-   versions; it is their choice whether to do so. The GNU Lesser
-   General Public License gives permission to release a modified
-   version without this exception; this exception also makes it
-   possible to release a modified version which carries forward this
-   exception.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-/* crti.S puts a function prologue at the beginning of the .init and
-   .fini sections and defines global symbols for those addresses, so
-   they can be called as functions.  The symbols _init and _fini are
-   magic and cause the linker to emit DT_INIT and DT_FINI.  */
-
-#include <libc-symbols.h>
-#include <sysdep.h>
-
-#ifndef PREINIT_FUNCTION
-# define PREINIT_FUNCTION __gmon_start__
-#endif
-
-#ifndef PREINIT_FUNCTION_WEAK
-# define PREINIT_FUNCTION_WEAK 1
-#endif
-
-#if PREINIT_FUNCTION_WEAK
-	weak_extern (PREINIT_FUNCTION)
-#else
-	.hidden PREINIT_FUNCTION
-#endif
-
-	.section .init,"ax",@progbits
-	.align 4
-	.globl	_init
-	.type	_init,@function
-_init:
-	stmg	%r6,%r15,48(%r15)
-	lgr	%r1,%r15
-	aghi	%r15,-160
-	stg	%r1,0(%r15)
-	larl	%r12,_GLOBAL_OFFSET_TABLE_
-#if PREINIT_FUNCTION_WEAK
-	larl	%r1,PREINIT_FUNCTION@GOTENT
-	lg	%r1,0(%r1)
-	ltgr	%r1,%r1
-	je	1f
-	basr	%r14,%r1
-#else
-	brasl	%r14,PREINIT_FUNCTION
-#endif
-	.align	4,0x07
-1:
-
-	.section .fini,"ax",@progbits
-	.align 4
-	.globl	_fini
-	.type	_fini,@function
-_fini:
-	stmg	%r6,%r15,48(%r15)
-	lgr	%r1,%r15
-	aghi	%r15,-160
-	stg	%r1,0(%r15)
-	larl	%r12,_GLOBAL_OFFSET_TABLE_
-	.align	4,0x07
diff --git a/sysdeps/s390/s390-64/crtn.S b/sysdeps/s390/s390-64/crtn.S
deleted file mode 100644
index 2bb3211e57..0000000000
--- a/sysdeps/s390/s390-64/crtn.S
+++ /dev/null
@@ -1,50 +0,0 @@
-/* Special .init and .fini section support for 64 bit S/390.
-   Copyright (C) 2001-2017 Free Software Foundation, Inc.
-   Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com).
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   In addition to the permissions in the GNU Lesser General Public
-   License, the Free Software Foundation gives you unlimited
-   permission to link the compiled version of this file with other
-   programs, and to distribute those programs without any restriction
-   coming from the use of this file. (The GNU Lesser General Public
-   License restrictions do apply in other respects; for example, they
-   cover modification of the file, and distribution when not linked
-   into another program.)
-
-   Note that people who make modified versions of this file are not
-   obligated to grant this special exception for their modified
-   versions; it is their choice whether to do so. The GNU Lesser
-   General Public License gives permission to release a modified
-   version without this exception; this exception also makes it
-   possible to release a modified version which carries forward this
-   exception.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-/* crtn.S puts function epilogues in the .init and .fini sections
-   corresponding to the prologues in crti.S. */
-
-	.section .init
-	.align	4
-	lg	%r4,272(%r15)
-	lmg	%r6,%r15,208(%r15)
-	br	%r4
-
-	.section .fini
-	.align	4
-	lg	%r4,272(%r15)
-	lmg	%r6,%r15,208(%r15)
-	br	%r4
diff --git a/sysdeps/s390/s390-64/dl-machine.h b/sysdeps/s390/s390-64/dl-machine.h
deleted file mode 100644
index f2aeb1e78e..0000000000
--- a/sysdeps/s390/s390-64/dl-machine.h
+++ /dev/null
@@ -1,476 +0,0 @@
-/* Machine-dependent ELF dynamic relocation inline functions.
-   64 bit S/390 Version.
-   Copyright (C) 2001-2017 Free Software Foundation, Inc.
-   Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com).
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#ifndef dl_machine_h
-#define dl_machine_h
-
-#define ELF_MACHINE_NAME "s390x"
-
-#include <sys/param.h>
-#include <string.h>
-#include <link.h>
-#include <sysdeps/s390/dl-procinfo.h>
-#include <dl-irel.h>
-
-#define ELF_MACHINE_IRELATIVE       R_390_IRELATIVE
-
-/* This is an older, now obsolete value.  */
-#define EM_S390_OLD	0xA390
-
-/* Return nonzero iff E_MACHINE is compatible with the running host.  */
-static inline int
-elf_machine_matches_host (const Elf64_Ehdr *ehdr)
-{
-  return (ehdr->e_machine == EM_S390 || ehdr->e_machine == EM_S390_OLD)
-	 && ehdr->e_ident[EI_CLASS] == ELFCLASS64;
-}
-
-/* Return the link-time address of _DYNAMIC.  Conveniently, this is the
-   first element of the GOT.  This must be inlined in a function which
-   uses global data.  */
-
-static inline Elf64_Addr
-elf_machine_dynamic (void)
-{
-  register Elf64_Addr *got;
-
-  __asm__ ( "	larl   %0,_GLOBAL_OFFSET_TABLE_\n"
-	    : "=&a" (got) : : "0" );
-
-  return *got;
-}
-
-/* Return the run-time load address of the shared object.  */
-static inline Elf64_Addr
-elf_machine_load_address (void)
-{
-  Elf64_Addr addr;
-
-  __asm__( "   larl	 %0,_dl_start\n"
-	   "   larl	 1,_GLOBAL_OFFSET_TABLE_\n"
-	   "   lghi	 2,_dl_start@GOT\n"
-	   "   slg	 %0,0(2,1)"
-	   : "=&d" (addr) : : "1", "2" );
-  return addr;
-}
-
-/* Set up the loaded object described by L so its unrelocated PLT
-   entries will jump to the on-demand fixup code in dl-runtime.c.  */
-
-static inline int __attribute__ ((unused))
-elf_machine_runtime_setup (struct link_map *l, int lazy, int profile)
-{
-  extern void _dl_runtime_resolve (Elf64_Word);
-  extern void _dl_runtime_profile (Elf64_Word);
-#if defined HAVE_S390_VX_ASM_SUPPORT
-  extern void _dl_runtime_resolve_vx (Elf64_Word);
-  extern void _dl_runtime_profile_vx (Elf64_Word);
-#endif
-
-  if (l->l_info[DT_JMPREL] && lazy)
-    {
-      /* The GOT entries for functions in the PLT have not yet been filled
-	 in.  Their initial contents will arrange when called to push an
-	 offset into the .rela.plt section, push _GLOBAL_OFFSET_TABLE_[1],
-	 and then jump to _GLOBAL_OFFSET_TABLE[2].  */
-      Elf64_Addr *got;
-      got = (Elf64_Addr *) D_PTR (l, l_info[DT_PLTGOT]);
-      /* If a library is prelinked but we have to relocate anyway,
-	 we have to be able to undo the prelinking of .got.plt.
-	 The prelinker saved us here address of .plt + 0x2e.  */
-      if (got[1])
-	{
-	  l->l_mach.plt = got[1] + l->l_addr;
-	  l->l_mach.jmprel = (const Elf64_Rela *) D_PTR (l, l_info[DT_JMPREL]);
-	}
-      got[1] = (Elf64_Addr) l;	/* Identify this shared object.	 */
-
-      /* The got[2] entry contains the address of a function which gets
-	 called to get the address of a so far unresolved function and
-	 jump to it.  The profiling extension of the dynamic linker allows
-	 to intercept the calls to collect information.	 In this case we
-	 don't store the address in the GOT so that all future calls also
-	 end in this function.	*/
-      if (__glibc_unlikely (profile))
-	{
-#if defined HAVE_S390_VX_ASM_SUPPORT
-	  if (GLRO(dl_hwcap) & HWCAP_S390_VX)
-	    got[2] = (Elf64_Addr) &_dl_runtime_profile_vx;
-	  else
-	    got[2] = (Elf64_Addr) &_dl_runtime_profile;
-#else
-	  got[2] = (Elf64_Addr) &_dl_runtime_profile;
-#endif
-
-	  if (GLRO(dl_profile) != NULL
-	      && _dl_name_match_p (GLRO(dl_profile), l))
-	    /* This is the object we are looking for.  Say that we really
-	       want profiling and the timers are started.  */
-	    GL(dl_profile_map) = l;
-	}
-      else
-	{
-	  /* This function will get called to fix up the GOT entry indicated by
-	     the offset on the stack, and then jump to the resolved address.  */
-#if defined HAVE_S390_VX_ASM_SUPPORT
-	  if (GLRO(dl_hwcap) & HWCAP_S390_VX)
-	    got[2] = (Elf64_Addr) &_dl_runtime_resolve_vx;
-	  else
-	    got[2] = (Elf64_Addr) &_dl_runtime_resolve;
-#else
-	  got[2] = (Elf64_Addr) &_dl_runtime_resolve;
-#endif
-	}
-    }
-
-  return lazy;
-}
-
-/* Initial entry point code for the dynamic linker.
-   The C function `_dl_start' is the real entry point;
-   its return value is the user program's entry point.	*/
-
-#define RTLD_START __asm__ ("\n\
-.text\n\
-.align 4\n\
-.globl _start\n\
-.globl _dl_start_user\n\
-_start:\n\
-	lgr   %r2,%r15\n\
-	# Alloc stack frame\n\
-	aghi  %r15,-160\n\
-	# Set the back chain to zero\n\
-	xc    0(8,%r15),0(%r15)\n\
-	# Call _dl_start with %r2 pointing to arg on stack\n\
-	brasl %r14,_dl_start	     # call _dl_start\n\
-_dl_start_user:\n\
-	# Save the user entry point address in %r8.\n\
-	lgr   %r8,%r2\n\
-	# Point %r12 at the GOT.\n\
-	larl  %r12,_GLOBAL_OFFSET_TABLE_\n\
-	# See if we were run as a command with the executable file\n\
-	# name as an extra leading argument.\n\
-	lghi  %r1,_dl_skip_args@GOT\n\
-	lg    %r1,0(%r1,%r12)\n\
-	lgf   %r1,0(%r1)	  # load _dl_skip_args\n\
-	# Get the original argument count.\n\
-	lg    %r0,160(%r15)\n\
-	# Subtract _dl_skip_args from it.\n\
-	sgr   %r0,%r1\n\
-	# Adjust the stack pointer to skip _dl_skip_args words.\n\
-	sllg  %r1,%r1,3\n\
-	agr   %r15,%r1\n\
-	# Set the back chain to zero again\n\
-	xc    0(8,%r15),0(%r15)\n\
-	# Store back the modified argument count.\n\
-	stg   %r0,160(%r15)\n\
-	# The special initializer gets called with the stack just\n\
-	# as the application's entry point will see it; it can\n\
-	# switch stacks if it moves these contents over.\n\
-" RTLD_START_SPECIAL_INIT "\n\
-	# Call the function to run the initializers.\n\
-	# Load the parameters:\n\
-	# (%r2, %r3, %r4, %r5) = (_dl_loaded, argc, argv, envp)\n\
-	lghi  %r2,_rtld_local@GOT\n\
-	lg    %r2,0(%r2,%r12)\n\
-	lg    %r2,0(%r2)\n\
-	lg    %r3,160(%r15)\n\
-	la    %r4,168(%r15)\n\
-	lgr   %r5,%r3\n\
-	sllg  %r5,%r5,3\n\
-	la    %r5,176(%r5,%r15)\n\
-	brasl %r14,_dl_init@PLT\n\
-	# Pass our finalizer function to the user in %r14, as per ELF ABI.\n\
-	lghi  %r14,_dl_fini@GOT\n\
-	lg    %r14,0(%r14,%r12)\n\
-	# Free stack frame\n\
-	aghi  %r15,160\n\
-	# Jump to the user's entry point (saved in %r8).\n\
-	br    %r8\n\
-");
-
-#ifndef RTLD_START_SPECIAL_INIT
-#define RTLD_START_SPECIAL_INIT /* nothing */
-#endif
-
-/* ELF_RTYPE_CLASS_PLT iff TYPE describes relocation of a PLT entry or
-   TLS variable, so undefined references should not be allowed to
-   define the value.
-   ELF_RTYPE_CLASS_COPY iff TYPE should not be allowed to resolve to one
-   of the main executable's symbols, as for a COPY reloc.  */
-#define elf_machine_type_class(type) \
-  ((((type) == R_390_JMP_SLOT || (type) == R_390_TLS_DTPMOD		      \
-     || (type) == R_390_TLS_DTPOFF || (type) == R_390_TLS_TPOFF)	      \
-    * ELF_RTYPE_CLASS_PLT)						      \
-   | (((type) == R_390_COPY) * ELF_RTYPE_CLASS_COPY))
-
-/* A reloc type used for ld.so cmdline arg lookups to reject PLT entries.  */
-#define ELF_MACHINE_JMP_SLOT	R_390_JMP_SLOT
-
-/* The 64 bit S/390 never uses Elf64_Rel relocations.  */
-#define ELF_MACHINE_NO_REL 1
-#define ELF_MACHINE_NO_RELA 0
-
-/* We define an initialization functions.  This is called very early in
-   _dl_sysdep_start.  */
-#define DL_PLATFORM_INIT dl_platform_init ()
-
-static inline void __attribute__ ((unused))
-dl_platform_init (void)
-{
-  if (GLRO(dl_platform) != NULL && *GLRO(dl_platform) == '\0')
-    /* Avoid an empty string which would disturb us.  */
-    GLRO(dl_platform) = NULL;
-}
-
-static inline Elf64_Addr
-elf_machine_fixup_plt (struct link_map *map, lookup_t t,
-		       const Elf64_Rela *reloc,
-		       Elf64_Addr *reloc_addr, Elf64_Addr value)
-{
-  return *reloc_addr = value;
-}
-
-/* Return the final value of a plt relocation.	*/
-static inline Elf64_Addr
-elf_machine_plt_value (struct link_map *map, const Elf64_Rela *reloc,
-		       Elf64_Addr value)
-{
-  return value;
-}
-
-/* Names of the architecture-specific auditing callback functions.  */
-#define ARCH_LA_PLTENTER s390_64_gnu_pltenter
-#define ARCH_LA_PLTEXIT s390_64_gnu_pltexit
-
-#endif /* !dl_machine_h */
-
-#ifdef RESOLVE_MAP
-
-/* Perform the relocation specified by RELOC and SYM (which is fully resolved).
-   MAP is the object containing the reloc.  */
-
-auto inline void
-__attribute__ ((always_inline))
-elf_machine_rela (struct link_map *map, const Elf64_Rela *reloc,
-		  const Elf64_Sym *sym, const struct r_found_version *version,
-		  void *const reloc_addr_arg, int skip_ifunc)
-{
-  Elf64_Addr *const reloc_addr = reloc_addr_arg;
-  const unsigned int r_type = ELF64_R_TYPE (reloc->r_info);
-
-#if !defined RTLD_BOOTSTRAP || !defined HAVE_Z_COMBRELOC
-  if (__glibc_unlikely (r_type == R_390_RELATIVE))
-    {
-# if !defined RTLD_BOOTSTRAP && !defined HAVE_Z_COMBRELOC
-      /* This is defined in rtld.c, but nowhere in the static libc.a;
-	 make the reference weak so static programs can still link.
-	 This declaration cannot be done when compiling rtld.c
-	 (i.e. #ifdef RTLD_BOOTSTRAP) because rtld.c contains the
-	 common defn for _dl_rtld_map, which is incompatible with a
-	 weak decl in the same file.  */
-#  ifndef SHARED
-      weak_extern (GL(dl_rtld_map));
-#  endif
-      if (map != &GL(dl_rtld_map)) /* Already done in rtld itself.  */
-# endif
-	*reloc_addr = map->l_addr + reloc->r_addend;
-    }
-  else
-#endif
-  if (__glibc_unlikely (r_type == R_390_NONE))
-    return;
-  else
-    {
-#if !defined RTLD_BOOTSTRAP && !defined RESOLVE_CONFLICT_FIND_MAP
-      /* Only needed for R_390_COPY below.  */
-      const Elf64_Sym *const refsym = sym;
-#endif
-      struct link_map *sym_map = RESOLVE_MAP (&sym, version, r_type);
-      Elf64_Addr value = sym == NULL ? 0 : sym_map->l_addr + sym->st_value;
-
-      if (sym != NULL
-	  && __builtin_expect (ELFW(ST_TYPE) (sym->st_info) == STT_GNU_IFUNC,
-			       0)
-	  && __builtin_expect (sym->st_shndx != SHN_UNDEF, 1)
-	  && __builtin_expect (!skip_ifunc, 1))
-	value = elf_ifunc_invoke (value);
-
-      switch (r_type)
-	{
-	case R_390_IRELATIVE:
-	  value = map->l_addr + reloc->r_addend;
-	  if (__glibc_likely (!skip_ifunc))
-	    value = elf_ifunc_invoke (value);
-	  *reloc_addr = value;
-	  break;
-	case R_390_GLOB_DAT:
-	case R_390_JMP_SLOT:
-	  *reloc_addr = value + reloc->r_addend;
-	  break;
-
-#ifndef RESOLVE_CONFLICT_FIND_MAP
-	case R_390_TLS_DTPMOD:
-# ifdef RTLD_BOOTSTRAP
-	  /* During startup the dynamic linker is always the module
-	     with index 1.
-	     XXX If this relocation is necessary move before RESOLVE
-	     call.  */
-	  *reloc_addr = 1;
-# else
-	  /* Get the information from the link map returned by the
-	     resolv function.  */
-	  if (sym_map != NULL)
-	    *reloc_addr = sym_map->l_tls_modid;
-# endif
-	  break;
-	case R_390_TLS_DTPOFF:
-# ifndef RTLD_BOOTSTRAP
-	  /* During relocation all TLS symbols are defined and used.
-	     Therefore the offset is already correct.  */
-	  if (sym != NULL)
-	    *reloc_addr = sym->st_value + reloc->r_addend;
-# endif
-	  break;
-	case R_390_TLS_TPOFF:
-	  /* The offset is negative, forward from the thread pointer.  */
-# ifdef RTLD_BOOTSTRAP
-	  *reloc_addr = sym->st_value + reloc->r_addend - map->l_tls_offset;
-# else
-	  /* We know the offset of the object the symbol is contained in.
-	     It is a negative value which will be added to the
-	     thread pointer.  */
-	  if (sym != NULL)
-	    {
-	      CHECK_STATIC_TLS (map, sym_map);
-	      *reloc_addr = (sym->st_value + reloc->r_addend
-			     - sym_map->l_tls_offset);
-	    }
-#endif
-	  break;
-#endif  /* use TLS */
-
-#ifndef RTLD_BOOTSTRAP
-# ifndef RESOLVE_CONFLICT_FIND_MAP
-	/* Not needed for dl-conflict.c.  */
-	case R_390_COPY:
-	  if (sym == NULL)
-	    /* This can happen in trace mode if an object could not be
-	       found.  */
-	    break;
-	  if (__builtin_expect (sym->st_size > refsym->st_size, 0)
-	      || (__builtin_expect (sym->st_size < refsym->st_size, 0)
-		  && __builtin_expect (GLRO(dl_verbose), 0)))
-	    {
-	      const char *strtab;
-
-	      strtab = (const char *) D_PTR (map,l_info[DT_STRTAB]);
-	      _dl_error_printf ("\
-%s: Symbol `%s' has different size in shared object, consider re-linking\n",
-				RTLD_PROGNAME, strtab + refsym->st_name);
-	    }
-	  memcpy (reloc_addr_arg, (void *) value,
-		  MIN (sym->st_size, refsym->st_size));
-	  break;
-# endif
-	case R_390_64:
-	  *reloc_addr = value + reloc->r_addend;
-	  break;
-	case R_390_32:
-	  *(unsigned int *) reloc_addr = value + reloc->r_addend;
-	  break;
-	case R_390_16:
-	  *(unsigned short *) reloc_addr = value + reloc->r_addend;
-	  break;
-	case R_390_8:
-	  *(char *) reloc_addr = value + reloc->r_addend;
-	  break;
-# ifndef RESOLVE_CONFLICT_FIND_MAP
-	case R_390_PC64:
-	  *reloc_addr = value +reloc->r_addend - (Elf64_Addr) reloc_addr;
-	  break;
-	case R_390_PC32DBL:
-	  *(unsigned int *) reloc_addr = (unsigned int)
-	    ((int) (value + reloc->r_addend - (Elf64_Addr) reloc_addr) >> 1);
-	  break;
-	case R_390_PC32:
-	  *(unsigned int *) reloc_addr =
-	    value + reloc->r_addend - (Elf64_Addr) reloc_addr;
-	  break;
-	case R_390_PC16DBL:
-	  *(unsigned short *) reloc_addr = (unsigned short)
-	    ((short) (value + reloc->r_addend - (Elf64_Addr) reloc_addr) >> 1);
-	  break;
-	case R_390_PC16:
-	  *(unsigned short *) reloc_addr =
-	    value + reloc->r_addend - (Elf64_Addr) reloc_addr;
-	  break;
-	case R_390_NONE:
-	  break;
-# endif
-#endif
-#if !defined(RTLD_BOOTSTRAP) || defined(_NDEBUG)
-	default:
-	  /* We add these checks in the version to relocate ld.so only
-	     if we are still debugging.	 */
-	  _dl_reloc_bad_type (map, r_type, 0);
-	  break;
-#endif
-	}
-    }
-}
-
-auto inline void
-__attribute__ ((always_inline))
-elf_machine_rela_relative (Elf64_Addr l_addr, const Elf64_Rela *reloc,
-			   void *const reloc_addr_arg)
-{
-  Elf64_Addr *const reloc_addr = reloc_addr_arg;
-  *reloc_addr = l_addr + reloc->r_addend;
-}
-
-auto inline void
-__attribute__ ((always_inline))
-elf_machine_lazy_rel (struct link_map *map,
-		      Elf64_Addr l_addr, const Elf64_Rela *reloc,
-		      int skip_ifunc)
-{
-  Elf64_Addr *const reloc_addr = (void *) (l_addr + reloc->r_offset);
-  const unsigned int r_type = ELF64_R_TYPE (reloc->r_info);
-  /* Check for unexpected PLT reloc type.  */
-  if (__glibc_likely (r_type == R_390_JMP_SLOT))
-    {
-      if (__builtin_expect (map->l_mach.plt, 0) == 0)
-	*reloc_addr += l_addr;
-      else
-	*reloc_addr = map->l_mach.plt + (reloc - map->l_mach.jmprel) * 32;
-    }
-  else if (__glibc_likely (r_type == R_390_IRELATIVE))
-    {
-      Elf64_Addr value = map->l_addr + reloc->r_addend;
-      if (__glibc_likely (!skip_ifunc))
-	value = elf_ifunc_invoke (value);
-      *reloc_addr = value;
-    }
-  else
-    _dl_reloc_bad_type (map, r_type, 1);
-}
-
-#endif /* RESOLVE_MAP */
diff --git a/sysdeps/s390/s390-64/dl-trampoline.S b/sysdeps/s390/s390-64/dl-trampoline.S
deleted file mode 100644
index 2e3b141e30..0000000000
--- a/sysdeps/s390/s390-64/dl-trampoline.S
+++ /dev/null
@@ -1,33 +0,0 @@
-/* PLT trampolines.  s390x version.
-   Copyright (C) 2005-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <sysdep.h>
-
-	.text
-/* Create variant of _dl_runtime_resolve/profile for machines before z13.
-   No vector registers are saved/restored.  */
-#include <dl-trampoline.h>
-
-#if defined HAVE_S390_VX_ASM_SUPPORT
-/* Create variant of _dl_runtime_resolve/profile for z13 and newer.
-   The vector registers are saved/restored, too.*/
-# define _dl_runtime_resolve _dl_runtime_resolve_vx
-# define _dl_runtime_profile _dl_runtime_profile_vx
-# define RESTORE_VRS
-# include <dl-trampoline.h>
-#endif
diff --git a/sysdeps/s390/s390-64/dl-trampoline.h b/sysdeps/s390/s390-64/dl-trampoline.h
deleted file mode 100644
index e1f95e2ecd..0000000000
--- a/sysdeps/s390/s390-64/dl-trampoline.h
+++ /dev/null
@@ -1,225 +0,0 @@
-/* PLT trampolines.  s390x version.
-   Copyright (C) 2016-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-/* The PLT stubs will call _dl_runtime_resolve/_dl_runtime_profile
- * with the following linkage:
- *   r2 - r6 : parameter registers
- *   f0, f2, f4, f6 : floating point parameter registers
- *   v24, v26, v28, v30, v25, v27, v29, v31 : vector parameter registers
- *   48(r15), 56(r15) : PLT arguments PLT1, PLT2
- *   160(r15) : additional stack parameters
- * The normal clobber rules for function calls apply:
- *   r0 - r5 : call clobbered
- *   r6 - r13 :	 call saved
- *   r14 : return address (call clobbered)
- *   r15 : stack pointer (call saved)
- *   f0 - f7 : call clobbered
- *   f8 - f15 : call saved
- *   v0 - v7 : bytes 0-7 overlap with f0-f7: call clobbered
-               bytes 8-15: call clobbered
- *   v8 - v15 : bytes 0-7 overlap with f8-f15: call saved
-                bytes 8-15: call clobbered
- *   v16 - v31 : call clobbered
- */
-
-	.globl _dl_runtime_resolve
-	.type _dl_runtime_resolve, @function
-	cfi_startproc
-	.align 16
-_dl_runtime_resolve:
-	stmg   %r2,%r5,64(%r15)	# save call-clobbered argument registers
-	cfi_offset (r2, -96)
-	cfi_offset (r3, -88)
-	cfi_offset (r4, -80)
-	cfi_offset (r5, -72)
-	std    %f0,104(%r15)
-	cfi_offset (f0, -56)
-	std    %f2,112(%r15)
-	cfi_offset (f2, -48)
-	std    %f4,120(%r15)
-	cfi_offset (f4, -40)
-	std    %f6,128(%r15)
-	cfi_offset (f6, -32)
-	stg    %r14,96(15)
-	cfi_offset (r14, -64)
-	lmg    %r2,%r3,48(%r15) # load args for fixup saved by PLT
-	lgr    %r0,%r15
-#ifdef RESTORE_VRS
-	aghi   %r15,-288        # create stack frame
-	cfi_adjust_cfa_offset (288)
-	.machine push
-	.machine "z13"
-	vstm   %v24,%v31,160(%r15)# store call-clobbered vector argument registers
-	cfi_offset (v24, -288)
-	cfi_offset (v25, -272)
-	cfi_offset (v26, -256)
-	cfi_offset (v27, -240)
-	cfi_offset (v28, -224)
-	cfi_offset (v29, -208)
-	cfi_offset (v30, -192)
-	cfi_offset (v31, -176)
-	.machine pop
-#else
-	aghi   %r15,-160        # create stack frame
-	cfi_adjust_cfa_offset (160)
-#endif
-	stg    %r0,0(%r15)      # write backchain
-	brasl  %r14,_dl_fixup	# call _dl_fixup
-	lgr    %r1,%r2		# function addr returned in r2
-#ifdef RESTORE_VRS
-	.machine push
-	.machine "z13"
-	vlm    %v24,%v31,160(%r15)# restore vector registers
-	.machine pop
-	aghi   %r15,288         # remove stack frame
-	cfi_adjust_cfa_offset (-288)
-#else
-	aghi   %r15,160         # remove stack frame
-	cfi_adjust_cfa_offset (-160)
-#endif
-	lg     %r14,96(%r15)	# restore registers
-	ld     %f0,104(%r15)
-	ld     %f2,112(%r15)
-	ld     %f4,120(%r15)
-	ld     %f6,128(%r15)
-	lmg    %r2,%r5,64(%r15)
-	br     %r1
-	cfi_endproc
-	.size _dl_runtime_resolve, .-_dl_runtime_resolve
-
-
-#ifndef PROF
-	.globl _dl_runtime_profile
-	.type _dl_runtime_profile, @function
-	cfi_startproc
-	.align 16
-_dl_runtime_profile:
-	stg    %r12,24(%r15)		# r12 is used as backup of r15
-	cfi_offset (r12, -136)
-	stg    %r14,32(%r15)
-	cfi_offset (r14, -128)
-	lgr    %r12,%r15		# backup stack pointer
-	cfi_def_cfa_register (12)
-	aghi   %r15,-360		# create stack frame:
-					# 160 + sizeof(La_s390_64_regs)
-	stg    %r12,0(%r15)		# save backchain
-
-	stmg   %r2,%r6,160(%r15)	# save call-clobbered arg regs
-	cfi_offset (r2, -360)		# + r6 needed as arg for
-	cfi_offset (r3, -352)		#  _dl_profile_fixup
-	cfi_offset (r4, -344)
-	cfi_offset (r5, -336)
-	cfi_offset (r6, -328)
-	std    %f0,200(%r15)
-	cfi_offset (f0, -320)
-	std    %f2,208(%r15)
-	cfi_offset (f2, -312)
-	std    %f4,216(%r15)
-	cfi_offset (f4, -304)
-	std    %f6,224(%r15)
-	cfi_offset (f6, -296)
-#ifdef RESTORE_VRS
-	.machine push
-	.machine "z13"
-	vstm   %v24,%v31,232(%r15)      # store call-clobbered vector arguments
-	cfi_offset (v24, -288)
-	cfi_offset (v25, -272)
-	cfi_offset (v26, -256)
-	cfi_offset (v27, -240)
-	cfi_offset (v28, -224)
-	cfi_offset (v29, -208)
-	cfi_offset (v30, -192)
-	cfi_offset (v31, -176)
-	.machine pop
-#endif
-	lmg    %r2,%r3,48(%r12)		# load arguments saved by PLT
-	lgr    %r4,%r14			# return address as third parameter
-	la     %r5,160(%r15)		# pointer to struct La_s390_64_regs
-	la     %r6,40(%r12)		# long int * framesize
-	brasl  %r14,_dl_profile_fixup	# call resolver
-	lgr    %r1,%r2			# function addr returned in r2
-	ld     %f0,200(%r15)		# restore call-clobbered arg fprs
-	ld     %f2,208(%r15)
-	ld     %f4,216(%r15)
-	ld     %f6,224(%r15)
-#ifdef RESTORE_VRS
-	.machine push
-	.machine "z13"
-	vlm    %v24,%v31,232(%r15)	# restore call-clobbered arg vrs
-	.machine pop
-#endif
-	lg     %r0,40(%r12)		# load framesize
-	ltgr   %r0,%r0
-	jnm    1f
-
-	lmg    %r2,%r6,160(%r15)	# framesize < 0 means no pltexit call
-					# so we can do a tail call without
-					# copying the arg overflow area
-	lgr    %r15,%r12		# remove stack frame
-	cfi_def_cfa_register (15)
-	lg     %r14,32(%r15)		# restore registers
-	lg     %r12,24(%r15)
-	br     %r1			# tail-call to resolved function
-
-	cfi_def_cfa_register (12)
-1:	la     %r4,160(%r15)		# pointer to struct La_s390_64_regs
-	stg    %r4,64(%r12)
-	jz     4f			# framesize == 0 ?
-	aghi   %r0,7			# align framesize to 8
-	nill   %r0,0xfff8
-	slgr   %r15,%r0			# make room for framesize bytes
-	stg    %r12,0(%r15)		# save backchain
-	la     %r2,160(%r15)
-	la     %r3,160(%r12)
-	srlg   %r0,%r0,3
-3:	mvc    0(8,%r2),0(%r3)		# copy additional parameters
-	la     %r2,8(%r2)		# depending on framesize
-	la     %r3,8(%r3)
-	brctg  %r0,3b
-4:	lmg    %r2,%r6,0(%r4)		# restore call-clobbered arg gprs
-	basr   %r14,%r1			# call resolved function
-	stg    %r2,72(%r12)		# store return values r2, f0
-	std    %f0,80(%r12)		# to struct La_s390_64_retval
-#ifdef RESTORE_VRS
-	.machine push
-	.machine "z13"
-	vst    %v24,88(%r12)		# store return value v24
-	.machine pop
-#endif
-	lmg    %r2,%r4,48(%r12)		# r2, r3: load arguments saved by PLT
-					# r4: pointer to struct La_s390_64_regs
-	la     %r5,72(%r12)		# pointer to struct La_s390_64_retval
-	brasl  %r14,_dl_call_pltexit
-
-	lgr    %r15,%r12		# remove stack frame
-	cfi_def_cfa_register (15)
-	lg     %r14,32(%r15)		# restore registers
-	lg     %r12,24(%r15)
-	lg     %r2,72(%r15)		# restore return values
-	ld     %f0,80(%r15)
-#ifdef RESTORE_VRS
-	.machine push
-	.machine "z13"
-	vl    %v24,88(%r15)		# restore return value v24
-	.machine pop
-#endif
-	br     %r14			# Jump back to caller
-
-	cfi_endproc
-	.size _dl_runtime_profile, .-_dl_runtime_profile
-#endif
diff --git a/sysdeps/s390/s390-64/memchr.S b/sysdeps/s390/s390-64/memchr.S
deleted file mode 100644
index 7deee3d6f3..0000000000
--- a/sysdeps/s390/s390-64/memchr.S
+++ /dev/null
@@ -1,40 +0,0 @@
-/* Search a character in a block of memory.  64 bit S/390 version.
-   Copyright (C) 2001-2017 Free Software Foundation, Inc.
-   Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com).
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-/* INPUT PARAMETERS
-     %r2 = address to memory area
-     %r3 = character to find
-     %r4 = number of bytes to search.  */
-
-#include "sysdep.h"
-#include "asm-syntax.h"
-
-	.text
-ENTRY(memchr)
-	lghi  %r0,0xff
-	ngr   %r0,%r3
-	lgr   %r1,%r2
-	la    %r2,0(%r4,%r1)
-0:	srst  %r2,%r1
-	jo    0b
-	brc   13,1f
-	slgr  %r2,%r2
-1:	br    %r14
-END(memchr)
-libc_hidden_builtin_def (memchr)
diff --git a/sysdeps/s390/s390-64/memcmp.S b/sysdeps/s390/s390-64/memcmp.S
deleted file mode 100644
index cecffc39f9..0000000000
--- a/sysdeps/s390/s390-64/memcmp.S
+++ /dev/null
@@ -1,64 +0,0 @@
-/* memcmp - compare two memory blocks.  64 bit S/390 version.
-   Copyright (C) 2012-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-
-#include <sysdep.h>
-#include "asm-syntax.h"
-
-/* INPUT PARAMETERS
-     %r2 = address of first memory area
-     %r3 = address of second memory area
-     %r4 = number of bytes to compare.  */
-
-       .text
-#ifdef USE_MULTIARCH
-ENTRY(__memcmp_default)
-#else
-ENTRY(memcmp)
-#endif
-	.machine "z900"
-	ltgr    %r4,%r4
-	je      .L_Z900_4
-	aghi    %r4,-1
-	srlg    %r1,%r4,8
-	ltgr    %r1,%r1
-	jne     .L_Z900_12
-.L_Z900_3:
-	larl    %r1,.L_Z900_15
-	ex      %r4,0(%r1)
-.L_Z900_4:
-	ipm     %r2
-	sllg    %r2,%r2,34
-	srag    %r2,%r2,62
-	br      %r14
-.L_Z900_12:
-	clc     0(256,%r3),0(%r2)
-	jne     .L_Z900_4
-	la      %r3,256(%r3)
-	la      %r2,256(%r2)
-	brctg   %r1,.L_Z900_12
-	j       .L_Z900_3
-.L_Z900_15:
-	clc     0(1,%r3),0(%r2)
-#ifdef USE_MULTIARCH
-END(__memcmp_default)
-#else
-END(memcmp)
-libc_hidden_builtin_def (memcmp)
-weak_alias (memcmp, bcmp)
-#endif
diff --git a/sysdeps/s390/s390-64/memcpy.S b/sysdeps/s390/s390-64/memcpy.S
deleted file mode 100644
index 3df07b5e23..0000000000
--- a/sysdeps/s390/s390-64/memcpy.S
+++ /dev/null
@@ -1,88 +0,0 @@
-/* memcpy - copy a block from source to destination.  64 bit S/390 version.
-   Copyright (C) 2012-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-
-#include <sysdep.h>
-#include "asm-syntax.h"
-
-/* INPUT PARAMETERS
-     %r2 = address of destination memory area
-     %r3 = address of source memory area
-     %r4 = number of bytes to copy.  */
-
-
-       .text
-ENTRY(__mempcpy)
-	.machine "z900"
-	lgr     %r1,%r2             # Use as dest
-	la      %r2,0(%r4,%r2)      # Return dest + n
-	j	.L_Z900_start
-END(__mempcpy)
-#ifndef USE_MULTIARCH
-libc_hidden_def (__mempcpy)
-weak_alias (__mempcpy, mempcpy)
-libc_hidden_builtin_def (mempcpy)
-#endif
-
-ENTRY(memcpy)
-	.machine "z900"
-	lgr     %r1,%r2             # r1: Use as dest ; r2: Return dest
-.L_Z900_start:
-	ltgr    %r4,%r4
-	je      .L_Z900_4
-	aghi    %r4,-1
-	srlg    %r5,%r4,8
-	ltgr    %r5,%r5
-	jne     .L_Z900_13
-.L_Z900_3:
-	larl    %r5,.L_Z900_15
-	ex      %r4,0(%r5)
-.L_Z900_4:
-	br      %r14
-.L_Z900_13:
-	cghi	%r5,4096            # Switch to mvcle for copies >1MB
-	jh      __memcpy_mvcle
-.L_Z900_12:
-	mvc     0(256,%r1),0(%r3)
-	la      %r1,256(%r1)
-	la      %r3,256(%r3)
-	brctg   %r5,.L_Z900_12
-	j       .L_Z900_3
-.L_Z900_15:
-	mvc     0(1,%r1),0(%r3)
-END(memcpy)
-#ifndef USE_MULTIARCH
-libc_hidden_builtin_def (memcpy)
-#endif
-
-ENTRY(__memcpy_mvcle)
-	# Using as standalone function will result in unexpected
-	# results since the length field is incremented by 1 in order to
-	# compensate the changes already done in the functions above.
-	lgr     %r0,%r2             # backup return dest [ + n ]
-	aghi    %r4,1               # length + 1
-	lgr     %r5,%r4             # source length
-	lgr     %r4,%r3             # source address
-	lgr     %r2,%r1             # destination address
-	lgr     %r3,%r5             # destination length = source length
-.L_MVCLE_1:
-	mvcle   %r2,%r4,0           # thats it, MVCLE is your friend
-	jo      .L_MVCLE_1
-	lgr     %r2,%r0             # return destination address
-	br      %r14
-END(__memcpy_mvcle)
diff --git a/sysdeps/s390/s390-64/memset.S b/sysdeps/s390/s390-64/memset.S
deleted file mode 100644
index e653f12134..0000000000
--- a/sysdeps/s390/s390-64/memset.S
+++ /dev/null
@@ -1,64 +0,0 @@
-/* Set a block of memory to some byte value.  64 bit S/390 version.
-   Copyright (C) 2001-2017 Free Software Foundation, Inc.
-   Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com).
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-
-#include <sysdep.h>
-#include "asm-syntax.h"
-
-/* INPUT PARAMETERS
-     %r2 = address of memory area
-     %r3 = byte to fill memory with
-     %r4 = number of bytes to fill.  */
-
-       .text
-
-#ifdef USE_MULTIARCH
-ENTRY(__memset_default)
-#else
-ENTRY(memset)
-#endif
-	.machine "z900"
-	ltgr    %r4,%r4
-	je      .L_Z900_4
-	stc     %r3,0(%r2)
-	cghi    %r4,1
-	lgr     %r1,%r2
-	je      .L_Z900_4
-	aghi    %r4,-2
-	srlg    %r3,%r4,8
-	ltgr    %r3,%r3
-	jne     .L_Z900_14
-.L_Z900_3:
-	larl    %r3,.L_Z900_18
-	ex      %r4,0(%r3)
-.L_Z900_4:
-	br      %r14
-.L_Z900_14:
-	mvc     1(256,%r1),0(%r1)
-	la      %r1,256(%r1)
-	brctg   %r3,.L_Z900_14
-	j       .L_Z900_3
-.L_Z900_18:
-	mvc     1(1,%r1),0(%r1)
-#ifdef USE_MULTIARCH
-END(__memset_default)
-#else
-END(memset)
-libc_hidden_builtin_def (memset)
-#endif
diff --git a/sysdeps/s390/s390-64/multiarch/Makefile b/sysdeps/s390/s390-64/multiarch/Makefile
deleted file mode 100644
index 91053b5364..0000000000
--- a/sysdeps/s390/s390-64/multiarch/Makefile
+++ /dev/null
@@ -1,4 +0,0 @@
-ifeq ($(subdir),string)
-sysdep_routines += memset memset-s390x memcpy memcpy-s390x \
-		   memcmp memcmp-s390x
-endif
diff --git a/sysdeps/s390/s390-64/multiarch/memchr.c b/sysdeps/s390/s390-64/multiarch/memchr.c
deleted file mode 100644
index 808c3b837a..0000000000
--- a/sysdeps/s390/s390-64/multiarch/memchr.c
+++ /dev/null
@@ -1,21 +0,0 @@
-/* Multiple versions of memchr.
-   Copyright (C) 2015-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-/* This wrapper-file is needed, because otherwise file
-   sysdeps/s390/s390-[32|64]/memchr.S will be used.  */
-#include <sysdeps/s390/multiarch/memchr.c>
diff --git a/sysdeps/s390/s390-64/multiarch/memcmp-s390x.S b/sysdeps/s390/s390-64/multiarch/memcmp-s390x.S
deleted file mode 100644
index da956d2568..0000000000
--- a/sysdeps/s390/s390-64/multiarch/memcmp-s390x.S
+++ /dev/null
@@ -1,104 +0,0 @@
-/* CPU specific memcmp implementations.  64 bit S/390 version.
-   Copyright (C) 2012-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-
-#include "sysdep.h"
-#include "asm-syntax.h"
-
-/* INPUT PARAMETERS
-     %r2 = address of first memory area
-     %r3 = address of second memory area
-     %r4 = number of bytes to compare.  */
-
-       .text
-
-#if IS_IN (libc)
-
-ENTRY(__memcmp_z196)
-	.machine "z196"
-	ltgr    %r4,%r4
-	je      .L_Z196_4
-	aghi    %r4,-1
-	srlg    %r1,%r4,8
-	ltgr    %r1,%r1
-	jne     .L_Z196_2
-.L_Z196_3:
-	exrl    %r4,.L_Z196_14
-.L_Z196_4:
-	ipm     %r2
-	sllg    %r2,%r2,34
-	srag    %r2,%r2,62
-	br      %r14
-.L_Z196_17:
-	la      %r3,256(%r3)
-	la      %r2,256(%r2)
-	aghi    %r1,-1
-	je      .L_Z196_3
-.L_Z196_2:
-	pfd     1,512(%r3)
-	pfd     1,512(%r2)
-	clc     0(256,%r3),0(%r2)
-	je      .L_Z196_17
-	ipm     %r2
-	sllg    %r2,%r2,34
-	srag    %r2,%r2,62
-	br      %r14
-.L_Z196_14:
-	clc     0(1,%r3),0(%r2)
-END(__memcmp_z196)
-
-ENTRY(__memcmp_z10)
-	.machine "z10"
-	ltgr    %r4,%r4
-	je      .L_Z10_4
-	aghi    %r4,-1
-	srlg    %r1,%r4,8
-	cgijlh  %r1,0,.L_Z10_12
-.L_Z10_3:
-	exrl    %r4,.L_Z10_15
-.L_Z10_4:
-	ipm     %r2
-	sllg    %r2,%r2,34
-	srag    %r2,%r2,62
-	br      %r14
-.L_Z10_12:
-	pfd     1,512(%r3)
-	pfd     1,512(%r2)
-	clc     0(256,%r3),0(%r2)
-	jne     .L_Z10_4
-	la      %r3,256(%r3)
-	la      %r2,256(%r2)
-	brctg   %r1,.L_Z10_12
-	j       .L_Z10_3
-.L_Z10_15:
-	clc     0(1,%r3),0(%r2)
-END(__memcmp_z10)
-
-#endif /* IS_IN (libc) */
-
-#include "../memcmp.S"
-
-#if !IS_IN (libc)
-.globl   memcmp
-.set     memcmp,__memcmp_default
-.weak    bcmp
-.set	 bcmp,__memcmp_default
-#elif defined SHARED && IS_IN (libc)
-.globl   __GI_memcmp
-.set     __GI_memcmp,__memcmp_default
-#endif
diff --git a/sysdeps/s390/s390-64/multiarch/memcmp.c b/sysdeps/s390/s390-64/multiarch/memcmp.c
deleted file mode 100644
index 2d8d8f4d50..0000000000
--- a/sysdeps/s390/s390-64/multiarch/memcmp.c
+++ /dev/null
@@ -1,27 +0,0 @@
-/* Multiple versions of memcmp.
-   Copyright (C) 2015-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#if IS_IN (libc)
-# define memcmp __redirect_memcmp
-# include <string.h>
-# undef memcmp
-# include <ifunc-resolve.h>
-
-s390_libc_ifunc (__redirect_memcmp, __memcmp, memcmp)
-weak_alias (memcmp, bcmp);
-#endif
diff --git a/sysdeps/s390/s390-64/multiarch/memcpy-s390x.S b/sysdeps/s390/s390-64/multiarch/memcpy-s390x.S
deleted file mode 100644
index a9ffa9cc98..0000000000
--- a/sysdeps/s390/s390-64/multiarch/memcpy-s390x.S
+++ /dev/null
@@ -1,122 +0,0 @@
-/* CPU specific memcpy implementations.  64 bit S/390 version.
-   Copyright (C) 2012-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-
-#include "sysdep.h"
-#include "asm-syntax.h"
-
-/* INPUT PARAMETERS
-     %r2 = target operands address
-     %r3 = source operands address
-     %r4 = number of bytes to copy.  */
-
-       .text
-
-#if defined SHARED && IS_IN (libc)
-
-ENTRY(____mempcpy_z196)
-	.machine "z196"
-	lgr     %r1,%r2         # Use as dest
-	la      %r2,0(%r4,%r2)  # Return dest + n
-	j	.L_Z196_start
-END(____mempcpy_z196)
-
-ENTRY(__memcpy_z196)
-	.machine "z196"
-	lgr     %r1,%r2         # r1: Use as dest ; r2: Return dest
-.L_Z196_start:
-	ltgr    %r4,%r4
-	je      .L_Z196_4
-	aghi    %r4,-1
-	srlg    %r5,%r4,8
-	ltgr    %r5,%r5
-	jne     .L_Z196_5
-.L_Z196_3:
-	exrl    %r4,.L_Z196_14
-.L_Z196_4:
-	br      %r14
-.L_Z196_5:
-	cgfi    %r5,262144      # Switch to mvcle for copies >64MB
-	jh      __memcpy_mvcle
-.L_Z196_2:
-	pfd     1,768(%r3)
-	pfd     2,768(%r1)
-	mvc     0(256,%r1),0(%r3)
-	aghi    %r5,-1
-	la      %r1,256(%r1)
-	la      %r3,256(%r3)
-	jne     .L_Z196_2
-	j       .L_Z196_3
-.L_Z196_14:
-	mvc     0(1,%r1),0(%r3)
-END(__memcpy_z196)
-
-ENTRY(____mempcpy_z10)
-	.machine "z10"
-	lgr     %r1,%r2         # Use as dest
-	la      %r2,0(%r4,%r2)  # Return dest + n
-	j	.L_Z10_start
-END(____mempcpy_z10)
-
-ENTRY(__memcpy_z10)
-	.machine "z10"
-	lgr     %r1,%r2         # r1: Use as dest ; r2: Return dest
-.L_Z10_start:
-	cgije   %r4,0,.L_Z10_4
-	aghi    %r4,-1
-	srlg    %r5,%r4,8
-	cgijlh  %r5,0,.L_Z10_13
-.L_Z10_3:
-	exrl    %r4,.L_Z10_15
-.L_Z10_4:
-	br      %r14
-.L_Z10_13:
-	cgfi    %r5,65535	# Switch to mvcle for copies >16MB
-	jh      __memcpy_mvcle
-.L_Z10_12:
-	pfd     1,768(%r3)
-	pfd     2,768(%r1)
-	mvc     0(256,%r1),0(%r3)
-	la      %r1,256(%r1)
-	la      %r3,256(%r3)
-	brctg   %r5,.L_Z10_12
-	j       .L_Z10_3
-.L_Z10_15:
-	mvc     0(1,%r1),0(%r3)
-END(__memcpy_z10)
-
-# define __mempcpy ____mempcpy_default
-#endif /* SHARED && IS_IN (libc) */
-
-#define memcpy __memcpy_default
-#include "../memcpy.S"
-#undef memcpy
-
-#if defined SHARED && IS_IN (libc)
-.globl   __GI_memcpy
-.set     __GI_memcpy,__memcpy_default
-.globl   __GI_mempcpy
-.set     __GI_mempcpy,____mempcpy_default
-.globl   __GI___mempcpy
-.set     __GI___mempcpy,____mempcpy_default
-#else
-.globl   memcpy
-.set     memcpy,__memcpy_default
-.weak    mempcpy
-.set     mempcpy,__mempcpy
-#endif
diff --git a/sysdeps/s390/s390-64/multiarch/memcpy.c b/sysdeps/s390/s390-64/multiarch/memcpy.c
deleted file mode 100644
index 4b8e546fb0..0000000000
--- a/sysdeps/s390/s390-64/multiarch/memcpy.c
+++ /dev/null
@@ -1,27 +0,0 @@
-/* Multiple versions of memcpy.
-   Copyright (C) 2015-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-/* In the static lib memcpy is needed before the reloc is resolved.  */
-#if defined SHARED && IS_IN (libc)
-# define memcpy __redirect_memcpy
-# include <string.h>
-# undef memcpy
-# include <ifunc-resolve.h>
-
-s390_libc_ifunc (__redirect_memcpy, __memcpy, memcpy)
-#endif
diff --git a/sysdeps/s390/s390-64/multiarch/memset-s390x.S b/sysdeps/s390/s390-64/multiarch/memset-s390x.S
deleted file mode 100644
index ca0c4326b1..0000000000
--- a/sysdeps/s390/s390-64/multiarch/memset-s390x.S
+++ /dev/null
@@ -1,112 +0,0 @@
-/* Set a block of memory to some byte value.  64 bit S/390 version.
-   Copyright (C) 2012-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-
-#include "sysdep.h"
-#include "asm-syntax.h"
-
-/* INPUT PARAMETERS
-     %r2 = address of memory area
-     %r3 = byte to fill memory with
-     %r4 = number of bytes to fill.  */
-
-       .text
-
-#if IS_IN (libc)
-
-ENTRY(__memset_z196)
-	.machine "z196"
-	ltgr    %r4,%r4
-	je      .L_Z196_4
-	stc     %r3,0(%r2)
-	lgr     %r1,%r2
-	cghi    %r4,1
-	je      .L_Z196_4
-	aghi    %r4,-2
-	srlg    %r5,%r4,8
-	ltgr    %r5,%r5
-	jne     .L_Z196_1
-.L_Z196_3:
-	exrl    %r4,.L_Z196_17
-.L_Z196_4:
-	br      %r14
-.L_Z196_1:
-	cgfi	%r5,1048576
-	jh	__memset_mvcle	   # Switch to mvcle for >256MB
-.L_Z196_2:
-	pfd     2,1024(%r1)
-	mvc     1(256,%r1),0(%r1)
-	aghi    %r5,-1
-	la      %r1,256(%r1)
-	jne     .L_Z196_2
-	j       .L_Z196_3
-.L_Z196_17:
-	mvc     1(1,%r1),0(%r1)
-END(__memset_z196)
-
-ENTRY(__memset_z10)
-	.machine "z10"
-	cgije   %r4,0,.L_Z10_4
-	stc     %r3,0(%r2)
-	lgr     %r1,%r2
-	cgije   %r4,1,.L_Z10_4
-	aghi    %r4,-2
-	srlg    %r5,%r4,8
-	cgijlh  %r5,0,.L_Z10_15
-.L_Z10_3:
-	exrl    %r4,.L_Z10_18
-.L_Z10_4:
-	br      %r14
-.L_Z10_15:
-	cgfi	%r5,163840          # Switch to mvcle for >40MB
-	jh	__memset_mvcle
-.L_Z10_14:
-	pfd     2,1024(%r1)
-	mvc     1(256,%r1),0(%r1)
-	la      %r1,256(%r1)
-	brctg   %r5,.L_Z10_14
-	j       .L_Z10_3
-.L_Z10_18:
-	mvc     1(1,%r1),0(%r1)
-END(__memset_z10)
-
-ENTRY(__memset_mvcle)
-	aghi	%r4,2               # take back the change done by the caller
-	lgr	%r0,%r2		    # save source address
-	lgr	%r1,%r3		    # move pad byte to R1
-	lgr	%r3,%r4             # move length to r3
-	sgr	%r4,%r4		    # no source for MVCLE, only a pad byte
-	sgr	%r5,%r5
-.L0:	mvcle	%r2,%r4,0(%r1)	    # thats it, MVCLE is your friend
-	jo	.L0
-	lgr	%r2,%r0		    # return value is source address
-.L1:
-	br	%r14
-END(__memset_mvcle)
-
-#endif /* IS_IN (libc) */
-
-#include "../memset.S"
-
-#if !IS_IN (libc)
-.globl   memset
-.set     memset,__memset_default
-#elif defined SHARED && IS_IN (libc)
-.globl   __GI_memset
-.set     __GI_memset,__memset_default
-#endif
diff --git a/sysdeps/s390/s390-64/multiarch/memset.c b/sysdeps/s390/s390-64/multiarch/memset.c
deleted file mode 100644
index 421c0854a0..0000000000
--- a/sysdeps/s390/s390-64/multiarch/memset.c
+++ /dev/null
@@ -1,26 +0,0 @@
-/* Multiple versions of memset.
-   Copyright (C) 2015-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#if IS_IN (libc)
-# define memset __redirect_memset
-# include <string.h>
-# undef memset
-# include <ifunc-resolve.h>
-
-s390_libc_ifunc (__redirect_memset, __memset, memset)
-#endif
diff --git a/sysdeps/s390/s390-64/multiarch/strcmp.c b/sysdeps/s390/s390-64/multiarch/strcmp.c
deleted file mode 100644
index 6a20a304cc..0000000000
--- a/sysdeps/s390/s390-64/multiarch/strcmp.c
+++ /dev/null
@@ -1,21 +0,0 @@
-/* Multiple versions of strcmp.
-   Copyright (C) 2015-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-/* This wrapper-file is needed, because otherwise file
-   sysdeps/s390/s390-[32|64]/strcmp.S will be used.  */
-#include <sysdeps/s390/multiarch/strcmp.c>
diff --git a/sysdeps/s390/s390-64/multiarch/strcpy.c b/sysdeps/s390/s390-64/multiarch/strcpy.c
deleted file mode 100644
index 7f380a471d..0000000000
--- a/sysdeps/s390/s390-64/multiarch/strcpy.c
+++ /dev/null
@@ -1,21 +0,0 @@
-/* Multiple versions of strcpy.
-   Copyright (C) 2015-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-/* This wrapper-file is needed, because otherwise file
-   sysdeps/s390/s390-[32|64]/strcpy.S will be used.  */
-#include <sysdeps/s390/multiarch/strcpy.c>
diff --git a/sysdeps/s390/s390-64/multiarch/strncpy.c b/sysdeps/s390/s390-64/multiarch/strncpy.c
deleted file mode 100644
index 15dacec974..0000000000
--- a/sysdeps/s390/s390-64/multiarch/strncpy.c
+++ /dev/null
@@ -1,21 +0,0 @@
-/* Multiple versions of strncpy.
-   Copyright (C) 2015-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-/* This wrapper-file is needed, because otherwise file
-   sysdeps/s390/s390-[32|64]/strncpy.S will be used.  */
-#include <sysdeps/s390/multiarch/strncpy.c>
diff --git a/sysdeps/s390/s390-64/s390x-mcount.S b/sysdeps/s390/s390-64/s390x-mcount.S
deleted file mode 100644
index 510834aa05..0000000000
--- a/sysdeps/s390/s390-64/s390x-mcount.S
+++ /dev/null
@@ -1,77 +0,0 @@
-/* 64 bit S/390-specific implementation of profiling support.
-   Copyright (C) 2001-2017 Free Software Foundation, Inc.
-   Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com)
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <sysdep.h>
-
-/* How profiling works on 64 bit S/390:
-   On the start of each function _mcount is called with the address of a
-   data word in %r1 (initialized to 0, used for counting). The compiler
-   with the option -p generates code of the form:
-
-           STM    6,15,24(15)
-           BRAS   13,.LTN0_0
-   .LT0_0:
-   .LC13:  .long  .LP0
-           .data
-           .align 4
-   .LP0:   .long  0
-           .text
-   # function profiler
-           stg    14,4(15)
-           lg     1,.LC13-.LT0_0(13)
-           brasl  14,_mcount
-           lg     14,4(15)
-
-   The _mcount implementation now has to call __mcount_internal with the
-   address of .LP0 as first parameter and the return address as second
-   parameter. &.LP0 was loaded to %r1 and the return address is in %r14.
-   _mcount may not modify any register.  */
-
-	.globl C_SYMBOL_NAME(_mcount)
-	.type C_SYMBOL_NAME(_mcount), @function
-	cfi_startproc
-	.align ALIGNARG(4)
-C_LABEL(_mcount)
-	/* Save the caller-clobbered registers.  */
-        aghi  %r15,-224
-	cfi_adjust_cfa_offset (224)
-        stmg  %r14,%r5,160(%r15)
-	cfi_offset (r14, 0)
-	cfi_offset (r15, 8)
-        lg    %r2,232(%r15)       # callers address  = first parameter
-        la    %r2,0(%r2)          # clear bit 0
-        la    %r3,0(%r14)         # callees address  = second parameter
-
-#ifdef PIC
-	brasl %r14,__mcount_internal@PLT
-#else
-	brasl %r14,__mcount_internal
-#endif
-
-	/* Pop the saved registers.  Please note that `mcount' has no
-	   return value.  */
-	lmg   %r14,%r5,160(%r15)
-        aghi   %r15,224
-	cfi_adjust_cfa_offset (-224)
-        br    %r14
-	cfi_endproc
-	ASM_SIZE_DIRECTIVE(C_SYMBOL_NAME(_mcount))
-
-#undef mcount
-weak_alias (_mcount, mcount)
diff --git a/sysdeps/s390/s390-64/setjmp.S b/sysdeps/s390/s390-64/setjmp.S
deleted file mode 100644
index ac9c878346..0000000000
--- a/sysdeps/s390/s390-64/setjmp.S
+++ /dev/null
@@ -1,118 +0,0 @@
-/* setjmp for 64 bit S/390, ELF version.
-   Copyright (C) 2001-2017 Free Software Foundation, Inc.
-   Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com).
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <sysdep.h>
-#define _ASM
-#define _SETJMP_H
-#include <bits/setjmp.h>
-#include <shlib-compat.h>
-#include <stap-probe.h>
-
-#if !IS_IN (rtld) && defined SHARED \
-  && SHLIB_COMPAT (libc, GLIBC_2_19, GLIBC_2_20)
-# define NEED_COMPAT_SYMBOLS 1
-/* We need a unique name in case of symbol versioning.  */
-# define setjmp __v1setjmp
-# define _setjmp __v1_setjmp
-# define __sigsetjmp __v1__sigsetjmp
-#else
-# define NEED_COMPAT_SYMBOLS 0
-#endif
-
-	/* We include the BSD entry points here as well.  */
-ENTRY (setjmp)
-	lghi   %r3,1                /* Second argument of one.  */
-	j      .Linternal_sigsetjmp /* Branch relativ to __sigsetjmp.  */
-END (setjmp)
-
-	/* Binary compatibility entry point.  */
-ENTRY(_setjmp)
-	slgr   %r3,%r3              /* Second argument of zero.  */
-	j      .Linternal_sigsetjmp /* Branch relativ to __sigsetjmp.  */
-END (_setjmp)
-#if NEED_COMPAT_SYMBOLS
-strong_alias (_setjmp, __GI__setjmp)
-#else
-libc_hidden_def (_setjmp)
-#endif
-
-ENTRY(__setjmp)
-	slgr   %r3,%r3              /* Second argument of zero.  */
-	j      .Linternal_sigsetjmp /* Branch relativ to __sigsetjmp.  */
-END (__setjmp)
-
-ENTRY(__sigsetjmp)
-.Linternal_sigsetjmp:
-	/* setjmp probe expects sig/setjmp first argument (8@%r2), second
-	   argument (-8@%r3) and target address (8@%r14).  */
-	LIBC_PROBE (setjmp, 3, 8@%r2, -4@%r3, 8@%r14)
-#ifdef PTR_MANGLE
-	stmg   %r6,%r13,0(%r2)      /* Store registers in jmp_buf.  */
-	lgr    %r4,%r14
-	lgr    %r5,%r15
-	PTR_MANGLE (%r4, %r1)
-	PTR_MANGLE2 (%r5, %r1)
-	stmg   %r4,%r5,64(%r2)
-#else
-	stmg   %r6,%r15,0(%r2)      /* Store registers in jmp_buf.  */
-#endif
-	std    %f8,80(%r2)
-	std    %f9,88(%r2)
-	std    %f10,96(%r2)
-	std    %f11,104(%r2)
-	std    %f12,112(%r2)
-	std    %f13,120(%r2)
-	std    %f14,128(%r2)
-	std    %f15,136(%r2)
-#if IS_IN (rtld)
-	/* In ld.so we never save the signal mask.  */
-	lghi   %r2,0
-	br     %r14
-#elif defined PIC
-	jg     __sigjmp_save@PLT    /* Branch to PLT of __sigsetjmp.  */
-#else
-	jg     __sigjmp_save
-#endif
-END (__sigsetjmp)
-#if NEED_COMPAT_SYMBOLS
-strong_alias (__sigsetjmp, __GI___sigsetjmp)
-#else
-libc_hidden_def (__sigsetjmp)
-#endif
-
-#if NEED_COMPAT_SYMBOLS
-/* In glibc release 2.19 new versions of setjmp-functions were introduced,
-   but were reverted before 2.20. Thus both versions are the same function.  */
-
-# undef setjmp
-# undef _setjmp
-# undef __sigsetjmp
-
-strong_alias (__v1setjmp, __v2setjmp);
-versioned_symbol (libc, __v1setjmp, setjmp, GLIBC_2_0);
-compat_symbol (libc, __v2setjmp, setjmp, GLIBC_2_19);
-
-strong_alias (__v1_setjmp, __v2_setjmp);
-versioned_symbol (libc, __v1_setjmp, _setjmp, GLIBC_2_0);
-compat_symbol (libc, __v2_setjmp, _setjmp, GLIBC_2_19);
-
-strong_alias (__v1__sigsetjmp, __v2__sigsetjmp);
-versioned_symbol (libc, __v1__sigsetjmp, __sigsetjmp, GLIBC_2_0);
-compat_symbol (libc, __v2__sigsetjmp, __sigsetjmp, GLIBC_2_19);
-#endif /* NEED_COMPAT_SYMBOLS */
diff --git a/sysdeps/s390/s390-64/stackguard-macros.h b/sysdeps/s390/s390-64/stackguard-macros.h
deleted file mode 100644
index 2c97d3824f..0000000000
--- a/sysdeps/s390/s390-64/stackguard-macros.h
+++ /dev/null
@@ -1,18 +0,0 @@
-#include <stdint.h>
-
-#define STACK_CHK_GUARD \
-  ({ uintptr_t x; __asm__ ("ear %0,%%a0; sllg %0,%0,32; ear %0,%%a1; lg %0,0x28(%0)" : "=a" (x)); x; })
-
-/* On s390/s390x there is no unique pointer guard, instead we use the
-   same value as the stack guard.  */
-#define POINTER_CHK_GUARD					\
-  ({								\
-    uintptr_t x;						\
-    __asm__ ("ear %0,%%a0;"					\
-	     "sllg %0,%0,32;"					\
-	     "ear %0,%%a1;"					\
-	     "lg %0,%1(%0)"					\
-	     : "=a" (x)						\
-	     : "i" (offsetof (tcbhead_t, stack_guard)));	\
-    x;								\
-  })
diff --git a/sysdeps/s390/s390-64/start.S b/sysdeps/s390/s390-64/start.S
deleted file mode 100644
index d8e65450d8..0000000000
--- a/sysdeps/s390/s390-64/start.S
+++ /dev/null
@@ -1,100 +0,0 @@
-/* Startup code compliant to the 64 bit S/390 ELF ABI.
-   Copyright (C) 2001-2017 Free Software Foundation, Inc.
-   Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com).
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   In addition to the permissions in the GNU Lesser General Public
-   License, the Free Software Foundation gives you unlimited
-   permission to link the compiled version of this file with other
-   programs, and to distribute those programs without any restriction
-   coming from the use of this file. (The GNU Lesser General Public
-   License restrictions do apply in other respects; for example, they
-   cover modification of the file, and distribution when not linked
-   into another program.)
-
-   Note that people who make modified versions of this file are not
-   obligated to grant this special exception for their modified
-   versions; it is their choice whether to do so. The GNU Lesser
-   General Public License gives permission to release a modified
-   version without this exception; this exception also makes it
-   possible to release a modified version which carries forward this
-   exception.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-/*
-   This is the canonical entry point, usually the first thing in the text
-   segment. Most registers' values are unspecified, except for:
-
-   %r14		Contains a function pointer to be registered with `atexit'.
-		This is how the dynamic linker arranges to have DT_FINI
-		functions called for shared libraries that have been loaded
-		before this code runs.
-
-   %r15		The stack contains the arguments and environment:
-		0(%r15)			argc
-		8(%r15)			argv[0]
-		...
-		(8*argc)(%r15)		NULL
-		(8*(argc+1))(%r15)	envp[0]
-		...
-					NULL
-*/
-
-	.text
-	.globl _start
-	.type _start,@function
-_start:
-	/* Load argc and argv from stack.  */
-	la	%r4,8(%r15)		# get argv
-	lg	%r3,0(%r15)		# get argc
-
-	/* Align the stack to a double word boundary.  */
-	lghi	%r0,-16
-	ngr	%r15,%r0
-
-	/* Setup a stack frame and a parameter area.  */
-	aghi	%r15,-176		# make room on stack
-	xc	0(8,%r15),0(%r15)	# clear back-chain
-
-	/* Set up arguments for __libc_start_main:
-	   main, argc, argv, envp, _init, _fini, rtld_fini, stack_end
-	   Note that envp will be determined later in __libc_start_main.
-	 */
-	stmg	%r14,%r15,160(%r15)	# store rtld_fini/stack_end to parameter area
-	la	%r7,160(%r15)
-	larl	%r6,__libc_csu_fini	# load pointer to __libc_csu_fini
-	larl	%r5,__libc_csu_init	# load pointer to __libc_csu_init
-
-	/* Ok, now branch to the libc main routine.  */
-#ifdef PIC
-	larl	%r2,main@GOTENT		# load pointer to main
-	lg	%r2,0(%r2)
-	brasl	%r14,__libc_start_main@plt
-#else
-	larl	%r2,main		# load pointer to main
-	brasl	%r14,__libc_start_main
-#endif
-
-	/* Crash if __libc_start_main returns.	*/
-	.word	0
-
-	/* Define a symbol for the first piece of initialized data.  */
-	.data
-	.globl __data_start
-__data_start:
-	.long 0
-	.weak data_start
-	data_start = __data_start
diff --git a/sysdeps/s390/s390-64/strcmp.S b/sysdeps/s390/s390-64/strcmp.S
deleted file mode 100644
index 640493b4df..0000000000
--- a/sysdeps/s390/s390-64/strcmp.S
+++ /dev/null
@@ -1,41 +0,0 @@
-/* strcmp - compare two string.  64 bit S/390 version.
-   This file is part of the GNU C Library.
-   Copyright (C) 2001-2017 Free Software Foundation, Inc.
-   Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com).
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-/* INPUT PARAMETERS
-     %r2 = address of string 1
-     %r3 = address of string 2.  */
-
-#include "sysdep.h"
-#include "asm-syntax.h"
-
-	.text
-ENTRY(strcmp)
-        slr   %r0,%r0
-0:	clst  %r2,%r3
-	jo    0b
-	jp    1f
-	jm    2f
-	slgr  %r2,%r2
-	br    %r14
-1:	lghi  %r2,1
-	br    %r14
-2:	lghi  %r2,-1
-	br    %r14
-END(strcmp)
-libc_hidden_builtin_def (strcmp)
diff --git a/sysdeps/s390/s390-64/strcpy.S b/sysdeps/s390/s390-64/strcpy.S
deleted file mode 100644
index fee1d3ede6..0000000000
--- a/sysdeps/s390/s390-64/strcpy.S
+++ /dev/null
@@ -1,35 +0,0 @@
-/* strcpy - copy a string from source to destination.  64 bit S/390 version.
-   Copyright (C) 2001-2017 Free Software Foundation, Inc.
-   Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com).
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-/* INPUT PARAMETERS
-     %r2 = address of destination
-     %r3 = address of source.  */
-
-#include "sysdep.h"
-#include "asm-syntax.h"
-
-        .text
-ENTRY(strcpy)
-	slgr  %r0,%r0
-	lgr   %r1,%r2
-0:	mvst  %r1,%r3
-	jo    0b
-	br    %r14
-END(strcpy)
-libc_hidden_builtin_def (strcpy)
diff --git a/sysdeps/s390/s390-64/strncpy.S b/sysdeps/s390/s390-64/strncpy.S
deleted file mode 100644
index 80aee312e4..0000000000
--- a/sysdeps/s390/s390-64/strncpy.S
+++ /dev/null
@@ -1,90 +0,0 @@
-/* strncpy - copy at most n characters from a string from source to
-   destination.  64 bit S/390 version
-   Copyright (C) 2001-2017 Free Software Foundation, Inc.
-   Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com).
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-/* INPUT PARAMETERS
-     %r2 = address of destination (dst)
-     %r3 = address of source (src)
-     %r4 = max of bytes to copy.  */
-
-#include "sysdep.h"
-#include "asm-syntax.h"
-
-ENTRY(strncpy)
-	.text
-	stg   %r2,48(%r15)	    # save dst pointer
-	slgr  %r2,%r3		    # %r3 points to src, %r2+%r3 to dst
-	lghi  %r1,7
-	ngr   %r1,%r4		    # last 3 bits of # bytes
-	srlg  %r4,%r4,3
-	ltgr  %r4,%r4		    # less than 8 bytes to copy ?
-	jz    .L1
-	bras  %r5,.L0		    # enter loop & load address of a 0
-	.long 0
-.L0:	icmh  %r0,8,0(%r3)	    # first byte
-	jz    .L3
-	icmh  %r0,4,1(%r3)	    # second byte
-	jz    .L4
-	icmh  %r0,2,2(%r3)	    # third byte
-	jz    .L5
-	icmh  %r0,1,3(%r3)	    # fourth byte
-	jz    .L6
-	icm   %r0,8,4(%r3)	    # fifth byte
-	jz    .L7
-	icm   %r0,4,5(%r3)	    # sixth byte
-	jz    .L8
-	icm   %r0,2,6(%r3)	    # seventh byte
-	jz    .L9
-	icm   %r0,1,7(%r3)	    # eigth byte
-	jz    .L10
-	stg   %r0,0(%r2,%r3)	    # store all eight to dest.
-	la    %r3,8(%r3)
-	brct  %r4,.L0
-.L1:	ltgr  %r1,%r1
-	jz    .Lexit
-.L2:	icm   %r0,1,0(%r3)
-	stc   %r0,0(%r2,%r3)
-	la    %r3,1(%r3)
-	jz    .L11
-	brct  %r1,.L2
-	j     .Lexit
-.L3:	icmh  %r0,4,0(%r5)
-.L4:	icmh  %r0,2,0(%r5)
-.L5:	icmh  %r0,1,0(%r5)
-.L6:	icm   %r0,8,0(%r5)
-.L7:	icm   %r0,4,0(%r5)
-.L8:	icm   %r0,2,0(%r5)
-.L9:	icm   %r0,1,0(%r5)
-.L10:	stg   %r0,0(%r2,%r3)
-	la    %r3,8(%r3)
-	aghi  %r4,-1
-	j     .L12
-.L11:	aghi  %r1,-1
-.L12:	sllg  %r4,%r4,3
-	algr  %r4,%r1
-	algr  %r2,%r3		    # start of dst area to be zeroed
-	lgr   %r3,%r4
-	slgr  %r4,%r4
-	slgr  %r5,%r5
-.L13:	mvcle %r2,%r4,0		    # pad dst with zeroes
-	jo    .L13
-.Lexit: lg    %r2,48(%r15)	    # return dst pointer
-	br    %r14
-END(strncpy)
-libc_hidden_builtin_def (strncpy)
diff --git a/sysdeps/s390/s390-64/sub_n.S b/sysdeps/s390/s390-64/sub_n.S
deleted file mode 100644
index dc6572ca36..0000000000
--- a/sysdeps/s390/s390-64/sub_n.S
+++ /dev/null
@@ -1,60 +0,0 @@
-/* __mpn_sub_n -- Add two limb vectors of the same length > 0 and store
-   sum in a third limb vector.  64 bit S/390 version.
-   Copyright (C) 2001-2017 Free Software Foundation, Inc.
-   Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com).
-   This file is part of the GNU MP Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public License as
-   published by the Free Software Foundation; either version 2.1 of the
-   License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; see the file COPYING.LIB.  If not,
-   see <http://www.gnu.org/licenses/>.  */
-
-/* INPUT PARAMETERS
-     %r2 = res_ptr
-     %r3 = s1_ptr
-     %r4 = s2_ptr
-     %r5 = size.  */
-
-#include "sysdep.h"
-#include "asm-syntax.h"
-
-ENTRY(__mpn_sub_n)
-        stg    %r6,48(%r15)   # save register 6
-	cfi_offset (%r6,-112)
-        sgr    %r1,%r1
-        lghi   %r0,1          # cannot use ahi to add carry, use slr
-.L0:	lg     %r6,0(%r1,%r3) # .L0 -> no carry from last sub
-	slg    %r6,0(%r1,%r4)
-	stg    %r6,0(%r1,%r2)
-	la     %r1,8(%r1)
-	brc    4,.L3
-.L1:	brct   %r5,.L0
-	slgr   %r2,%r2	      # no last carry to return
-	j      .Lexit
-.L2:	lg     %r6,0(%r1,%r3) # .L2 -> carry from last sub
-	slg    %r6,0(%r1,%r4)
-	brc    4,.L4
-	slgr   %r6,%r0	      # no carry yet, add carry from last sub
-	stg    %r6,0(%r1,%r2)
-	la     %r1,8(%r1)
-	brc    11,.L1	      # new carry ?
-.L3:	brct   %r5,.L2
-	lgr    %r2,%r0	      # return last carry
-	j      .Lexit
-.L4:	slgr   %r6,%r0	      # already a carry, add carry from last sub
-	stg    %r6,0(%r1,%r2)
-	la     %r1,8(%r1)
-	brct   %r5,.L2
-	lgr    %r2,%r0	      # return last carry
-.Lexit: lg     %r6,48(%r15)   # restore register 6
-	br     %r14
-END(__mpn_sub_n)
diff --git a/sysdeps/s390/s390-64/sysdep.h b/sysdeps/s390/s390-64/sysdep.h
deleted file mode 100644
index a4dfc67178..0000000000
--- a/sysdeps/s390/s390-64/sysdep.h
+++ /dev/null
@@ -1,94 +0,0 @@
-/* Assembler macros for 64 bit S/390.
-   Copyright (C) 2001-2017 Free Software Foundation, Inc.
-   Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com).
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <sysdeps/generic/sysdep.h>
-
-#ifdef	__ASSEMBLER__
-
-/* Syntactic details of assembler.  */
-
-/* ELF uses byte-counts for .align, most others use log2 of count of bytes.  */
-#define ALIGNARG(log2) 1<<log2
-#define ASM_SIZE_DIRECTIVE(name) .size name,.-name;
-
-
-/* Define an entry point visible from C. */
-#define	ENTRY(name)							      \
-  .globl C_SYMBOL_NAME(name);						      \
-  .type C_SYMBOL_NAME(name),@function;					      \
-  .align ALIGNARG(2);							      \
-  C_LABEL(name)								      \
-  cfi_startproc;							      \
-  CALL_MCOUNT
-
-#undef	END
-#define END(name)							      \
-  cfi_endproc;								      \
-  ASM_SIZE_DIRECTIVE(name)						      \
-
-/* If compiled for profiling, call `mcount' at the start of each function.  */
-#ifdef	PROF
-#ifdef PIC
-#define CALL_MCOUNT \
-  lgr 0,14 ; larl 1,0f ; brasl 14,_mcount@PLT ; lgr 14,0 ; \
-  .data ; .align 4 ; 0: .long 0 ; .text ;
-#else
-#define CALL_MCOUNT \
-  lgr 0,14 ; larl 1,0f ; brasl 14,_mcount ; lgr 14,0 ; \
-  .data ; .align 4 ; 0: .long 0 ; .text ;
-#endif
-#else
-#define CALL_MCOUNT		/* Do nothing.  */
-#endif
-
-/* Since C identifiers are not normally prefixed with an underscore
-   on this system, the asm identifier `syscall_error' intrudes on the
-   C name space.  Make sure we use an innocuous name.  */
-#define	syscall_error	__syscall_error
-#define mcount		_mcount
-
-#undef PSEUDO
-#define	PSEUDO(name, syscall_name, args) \
-lose: SYSCALL_PIC_SETUP			\
-  jg JUMPTARGET(syscall_error);		\
-  .globl syscall_error;			\
-  ENTRY (name)				\
-  DO_CALL (syscall_name, args);		\
-  jm lose
-
-#undef	PSEUDO_END
-#define	PSEUDO_END(name)						      \
-  END (name)
-
-#undef JUMPTARGET
-#ifdef PIC
-#define JUMPTARGET(name)	name##@PLT
-#define SYSCALL_PIC_SETUP \
-    larl  %r12,_GLOBAL_OFFSET_TABLE_
-#else
-#define JUMPTARGET(name)	name
-#define SYSCALL_PIC_SETUP	/* Nothing.  */
-#endif
-
-/* Local label name for asm code. */
-#ifndef L
-#define L(name)		.L##name
-#endif
-
-#endif	/* __ASSEMBLER__ */
diff --git a/sysdeps/s390/s390-64/tls-macros.h b/sysdeps/s390/s390-64/tls-macros.h
deleted file mode 100644
index d70ea6ce0c..0000000000
--- a/sysdeps/s390/s390-64/tls-macros.h
+++ /dev/null
@@ -1,88 +0,0 @@
-#define TLS_LE(x) \
-  ({ unsigned long __offset;						      \
-     __asm__ ("bras %0,1f\n"						      \
-	      "0:\t.quad " #x "@ntpoff\n"				      \
-	      "1:\tlg %0,0(%0)"						      \
-	      : "=a" (__offset) : : "cc" );				      \
-     (int *) (__builtin_thread_pointer() + __offset); })
-
-#ifdef PIC
-# define TLS_IE(x) \
-  ({ unsigned long __offset, __got;					      \
-     __asm__ ("bras %0,0f\n\t"						      \
-	      ".quad " #x "@gotntpoff\n"				      \
-	      "0:\tlarl %1,_GLOBAL_OFFSET_TABLE_\n\t"			      \
-	      "lg %0,0(%0)\n\t"						      \
-	      "lg %0,0(%0,%1):tls_load:" #x	"\n"			      \
-	      : "=&a" (__offset), "=&a" (__got) : : "cc" );		      \
-     (int *) (__builtin_thread_pointer() + __offset); })
-#else
-# define TLS_IE(x) \
-  ({ unsigned long  __offset;						      \
-     __asm__ ("bras %0,1f\n"						      \
-	      "0:\t.quad " #x "@indntpoff\n"				      \
-	      "1:\t lg %0,0(%0)\n\t"					      \
-	      "lg %0,0(%0):tls_load:" #x				      \
-	      : "=&a" (__offset) : : "cc" );				      \
-     (int *) (__builtin_thread_pointer() + __offset); })
-#endif
-
-#ifdef PIC
-# define TLS_LD(x) \
-  ({ unsigned long __offset, __save12;					      \
-     __asm__ ("bras %0,1f\n"						      \
-	      "0:\t.quad " #x "@tlsldm\n\t"				      \
-	      ".quad " #x "@dtpoff\n"					      \
-	      "1:\tlgr %1,%%r12\n\t"					      \
-	      "larl %%r12,_GLOBAL_OFFSET_TABLE_\n\t"			      \
-	      "lg %%r2,0(%0)\n\t"					      \
-	      "brasl %%r14,__tls_get_offset@plt:tls_ldcall:" #x "\n\t"	      \
-	      "lg %0,8(%0)\n\t"						      \
-	      "algr %0,%%r2\n\t"					      \
-	      "lgr %%r12,%1"						      \
-	      : "=&a" (__offset), "=&a" (__save12)			      \
-	      : : "cc", "0", "1", "2", "3", "4", "5", "14" );		      \
-     (int *) (__builtin_thread_pointer() + __offset); })
-#else
-# define TLS_LD(x) \
-  ({ unsigned long __offset;						      \
-     __asm__ ("bras %0,1f\n"						      \
-	      "0:\t.quad " #x "@tlsldm\n\t"				      \
-	      ".quad " #x "@dtpoff\n"					      \
-	      "1:\tlarl %%r12,_GLOBAL_OFFSET_TABLE_\n\t"		      \
-	      "lg %%r2,0(%0)\n\t"					      \
-	      "brasl %%r14,__tls_get_offset@plt:tls_ldcall:" #x "\n\t"	      \
-	      "lg %0,8(%0)\n\t"						      \
-	      "algr %0,%%r2"						      \
-	      : "=&a" (__offset)					      \
-	      : : "cc", "0", "1", "2", "3", "4", "5", "12", "14" );	      \
-     (int *) (__builtin_thread_pointer() + __offset); })
-#endif
-
-#ifdef PIC
-# define TLS_GD(x) \
-  ({ unsigned long __offset, __save12;					      \
-     __asm__ ("bras %0,1f\n"						      \
-	      "0:\t.quad " #x "@tlsgd\n"				      \
-	      "1:\tlgr %1,%%r12\n\t"					      \
-	      "larl %%r12,_GLOBAL_OFFSET_TABLE_\n\t"			      \
-	      "lg %%r2,0(%0)\n\t"					      \
-	      "brasl %%r14,__tls_get_offset@plt:tls_gdcall:" #x "\n\t"	      \
-	      "lgr %0,%%r2\n\t"						      \
-	      "lgr %%r12,%1"						      \
-	      : "=&a" (__offset), "=&a" (__save12)			      \
-	      : : "cc", "0", "1", "2", "3", "4", "5", "14" );		      \
-     (int *) (__builtin_thread_pointer() + __offset); })
-#else
-# define TLS_GD(x) \
-  ({ unsigned long __offset;						      \
-     __asm__ ("bras %0,1f\n"						      \
-	      "0:\t.quad " #x "@tlsgd\n"				      \
-	      "1:\tlarl %%r12,_GLOBAL_OFFSET_TABLE_\n\t"		      \
-	      "lg %%r2,0(%0)\n\t"					      \
-	      "brasl %%r14,__tls_get_offset@plt:tls_gdcall:" #x "\n\t"	      \
-	      "lgr %0,%%r2"						      \
-	      : "=&a" (__offset)					      \
-	      : : "cc", "0", "1", "2", "3", "4", "5", "12", "14" );	      \
-     (int *) (__builtin_thread_pointer() + __offset); })
-#endif
diff --git a/sysdeps/s390/s390-64/tst-audit.h b/sysdeps/s390/s390-64/tst-audit.h
deleted file mode 100644
index 67a93f51f1..0000000000
--- a/sysdeps/s390/s390-64/tst-audit.h
+++ /dev/null
@@ -1,25 +0,0 @@
-/* Definitions for testing PLT entry/exit auditing.  S/390 64-bit version.
-
-   Copyright (C) 2012-2017 Free Software Foundation, Inc.
-
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library.  If not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#define pltenter la_s390_64_gnu_pltenter
-#define pltexit la_s390_64_gnu_pltexit
-#define La_regs La_s390_64_regs
-#define La_retval La_s390_64_retval
-#define int_retval lrv_r2