get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

GET /api/1.2/patches/2221355/?format=api
HTTP 200 OK
Allow: GET, PUT, PATCH, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "id": 2221355,
    "url": "http://patchwork.ozlabs.org/api/1.2/patches/2221355/?format=api",
    "web_url": "http://patchwork.ozlabs.org/project/glibc/patch/20260409085102.3475867-5-stli@linux.ibm.com/",
    "project": {
        "id": 41,
        "url": "http://patchwork.ozlabs.org/api/1.2/projects/41/?format=api",
        "name": "GNU C Library",
        "link_name": "glibc",
        "list_id": "libc-alpha.sourceware.org",
        "list_email": "libc-alpha@sourceware.org",
        "web_url": "",
        "scm_url": "",
        "webscm_url": "",
        "list_archive_url": "",
        "list_archive_url_format": "",
        "commit_url_format": ""
    },
    "msgid": "<20260409085102.3475867-5-stli@linux.ibm.com>",
    "list_archive_url": null,
    "date": "2026-04-09T08:47:09",
    "name": "[4/5] s390: Move files out of s390-64 folders",
    "commit_ref": null,
    "pull_url": null,
    "state": "new",
    "archived": false,
    "hash": "1c65e5123fb08f6862df1a20a6f96d3576fc4425",
    "submitter": {
        "id": 74280,
        "url": "http://patchwork.ozlabs.org/api/1.2/people/74280/?format=api",
        "name": "Stefan Liebler",
        "email": "stli@linux.ibm.com"
    },
    "delegate": null,
    "mbox": "http://patchwork.ozlabs.org/project/glibc/patch/20260409085102.3475867-5-stli@linux.ibm.com/mbox/",
    "series": [
        {
            "id": 499262,
            "url": "http://patchwork.ozlabs.org/api/1.2/series/499262/?format=api",
            "web_url": "http://patchwork.ozlabs.org/project/glibc/list/?series=499262",
            "date": "2026-04-09T08:47:10",
            "name": "Remove s390-linux-gnu (31bit)",
            "version": 1,
            "mbox": "http://patchwork.ozlabs.org/series/499262/mbox/"
        }
    ],
    "comments": "http://patchwork.ozlabs.org/api/patches/2221355/comments/",
    "check": "pending",
    "checks": "http://patchwork.ozlabs.org/api/patches/2221355/checks/",
    "tags": {},
    "related": [],
    "headers": {
        "Return-Path": "<libc-alpha-bounces~incoming=patchwork.ozlabs.org@sourceware.org>",
        "X-Original-To": [
            "incoming@patchwork.ozlabs.org",
            "libc-alpha@sourceware.org"
        ],
        "Delivered-To": [
            "patchwork-incoming@legolas.ozlabs.org",
            "libc-alpha@sourceware.org"
        ],
        "Authentication-Results": [
            "legolas.ozlabs.org;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=ibm.com header.i=@ibm.com header.a=rsa-sha256\n header.s=pp1 header.b=bTc1ZYAr;\n\tdkim-atps=neutral",
            "legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=sourceware.org\n (client-ip=38.145.34.32; helo=vm01.sourceware.org;\n envelope-from=libc-alpha-bounces~incoming=patchwork.ozlabs.org@sourceware.org;\n receiver=patchwork.ozlabs.org)",
            "sourceware.org;\n\tdkim=pass (2048-bit key,\n unprotected) header.d=ibm.com header.i=@ibm.com header.a=rsa-sha256\n header.s=pp1 header.b=bTc1ZYAr",
            "sourceware.org;\n dmarc=none (p=none dis=none) header.from=linux.ibm.com",
            "sourceware.org; spf=pass smtp.mailfrom=linux.ibm.com",
            "server2.sourceware.org;\n arc=none smtp.remote-ip=148.163.158.5"
        ],
        "Received": [
            "from vm01.sourceware.org (vm01.sourceware.org [38.145.34.32])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519 server-signature ECDSA (secp384r1) server-digest SHA384)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4frtwC3FvDz1yD3\n\tfor <incoming@patchwork.ozlabs.org>; Thu, 09 Apr 2026 18:51:55 +1000 (AEST)",
            "from vm01.sourceware.org (localhost [127.0.0.1])\n\tby sourceware.org (Postfix) with ESMTP id E88794BA23CD\n\tfor <incoming@patchwork.ozlabs.org>; Thu,  9 Apr 2026 08:51:52 +0000 (GMT)",
            "from mx0b-001b2d01.pphosted.com (mx0b-001b2d01.pphosted.com\n [148.163.158.5])\n by sourceware.org (Postfix) with ESMTPS id 4AD364BA2E09\n for <libc-alpha@sourceware.org>; Thu,  9 Apr 2026 08:51:18 +0000 (GMT)",
            "from pps.filterd (m0360072.ppops.net [127.0.0.1])\n by mx0a-001b2d01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id\n 638Hi5Vs2297936\n for <libc-alpha@sourceware.org>; Thu, 9 Apr 2026 08:51:17 GMT",
            "from ppma12.dal12v.mail.ibm.com\n (dc.9e.1632.ip4.static.sl-reverse.com [50.22.158.220])\n by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 4dcn2g39dr-1\n (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT)\n for <libc-alpha@sourceware.org>; Thu, 09 Apr 2026 08:51:17 +0000 (GMT)",
            "from pps.filterd (ppma12.dal12v.mail.ibm.com [127.0.0.1])\n by ppma12.dal12v.mail.ibm.com (8.18.1.2/8.18.1.2) with ESMTP id\n 6398ZUJW026707\n for <libc-alpha@sourceware.org>; Thu, 9 Apr 2026 08:51:16 GMT",
            "from smtprelay07.fra02v.mail.ibm.com ([9.218.2.229])\n by ppma12.dal12v.mail.ibm.com (PPS) with ESMTPS id 4dcmg82u1x-1\n (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT)\n for <libc-alpha@sourceware.org>; Thu, 09 Apr 2026 08:51:16 +0000",
            "from smtpav03.fra02v.mail.ibm.com (smtpav03.fra02v.mail.ibm.com\n [10.20.54.102])\n by smtprelay07.fra02v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id\n 6398pCG850528756\n (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK);\n Thu, 9 Apr 2026 08:51:12 GMT",
            "from smtpav03.fra02v.mail.ibm.com (unknown [127.0.0.1])\n by IMSVA (Postfix) with ESMTP id 2E7C520040;\n Thu,  9 Apr 2026 08:51:12 +0000 (GMT)",
            "from smtpav03.fra02v.mail.ibm.com (unknown [127.0.0.1])\n by IMSVA (Postfix) with ESMTP id 08DD72004B;\n Thu,  9 Apr 2026 08:51:12 +0000 (GMT)",
            "from a35lp68.lnxne.boe (unknown [9.87.84.240])\n by smtpav03.fra02v.mail.ibm.com (Postfix) with ESMTP;\n Thu,  9 Apr 2026 08:51:11 +0000 (GMT)"
        ],
        "DKIM-Filter": [
            "OpenDKIM Filter v2.11.0 sourceware.org E88794BA23CD",
            "OpenDKIM Filter v2.11.0 sourceware.org 4AD364BA2E09"
        ],
        "DMARC-Filter": "OpenDMARC Filter v1.4.2 sourceware.org 4AD364BA2E09",
        "ARC-Filter": "OpenARC Filter v1.0.0 sourceware.org 4AD364BA2E09",
        "ARC-Seal": "i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1775724678; cv=none;\n b=dArfFF8H/t/mSeCfsNrIpM+4poyehJZEVD0AUPaX+hTWiUKCu9AtdXbMPQTDSawV/mxGoZNMRaAKf/QtkshW6+Xr7bIoQ8W1rDm0tGMTSPv+9VPvT+1m/Caq6iP2h9kBw5AfagUsMpPc3gOHZJfB/xgAvVOcrONGARoDbnBdscg=",
        "ARC-Message-Signature": "i=1; a=rsa-sha256; d=sourceware.org; s=key;\n t=1775724678; c=relaxed/simple;\n bh=rs67zLUdIM0iYX+Y4cwDRiNpZumngpxbNr1vTxArIec=;\n h=DKIM-Signature:From:To:Subject:Date:Message-ID:MIME-Version;\n b=IN0zIcUPuPczk8Dch38a/wcIDdZuTEAou3s3ROxHpQPMQyR3ObEeL02cNsQ9IwIrOWAn6fjdgjNrd/pfEsW+N4vT1XBBAiauZFQD0w4g9VXq/mkBR9vgxmiKroy6UzTYjTQqx0ztrcsS6EIN4x63bwqt1rfJggDtut2sx2rV4uw=",
        "ARC-Authentication-Results": "i=1; server2.sourceware.org",
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h=cc\n :content-transfer-encoding:date:from:in-reply-to:message-id\n :mime-version:references:subject:to; s=pp1; bh=E4T1yInpiunE0c5Sz\n Lw43eYgOrB/AanbhRbUMPVv5ao=; b=bTc1ZYAru6qgc8UXVQ8flFRstQlb/Ig2q\n 9qRbVHFJdfeKjuPf06K4gZtG0hE75lJ+yvEagDdI0wowPc0zOT+76ihUO0cyfnkX\n VWbwTueqLbeqdnf9LzIcO30nlRyjXlOd76+IMJAsVARGRRBUxokHLth5ubpaETRZ\n WNIGsaTx7Xju6J6rYjmx4lO95WG0INk2kL2gLuD2OFOBV6pjCU2fMBZyXyk6ye/+\n R7qDZnercdueJwALnBMF8q04BC6cSUmukH8berayZZ2HFo8Ds+8aEEnzrs+D+Uvn\n a7rhizl5JR6H2nfiMgKQYS5v9cDhEUmZWfcenj3SZEV1g8u5Fa3ZA==",
        "From": "Stefan Liebler <stli@linux.ibm.com>",
        "To": "libc-alpha@sourceware.org",
        "Cc": "Stefan Liebler <stli@linux.ibm.com>",
        "Subject": "[PATCH 4/5] s390: Move files out of s390-64 folders",
        "Date": "Thu,  9 Apr 2026 10:47:09 +0200",
        "Message-ID": "<20260409085102.3475867-5-stli@linux.ibm.com>",
        "X-Mailer": "git-send-email 2.52.0",
        "In-Reply-To": "<20260409085102.3475867-1-stli@linux.ibm.com>",
        "References": "<20260409085102.3475867-1-stli@linux.ibm.com>",
        "MIME-Version": "1.0",
        "Content-Transfer-Encoding": "8bit",
        "X-TM-AS-GCONF": "00",
        "X-Authority-Analysis": "v=2.4 cv=KeridwYD c=1 sm=1 tr=0 ts=69d76885 cx=c_pps\n a=bLidbwmWQ0KltjZqbj+ezA==:117 a=bLidbwmWQ0KltjZqbj+ezA==:17\n a=A5OVakUREuEA:10 a=VkNPw1HP01LnGYTKEx00:22 a=RnoormkPH1_aCDwRdu11:22\n a=RzCfie-kr_QcCd8fBx8p:22 a=mDV3o1hIAAAA:8 a=am7AQAxH1KTRuhMkgi8A:9",
        "X-Proofpoint-ORIG-GUID": "Fx7kfd8z1eSDUhihIxLJHv0YteIY5Ihh",
        "X-Proofpoint-GUID": "Fx7kfd8z1eSDUhihIxLJHv0YteIY5Ihh",
        "X-Proofpoint-Spam-Details-Enc": "AW1haW4tMjYwNDA5MDA3NyBTYWx0ZWRfX9hb2sUNLfREm\n nG+XV4pXvYsR56URtVXvn2A8Pa0x4f9opgxTieeq9zqUadCanMiqPquCpKcqWzF1qAhbD4BcFU+\n OyqM7VHRnR5IFSCNfCQMMymEfAY+1kWNEX7daaWFDfNTuErxUePjBTeksAGSfxuSPN8137aCw+A\n dlWX1drkXhR+FNkSJnbwdule3YGGFWttqEVr69J7LsmQ/tlrZjK+WWwYPS/H9Uqczh9ar5rcSDk\n L4v5sIirusI53IMl8req/dW/++43Gh1mYfpbMYP/tkDyra76YOktlRYJJN08sOCfH6HBad/7A5v\n R4hhCIBQjgh5SdXzQaPdC+kkTeQ5mhJnWu4lT3t5FyZUP3b+sUzues7BrXNFeemzeE5yWCShq3s\n DH6/vFxJ7A7qFtI2zYH0CGVpE6eIyD15iKetfEQAqA7eXOhIAayF1DdrRR5/sTYSus0dW3Xu2ln\n 2UrXxKmGWtOcbkzpmkA==",
        "X-Proofpoint-Virus-Version": "vendor=baseguard\n engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49\n definitions=2026-04-09_02,2026-04-08_01,2025-10-01_01",
        "X-Proofpoint-Spam-Details": "rule=outbound_notspam policy=outbound score=0\n suspectscore=0 malwarescore=0 lowpriorityscore=0 adultscore=0 impostorscore=0\n clxscore=1015 phishscore=0 priorityscore=1501 spamscore=0 bulkscore=0\n classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0\n reason=mlx scancount=1 engine=8.22.0-2604010000 definitions=main-2604090077",
        "X-BeenThere": "libc-alpha@sourceware.org",
        "X-Mailman-Version": "2.1.30",
        "Precedence": "list",
        "List-Id": "Libc-alpha mailing list <libc-alpha.sourceware.org>",
        "List-Unsubscribe": "<https://sourceware.org/mailman/options/libc-alpha>,\n <mailto:libc-alpha-request@sourceware.org?subject=unsubscribe>",
        "List-Archive": "<https://sourceware.org/pipermail/libc-alpha/>",
        "List-Post": "<mailto:libc-alpha@sourceware.org>",
        "List-Help": "<mailto:libc-alpha-request@sourceware.org?subject=help>",
        "List-Subscribe": "<https://sourceware.org/mailman/listinfo/libc-alpha>,\n <mailto:libc-alpha-request@sourceware.org?subject=subscribe>",
        "Errors-To": "libc-alpha-bounces~incoming=patchwork.ozlabs.org@sourceware.org"
    },
    "content": "All the files in subfolders s390/s390-64 in sysdeps directory are moved\nup to the s390/ ones.  If necessary the files were merged with the existing\nones.\n\nsysdeps/s390/preconfigure.ac was updated to reflect the removal of s390-64\nsubdirectory.\n---\n sysdeps/s390/Implies                          |   1 +\n sysdeps/s390/Makefile                         |  89 +++++++\n sysdeps/s390/Versions                         |   3 +\n sysdeps/s390/{s390-64 => }/__longjmp.c        |   2 +-\n sysdeps/s390/{s390-64 => }/add_n.S            |   0\n sysdeps/s390/{s390-64 => }/bsd-_setjmp.S      |   0\n sysdeps/s390/{s390-64 => }/bsd-setjmp.S       |   0\n sysdeps/s390/configure                        |  93 +++++++-\n sysdeps/s390/configure.ac                     |  56 ++++-\n sysdeps/s390/{s390-64 => }/crti.S             |   0\n sysdeps/s390/{s390-64 => }/crtn.S             |   0\n sysdeps/s390/{s390-64 => }/dl-hwcap-check.h   |   0\n .../s390/{s390-64 => }/dl-hwcaps-subdirs.c    |   0\n sysdeps/s390/{s390-64 => }/dl-machine.h       |   0\n sysdeps/s390/{s390-64 => }/dl-trampoline.S    |   0\n sysdeps/s390/{s390-64 => }/dl-trampoline.h    |   0\n sysdeps/s390/preconfigure                     |   2 +-\n sysdeps/s390/preconfigure.ac                  |   2 +-\n sysdeps/s390/s390-64/Implies                  |   1 -\n sysdeps/s390/s390-64/Makefile                 |  92 --------\n sysdeps/s390/s390-64/Versions                 |   5 -\n sysdeps/s390/s390-64/configure                |  95 --------\n sysdeps/s390/s390-64/configure.ac             |  57 -----\n sysdeps/s390/{s390-64 => }/s390x-mcount.S     |   0\n sysdeps/s390/{s390-64 => }/s390x-mcount.h     |   0\n sysdeps/s390/{s390-64 => }/setjmp.S           |   0\n .../s390/{s390-64 => }/stackguard-macros.h    |   0\n sysdeps/s390/{s390-64 => }/start.S            |   0\n sysdeps/s390/{s390-64 => }/strncpy-z900.S     |   0\n sysdeps/s390/{s390-64 => }/sub_n.S            |   0\n sysdeps/s390/{s390-64 => }/sysdep.h           |   0\n sysdeps/s390/{s390-64 => }/tst-audit.h        |   0\n sysdeps/s390/{s390-64 => }/tst-glibc-hwcaps.c |   0\n sysdeps/unix/sysv/linux/s390/Implies          |   1 +\n sysdeps/unix/sysv/linux/s390/Makefile         |  10 +\n sysdeps/unix/sysv/linux/s390/Versions         |   5 +\n .../s390/{s390-64 => }/____longjmp_chk.c      |   0\n .../s390/{s390-64 => }/__makecontext_ret.S    |   0\n .../linux/s390/{s390-64 => }/arch-syscall.h   |   0\n .../linux/s390/{s390-64 => }/c++-types.data   |   0\n .../sysv/linux/s390/{s390-64 => }/clone.S     |   0\n .../sysv/linux/s390/{s390-64 => }/clone3.S    |   0\n sysdeps/unix/sysv/linux/s390/configure        |  13 ++\n sysdeps/unix/sysv/linux/s390/configure.ac     |   2 +\n sysdeps/unix/sysv/linux/s390/dl-cache.h       |  23 ++\n .../linux/s390/{s390-64 => }/getcontext.S     |   0\n .../sysv/linux/s390/{s390-64 => }/ld.abilist  |   0\n .../{s390-64 => }/libBrokenLocale.abilist     |   0\n .../linux/s390/{s390-64 => }/libanl.abilist   |   0\n .../linux/s390/{s390-64 => }/libc.abilist     |   0\n .../{s390-64 => }/libc_malloc_debug.abilist   |   0\n .../linux/s390/{s390-64 => }/libdl.abilist    |   0\n .../linux/s390/{s390-64 => }/libm.abilist     |   0\n .../linux/s390/{s390-64 => }/libnsl.abilist   |   0\n .../s390/{s390-64 => }/libpthread.abilist     |   0\n .../s390/{s390-64 => }/libresolv.abilist      |   0\n .../linux/s390/{s390-64 => }/librt.abilist    |   0\n .../s390/{s390-64 => }/libthread_db.abilist   |   0\n .../linux/s390/{s390-64 => }/libutil.abilist  |   0\n .../linux/s390/{s390-64 => }/makecontext.c    |   0\n .../linux/s390/{s390-64 => }/pointer_guard.h  |   0\n sysdeps/unix/sysv/linux/s390/s390-64/Implies  |   1 -\n sysdeps/unix/sysv/linux/s390/s390-64/Makefile |  15 --\n sysdeps/unix/sysv/linux/s390/s390-64/Versions |   7 -\n .../unix/sysv/linux/s390/s390-64/configure    |  16 --\n .../unix/sysv/linux/s390/s390-64/configure.ac |   4 -\n .../unix/sysv/linux/s390/s390-64/dl-cache.h   |  24 --\n sysdeps/unix/sysv/linux/s390/s390-64/sysdep.h | 178 --------------\n .../linux/s390/{s390-64 => }/setcontext.S     |   0\n .../linux/s390/{s390-64 => }/shlib-versions   |   0\n .../linux/s390/{s390-64 => }/single-thread.h  |   0\n .../linux/s390/{s390-64 => }/swapcontext.S    |   0\n .../sysv/linux/s390/{s390-64 => }/syscall.S   |   0\n .../linux/s390/{s390-64 => }/syscall_cancel.S |   0\n .../sysv/linux/s390/{s390-64 => }/sysdep.S    |   0\n sysdeps/unix/sysv/linux/s390/sysdep.h         | 218 +++++++++++++++---\n .../{s390-64 => }/timer_t_was_int_compat.h    |   0\n .../sysv/linux/s390/{s390-64 => }/vfork.S     |   0\n 78 files changed, 481 insertions(+), 534 deletions(-)\n rename sysdeps/s390/{s390-64 => }/__longjmp.c (97%)\n rename sysdeps/s390/{s390-64 => }/add_n.S (100%)\n rename sysdeps/s390/{s390-64 => }/bsd-_setjmp.S (100%)\n rename sysdeps/s390/{s390-64 => }/bsd-setjmp.S (100%)\n rename sysdeps/s390/{s390-64 => }/crti.S (100%)\n rename sysdeps/s390/{s390-64 => }/crtn.S (100%)\n rename sysdeps/s390/{s390-64 => }/dl-hwcap-check.h (100%)\n rename sysdeps/s390/{s390-64 => }/dl-hwcaps-subdirs.c (100%)\n rename sysdeps/s390/{s390-64 => }/dl-machine.h (100%)\n rename sysdeps/s390/{s390-64 => }/dl-trampoline.S (100%)\n rename sysdeps/s390/{s390-64 => }/dl-trampoline.h (100%)\n delete mode 100644 sysdeps/s390/s390-64/Implies\n delete mode 100644 sysdeps/s390/s390-64/Makefile\n delete mode 100644 sysdeps/s390/s390-64/Versions\n delete mode 100644 sysdeps/s390/s390-64/configure\n delete mode 100644 sysdeps/s390/s390-64/configure.ac\n rename sysdeps/s390/{s390-64 => }/s390x-mcount.S (100%)\n rename sysdeps/s390/{s390-64 => }/s390x-mcount.h (100%)\n rename sysdeps/s390/{s390-64 => }/setjmp.S (100%)\n rename sysdeps/s390/{s390-64 => }/stackguard-macros.h (100%)\n rename sysdeps/s390/{s390-64 => }/start.S (100%)\n rename sysdeps/s390/{s390-64 => }/strncpy-z900.S (100%)\n rename sysdeps/s390/{s390-64 => }/sub_n.S (100%)\n rename sysdeps/s390/{s390-64 => }/sysdep.h (100%)\n rename sysdeps/s390/{s390-64 => }/tst-audit.h (100%)\n rename sysdeps/s390/{s390-64 => }/tst-glibc-hwcaps.c (100%)\n rename sysdeps/unix/sysv/linux/s390/{s390-64 => }/____longjmp_chk.c (100%)\n rename sysdeps/unix/sysv/linux/s390/{s390-64 => }/__makecontext_ret.S (100%)\n rename sysdeps/unix/sysv/linux/s390/{s390-64 => }/arch-syscall.h (100%)\n rename sysdeps/unix/sysv/linux/s390/{s390-64 => }/c++-types.data (100%)\n rename sysdeps/unix/sysv/linux/s390/{s390-64 => }/clone.S (100%)\n rename sysdeps/unix/sysv/linux/s390/{s390-64 => }/clone3.S (100%)\n rename sysdeps/unix/sysv/linux/s390/{s390-64 => }/getcontext.S (100%)\n rename sysdeps/unix/sysv/linux/s390/{s390-64 => }/ld.abilist (100%)\n rename sysdeps/unix/sysv/linux/s390/{s390-64 => }/libBrokenLocale.abilist (100%)\n rename sysdeps/unix/sysv/linux/s390/{s390-64 => }/libanl.abilist (100%)\n rename sysdeps/unix/sysv/linux/s390/{s390-64 => }/libc.abilist (100%)\n rename sysdeps/unix/sysv/linux/s390/{s390-64 => }/libc_malloc_debug.abilist (100%)\n rename sysdeps/unix/sysv/linux/s390/{s390-64 => }/libdl.abilist (100%)\n rename sysdeps/unix/sysv/linux/s390/{s390-64 => }/libm.abilist (100%)\n rename sysdeps/unix/sysv/linux/s390/{s390-64 => }/libnsl.abilist (100%)\n rename sysdeps/unix/sysv/linux/s390/{s390-64 => }/libpthread.abilist (100%)\n rename sysdeps/unix/sysv/linux/s390/{s390-64 => }/libresolv.abilist (100%)\n rename sysdeps/unix/sysv/linux/s390/{s390-64 => }/librt.abilist (100%)\n rename sysdeps/unix/sysv/linux/s390/{s390-64 => }/libthread_db.abilist (100%)\n rename sysdeps/unix/sysv/linux/s390/{s390-64 => }/libutil.abilist (100%)\n rename sysdeps/unix/sysv/linux/s390/{s390-64 => }/makecontext.c (100%)\n rename sysdeps/unix/sysv/linux/s390/{s390-64 => }/pointer_guard.h (100%)\n delete mode 100644 sysdeps/unix/sysv/linux/s390/s390-64/Implies\n delete mode 100644 sysdeps/unix/sysv/linux/s390/s390-64/Makefile\n delete mode 100644 sysdeps/unix/sysv/linux/s390/s390-64/Versions\n delete mode 100644 sysdeps/unix/sysv/linux/s390/s390-64/configure\n delete mode 100644 sysdeps/unix/sysv/linux/s390/s390-64/configure.ac\n delete mode 100644 sysdeps/unix/sysv/linux/s390/s390-64/dl-cache.h\n delete mode 100644 sysdeps/unix/sysv/linux/s390/s390-64/sysdep.h\n rename sysdeps/unix/sysv/linux/s390/{s390-64 => }/setcontext.S (100%)\n rename sysdeps/unix/sysv/linux/s390/{s390-64 => }/shlib-versions (100%)\n rename sysdeps/unix/sysv/linux/s390/{s390-64 => }/single-thread.h (100%)\n rename sysdeps/unix/sysv/linux/s390/{s390-64 => }/swapcontext.S (100%)\n rename sysdeps/unix/sysv/linux/s390/{s390-64 => }/syscall.S (100%)\n rename sysdeps/unix/sysv/linux/s390/{s390-64 => }/syscall_cancel.S (100%)\n rename sysdeps/unix/sysv/linux/s390/{s390-64 => }/sysdep.S (100%)\n rename sysdeps/unix/sysv/linux/s390/{s390-64 => }/timer_t_was_int_compat.h (100%)\n rename sysdeps/unix/sysv/linux/s390/{s390-64 => }/vfork.S (100%)",
    "diff": "diff --git a/sysdeps/s390/Implies b/sysdeps/s390/Implies\nindex 1945b1f4bb..30800d54c3 100644\n--- a/sysdeps/s390/Implies\n+++ b/sysdeps/s390/Implies\n@@ -1,3 +1,4 @@\n+wordsize-64\n ieee754/ldbl-128\n ieee754/dbl-64\n ieee754/flt-32\ndiff --git a/sysdeps/s390/Makefile b/sysdeps/s390/Makefile\nindex 985b4f25ee..29d11dfdab 100644\n--- a/sysdeps/s390/Makefile\n+++ b/sysdeps/s390/Makefile\n@@ -1,3 +1,7 @@\n+ifeq ($(subdir),gmon)\n+sysdep_routines += s390x-mcount\n+endif\n+\n ifeq ($(subdir),iconvdata)\n ISO-8859-1_CP037_Z900-routines := iso-8859-1_cp037_z900\n ISO-8859-1_CP037_Z900-map := gconv.map\n@@ -43,6 +47,91 @@ $(modpfx)gconv-modules-s390.conf: ../sysdeps/s390/gconv-modules-s390.conf \\\n endif\n \n ifeq ($(subdir),elf)\n+CFLAGS-rtld.c += -Wno-uninitialized -Wno-unused\n+CFLAGS-dl-load.c += -Wno-unused\n+CFLAGS-dl-reloc.c += -Wno-unused\n+\n+$(objpfx)tst-glibc-hwcaps: \\\n+  $(objpfx)libmarkermod2-1.so \\\n+  $(objpfx)libmarkermod3-1.so \\\n+  $(objpfx)libmarkermod4-1.so \\\n+  $(objpfx)libmarkermod5-1.so \\\n+  $(objpfx)libmarkermod6-1.so\n+$(objpfx)tst-glibc-hwcaps.out: \\\n+  $(objpfx)libmarkermod2.so \\\n+    $(objpfx)glibc-hwcaps/z13/libmarkermod2.so \\\n+  $(objpfx)libmarkermod3.so \\\n+    $(objpfx)glibc-hwcaps/z13/libmarkermod3.so \\\n+    $(objpfx)glibc-hwcaps/z14/libmarkermod3.so \\\n+  $(objpfx)libmarkermod4.so \\\n+    $(objpfx)glibc-hwcaps/z13/libmarkermod4.so \\\n+    $(objpfx)glibc-hwcaps/z14/libmarkermod4.so \\\n+    $(objpfx)glibc-hwcaps/z15/libmarkermod4.so \\\n+  $(objpfx)libmarkermod5.so \\\n+    $(objpfx)glibc-hwcaps/z13/libmarkermod5.so \\\n+    $(objpfx)glibc-hwcaps/z14/libmarkermod5.so \\\n+    $(objpfx)glibc-hwcaps/z15/libmarkermod5.so \\\n+    $(objpfx)glibc-hwcaps/z16/libmarkermod5.so \\\n+  $(objpfx)libmarkermod6.so \\\n+    $(objpfx)glibc-hwcaps/z13/libmarkermod6.so \\\n+    $(objpfx)glibc-hwcaps/z14/libmarkermod6.so \\\n+    $(objpfx)glibc-hwcaps/z15/libmarkermod6.so \\\n+    $(objpfx)glibc-hwcaps/z16/libmarkermod6.so \\\n+    $(objpfx)glibc-hwcaps/z17/libmarkermod6.so\n+\n+\n+$(objpfx)glibc-hwcaps/z13/libmarkermod2.so: $(objpfx)libmarkermod2-2.so\n+\t$(make-target-directory)\n+\tcp $< $@\n+$(objpfx)glibc-hwcaps/z13/libmarkermod3.so: $(objpfx)libmarkermod3-2.so\n+\t$(make-target-directory)\n+\tcp $< $@\n+$(objpfx)glibc-hwcaps/z14/libmarkermod3.so: $(objpfx)libmarkermod3-3.so\n+\t$(make-target-directory)\n+\tcp $< $@\n+$(objpfx)glibc-hwcaps/z13/libmarkermod4.so: $(objpfx)libmarkermod4-2.so\n+\t$(make-target-directory)\n+\tcp $< $@\n+$(objpfx)glibc-hwcaps/z14/libmarkermod4.so: $(objpfx)libmarkermod4-3.so\n+\t$(make-target-directory)\n+\tcp $< $@\n+$(objpfx)glibc-hwcaps/z15/libmarkermod4.so: $(objpfx)libmarkermod4-4.so\n+\t$(make-target-directory)\n+\tcp $< $@\n+$(objpfx)glibc-hwcaps/z13/libmarkermod5.so: $(objpfx)libmarkermod5-2.so\n+\t$(make-target-directory)\n+\tcp $< $@\n+$(objpfx)glibc-hwcaps/z14/libmarkermod5.so: $(objpfx)libmarkermod5-3.so\n+\t$(make-target-directory)\n+\tcp $< $@\n+$(objpfx)glibc-hwcaps/z15/libmarkermod5.so: $(objpfx)libmarkermod5-4.so\n+\t$(make-target-directory)\n+\tcp $< $@\n+$(objpfx)glibc-hwcaps/z16/libmarkermod5.so: $(objpfx)libmarkermod5-5.so\n+\t$(make-target-directory)\n+\tcp $< $@\n+$(objpfx)glibc-hwcaps/z13/libmarkermod6.so: $(objpfx)libmarkermod6-2.so\n+\t$(make-target-directory)\n+\tcp $< $@\n+$(objpfx)glibc-hwcaps/z14/libmarkermod6.so: $(objpfx)libmarkermod6-3.so\n+\t$(make-target-directory)\n+\tcp $< $@\n+$(objpfx)glibc-hwcaps/z15/libmarkermod6.so: $(objpfx)libmarkermod6-4.so\n+\t$(make-target-directory)\n+\tcp $< $@\n+$(objpfx)glibc-hwcaps/z16/libmarkermod6.so: $(objpfx)libmarkermod6-5.so\n+\t$(make-target-directory)\n+\tcp $< $@\n+$(objpfx)glibc-hwcaps/z17/libmarkermod6.so: $(objpfx)libmarkermod6-6.so\n+\t$(make-target-directory)\n+\tcp $< $@\n+\n+\n+ifeq (no,$(build-hardcoded-path-in-tests))\n+# This is an ld.so.cache test, and RPATH/RUNPATH in the executable\n+# interferes with its test objectives.\n+tests-container += tst-glibc-hwcaps-cache\n+endif\n \n ifeq ($(build-shared),yes)\n tests += tst-dl-runtime-resolve-noaudit tst-dl-runtime-resolve-audit \\\ndiff --git a/sysdeps/s390/Versions b/sysdeps/s390/Versions\nindex 8417623353..d80d691817 100644\n--- a/sysdeps/s390/Versions\n+++ b/sysdeps/s390/Versions\n@@ -3,6 +3,9 @@ libc {\n     setjmp; _setjmp; __sigsetjmp;\n     longjmp; _longjmp; siglongjmp;\n   }\n+  GLIBC_2.29 {\n+    __fentry__;\n+  }\n }\n \n ld {\ndiff --git a/sysdeps/s390/s390-64/__longjmp.c b/sysdeps/s390/__longjmp.c\nsimilarity index 97%\nrename from sysdeps/s390/s390-64/__longjmp.c\nrename to sysdeps/s390/__longjmp.c\nindex fabd5e0a4e..7c207e44c6 100644\n--- a/sysdeps/s390/s390-64/__longjmp.c\n+++ b/sysdeps/s390/__longjmp.c\n@@ -24,7 +24,7 @@\n #include <unistd.h>\n #include <stap-probe.h>\n \n-/* See sysdeps/unix/sysv/linux/s390/s390-64/pointer_guard.h.  */\n+/* See sysdeps/unix/sysv/linux/s390/pointer_guard.h.  */\n #if IS_IN (rtld)\n # undef PTR_DEMANGLE\n #endif\ndiff --git a/sysdeps/s390/s390-64/add_n.S b/sysdeps/s390/add_n.S\nsimilarity index 100%\nrename from sysdeps/s390/s390-64/add_n.S\nrename to sysdeps/s390/add_n.S\ndiff --git a/sysdeps/s390/s390-64/bsd-_setjmp.S b/sysdeps/s390/bsd-_setjmp.S\nsimilarity index 100%\nrename from sysdeps/s390/s390-64/bsd-_setjmp.S\nrename to sysdeps/s390/bsd-_setjmp.S\ndiff --git a/sysdeps/s390/s390-64/bsd-setjmp.S b/sysdeps/s390/bsd-setjmp.S\nsimilarity index 100%\nrename from sysdeps/s390/s390-64/bsd-setjmp.S\nrename to sysdeps/s390/bsd-setjmp.S\ndiff --git a/sysdeps/s390/configure b/sysdeps/s390/configure\nindex f4ec662610..e21a5ba3a7 100644\n--- a/sysdeps/s390/configure\n+++ b/sysdeps/s390/configure\n@@ -269,6 +269,95 @@ then\n \n fi\n \n-test -n \"$critic_missing\" && as_fn_error $? \"\n-*** $critic_missing\" \"$LINENO\" 5\n+# Minimal checking for static PIE support in ld.\n+# Compare to ld testcase/bugzilla:\n+# <binutils-source>/ld/testsuite/ld-elf/pr22263-1.rd\n+{ printf \"%s\\n\" \"$as_me:${as_lineno-$LINENO}: checking for s390-specific static PIE requirements\" >&5\n+printf %s \"checking for s390-specific static PIE requirements... \" >&6; }\n+if { as_var=\\\n+libc_cv_s390x_staticpie_req_runtime; eval test \\${$as_var+y}; }\n+then :\n+  printf %s \"(cached) \" >&6\n+else case e in #(\n+  e)   cat > conftest1.c <<EOF\n+__thread int * foo;\n+\n+void\n+bar (void)\n+{\n+  *foo = 1;\n+}\n+\n+void bar2 (void);\n+void* bar2_ifunc (void) __asm__ (\"bar2\");\n+__asm__ (\".type bar2, %gnu_indirect_function\");\n+void* bar2_ifunc (void) { return 0; }\n+EOF\n+  cat > conftest2.c <<EOF\n+extern __thread int *foo;\n+extern void bar (void);\n+extern void bar2 (void);\n+static int x;\n+\n+int\n+main ()\n+{\n+  foo = &x;\n+  bar2 ();\n+  return 0;\n+}\n+EOF\n+  libc_cv_s390x_staticpie_req_runtime=no\n+  # Check if the static linker does not generate dynamic TLS relocs in PIE\n+  # (binutils PR ld/22263), if it accepts --no-dynamic-linker\n+  # (by using -static-pie), and if it adds a DT_JMPREL pointing to .rela.iplt\n+  # with static pie.\n+  if { ac_try='${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS -fPIE -c conftest1.c -o conftest1.o'\n+  { { eval echo \"\\\"\\$as_me\\\":${as_lineno-$LINENO}: \\\"$ac_try\\\"\"; } >&5\n+  (eval $ac_try) 2>&5\n+  ac_status=$?\n+  printf \"%s\\n\" \"$as_me:${as_lineno-$LINENO}: \\$? = $ac_status\" >&5\n+  test $ac_status = 0; }; } \\\n+     && { ac_try='${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS -fPIE -c conftest2.c -o conftest2.o'\n+  { { eval echo \"\\\"\\$as_me\\\":${as_lineno-$LINENO}: \\\"$ac_try\\\"\"; } >&5\n+  (eval $ac_try) 2>&5\n+  ac_status=$?\n+  printf \"%s\\n\" \"$as_me:${as_lineno-$LINENO}: \\$? = $ac_status\" >&5\n+  test $ac_status = 0; }; } \\\n+     && { ac_try='${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS -static-pie -nostartfiles -nostdlib -fPIE -o conftest conftest1.o conftest2.o'\n+  { { eval echo \"\\\"\\$as_me\\\":${as_lineno-$LINENO}: \\\"$ac_try\\\"\"; } >&5\n+  (eval $ac_try) 2>&5\n+  ac_status=$?\n+  printf \"%s\\n\" \"$as_me:${as_lineno-$LINENO}: \\$? = $ac_status\" >&5\n+  test $ac_status = 0; }; } \\\n+     && { ac_try='! LC_ALL=C $READELF -Wr conftest | grep R_390_TLS_TPOFF >&5'\n+  { { eval echo \"\\\"\\$as_me\\\":${as_lineno-$LINENO}: \\\"$ac_try\\\"\"; } >&5\n+  (eval $ac_try) 2>&5\n+  ac_status=$?\n+  printf \"%s\\n\" \"$as_me:${as_lineno-$LINENO}: \\$? = $ac_status\" >&5\n+  test $ac_status = 0; }; } \\\n+     && { ac_try='LC_ALL=C $READELF -Wd conftest | grep JMPREL >&5'\n+  { { eval echo \"\\\"\\$as_me\\\":${as_lineno-$LINENO}: \\\"$ac_try\\\"\"; } >&5\n+  (eval $ac_try) 2>&5\n+  ac_status=$?\n+  printf \"%s\\n\" \"$as_me:${as_lineno-$LINENO}: \\$? = $ac_status\" >&5\n+  test $ac_status = 0; }; }\n+  then\n+    libc_cv_s390x_staticpie_req_runtime=yes\n+  fi\n+  rm -rf conftest.* ;;\n+esac\n+fi\n+eval ac_res=\\$\\\n+libc_cv_s390x_staticpie_req_runtime\n+\t       { printf \"%s\\n\" \"$as_me:${as_lineno-$LINENO}: result: $ac_res\" >&5\n+printf \"%s\\n\" \"$ac_res\" >&6; }\n+\n+if test $libc_cv_s390x_staticpie_req_runtime = yes; then\n+   # Some kernels might fail with /proc/sys/kernel/randomize_va_space set to 0\n+   # due not enough space for a brk call.  However, there is no reliable way to\n+   # test it.\n+   printf \"%s\\n\" \"#define SUPPORT_STATIC_PIE 1\" >>confdefs.h\n+\n+fi\n \ndiff --git a/sysdeps/s390/configure.ac b/sysdeps/s390/configure.ac\nindex 82e1a4445f..3c384f9670 100644\n--- a/sysdeps/s390/configure.ac\n+++ b/sysdeps/s390/configure.ac\n@@ -133,5 +133,57 @@ then\n   AC_DEFINE(HAVE_S390_MIN_ARCH13_ZARCH_ASM_SUPPORT)\n fi\n \n-test -n \"$critic_missing\" && AC_MSG_ERROR([\n-*** $critic_missing])\n+# Minimal checking for static PIE support in ld.\n+# Compare to ld testcase/bugzilla:\n+# <binutils-source>/ld/testsuite/ld-elf/pr22263-1.rd\n+AC_CACHE_CHECK([for s390-specific static PIE requirements], \\\n+[libc_cv_s390x_staticpie_req_runtime], [dnl\n+  cat > conftest1.c <<EOF\n+__thread int * foo;\n+\n+void\n+bar (void)\n+{\n+  *foo = 1;\n+}\n+\n+void bar2 (void);\n+void* bar2_ifunc (void) __asm__ (\"bar2\");\n+__asm__ (\".type bar2, %gnu_indirect_function\");\n+void* bar2_ifunc (void) { return 0; }\n+EOF\n+  cat > conftest2.c <<EOF\n+extern __thread int *foo;\n+extern void bar (void);\n+extern void bar2 (void);\n+static int x;\n+\n+int\n+main ()\n+{\n+  foo = &x;\n+  bar2 ();\n+  return 0;\n+}\n+EOF\n+  libc_cv_s390x_staticpie_req_runtime=no\n+  # Check if the static linker does not generate dynamic TLS relocs in PIE\n+  # (binutils PR ld/22263), if it accepts --no-dynamic-linker\n+  # (by using -static-pie), and if it adds a DT_JMPREL pointing to .rela.iplt\n+  # with static pie.\n+  if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS -fPIE -c conftest1.c -o conftest1.o]) \\\n+     && AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS -fPIE -c conftest2.c -o conftest2.o]) \\\n+     && AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS -static-pie -nostartfiles -nostdlib -fPIE -o conftest conftest1.o conftest2.o]) \\\n+     && AC_TRY_COMMAND([! LC_ALL=C $READELF -Wr conftest | grep R_390_TLS_TPOFF] >&AS_MESSAGE_LOG_FD) \\\n+     && AC_TRY_COMMAND([LC_ALL=C $READELF -Wd conftest | grep JMPREL >&AS_MESSAGE_LOG_FD])\n+  then\n+    libc_cv_s390x_staticpie_req_runtime=yes\n+  fi\n+  rm -rf conftest.*])\n+\n+if test $libc_cv_s390x_staticpie_req_runtime = yes; then\n+   # Some kernels might fail with /proc/sys/kernel/randomize_va_space set to 0\n+   # due not enough space for a brk call.  However, there is no reliable way to\n+   # test it.\n+   AC_DEFINE(SUPPORT_STATIC_PIE)\n+fi\ndiff --git a/sysdeps/s390/s390-64/crti.S b/sysdeps/s390/crti.S\nsimilarity index 100%\nrename from sysdeps/s390/s390-64/crti.S\nrename to sysdeps/s390/crti.S\ndiff --git a/sysdeps/s390/s390-64/crtn.S b/sysdeps/s390/crtn.S\nsimilarity index 100%\nrename from sysdeps/s390/s390-64/crtn.S\nrename to sysdeps/s390/crtn.S\ndiff --git a/sysdeps/s390/s390-64/dl-hwcap-check.h b/sysdeps/s390/dl-hwcap-check.h\nsimilarity index 100%\nrename from sysdeps/s390/s390-64/dl-hwcap-check.h\nrename to sysdeps/s390/dl-hwcap-check.h\ndiff --git a/sysdeps/s390/s390-64/dl-hwcaps-subdirs.c b/sysdeps/s390/dl-hwcaps-subdirs.c\nsimilarity index 100%\nrename from sysdeps/s390/s390-64/dl-hwcaps-subdirs.c\nrename to sysdeps/s390/dl-hwcaps-subdirs.c\ndiff --git a/sysdeps/s390/s390-64/dl-machine.h b/sysdeps/s390/dl-machine.h\nsimilarity index 100%\nrename from sysdeps/s390/s390-64/dl-machine.h\nrename to sysdeps/s390/dl-machine.h\ndiff --git a/sysdeps/s390/s390-64/dl-trampoline.S b/sysdeps/s390/dl-trampoline.S\nsimilarity index 100%\nrename from sysdeps/s390/s390-64/dl-trampoline.S\nrename to sysdeps/s390/dl-trampoline.S\ndiff --git a/sysdeps/s390/s390-64/dl-trampoline.h b/sysdeps/s390/dl-trampoline.h\nsimilarity index 100%\nrename from sysdeps/s390/s390-64/dl-trampoline.h\nrename to sysdeps/s390/dl-trampoline.h\ndiff --git a/sysdeps/s390/preconfigure b/sysdeps/s390/preconfigure\nindex 0536f3eb80..39843cb365 100644\n--- a/sysdeps/s390/preconfigure\n+++ b/sysdeps/s390/preconfigure\n@@ -4,7 +4,7 @@\n case \"$machine\" in\n s390x)\n   base_machine=s390\n-  machine=s390/s390-64\n+  machine=s390\n   ;;\n s390)\n   as_fn_error $? \"s390-32 is not supported anymore.\" \"$LINENO\" 5\ndiff --git a/sysdeps/s390/preconfigure.ac b/sysdeps/s390/preconfigure.ac\nindex aee9e4e0cc..b75ad3be00 100644\n--- a/sysdeps/s390/preconfigure.ac\n+++ b/sysdeps/s390/preconfigure.ac\n@@ -4,7 +4,7 @@ GLIBC_PROVIDES dnl See aclocal.m4 in the top level source directory.\n case \"$machine\" in\n s390x)\n   base_machine=s390\n-  machine=s390/s390-64\n+  machine=s390\n   ;;\n s390)\n   AC_MSG_ERROR(s390-32 is not supported anymore.)\ndiff --git a/sysdeps/s390/s390-64/Implies b/sysdeps/s390/s390-64/Implies\ndeleted file mode 100644\nindex a8cae95f9d..0000000000\n--- a/sysdeps/s390/s390-64/Implies\n+++ /dev/null\n@@ -1 +0,0 @@\n-wordsize-64\ndiff --git a/sysdeps/s390/s390-64/Makefile b/sysdeps/s390/s390-64/Makefile\ndeleted file mode 100644\nindex 991025cd2a..0000000000\n--- a/sysdeps/s390/s390-64/Makefile\n+++ /dev/null\n@@ -1,92 +0,0 @@\n-ifeq ($(subdir),gmon)\n-sysdep_routines += s390x-mcount\n-endif\n-\n-ifeq ($(subdir),elf)\n-CFLAGS-rtld.c += -Wno-uninitialized -Wno-unused\n-CFLAGS-dl-load.c += -Wno-unused\n-CFLAGS-dl-reloc.c += -Wno-unused\n-\n-$(objpfx)tst-glibc-hwcaps: \\\n-  $(objpfx)libmarkermod2-1.so \\\n-  $(objpfx)libmarkermod3-1.so \\\n-  $(objpfx)libmarkermod4-1.so \\\n-  $(objpfx)libmarkermod5-1.so \\\n-  $(objpfx)libmarkermod6-1.so\n-$(objpfx)tst-glibc-hwcaps.out: \\\n-  $(objpfx)libmarkermod2.so \\\n-    $(objpfx)glibc-hwcaps/z13/libmarkermod2.so \\\n-  $(objpfx)libmarkermod3.so \\\n-    $(objpfx)glibc-hwcaps/z13/libmarkermod3.so \\\n-    $(objpfx)glibc-hwcaps/z14/libmarkermod3.so \\\n-  $(objpfx)libmarkermod4.so \\\n-    $(objpfx)glibc-hwcaps/z13/libmarkermod4.so \\\n-    $(objpfx)glibc-hwcaps/z14/libmarkermod4.so \\\n-    $(objpfx)glibc-hwcaps/z15/libmarkermod4.so \\\n-  $(objpfx)libmarkermod5.so \\\n-    $(objpfx)glibc-hwcaps/z13/libmarkermod5.so \\\n-    $(objpfx)glibc-hwcaps/z14/libmarkermod5.so \\\n-    $(objpfx)glibc-hwcaps/z15/libmarkermod5.so \\\n-    $(objpfx)glibc-hwcaps/z16/libmarkermod5.so \\\n-  $(objpfx)libmarkermod6.so \\\n-    $(objpfx)glibc-hwcaps/z13/libmarkermod6.so \\\n-    $(objpfx)glibc-hwcaps/z14/libmarkermod6.so \\\n-    $(objpfx)glibc-hwcaps/z15/libmarkermod6.so \\\n-    $(objpfx)glibc-hwcaps/z16/libmarkermod6.so \\\n-    $(objpfx)glibc-hwcaps/z17/libmarkermod6.so\n-\n-\n-$(objpfx)glibc-hwcaps/z13/libmarkermod2.so: $(objpfx)libmarkermod2-2.so\n-\t$(make-target-directory)\n-\tcp $< $@\n-$(objpfx)glibc-hwcaps/z13/libmarkermod3.so: $(objpfx)libmarkermod3-2.so\n-\t$(make-target-directory)\n-\tcp $< $@\n-$(objpfx)glibc-hwcaps/z14/libmarkermod3.so: $(objpfx)libmarkermod3-3.so\n-\t$(make-target-directory)\n-\tcp $< $@\n-$(objpfx)glibc-hwcaps/z13/libmarkermod4.so: $(objpfx)libmarkermod4-2.so\n-\t$(make-target-directory)\n-\tcp $< $@\n-$(objpfx)glibc-hwcaps/z14/libmarkermod4.so: $(objpfx)libmarkermod4-3.so\n-\t$(make-target-directory)\n-\tcp $< $@\n-$(objpfx)glibc-hwcaps/z15/libmarkermod4.so: $(objpfx)libmarkermod4-4.so\n-\t$(make-target-directory)\n-\tcp $< $@\n-$(objpfx)glibc-hwcaps/z13/libmarkermod5.so: $(objpfx)libmarkermod5-2.so\n-\t$(make-target-directory)\n-\tcp $< $@\n-$(objpfx)glibc-hwcaps/z14/libmarkermod5.so: $(objpfx)libmarkermod5-3.so\n-\t$(make-target-directory)\n-\tcp $< $@\n-$(objpfx)glibc-hwcaps/z15/libmarkermod5.so: $(objpfx)libmarkermod5-4.so\n-\t$(make-target-directory)\n-\tcp $< $@\n-$(objpfx)glibc-hwcaps/z16/libmarkermod5.so: $(objpfx)libmarkermod5-5.so\n-\t$(make-target-directory)\n-\tcp $< $@\n-$(objpfx)glibc-hwcaps/z13/libmarkermod6.so: $(objpfx)libmarkermod6-2.so\n-\t$(make-target-directory)\n-\tcp $< $@\n-$(objpfx)glibc-hwcaps/z14/libmarkermod6.so: $(objpfx)libmarkermod6-3.so\n-\t$(make-target-directory)\n-\tcp $< $@\n-$(objpfx)glibc-hwcaps/z15/libmarkermod6.so: $(objpfx)libmarkermod6-4.so\n-\t$(make-target-directory)\n-\tcp $< $@\n-$(objpfx)glibc-hwcaps/z16/libmarkermod6.so: $(objpfx)libmarkermod6-5.so\n-\t$(make-target-directory)\n-\tcp $< $@\n-$(objpfx)glibc-hwcaps/z17/libmarkermod6.so: $(objpfx)libmarkermod6-6.so\n-\t$(make-target-directory)\n-\tcp $< $@\n-\n-\n-ifeq (no,$(build-hardcoded-path-in-tests))\n-# This is an ld.so.cache test, and RPATH/RUNPATH in the executable\n-# interferes with its test objectives.\n-tests-container += tst-glibc-hwcaps-cache\n-endif\n-\n-endif # $(subdir) == elf\ndiff --git a/sysdeps/s390/s390-64/Versions b/sysdeps/s390/s390-64/Versions\ndeleted file mode 100644\nindex ec1d68313d..0000000000\n--- a/sysdeps/s390/s390-64/Versions\n+++ /dev/null\n@@ -1,5 +0,0 @@\n-libc {\n-  GLIBC_2.29 {\n-    __fentry__;\n-  }\n-}\ndiff --git a/sysdeps/s390/s390-64/configure b/sysdeps/s390/s390-64/configure\ndeleted file mode 100644\nindex 9ea6940c85..0000000000\n--- a/sysdeps/s390/s390-64/configure\n+++ /dev/null\n@@ -1,95 +0,0 @@\n-# This file is generated from configure.ac by Autoconf.  DO NOT EDIT!\n- # Local configure fragment for sysdeps/s390/s390-64.\n-\n-# Minimal checking for static PIE support in ld.\n-# Compare to ld testcase/bugzilla:\n-# <binutils-source>/ld/testsuite/ld-elf/pr22263-1.rd\n-{ printf \"%s\\n\" \"$as_me:${as_lineno-$LINENO}: checking for s390-specific static PIE requirements\" >&5\n-printf %s \"checking for s390-specific static PIE requirements... \" >&6; }\n-if { as_var=\\\n-libc_cv_s390x_staticpie_req_runtime; eval test \\${$as_var+y}; }\n-then :\n-  printf %s \"(cached) \" >&6\n-else case e in #(\n-  e)   cat > conftest1.c <<EOF\n-__thread int * foo;\n-\n-void\n-bar (void)\n-{\n-  *foo = 1;\n-}\n-\n-void bar2 (void);\n-void* bar2_ifunc (void) __asm__ (\"bar2\");\n-__asm__ (\".type bar2, %gnu_indirect_function\");\n-void* bar2_ifunc (void) { return 0; }\n-EOF\n-  cat > conftest2.c <<EOF\n-extern __thread int *foo;\n-extern void bar (void);\n-extern void bar2 (void);\n-static int x;\n-\n-int\n-main ()\n-{\n-  foo = &x;\n-  bar2 ();\n-  return 0;\n-}\n-EOF\n-  libc_cv_s390x_staticpie_req_runtime=no\n-  # Check if the static linker does not generate dynamic TLS relocs in PIE\n-  # (binutils PR ld/22263), if it accepts --no-dynamic-linker\n-  # (by using -static-pie), and if it adds a DT_JMPREL pointing to .rela.iplt\n-  # with static pie.\n-  if { ac_try='${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS -fPIE -c conftest1.c -o conftest1.o'\n-  { { eval echo \"\\\"\\$as_me\\\":${as_lineno-$LINENO}: \\\"$ac_try\\\"\"; } >&5\n-  (eval $ac_try) 2>&5\n-  ac_status=$?\n-  printf \"%s\\n\" \"$as_me:${as_lineno-$LINENO}: \\$? = $ac_status\" >&5\n-  test $ac_status = 0; }; } \\\n-     && { ac_try='${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS -fPIE -c conftest2.c -o conftest2.o'\n-  { { eval echo \"\\\"\\$as_me\\\":${as_lineno-$LINENO}: \\\"$ac_try\\\"\"; } >&5\n-  (eval $ac_try) 2>&5\n-  ac_status=$?\n-  printf \"%s\\n\" \"$as_me:${as_lineno-$LINENO}: \\$? = $ac_status\" >&5\n-  test $ac_status = 0; }; } \\\n-     && { ac_try='${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS -static-pie -nostartfiles -nostdlib -fPIE -o conftest conftest1.o conftest2.o'\n-  { { eval echo \"\\\"\\$as_me\\\":${as_lineno-$LINENO}: \\\"$ac_try\\\"\"; } >&5\n-  (eval $ac_try) 2>&5\n-  ac_status=$?\n-  printf \"%s\\n\" \"$as_me:${as_lineno-$LINENO}: \\$? = $ac_status\" >&5\n-  test $ac_status = 0; }; } \\\n-     && { ac_try='! LC_ALL=C $READELF -Wr conftest | grep R_390_TLS_TPOFF >&5'\n-  { { eval echo \"\\\"\\$as_me\\\":${as_lineno-$LINENO}: \\\"$ac_try\\\"\"; } >&5\n-  (eval $ac_try) 2>&5\n-  ac_status=$?\n-  printf \"%s\\n\" \"$as_me:${as_lineno-$LINENO}: \\$? = $ac_status\" >&5\n-  test $ac_status = 0; }; } \\\n-     && { ac_try='LC_ALL=C $READELF -Wd conftest | grep JMPREL >&5'\n-  { { eval echo \"\\\"\\$as_me\\\":${as_lineno-$LINENO}: \\\"$ac_try\\\"\"; } >&5\n-  (eval $ac_try) 2>&5\n-  ac_status=$?\n-  printf \"%s\\n\" \"$as_me:${as_lineno-$LINENO}: \\$? = $ac_status\" >&5\n-  test $ac_status = 0; }; }\n-  then\n-    libc_cv_s390x_staticpie_req_runtime=yes\n-  fi\n-  rm -rf conftest.* ;;\n-esac\n-fi\n-eval ac_res=\\$\\\n-libc_cv_s390x_staticpie_req_runtime\n-\t       { printf \"%s\\n\" \"$as_me:${as_lineno-$LINENO}: result: $ac_res\" >&5\n-printf \"%s\\n\" \"$ac_res\" >&6; }\n-\n-if test $libc_cv_s390x_staticpie_req_runtime = yes; then\n-   # Some kernels might fail with /proc/sys/kernel/randomize_va_space set to 0\n-   # due not enough space for a brk call.  However, there is no reliable way to\n-   # test it.\n-   printf \"%s\\n\" \"#define SUPPORT_STATIC_PIE 1\" >>confdefs.h\n-\n-fi\n-\ndiff --git a/sysdeps/s390/s390-64/configure.ac b/sysdeps/s390/s390-64/configure.ac\ndeleted file mode 100644\nindex aaf71eabb1..0000000000\n--- a/sysdeps/s390/s390-64/configure.ac\n+++ /dev/null\n@@ -1,57 +0,0 @@\n-GLIBC_PROVIDES dnl See aclocal.m4 in the top level source directory.\n-# Local configure fragment for sysdeps/s390/s390-64.\n-\n-# Minimal checking for static PIE support in ld.\n-# Compare to ld testcase/bugzilla:\n-# <binutils-source>/ld/testsuite/ld-elf/pr22263-1.rd\n-AC_CACHE_CHECK([for s390-specific static PIE requirements], \\\n-[libc_cv_s390x_staticpie_req_runtime], [dnl\n-  cat > conftest1.c <<EOF\n-__thread int * foo;\n-\n-void\n-bar (void)\n-{\n-  *foo = 1;\n-}\n-\n-void bar2 (void);\n-void* bar2_ifunc (void) __asm__ (\"bar2\");\n-__asm__ (\".type bar2, %gnu_indirect_function\");\n-void* bar2_ifunc (void) { return 0; }\n-EOF\n-  cat > conftest2.c <<EOF\n-extern __thread int *foo;\n-extern void bar (void);\n-extern void bar2 (void);\n-static int x;\n-\n-int\n-main ()\n-{\n-  foo = &x;\n-  bar2 ();\n-  return 0;\n-}\n-EOF\n-  libc_cv_s390x_staticpie_req_runtime=no\n-  # Check if the static linker does not generate dynamic TLS relocs in PIE\n-  # (binutils PR ld/22263), if it accepts --no-dynamic-linker\n-  # (by using -static-pie), and if it adds a DT_JMPREL pointing to .rela.iplt\n-  # with static pie.\n-  if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS -fPIE -c conftest1.c -o conftest1.o]) \\\n-     && AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS -fPIE -c conftest2.c -o conftest2.o]) \\\n-     && AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS -static-pie -nostartfiles -nostdlib -fPIE -o conftest conftest1.o conftest2.o]) \\\n-     && AC_TRY_COMMAND([! LC_ALL=C $READELF -Wr conftest | grep R_390_TLS_TPOFF] >&AS_MESSAGE_LOG_FD) \\\n-     && AC_TRY_COMMAND([LC_ALL=C $READELF -Wd conftest | grep JMPREL >&AS_MESSAGE_LOG_FD])\n-  then\n-    libc_cv_s390x_staticpie_req_runtime=yes\n-  fi\n-  rm -rf conftest.*])\n-\n-if test $libc_cv_s390x_staticpie_req_runtime = yes; then\n-   # Some kernels might fail with /proc/sys/kernel/randomize_va_space set to 0\n-   # due not enough space for a brk call.  However, there is no reliable way to\n-   # test it.\n-   AC_DEFINE(SUPPORT_STATIC_PIE)\n-fi\ndiff --git a/sysdeps/s390/s390-64/s390x-mcount.S b/sysdeps/s390/s390x-mcount.S\nsimilarity index 100%\nrename from sysdeps/s390/s390-64/s390x-mcount.S\nrename to sysdeps/s390/s390x-mcount.S\ndiff --git a/sysdeps/s390/s390-64/s390x-mcount.h b/sysdeps/s390/s390x-mcount.h\nsimilarity index 100%\nrename from sysdeps/s390/s390-64/s390x-mcount.h\nrename to sysdeps/s390/s390x-mcount.h\ndiff --git a/sysdeps/s390/s390-64/setjmp.S b/sysdeps/s390/setjmp.S\nsimilarity index 100%\nrename from sysdeps/s390/s390-64/setjmp.S\nrename to sysdeps/s390/setjmp.S\ndiff --git a/sysdeps/s390/s390-64/stackguard-macros.h b/sysdeps/s390/stackguard-macros.h\nsimilarity index 100%\nrename from sysdeps/s390/s390-64/stackguard-macros.h\nrename to sysdeps/s390/stackguard-macros.h\ndiff --git a/sysdeps/s390/s390-64/start.S b/sysdeps/s390/start.S\nsimilarity index 100%\nrename from sysdeps/s390/s390-64/start.S\nrename to sysdeps/s390/start.S\ndiff --git a/sysdeps/s390/s390-64/strncpy-z900.S b/sysdeps/s390/strncpy-z900.S\nsimilarity index 100%\nrename from sysdeps/s390/s390-64/strncpy-z900.S\nrename to sysdeps/s390/strncpy-z900.S\ndiff --git a/sysdeps/s390/s390-64/sub_n.S b/sysdeps/s390/sub_n.S\nsimilarity index 100%\nrename from sysdeps/s390/s390-64/sub_n.S\nrename to sysdeps/s390/sub_n.S\ndiff --git a/sysdeps/s390/s390-64/sysdep.h b/sysdeps/s390/sysdep.h\nsimilarity index 100%\nrename from sysdeps/s390/s390-64/sysdep.h\nrename to sysdeps/s390/sysdep.h\ndiff --git a/sysdeps/s390/s390-64/tst-audit.h b/sysdeps/s390/tst-audit.h\nsimilarity index 100%\nrename from sysdeps/s390/s390-64/tst-audit.h\nrename to sysdeps/s390/tst-audit.h\ndiff --git a/sysdeps/s390/s390-64/tst-glibc-hwcaps.c b/sysdeps/s390/tst-glibc-hwcaps.c\nsimilarity index 100%\nrename from sysdeps/s390/s390-64/tst-glibc-hwcaps.c\nrename to sysdeps/s390/tst-glibc-hwcaps.c\ndiff --git a/sysdeps/unix/sysv/linux/s390/Implies b/sysdeps/unix/sysv/linux/s390/Implies\nindex e6e51fa5a7..615f507831 100644\n--- a/sysdeps/unix/sysv/linux/s390/Implies\n+++ b/sysdeps/unix/sysv/linux/s390/Implies\n@@ -1,4 +1,5 @@\n s390/nptl\n+unix/sysv/linux/wordsize-64\n \n # These supply the ABI compatibility for when long double was double.\n ieee754/ldbl-64-128\ndiff --git a/sysdeps/unix/sysv/linux/s390/Makefile b/sysdeps/unix/sysv/linux/s390/Makefile\nindex 218aff1aee..e9ef5c51ac 100644\n--- a/sysdeps/unix/sysv/linux/s390/Makefile\n+++ b/sysdeps/unix/sysv/linux/s390/Makefile\n@@ -1,3 +1,11 @@\n+ifeq ($(subdir),elf)\n+ifeq (yes,$(build-shared))\n+# This is needed to support g++ v2 and v3.\n+sysdep_routines += framestate\n+shared-only-routines += framestate\n+endif\n+endif\n+\n ifeq ($(subdir),rt)\n librt-routines += rt-sysdep\n librt-shared-only-routines += rt-sysdep\n@@ -5,8 +13,10 @@ endif\n \n ifeq ($(subdir),stdlib)\n gen-as-const-headers += ucontext_i.sym\n+sysdep_routines += __makecontext_ret\n endif\n \n ifeq ($(subdir),misc)\n tests += tst-ptrace-singleblock\n+sysdep_headers += sys/elf.h\n endif\ndiff --git a/sysdeps/unix/sysv/linux/s390/Versions b/sysdeps/unix/sysv/linux/s390/Versions\nindex 548397fcff..d4b6a01950 100644\n--- a/sysdeps/unix/sysv/linux/s390/Versions\n+++ b/sysdeps/unix/sysv/linux/s390/Versions\n@@ -1,4 +1,9 @@\n libc {\n+  GLIBC_2.2 {\n+    # Exception handling support functions from libgcc\n+    __register_frame; __register_frame_table; __deregister_frame;\n+    __frame_state_for; __register_frame_info_table;\n+  }\n   GLIBC_2.19 {\n     __longjmp_chk;\n     getcontext;\ndiff --git a/sysdeps/unix/sysv/linux/s390/s390-64/____longjmp_chk.c b/sysdeps/unix/sysv/linux/s390/____longjmp_chk.c\nsimilarity index 100%\nrename from sysdeps/unix/sysv/linux/s390/s390-64/____longjmp_chk.c\nrename to sysdeps/unix/sysv/linux/s390/____longjmp_chk.c\ndiff --git a/sysdeps/unix/sysv/linux/s390/s390-64/__makecontext_ret.S b/sysdeps/unix/sysv/linux/s390/__makecontext_ret.S\nsimilarity index 100%\nrename from sysdeps/unix/sysv/linux/s390/s390-64/__makecontext_ret.S\nrename to sysdeps/unix/sysv/linux/s390/__makecontext_ret.S\ndiff --git a/sysdeps/unix/sysv/linux/s390/s390-64/arch-syscall.h b/sysdeps/unix/sysv/linux/s390/arch-syscall.h\nsimilarity index 100%\nrename from sysdeps/unix/sysv/linux/s390/s390-64/arch-syscall.h\nrename to sysdeps/unix/sysv/linux/s390/arch-syscall.h\ndiff --git a/sysdeps/unix/sysv/linux/s390/s390-64/c++-types.data b/sysdeps/unix/sysv/linux/s390/c++-types.data\nsimilarity index 100%\nrename from sysdeps/unix/sysv/linux/s390/s390-64/c++-types.data\nrename to sysdeps/unix/sysv/linux/s390/c++-types.data\ndiff --git a/sysdeps/unix/sysv/linux/s390/s390-64/clone.S b/sysdeps/unix/sysv/linux/s390/clone.S\nsimilarity index 100%\nrename from sysdeps/unix/sysv/linux/s390/s390-64/clone.S\nrename to sysdeps/unix/sysv/linux/s390/clone.S\ndiff --git a/sysdeps/unix/sysv/linux/s390/s390-64/clone3.S b/sysdeps/unix/sysv/linux/s390/clone3.S\nsimilarity index 100%\nrename from sysdeps/unix/sysv/linux/s390/s390-64/clone3.S\nrename to sysdeps/unix/sysv/linux/s390/clone3.S\ndiff --git a/sysdeps/unix/sysv/linux/s390/configure b/sysdeps/unix/sysv/linux/s390/configure\nindex d8a14434c5..9b3a1c01d2 100644\n--- a/sysdeps/unix/sysv/linux/s390/configure\n+++ b/sysdeps/unix/sysv/linux/s390/configure\n@@ -4,3 +4,16 @@\n libc_cv_gcc_unwind_find_fde=yes\n ldd_rewrite_script=sysdeps/unix/sysv/linux/s390/ldd-rewrite.sed\n \n+test -n \"$libc_cv_slibdir\" ||\n+case \"$prefix\" in\n+/usr | /usr/)\n+  libc_cv_slibdir='/lib64'\n+  libc_cv_rtlddir='/lib'\n+  if test \"$libdir\" = '${exec_prefix}/lib'; then\n+    libdir='${exec_prefix}/lib64';\n+    # Locale data can be shared between 32-bit and 64-bit libraries.\n+    libc_cv_complocaledir='${exec_prefix}/lib/locale'\n+  fi\n+  ;;\n+esac\n+\ndiff --git a/sysdeps/unix/sysv/linux/s390/configure.ac b/sysdeps/unix/sysv/linux/s390/configure.ac\nindex 978450c94b..28e1caff2f 100644\n--- a/sysdeps/unix/sysv/linux/s390/configure.ac\n+++ b/sysdeps/unix/sysv/linux/s390/configure.ac\n@@ -3,3 +3,5 @@ GLIBC_PROVIDES dnl See aclocal.m4 in the top level source directory.\n \n libc_cv_gcc_unwind_find_fde=yes\n ldd_rewrite_script=sysdeps/unix/sysv/linux/s390/ldd-rewrite.sed\n+\n+LIBC_SLIBDIR_RTLDDIR([lib64], [lib])\ndiff --git a/sysdeps/unix/sysv/linux/s390/dl-cache.h b/sysdeps/unix/sysv/linux/s390/dl-cache.h\nindex 766bba4265..df1ef9155c 100644\n--- a/sysdeps/unix/sysv/linux/s390/dl-cache.h\n+++ b/sysdeps/unix/sysv/linux/s390/dl-cache.h\n@@ -1 +1,24 @@\n+/* Support for reading /etc/ld.so.cache files written by Linux ldconfig.\n+   Copyright (C) 2001-2026 Free Software Foundation, Inc.\n+   This file is part of the GNU C Library.\n+\n+   The GNU C Library is free software; you can redistribute it and/or\n+   modify it under the terms of the GNU Lesser General Public\n+   License as published by the Free Software Foundation; either\n+   version 2.1 of the License, or (at your option) any later version.\n+\n+   The GNU C Library is distributed in the hope that it will be useful,\n+   but WITHOUT ANY WARRANTY; without even the implied warranty of\n+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU\n+   Lesser General Public License for more details.\n+\n+   You should have received a copy of the GNU Lesser General Public\n+   License along with the GNU C Library; if not, see\n+   <https://www.gnu.org/licenses/>.  */\n+\n+#define _DL_CACHE_DEFAULT_ID\t0x403\n+\n+#define _dl_cache_check_flags(flags)\t\t\t\\\n+  ((flags) == _DL_CACHE_DEFAULT_ID)\n+\n #include <sysdeps/unix/sysv/linux/sparc/dl-cache.h>\ndiff --git a/sysdeps/unix/sysv/linux/s390/s390-64/getcontext.S b/sysdeps/unix/sysv/linux/s390/getcontext.S\nsimilarity index 100%\nrename from sysdeps/unix/sysv/linux/s390/s390-64/getcontext.S\nrename to sysdeps/unix/sysv/linux/s390/getcontext.S\ndiff --git a/sysdeps/unix/sysv/linux/s390/s390-64/ld.abilist b/sysdeps/unix/sysv/linux/s390/ld.abilist\nsimilarity index 100%\nrename from sysdeps/unix/sysv/linux/s390/s390-64/ld.abilist\nrename to sysdeps/unix/sysv/linux/s390/ld.abilist\ndiff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libBrokenLocale.abilist b/sysdeps/unix/sysv/linux/s390/libBrokenLocale.abilist\nsimilarity index 100%\nrename from sysdeps/unix/sysv/linux/s390/s390-64/libBrokenLocale.abilist\nrename to sysdeps/unix/sysv/linux/s390/libBrokenLocale.abilist\ndiff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libanl.abilist b/sysdeps/unix/sysv/linux/s390/libanl.abilist\nsimilarity index 100%\nrename from sysdeps/unix/sysv/linux/s390/s390-64/libanl.abilist\nrename to sysdeps/unix/sysv/linux/s390/libanl.abilist\ndiff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist b/sysdeps/unix/sysv/linux/s390/libc.abilist\nsimilarity index 100%\nrename from sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist\nrename to sysdeps/unix/sysv/linux/s390/libc.abilist\ndiff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libc_malloc_debug.abilist b/sysdeps/unix/sysv/linux/s390/libc_malloc_debug.abilist\nsimilarity index 100%\nrename from sysdeps/unix/sysv/linux/s390/s390-64/libc_malloc_debug.abilist\nrename to sysdeps/unix/sysv/linux/s390/libc_malloc_debug.abilist\ndiff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libdl.abilist b/sysdeps/unix/sysv/linux/s390/libdl.abilist\nsimilarity index 100%\nrename from sysdeps/unix/sysv/linux/s390/s390-64/libdl.abilist\nrename to sysdeps/unix/sysv/linux/s390/libdl.abilist\ndiff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist b/sysdeps/unix/sysv/linux/s390/libm.abilist\nsimilarity index 100%\nrename from sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist\nrename to sysdeps/unix/sysv/linux/s390/libm.abilist\ndiff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libnsl.abilist b/sysdeps/unix/sysv/linux/s390/libnsl.abilist\nsimilarity index 100%\nrename from sysdeps/unix/sysv/linux/s390/s390-64/libnsl.abilist\nrename to sysdeps/unix/sysv/linux/s390/libnsl.abilist\ndiff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist b/sysdeps/unix/sysv/linux/s390/libpthread.abilist\nsimilarity index 100%\nrename from sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist\nrename to sysdeps/unix/sysv/linux/s390/libpthread.abilist\ndiff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libresolv.abilist b/sysdeps/unix/sysv/linux/s390/libresolv.abilist\nsimilarity index 100%\nrename from sysdeps/unix/sysv/linux/s390/s390-64/libresolv.abilist\nrename to sysdeps/unix/sysv/linux/s390/libresolv.abilist\ndiff --git a/sysdeps/unix/sysv/linux/s390/s390-64/librt.abilist b/sysdeps/unix/sysv/linux/s390/librt.abilist\nsimilarity index 100%\nrename from sysdeps/unix/sysv/linux/s390/s390-64/librt.abilist\nrename to sysdeps/unix/sysv/linux/s390/librt.abilist\ndiff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libthread_db.abilist b/sysdeps/unix/sysv/linux/s390/libthread_db.abilist\nsimilarity index 100%\nrename from sysdeps/unix/sysv/linux/s390/s390-64/libthread_db.abilist\nrename to sysdeps/unix/sysv/linux/s390/libthread_db.abilist\ndiff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libutil.abilist b/sysdeps/unix/sysv/linux/s390/libutil.abilist\nsimilarity index 100%\nrename from sysdeps/unix/sysv/linux/s390/s390-64/libutil.abilist\nrename to sysdeps/unix/sysv/linux/s390/libutil.abilist\ndiff --git a/sysdeps/unix/sysv/linux/s390/s390-64/makecontext.c b/sysdeps/unix/sysv/linux/s390/makecontext.c\nsimilarity index 100%\nrename from sysdeps/unix/sysv/linux/s390/s390-64/makecontext.c\nrename to sysdeps/unix/sysv/linux/s390/makecontext.c\ndiff --git a/sysdeps/unix/sysv/linux/s390/s390-64/pointer_guard.h b/sysdeps/unix/sysv/linux/s390/pointer_guard.h\nsimilarity index 100%\nrename from sysdeps/unix/sysv/linux/s390/s390-64/pointer_guard.h\nrename to sysdeps/unix/sysv/linux/s390/pointer_guard.h\ndiff --git a/sysdeps/unix/sysv/linux/s390/s390-64/Implies b/sysdeps/unix/sysv/linux/s390/s390-64/Implies\ndeleted file mode 100644\nindex 8d91c80097..0000000000\n--- a/sysdeps/unix/sysv/linux/s390/s390-64/Implies\n+++ /dev/null\n@@ -1 +0,0 @@\n-unix/sysv/linux/wordsize-64\ndiff --git a/sysdeps/unix/sysv/linux/s390/s390-64/Makefile b/sysdeps/unix/sysv/linux/s390/s390-64/Makefile\ndeleted file mode 100644\nindex 0c338cba36..0000000000\n--- a/sysdeps/unix/sysv/linux/s390/s390-64/Makefile\n+++ /dev/null\n@@ -1,15 +0,0 @@\n-ifeq ($(subdir),misc)\n-sysdep_headers += sys/elf.h\n-endif\n-\n-ifeq ($(subdir),elf)\n-ifeq (yes,$(build-shared))\n-# This is needed to support g++ v2 and v3.\n-sysdep_routines += framestate\n-shared-only-routines += framestate\n-endif\n-endif\n-\n-ifeq ($(subdir),stdlib)\n-sysdep_routines += __makecontext_ret\n-endif\ndiff --git a/sysdeps/unix/sysv/linux/s390/s390-64/Versions b/sysdeps/unix/sysv/linux/s390/s390-64/Versions\ndeleted file mode 100644\nindex 83092db48e..0000000000\n--- a/sysdeps/unix/sysv/linux/s390/s390-64/Versions\n+++ /dev/null\n@@ -1,7 +0,0 @@\n-libc {\n-  GLIBC_2.2 {\n-    # Exception handling support functions from libgcc\n-    __register_frame; __register_frame_table; __deregister_frame;\n-    __frame_state_for; __register_frame_info_table;\n-  }\n-}\ndiff --git a/sysdeps/unix/sysv/linux/s390/s390-64/configure b/sysdeps/unix/sysv/linux/s390/s390-64/configure\ndeleted file mode 100644\nindex 5490bc669e..0000000000\n--- a/sysdeps/unix/sysv/linux/s390/s390-64/configure\n+++ /dev/null\n@@ -1,16 +0,0 @@\n-# This file is generated from configure.ac by Autoconf.  DO NOT EDIT!\n- # Local configure fragment for sysdeps/unix/sysv/linux/s390/s390-64.\n-\n-test -n \"$libc_cv_slibdir\" ||\n-case \"$prefix\" in\n-/usr | /usr/)\n-  libc_cv_slibdir='/lib64'\n-  libc_cv_rtlddir='/lib'\n-  if test \"$libdir\" = '${exec_prefix}/lib'; then\n-    libdir='${exec_prefix}/lib64';\n-    # Locale data can be shared between 32-bit and 64-bit libraries.\n-    libc_cv_complocaledir='${exec_prefix}/lib/locale'\n-  fi\n-  ;;\n-esac\n-\ndiff --git a/sysdeps/unix/sysv/linux/s390/s390-64/configure.ac b/sysdeps/unix/sysv/linux/s390/s390-64/configure.ac\ndeleted file mode 100644\nindex 8c75888b62..0000000000\n--- a/sysdeps/unix/sysv/linux/s390/s390-64/configure.ac\n+++ /dev/null\n@@ -1,4 +0,0 @@\n-GLIBC_PROVIDES dnl See aclocal.m4 in the top level source directory.\n-# Local configure fragment for sysdeps/unix/sysv/linux/s390/s390-64.\n-\n-LIBC_SLIBDIR_RTLDDIR([lib64], [lib])\ndiff --git a/sysdeps/unix/sysv/linux/s390/s390-64/dl-cache.h b/sysdeps/unix/sysv/linux/s390/s390-64/dl-cache.h\ndeleted file mode 100644\nindex 0a334a9d9a..0000000000\n--- a/sysdeps/unix/sysv/linux/s390/s390-64/dl-cache.h\n+++ /dev/null\n@@ -1,24 +0,0 @@\n-/* Support for reading /etc/ld.so.cache files written by Linux ldconfig.\n-   Copyright (C) 2001-2026 Free Software Foundation, Inc.\n-   This file is part of the GNU C Library.\n-\n-   The GNU C Library is free software; you can redistribute it and/or\n-   modify it under the terms of the GNU Lesser General Public\n-   License as published by the Free Software Foundation; either\n-   version 2.1 of the License, or (at your option) any later version.\n-\n-   The GNU C Library is distributed in the hope that it will be useful,\n-   but WITHOUT ANY WARRANTY; without even the implied warranty of\n-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU\n-   Lesser General Public License for more details.\n-\n-   You should have received a copy of the GNU Lesser General Public\n-   License along with the GNU C Library; if not, see\n-   <https://www.gnu.org/licenses/>.  */\n-\n-#define _DL_CACHE_DEFAULT_ID\t0x403\n-\n-#define _dl_cache_check_flags(flags)\t\t\t\\\n-  ((flags) == _DL_CACHE_DEFAULT_ID)\n-\n-#include_next <dl-cache.h>\ndiff --git a/sysdeps/unix/sysv/linux/s390/s390-64/sysdep.h b/sysdeps/unix/sysv/linux/s390/s390-64/sysdep.h\ndeleted file mode 100644\nindex 9c9e2a271f..0000000000\n--- a/sysdeps/unix/sysv/linux/s390/s390-64/sysdep.h\n+++ /dev/null\n@@ -1,178 +0,0 @@\n-/* Assembler macros for 64 bit S/390.\n-   Copyright (C) 2001-2026 Free Software Foundation, Inc.\n-   This file is part of the GNU C Library.\n-\n-   The GNU C Library is free software; you can redistribute it and/or\n-   modify it under the terms of the GNU Lesser General Public\n-   License as published by the Free Software Foundation; either\n-   version 2.1 of the License, or (at your option) any later version.\n-\n-   The GNU C Library is distributed in the hope that it will be useful,\n-   but WITHOUT ANY WARRANTY; without even the implied warranty of\n-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU\n-   Lesser General Public License for more details.\n-\n-   You should have received a copy of the GNU Lesser General Public\n-   License along with the GNU C Library; if not, see\n-   <https://www.gnu.org/licenses/>.  */\n-\n-#ifndef _LINUX_S390_SYSDEP_H\n-#define _LINUX_S390_SYSDEP_H\n-\n-#include <sysdeps/s390/s390-64/sysdep.h>\n-#include <sysdeps/unix/sysdep.h>\n-#include <sysdeps/unix/sysv/linux/s390/sysdep.h>\n-#include <sysdeps/unix/sysv/linux/sysdep.h>\n-#include <dl-sysdep.h>\t/* For RTLD_PRIVATE_ERRNO.  */\n-#include <tls.h>\n-\n-/* For Linux we can use the system call table in the header file\n-\t/usr/include/asm/unistd.h\n-   of the kernel.  But these symbols do not follow the SYS_* syntax\n-   so we have to redefine the `SYS_ify' macro here.  */\n-/* In newer 2.1 kernels __NR_syscall is missing so we define it here.  */\n-#define __NR_syscall 0\n-\n-#undef SYS_ify\n-#define SYS_ify(syscall_name)\t__NR_##syscall_name\n-\n-#ifdef __ASSEMBLER__\n-\n-/* Linux uses a negative return value to indicate syscall errors, unlike\n-   most Unices, which use the condition codes' carry flag.\n-\n-   Since version 2.1 the return value of a system call might be negative\n-   even if the call succeeded.\tE.g., the `lseek' system call might return\n-   a large offset.  Therefore we must not anymore test for < 0, but test\n-   for a real error by making sure the value in gpr2 is a real error\n-   number.  Linus said he will make sure that no syscall returns a value\n-   in -1 .. -4095 as a valid result so we can safely test with -4095.  */\n-\n-#undef PSEUDO\n-#define\tPSEUDO(name, syscall_name, args)\t\t\t\t      \\\n-  .text;\t\t\t\t\t\t\t\t      \\\n-  ENTRY (name)\t\t\t\t\t\t\t\t      \\\n-    DO_CALL (syscall_name, args);\t\t\t\t\t      \\\n-    lghi %r4,-4095 ;\t\t\t\t\t\t\t      \\\n-    clgr %r2,%r4 ;\t\t\t\t\t\t\t      \\\n-    jgnl SYSCALL_ERROR_LABEL\n-\n-#undef PSEUDO_END\n-#define PSEUDO_END(name)\t\t\t\t\t\t      \\\n-  SYSCALL_ERROR_HANDLER;\t\t\t\t\t\t      \\\n-  END (name)\n-\n-#undef PSEUDO_NOERRNO\n-#define\tPSEUDO_NOERRNO(name, syscall_name, args)\t\t\t      \\\n-  .text;\t\t\t\t\t\t\t\t      \\\n-  ENTRY (name)\t\t\t\t\t\t\t\t      \\\n-    DO_CALL (syscall_name, args)\n-\n-#undef PSEUDO_END_NOERRNO\n-#define PSEUDO_END_NOERRNO(name)\t\t\t\t\t      \\\n-  SYSCALL_ERROR_HANDLER;\t\t\t\t\t\t      \\\n-  END (name)\n-\n-#undef PSEUDO_ERRVAL\n-#define\tPSEUDO_ERRVAL(name, syscall_name, args)\t\t\t\t      \\\n-  .text;\t\t\t\t\t\t\t\t      \\\n-  ENTRY (name)\t\t\t\t\t\t\t\t      \\\n-    DO_CALL (syscall_name, args);\t\t\t\t\t      \\\n-    lcgr %r2,%r2\n-\n-#undef PSEUDO_END_ERRVAL\n-#define PSEUDO_END_ERRVAL(name)\t\t\t\t\t\t      \\\n-  SYSCALL_ERROR_HANDLER;\t\t\t\t\t\t      \\\n-  END (name)\n-\n-#undef SYSCALL_ERROR_LABEL\n-#ifndef PIC\n-# undef SYSCALL_ERROR_LABEL\n-# define SYSCALL_ERROR_LABEL syscall_error\n-# define SYSCALL_ERROR_HANDLER\n-#else\n-# if RTLD_PRIVATE_ERRNO\n-#  undef SYSCALL_ERROR_LABEL\n-#  define SYSCALL_ERROR_LABEL 0f\n-#  define SYSCALL_ERROR_HANDLER \\\n-0:  larl  %r1,rtld_errno;\t\t\t\t\t\t      \\\n-    lcr   %r2,%r2;\t\t\t\t\t\t\t      \\\n-    st    %r2,0(%r1);\t\t\t\t\t\t\t      \\\n-    lghi  %r2,-1;\t\t\t\t\t\t\t      \\\n-    br    %r14\n-# elif defined _LIBC_REENTRANT\n-#  if IS_IN (libc)\n-#   define SYSCALL_ERROR_ERRNO __libc_errno\n-#  else\n-#   define SYSCALL_ERROR_ERRNO errno\n-#  endif\n-#  undef SYSCALL_ERROR_LABEL\n-#  define SYSCALL_ERROR_LABEL 0f\n-#  define SYSCALL_ERROR_HANDLER \\\n-0:  lcr   %r0,%r2;\t\t\t\t\t\t\t      \\\n-    larl  %r1,SYSCALL_ERROR_ERRNO@indntpoff;\t\t\t\t      \\\n-    lg    %r1,0(%r1);\t\t\t\t\t\t\t      \\\n-    ear   %r2,%a0;\t\t\t\t\t\t\t      \\\n-    sllg  %r2,%r2,32;\t\t\t\t\t\t\t      \\\n-    ear   %r2,%a1;\t\t\t\t\t\t\t      \\\n-    st    %r0,0(%r1,%r2);\t\t\t\t\t\t      \\\n-    lghi   %r2,-1;\t\t\t\t\t\t\t      \\\n-    br    %r14\n-# else\n-#  undef SYSCALL_ERROR_LABEL\n-#  define SYSCALL_ERROR_LABEL 0f\n-#  define SYSCALL_ERROR_HANDLER \\\n-0:  larl  %r1,_GLOBAL_OFFSET_TABLE_;\t\t\t\t\t      \\\n-    lg    %r1,errno@GOT(%r1);\t\t\t\t\t\t      \\\n-    lcr   %r2,%r2;\t\t\t\t\t\t\t      \\\n-    st    %r2,0(%r1);\t\t\t\t\t\t\t      \\\n-    lghi  %r2,-1;\t\t\t\t\t\t\t      \\\n-    br    %r14\n-# endif /* _LIBC_REENTRANT */\n-#endif /* PIC */\n-\n-/* Linux takes system call arguments in registers:\n-\n-\tsyscall number\t1\t     call-clobbered\n-\targ 1\t\t2\t     call-clobbered\n-\targ 2\t\t3\t     call-clobbered\n-\targ 3\t\t4\t     call-clobbered\n-\targ 4\t\t5\t     call-clobbered\n-\targ 5\t\t6\t     call-saved\n-\targ 6\t\t7\t     call-saved\n-\n-   (Of course a function with say 3 arguments does not have entries for\n-   arguments 4 and 5.)\n-   For system calls with 6 parameters a stack operation is required\n-   to load the 6th parameter to register 7. Call saved register 7 is\n-   moved to register 0 and back to avoid an additional stack frame.\n- */\n-\n-#define DO_CALL(syscall, args)\t\t\t\t\t\t      \\\n-  .if args > 5;\t\t\t\t\t\t\t\t      \\\n-    lgr %r0,%r7;\t\t\t\t\t\t\t      \\\n-    lg %r7,160(%r15);\t\t\t\t\t\t\t      \\\n-  .endif;\t\t\t\t\t\t\t\t      \\\n-    lghi %r1,SYS_ify (syscall);\t\t\t\t\t\t      \\\n-    svc 0;\t\t\t\t\t\t\t\t      \\\n-  .if args > 5;\t\t\t\t\t\t\t\t      \\\n-    lgr %r7,%r0;\t\t\t\t\t\t\t      \\\n-  .endif\n-\n-#define ret\t\t\t\t\t\t\t\t      \\\n-    br\t    14\n-\n-#define ret_NOERRNO\t\t\t\t\t\t\t      \\\n-    br\t    14\n-\n-#define ret_ERRVAL\t\t\t\t\t\t\t      \\\n-    br\t    14\n-\n-#else\n-\n-# undef HAVE_INTERNAL_BRK_ADDR_SYMBOL\n-# define HAVE_INTERNAL_BRK_ADDR_SYMBOL 1\n-\n-#endif /* __ASSEMBLER__ */\n-\n-#endif /* _LINUX_S390_SYSDEP_H */\ndiff --git a/sysdeps/unix/sysv/linux/s390/s390-64/setcontext.S b/sysdeps/unix/sysv/linux/s390/setcontext.S\nsimilarity index 100%\nrename from sysdeps/unix/sysv/linux/s390/s390-64/setcontext.S\nrename to sysdeps/unix/sysv/linux/s390/setcontext.S\ndiff --git a/sysdeps/unix/sysv/linux/s390/s390-64/shlib-versions b/sysdeps/unix/sysv/linux/s390/shlib-versions\nsimilarity index 100%\nrename from sysdeps/unix/sysv/linux/s390/s390-64/shlib-versions\nrename to sysdeps/unix/sysv/linux/s390/shlib-versions\ndiff --git a/sysdeps/unix/sysv/linux/s390/s390-64/single-thread.h b/sysdeps/unix/sysv/linux/s390/single-thread.h\nsimilarity index 100%\nrename from sysdeps/unix/sysv/linux/s390/s390-64/single-thread.h\nrename to sysdeps/unix/sysv/linux/s390/single-thread.h\ndiff --git a/sysdeps/unix/sysv/linux/s390/s390-64/swapcontext.S b/sysdeps/unix/sysv/linux/s390/swapcontext.S\nsimilarity index 100%\nrename from sysdeps/unix/sysv/linux/s390/s390-64/swapcontext.S\nrename to sysdeps/unix/sysv/linux/s390/swapcontext.S\ndiff --git a/sysdeps/unix/sysv/linux/s390/s390-64/syscall.S b/sysdeps/unix/sysv/linux/s390/syscall.S\nsimilarity index 100%\nrename from sysdeps/unix/sysv/linux/s390/s390-64/syscall.S\nrename to sysdeps/unix/sysv/linux/s390/syscall.S\ndiff --git a/sysdeps/unix/sysv/linux/s390/s390-64/syscall_cancel.S b/sysdeps/unix/sysv/linux/s390/syscall_cancel.S\nsimilarity index 100%\nrename from sysdeps/unix/sysv/linux/s390/s390-64/syscall_cancel.S\nrename to sysdeps/unix/sysv/linux/s390/syscall_cancel.S\ndiff --git a/sysdeps/unix/sysv/linux/s390/s390-64/sysdep.S b/sysdeps/unix/sysv/linux/s390/sysdep.S\nsimilarity index 100%\nrename from sysdeps/unix/sysv/linux/s390/s390-64/sysdep.S\nrename to sysdeps/unix/sysv/linux/s390/sysdep.S\ndiff --git a/sysdeps/unix/sysv/linux/s390/sysdep.h b/sysdeps/unix/sysv/linux/s390/sysdep.h\nindex 593e70dc1e..42fb8aa469 100644\n--- a/sysdeps/unix/sysv/linux/s390/sysdep.h\n+++ b/sysdeps/unix/sysv/linux/s390/sysdep.h\n@@ -1,5 +1,5 @@\n-/* Syscall definitions, Linux s390 version.\n-   Copyright (C) 2019-2026 Free Software Foundation, Inc.\n+/* Assembler macros for 64 bit S/390.\n+   Copyright (C) 2001-2026 Free Software Foundation, Inc.\n    This file is part of the GNU C Library.\n \n    The GNU C Library is free software; you can redistribute it and/or\n@@ -14,15 +14,163 @@\n \n    You should have received a copy of the GNU Lesser General Public\n    License along with the GNU C Library; if not, see\n-   <http://www.gnu.org/licenses/>.  */\n+   <https://www.gnu.org/licenses/>.  */\n \n-#ifndef __ASSEMBLY__\n+#ifndef _LINUX_S390_SYSDEP_H\n+#define _LINUX_S390_SYSDEP_H\n+\n+#include <sysdeps/s390/sysdep.h>\n+#include <sysdeps/unix/sysdep.h>\n+#include <sysdeps/unix/sysv/linux/sysdep.h>\n+#include <dl-sysdep.h>\t/* For RTLD_PRIVATE_ERRNO.  */\n+#include <tls.h>\n+\n+/* For Linux we can use the system call table in the header file\n+\t/usr/include/asm/unistd.h\n+   of the kernel.  But these symbols do not follow the SYS_* syntax\n+   so we have to redefine the `SYS_ify' macro here.  */\n+/* In newer 2.1 kernels __NR_syscall is missing so we define it here.  */\n+#define __NR_syscall 0\n \n #undef SYS_ify\n #define SYS_ify(syscall_name)\t__NR_##syscall_name\n \n-#undef INTERNAL_SYSCALL_NCS\n-#define INTERNAL_SYSCALL_NCS(no, nr, args...)\t\t\t\t      \\\n+#ifdef __ASSEMBLER__\n+\n+/* Linux uses a negative return value to indicate syscall errors, unlike\n+   most Unices, which use the condition codes' carry flag.\n+\n+   Since version 2.1 the return value of a system call might be negative\n+   even if the call succeeded.\tE.g., the `lseek' system call might return\n+   a large offset.  Therefore we must not anymore test for < 0, but test\n+   for a real error by making sure the value in gpr2 is a real error\n+   number.  Linus said he will make sure that no syscall returns a value\n+   in -1 .. -4095 as a valid result so we can safely test with -4095.  */\n+\n+# undef PSEUDO\n+# define PSEUDO(name, syscall_name, args)\t\t\t\t      \\\n+  .text;\t\t\t\t\t\t\t\t      \\\n+  ENTRY (name)\t\t\t\t\t\t\t\t      \\\n+    DO_CALL (syscall_name, args);\t\t\t\t\t      \\\n+    lghi %r4,-4095 ;\t\t\t\t\t\t\t      \\\n+    clgr %r2,%r4 ;\t\t\t\t\t\t\t      \\\n+    jgnl SYSCALL_ERROR_LABEL\n+\n+# undef PSEUDO_END\n+# define PSEUDO_END(name)\t\t\t\t\t\t      \\\n+  SYSCALL_ERROR_HANDLER;\t\t\t\t\t\t      \\\n+  END (name)\n+\n+# undef PSEUDO_NOERRNO\n+# define PSEUDO_NOERRNO(name, syscall_name, args)\t\t\t      \\\n+  .text;\t\t\t\t\t\t\t\t      \\\n+  ENTRY (name)\t\t\t\t\t\t\t\t      \\\n+    DO_CALL (syscall_name, args)\n+\n+# undef PSEUDO_END_NOERRNO\n+# define PSEUDO_END_NOERRNO(name)\t\t\t\t\t      \\\n+  SYSCALL_ERROR_HANDLER;\t\t\t\t\t\t      \\\n+  END (name)\n+\n+# undef PSEUDO_ERRVAL\n+# define PSEUDO_ERRVAL(name, syscall_name, args)\t\t\t\t      \\\n+  .text;\t\t\t\t\t\t\t\t      \\\n+  ENTRY (name)\t\t\t\t\t\t\t\t      \\\n+    DO_CALL (syscall_name, args);\t\t\t\t\t      \\\n+    lcgr %r2,%r2\n+\n+# undef PSEUDO_END_ERRVAL\n+# define PSEUDO_END_ERRVAL(name)\t\t\t\t\t\t      \\\n+  SYSCALL_ERROR_HANDLER;\t\t\t\t\t\t      \\\n+  END (name)\n+\n+# undef SYSCALL_ERROR_LABEL\n+# ifndef PIC\n+#  undef SYSCALL_ERROR_LABEL\n+#  define SYSCALL_ERROR_LABEL syscall_error\n+#  define SYSCALL_ERROR_HANDLER\n+# else\n+#  if RTLD_PRIVATE_ERRNO\n+#   undef SYSCALL_ERROR_LABEL\n+#   define SYSCALL_ERROR_LABEL 0f\n+#   define SYSCALL_ERROR_HANDLER \\\n+0:  larl  %r1,rtld_errno;\t\t\t\t\t\t      \\\n+    lcr   %r2,%r2;\t\t\t\t\t\t\t      \\\n+    st    %r2,0(%r1);\t\t\t\t\t\t\t      \\\n+    lghi  %r2,-1;\t\t\t\t\t\t\t      \\\n+    br    %r14\n+#  elif defined _LIBC_REENTRANT\n+#   if IS_IN (libc)\n+#    define SYSCALL_ERROR_ERRNO __libc_errno\n+#   else\n+#    define SYSCALL_ERROR_ERRNO errno\n+#   endif\n+#   undef SYSCALL_ERROR_LABEL\n+#   define SYSCALL_ERROR_LABEL 0f\n+#   define SYSCALL_ERROR_HANDLER \\\n+0:  lcr   %r0,%r2;\t\t\t\t\t\t\t      \\\n+    larl  %r1,SYSCALL_ERROR_ERRNO@indntpoff;\t\t\t\t      \\\n+    lg    %r1,0(%r1);\t\t\t\t\t\t\t      \\\n+    ear   %r2,%a0;\t\t\t\t\t\t\t      \\\n+    sllg  %r2,%r2,32;\t\t\t\t\t\t\t      \\\n+    ear   %r2,%a1;\t\t\t\t\t\t\t      \\\n+    st    %r0,0(%r1,%r2);\t\t\t\t\t\t      \\\n+    lghi   %r2,-1;\t\t\t\t\t\t\t      \\\n+    br    %r14\n+#  else\n+#   undef SYSCALL_ERROR_LABEL\n+#   define SYSCALL_ERROR_LABEL 0f\n+#   define SYSCALL_ERROR_HANDLER \\\n+0:  larl  %r1,_GLOBAL_OFFSET_TABLE_;\t\t\t\t\t      \\\n+    lg    %r1,errno@GOT(%r1);\t\t\t\t\t\t      \\\n+    lcr   %r2,%r2;\t\t\t\t\t\t\t      \\\n+    st    %r2,0(%r1);\t\t\t\t\t\t\t      \\\n+    lghi  %r2,-1;\t\t\t\t\t\t\t      \\\n+    br    %r14\n+#  endif /* _LIBC_REENTRANT */\n+# endif /* PIC */\n+\n+/* Linux takes system call arguments in registers:\n+\n+\tsyscall number\t1\t     call-clobbered\n+\targ 1\t\t2\t     call-clobbered\n+\targ 2\t\t3\t     call-clobbered\n+\targ 3\t\t4\t     call-clobbered\n+\targ 4\t\t5\t     call-clobbered\n+\targ 5\t\t6\t     call-saved\n+\targ 6\t\t7\t     call-saved\n+\n+   (Of course a function with say 3 arguments does not have entries for\n+   arguments 4 and 5.)\n+   For system calls with 6 parameters a stack operation is required\n+   to load the 6th parameter to register 7. Call saved register 7 is\n+   moved to register 0 and back to avoid an additional stack frame.\n+ */\n+\n+# define DO_CALL(syscall, args)\t\t\t\t\t\t      \\\n+  .if args > 5;\t\t\t\t\t\t\t\t      \\\n+    lgr %r0,%r7;\t\t\t\t\t\t\t      \\\n+    lg %r7,160(%r15);\t\t\t\t\t\t\t      \\\n+  .endif;\t\t\t\t\t\t\t\t      \\\n+    lghi %r1,SYS_ify (syscall);\t\t\t\t\t\t      \\\n+    svc 0;\t\t\t\t\t\t\t\t      \\\n+  .if args > 5;\t\t\t\t\t\t\t\t      \\\n+    lgr %r7,%r0;\t\t\t\t\t\t\t      \\\n+  .endif\n+\n+# define ret\t\t\t\t\t\t\t\t      \\\n+    br\t    14\n+\n+# define ret_NOERRNO\t\t\t\t\t\t\t      \\\n+    br\t    14\n+\n+# define ret_ERRVAL\t\t\t\t\t\t\t      \\\n+    br\t    14\n+\n+#else /* not __ASSEMBLER__ */\n+\n+# undef INTERNAL_SYSCALL_NCS\n+# define INTERNAL_SYSCALL_NCS(no, nr, args...)\t\t\t\t      \\\n   ({\t\t\t\t\t\t\t\t\t      \\\n     DECLARGS_##nr(args)\t\t\t\t\t\t\t      \\\n     register unsigned long int _nr __asm__(\"1\") = (unsigned long int)(no);    \\\n@@ -34,46 +182,52 @@\n \t\t\t  : \"memory\" );\t\t\t\t\t      \\\n     _ret; })\n \n-#undef INTERNAL_SYSCALL\n-#define INTERNAL_SYSCALL(name, nr, args...)\t\t\t\t\\\n+# undef INTERNAL_SYSCALL\n+# define INTERNAL_SYSCALL(name, nr, args...)\t\t\t\t\\\n   INTERNAL_SYSCALL_NCS(__NR_##name, nr, args)\n \n-#define DECLARGS_0()\n-#define DECLARGS_1(arg1) \\\n+# define DECLARGS_0()\n+# define DECLARGS_1(arg1) \\\n   register unsigned long int gpr2 __asm__ (\"2\") = (unsigned long int)(arg1);\n-#define DECLARGS_2(arg1, arg2) \\\n+# define DECLARGS_2(arg1, arg2) \\\n   DECLARGS_1(arg1) \\\n   register unsigned long int gpr3 __asm__ (\"3\") = (unsigned long int)(arg2);\n-#define DECLARGS_3(arg1, arg2, arg3) \\\n+# define DECLARGS_3(arg1, arg2, arg3) \\\n   DECLARGS_2(arg1, arg2) \\\n   register unsigned long int gpr4 __asm__ (\"4\") = (unsigned long int)(arg3);\n-#define DECLARGS_4(arg1, arg2, arg3, arg4) \\\n+# define DECLARGS_4(arg1, arg2, arg3, arg4) \\\n   DECLARGS_3(arg1, arg2, arg3) \\\n   register unsigned long int gpr5 __asm__ (\"5\") = (unsigned long int)(arg4);\n-#define DECLARGS_5(arg1, arg2, arg3, arg4, arg5) \\\n+# define DECLARGS_5(arg1, arg2, arg3, arg4, arg5) \\\n   DECLARGS_4(arg1, arg2, arg3, arg4) \\\n   register unsigned long int gpr6 __asm__ (\"6\") = (unsigned long int)(arg5);\n-#define DECLARGS_6(arg1, arg2, arg3, arg4, arg5, arg6) \\\n+# define DECLARGS_6(arg1, arg2, arg3, arg4, arg5, arg6) \\\n   DECLARGS_5(arg1, arg2, arg3, arg4, arg5) \\\n   register unsigned long int gpr7 __asm__ (\"7\") = (unsigned long int)(arg6);\n \n-#define ASMFMT_0\n-#define ASMFMT_1 , \"0\" (gpr2)\n-#define ASMFMT_2 , \"0\" (gpr2), \"d\" (gpr3)\n-#define ASMFMT_3 , \"0\" (gpr2), \"d\" (gpr3), \"d\" (gpr4)\n-#define ASMFMT_4 , \"0\" (gpr2), \"d\" (gpr3), \"d\" (gpr4), \"d\" (gpr5)\n-#define ASMFMT_5 , \"0\" (gpr2), \"d\" (gpr3), \"d\" (gpr4), \"d\" (gpr5), \"d\" (gpr6)\n-#define ASMFMT_6 , \"0\" (gpr2), \"d\" (gpr3), \"d\" (gpr4), \"d\" (gpr5), \"d\" (gpr6), \"d\" (gpr7)\n+# define ASMFMT_0\n+# define ASMFMT_1 , \"0\" (gpr2)\n+# define ASMFMT_2 , \"0\" (gpr2), \"d\" (gpr3)\n+# define ASMFMT_3 , \"0\" (gpr2), \"d\" (gpr3), \"d\" (gpr4)\n+# define ASMFMT_4 , \"0\" (gpr2), \"d\" (gpr3), \"d\" (gpr4), \"d\" (gpr5)\n+# define ASMFMT_5 , \"0\" (gpr2), \"d\" (gpr3), \"d\" (gpr4), \"d\" (gpr5), \"d\" (gpr6)\n+# define ASMFMT_6 , \"0\" (gpr2), \"d\" (gpr3), \"d\" (gpr4), \"d\" (gpr5), \"d\" (gpr6), \"d\" (gpr7)\n \n-#define VDSO_NAME  \"LINUX_2.6.29\"\n-#define VDSO_HASH  123718585\n+# define VDSO_NAME  \"LINUX_2.6.29\"\n+# define VDSO_HASH  123718585\n \n /* List of system calls which are supported as vsyscalls.  */\n-#define HAVE_CLOCK_GETRES64_VSYSCALL\t\"__kernel_clock_getres\"\n-#define HAVE_CLOCK_GETTIME64_VSYSCALL\t\"__kernel_clock_gettime\"\n-#define HAVE_GETRANDOM_VSYSCALL\t\t\"__kernel_getrandom\"\n-#define HAVE_GETTIMEOFDAY_VSYSCALL\t\"__kernel_gettimeofday\"\n-#define HAVE_GETCPU_VSYSCALL\t\t\"__kernel_getcpu\"\n-\n-#define HAVE_CLONE3_WRAPPER\t\t1\n-#endif\n+# define HAVE_CLOCK_GETRES64_VSYSCALL\t\"__kernel_clock_getres\"\n+# define HAVE_CLOCK_GETTIME64_VSYSCALL\t\"__kernel_clock_gettime\"\n+# define HAVE_GETRANDOM_VSYSCALL\t\t\"__kernel_getrandom\"\n+# define HAVE_GETTIMEOFDAY_VSYSCALL\t\"__kernel_gettimeofday\"\n+# define HAVE_GETCPU_VSYSCALL\t\t\"__kernel_getcpu\"\n+\n+# define HAVE_CLONE3_WRAPPER\t\t1\n+\n+# undef HAVE_INTERNAL_BRK_ADDR_SYMBOL\n+# define HAVE_INTERNAL_BRK_ADDR_SYMBOL 1\n+\n+#endif /* __ASSEMBLER__ */\n+\n+#endif /* _LINUX_S390_SYSDEP_H */\ndiff --git a/sysdeps/unix/sysv/linux/s390/s390-64/timer_t_was_int_compat.h b/sysdeps/unix/sysv/linux/s390/timer_t_was_int_compat.h\nsimilarity index 100%\nrename from sysdeps/unix/sysv/linux/s390/s390-64/timer_t_was_int_compat.h\nrename to sysdeps/unix/sysv/linux/s390/timer_t_was_int_compat.h\ndiff --git a/sysdeps/unix/sysv/linux/s390/s390-64/vfork.S b/sysdeps/unix/sysv/linux/s390/vfork.S\nsimilarity index 100%\nrename from sysdeps/unix/sysv/linux/s390/s390-64/vfork.S\nrename to sysdeps/unix/sysv/linux/s390/vfork.S\n",
    "prefixes": [
        "4/5"
    ]
}