get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 2221358,
    "url": "http://patchwork.ozlabs.org/api/1.2/patches/2221358/?format=api",
    "web_url": "http://patchwork.ozlabs.org/project/glibc/patch/20260409085102.3475867-3-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-3-stli@linux.ibm.com>",
    "list_archive_url": null,
    "date": "2026-04-09T08:47:07",
    "name": "[2/5] s390: Remove s390-32 specific code in non s390-32 specific files",
    "commit_ref": null,
    "pull_url": null,
    "state": "new",
    "archived": false,
    "hash": "cd47d12cfcd183d35341e993c417bad08919d4d3",
    "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-3-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/2221358/comments/",
    "check": "pending",
    "checks": "http://patchwork.ozlabs.org/api/patches/2221358/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=ob2nPGVp;\n\tdkim-atps=neutral",
            "legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=sourceware.org\n (client-ip=2620:52:6:3111::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=ob2nPGVp",
            "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.156.1"
        ],
        "Received": [
            "from vm01.sourceware.org (vm01.sourceware.org\n [IPv6:2620:52:6:3111::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 4frtzN2g6Gz1yD3\n\tfor <incoming@patchwork.ozlabs.org>; Thu, 09 Apr 2026 18:54:40 +1000 (AEST)",
            "from vm01.sourceware.org (localhost [127.0.0.1])\n\tby sourceware.org (Postfix) with ESMTP id 389C04BA540B\n\tfor <incoming@patchwork.ozlabs.org>; Thu,  9 Apr 2026 08:54:38 +0000 (GMT)",
            "from mx0a-001b2d01.pphosted.com (mx0a-001b2d01.pphosted.com\n [148.163.156.1])\n by sourceware.org (Postfix) with ESMTPS id 205234BA2E0C\n for <libc-alpha@sourceware.org>; Thu,  9 Apr 2026 08:51:19 +0000 (GMT)",
            "from pps.filterd (m0356517.ppops.net [127.0.0.1])\n by mx0a-001b2d01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id\n 638KLUTA2302533\n for <libc-alpha@sourceware.org>; Thu, 9 Apr 2026 08:51:18 GMT",
            "from ppma13.dal12v.mail.ibm.com\n (dd.9e.1632.ip4.static.sl-reverse.com [50.22.158.221])\n by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 4dcn2fm3gj-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 (ppma13.dal12v.mail.ibm.com [127.0.0.1])\n by ppma13.dal12v.mail.ibm.com (8.18.1.2/8.18.1.2) with ESMTP id\n 6397vbUU019113\n for <libc-alpha@sourceware.org>; Thu, 9 Apr 2026 08:51:16 GMT",
            "from smtprelay06.fra02v.mail.ibm.com ([9.218.2.230])\n by ppma13.dal12v.mail.ibm.com (PPS) with ESMTPS id 4dcme9jvrb-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 smtprelay06.fra02v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id\n 6398pBBQ27459866\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 CDC3320040;\n Thu,  9 Apr 2026 08:51:11 +0000 (GMT)",
            "from smtpav03.fra02v.mail.ibm.com (unknown [127.0.0.1])\n by IMSVA (Postfix) with ESMTP id 9D62A2004B;\n Thu,  9 Apr 2026 08:51:11 +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 389C04BA540B",
            "OpenDKIM Filter v2.11.0 sourceware.org 205234BA2E0C"
        ],
        "DMARC-Filter": "OpenDMARC Filter v1.4.2 sourceware.org 205234BA2E0C",
        "ARC-Filter": "OpenARC Filter v1.0.0 sourceware.org 205234BA2E0C",
        "ARC-Seal": "i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1775724679; cv=none;\n b=LMzusAo62ioqpRIOsbCTsDQazuVAQ3mNpK3t4vhohjwDSGe873xVc+GSisz+mUI6Y0hTdgAzmRzxaJQsby/GJzjZx8nbNOirrM8Q9PlLlH6NTuG345a33AAJHDwZspHVGZuEwuqoABd7ENuW9Duarftp7p0JJAcOvGoHLTrZycA=",
        "ARC-Message-Signature": "i=1; a=rsa-sha256; d=sourceware.org; s=key;\n t=1775724679; c=relaxed/simple;\n bh=04IsIZm8AySYrOEdEgi5za6KGcNyLDQ+E3h1T25B0Y0=;\n h=DKIM-Signature:From:To:Subject:Date:Message-ID:MIME-Version;\n b=J3rpBlu4BFkaYRl7puHUNQt/s4zjMeOX4SVvVqVOMi4lV/eJ+HGsF+/dQKoMd+7QcWWEWdFbiQsaxswUkXa4f7kmphGcewI0YBs+oYIn+wBWPDFH8UEdBFogglkJHjtN/T+i6zSNtn3M4y3Rs5Avw+J8+tkafEojtTUIWfuKlIE=",
        "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=W9hmQuacyHCRkQYvg\n +aqpEThzVvqNDzbrtv87G3qi+w=; b=ob2nPGVpnYIy2REH+Li++S2js3CmqGXKy\n AuCpa6kAXDyh/c/xUe4ILp6okdimUojUkzSYUL/urPiGGLQDoqQiiT7MywLg+5g8\n 1Or4XVflBSyobR0Ry4Y4HkedemitQn3A8RIOikvBk8ul2oGvOFt/S5gslMgMcnUk\n 4eZdD6S3gt5dPLjt5QnT4QFB06DNrnRlSV64ZenVEWErz2JsrnGLtLU16fvOBdiI\n lYkQ5EUqkXxsl3nZWfjCbQWSqJq8tKFXd1eiQaHuHx7ntuKUtlYcs7LGxK+Tzfrv\n K2s2qnD/EcoCs1ealWZxNZHorEmb9t+GJePQhhWQJ5D5r2aK9tIsQ==",
        "From": "Stefan Liebler <stli@linux.ibm.com>",
        "To": "libc-alpha@sourceware.org",
        "Cc": "Stefan Liebler <stli@linux.ibm.com>",
        "Subject": "[PATCH 2/5] s390: Remove s390-32 specific code in non s390-32\n specific files",
        "Date": "Thu,  9 Apr 2026 10:47:07 +0200",
        "Message-ID": "<20260409085102.3475867-3-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-Proofpoint-Spam-Details-Enc": "AW1haW4tMjYwNDA5MDA3NyBTYWx0ZWRfX169ZCzlh9LPe\n kkLxEr6X5MDdRG++Z/oHJ9PZIdsGMlZuhpVsP9vM2ejbp/TOi63V01n+feMWtxW2M8L31ZUH+IF\n vS7TFvahWdV64X1YPlZUUz5l5xqUqZT42DisroWyPcf5KA76nKa60hYYaBeDR20eC33WDd8L5BD\n teMeYj2WepZXU9qyJm23FXDiGeNl5V6L/qPcTQeRhrKEGyn1USKfGgOTUG83eng9MpRqqgPbSq3\n OGWIqXVy1P4vBKPf2z9Wr1nAqqyE3GrgOGPz94wQrbYieDqTGkRtSUo3pF7fdqxrp9Z7loiqlGt\n FU8hcDUXbzoJi/YnJWRTcnIuzapgpSowqlGgpUpWxj1RIEeZYuyt79YQxZR3QHogZgLj/t9TqOj\n hBtB/05dfxdNX5PUPKPcD0ZkoBkNMZs8CfRFebKa2RBQCdYoHobm8LQYD2Q5dNJ+guPSNIc42bJ\n ztdrXaXC4nC2ZucKNGw==",
        "X-Authority-Analysis": "v=2.4 cv=FsY1OWrq c=1 sm=1 tr=0 ts=69d76885 cx=c_pps\n a=AfN7/Ok6k8XGzOShvHwTGQ==:117 a=AfN7/Ok6k8XGzOShvHwTGQ==:17\n a=A5OVakUREuEA:10 a=VkNPw1HP01LnGYTKEx00:22 a=RnoormkPH1_aCDwRdu11:22\n a=U7nrCbtTmkRpXpFmAIza:22 a=mDV3o1hIAAAA:8 a=CCpqsmhAAAAA:8\n a=fLD8ysehDElyyCm0bscA:9 a=GyliLiXVM1JnBtnf:21 a=ul9cdbp4aOFLsgKbc677:22",
        "X-Proofpoint-ORIG-GUID": "lAV83nc9x4VexCWe08tbJ7Ct9n6AxzUz",
        "X-Proofpoint-GUID": "lAV83nc9x4VexCWe08tbJ7Ct9n6AxzUz",
        "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 bulkscore=0 priorityscore=1501 impostorscore=0 spamscore=0 phishscore=0\n lowpriorityscore=0 clxscore=1015 adultscore=0 malwarescore=0 suspectscore=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": "This patch removes s390-32 specific code in either common-code files\nor shared files between s390-64 and s390-32.\n\nSuch code was guarded with preprocessor guards which check the size\nof __WORDSIZE or __ELF_NATIVE_CLASS and of course the existance of\n__s390x__ and __s390__ macros.\n\nNote, that if __s390x__ is defined then __s390__ is also defined.\nThis patch also adjust guards for __s390__ only to __s390x__ to\nmake clear that those are still needed.\n\nFuthermore the macro names for ifunc variants were adjusted from\nXYZ_Z900_G5 to XYZ_Z900 as G5 is a pre 64bit machine.\n\nOn s390-32 we've used the special assembler directive to enable\nzarch instructions:\n.machinemode \"zarch_nohighgprs\"\nAs this is not needed on s390-64 anymore as zarch is enabled by default,\njust drop those lines.\nFurthermore we do not check for HWCAP_S390_ZARCH and HWCAP_S390_HIGH_GPRS\nanymore. Just simplify those checks for e.g. stfle- or cuXY-instructions.\n\nThe 32/64 abi-variants and the corresponding abi-conditions are now also\nremoved from the s390 Makefiles and thus we now only generate a single\ngnu/stubs.h and gnu/lib-names.h file instead of also having the different\nones for both abi-variants.\n\nAfter removing process_elf32_file in s390 readelflib.c, ldconfig is only\nrecognizing 64bit ELF files for ld.so.cache.\n\nVarious comments mentioning s390 (with meaning s390-32) were removed/adjusted.\n---\n README                                        |   1 -\n elf/elf.h                                     |   7 +-\n intl/dcigettext.c                             |   2 +-\n manual/math.texi                              |   2 +-\n stdlib/test-bz22786.c                         |   4 +-\n string/string-inlines.c                       |   2 +-\n support/support_readdir.c                     |   4 +-\n sysdeps/s390/bits/link.h                      |  60 ---------\n sysdeps/s390/bits/setjmp.h                    |   6 -\n sysdeps/s390/configure                        |   2 -\n sysdeps/s390/configure.ac                     |   2 -\n sysdeps/s390/cpu-features.c                   |   5 +-\n sysdeps/s390/dl-tls.h                         |  15 ---\n sysdeps/s390/fpu/fenv_private.h               |   2 +-\n sysdeps/s390/fpu/s_llrint.c                   |   6 +-\n sysdeps/s390/fpu/s_llrintf.c                  |   6 +-\n sysdeps/s390/fpu/s_llrintl.c                  |   6 +-\n sysdeps/s390/fpu/s_llround.c                  |   6 +-\n sysdeps/s390/fpu/s_llroundf.c                 |   6 +-\n sysdeps/s390/fpu/s_llroundl.c                 |   6 +-\n sysdeps/s390/fpu/s_lrint.c                    |  13 +-\n sysdeps/s390/fpu/s_lrintf.c                   |  13 +-\n sysdeps/s390/fpu/s_lrintl.c                   |  13 +-\n sysdeps/s390/fpu/s_lround.c                   |  11 +-\n sysdeps/s390/fpu/s_lroundf.c                  |  11 +-\n sysdeps/s390/fpu/s_lroundl.c                  |  11 +-\n sysdeps/s390/ifunc-memchr.h                   |  12 +-\n sysdeps/s390/ifunc-memcmp.h                   |  14 +-\n sysdeps/s390/ifunc-memcpy.h                   |  20 +--\n sysdeps/s390/ifunc-memset.h                   |  14 +-\n sysdeps/s390/ifunc-strcmp.h                   |  12 +-\n sysdeps/s390/ifunc-strcpy.h                   |  12 +-\n sysdeps/s390/ifunc-strncpy.h                  |  12 +-\n sysdeps/s390/iso-8859-1_cp037_z900.c          |   8 +-\n sysdeps/s390/jmpbuf-unwind.h                  |   3 +-\n sysdeps/s390/ldsodefs.h                       |  13 --\n sysdeps/s390/linkmap.h                        |  16 +--\n sysdeps/s390/memccpy-vx.S                     |   7 +-\n sysdeps/s390/memchr-vx.S                      |  10 +-\n sysdeps/s390/memchr-z900.S                    |  45 ++-----\n sysdeps/s390/memchr.c                         |   4 +-\n sysdeps/s390/memcmp-z900.S                    |  76 +++--------\n sysdeps/s390/memcmp.c                         |   4 +-\n sysdeps/s390/memcopy.h                        |   2 +-\n sysdeps/s390/memcpy-z900.S                    | 122 +++++-------------\n sysdeps/s390/memcpy.c                         |   4 +-\n sysdeps/s390/memmem-arch13.S                  |   9 +-\n sysdeps/s390/mempcpy.c                        |   4 +-\n sysdeps/s390/memrchr-vx.S                     |   6 +-\n sysdeps/s390/memset-z900.S                    |  84 ++++--------\n sysdeps/s390/memset.c                         |   4 +-\n sysdeps/s390/multiarch/8bit-generic.c         |   3 -\n sysdeps/s390/multiarch/gconv_simple.c         |  23 ----\n sysdeps/s390/multiarch/ifunc-impl-list.c      |  34 ++---\n sysdeps/s390/multiarch/ifunc-resolve.h        |   2 +-\n sysdeps/s390/multiarch/utf8-utf16-z9.c        |   4 +-\n sysdeps/s390/multiarch/utf8-utf32-z9.c        |   4 +-\n sysdeps/s390/nptl/bits/struct_mutex.h         |  24 +---\n sysdeps/s390/nptl/bits/struct_rwlock.h        |  17 +--\n sysdeps/s390/nptl/pthread-offsets.h           |  15 +--\n sysdeps/s390/nptl/tls.h                       |   4 -\n sysdeps/s390/rawmemchr-vx.S                   |   3 +-\n sysdeps/s390/s390-64/bits/wordsize.h          |  11 +-\n sysdeps/s390/s390-64/stackguard-macros.h      |   2 +-\n sysdeps/s390/s390-64/strncpy-z900.S           |  10 +-\n sysdeps/s390/sotruss-lib.c                    |  33 ++---\n sysdeps/s390/stpcpy-vx.S                      |   3 +-\n sysdeps/s390/stpncpy-vx.S                     |   7 +-\n sysdeps/s390/strcat-vx.S                      |   3 +-\n sysdeps/s390/strchr-vx.S                      |   3 +-\n sysdeps/s390/strchrnul-vx.S                   |   3 +-\n sysdeps/s390/strcmp-vx.S                      |   5 +-\n sysdeps/s390/strcmp-z900.S                    |  26 ++--\n sysdeps/s390/strcmp.c                         |   4 +-\n sysdeps/s390/strcpy-vx.S                      |   5 +-\n sysdeps/s390/strcpy-z900.S                    |  29 ++---\n sysdeps/s390/strcpy.c                         |   4 +-\n sysdeps/s390/strcspn-vx.S                     |   3 +-\n sysdeps/s390/strlen-vx.S                      |   3 +-\n sysdeps/s390/strncat-vx.S                     |   7 +-\n sysdeps/s390/strncmp-vx.S                     |   7 +-\n sysdeps/s390/strncpy-vx.S                     |   9 +-\n sysdeps/s390/strncpy.c                        |   4 +-\n sysdeps/s390/strnlen-vx.S                     |   7 +-\n sysdeps/s390/strpbrk-vx.S                     |   3 +-\n sysdeps/s390/strrchr-vx.S                     |   3 +-\n sysdeps/s390/strspn-vx.S                      |   3 +-\n sysdeps/s390/strstr-arch13.S                  |   3 +-\n sysdeps/s390/tst-dl-runtime-mod.S             |   4 -\n sysdeps/s390/tst-dl-runtime.c                 |  27 ----\n sysdeps/s390/utf16-utf32-z9.c                 |  18 ---\n sysdeps/s390/utf8-utf16-z9.c                  |  16 ---\n sysdeps/s390/utf8-utf32-z9.c                  |  16 ---\n sysdeps/s390/wcpcpy-vx.S                      |   3 +-\n sysdeps/s390/wcpncpy-vx.S                     |  12 +-\n sysdeps/s390/wcscat-vx.S                      |   3 +-\n sysdeps/s390/wcschr-vx.S                      |   3 +-\n sysdeps/s390/wcschrnul-vx.S                   |   3 +-\n sysdeps/s390/wcscmp-vx.S                      |   3 +-\n sysdeps/s390/wcscpy-vx.S                      |   3 +-\n sysdeps/s390/wcscspn-vx.S                     |   3 +-\n sysdeps/s390/wcslen-vx.S                      |   3 +-\n sysdeps/s390/wcsncat-vx.S                     |  12 +-\n sysdeps/s390/wcsncmp-vx.S                     |  12 +-\n sysdeps/s390/wcsncpy-vx.S                     |  12 +-\n sysdeps/s390/wcsnlen-vx.S                     |  12 +-\n sysdeps/s390/wcspbrk-vx.S                     |   3 +-\n sysdeps/s390/wcsrchr-vx.S                     |   3 +-\n sysdeps/s390/wcsspn-vx.S                      |   3 +-\n sysdeps/s390/wmemchr-vx.S                     |  12 +-\n sysdeps/s390/wmemcmp-vx.S                     |  12 +-\n sysdeps/s390/wmemset-vx.S                     |  12 +-\n sysdeps/unix/sysv/linux/fxstat.c              |   2 +-\n sysdeps/unix/sysv/linux/fxstatat.c            |   2 +-\n sysdeps/unix/sysv/linux/ipc_priv.h            |   4 +-\n sysdeps/unix/sysv/linux/kernel-features.h     |   2 +-\n sysdeps/unix/sysv/linux/lxstat.c              |   2 +-\n sysdeps/unix/sysv/linux/lxstat64.c            |   2 +-\n sysdeps/unix/sysv/linux/posix_fadvise.c       |   6 +-\n sysdeps/unix/sysv/linux/posix_fadvise64.c     |   6 +-\n sysdeps/unix/sysv/linux/s390/Makefile         |   4 -\n sysdeps/unix/sysv/linux/s390/bits/elfclass.h  |   5 -\n sysdeps/unix/sysv/linux/s390/bits/fcntl.h     |  26 +---\n sysdeps/unix/sysv/linux/s390/bits/sigaction.h |  35 +----\n .../unix/sysv/linux/s390/bits/struct_stat.h   | 120 +----------------\n sysdeps/unix/sysv/linux/s390/bits/typesizes.h |  36 ++----\n .../unix/sysv/linux/s390/kernel-features.h    |   3 -\n sysdeps/unix/sysv/linux/s390/readelflib.c     |  31 +----\n sysdeps/unix/sysv/linux/s390/s390-64/Makefile |   3 -\n sysdeps/unix/sysv/linux/s390/sigcontextinfo.h |   4 -\n sysdeps/unix/sysv/linux/s390/sys/ucontext.h   |   6 +-\n sysdeps/unix/sysv/linux/s390/sysconf.c        |  13 +-\n sysdeps/unix/sysv/linux/s390/sysdep.h         |   5 -\n sysdeps/unix/sysv/linux/s390/xstatver.h       |  21 +--\n sysdeps/unix/sysv/linux/tst-ofdlocks-compat.c |   6 +-\n sysdeps/unix/sysv/linux/xstat.c               |   2 +-\n sysdeps/unix/sysv/linux/xstat64.c             |   2 +-\n 137 files changed, 343 insertions(+), 1287 deletions(-)",
    "diff": "diff --git a/README b/README\nindex 2e360eb70a..570b259de5 100644\n--- a/README\n+++ b/README\n@@ -38,7 +38,6 @@ The GNU C Library supports these configurations for using Linux kernels:\n \tor1k-*-linux-gnu\n \tpowerpc-*-linux-gnu\tHardware or software floating point, BE only.\n \tpowerpc64*-*-linux-gnu\tBig-endian and little-endian.\n-\ts390-*-linux-gnu\n \ts390x-*-linux-gnu\n \triscv32-*-linux-gnu\n \triscv64-*-linux-gnu\ndiff --git a/elf/elf.h b/elf/elf.h\nindex 46a01281cb..3a60ef36b5 100644\n--- a/elf/elf.h\n+++ b/elf/elf.h\n@@ -798,7 +798,8 @@ typedef struct\n #define NT_X86_XSTATE\t0x202\t\t/* x86 extended state using xsave */\n #define NT_X86_SHSTK\t0x204\t\t/* x86 SHSTK state */\n #define NT_X86_XSAVE_LAYOUT\t0x205\t\t/* XSAVE layout description.  */\n-#define NT_S390_HIGH_GPRS\t0x300\t/* s390 upper register halves */\n+#define NT_S390_HIGH_GPRS\t0x300\t/* s390 upper register halves.  This was\n+\t\t\t\t\t   used in now removed s390-32 arch.  */\n #define NT_S390_TIMER\t0x301\t\t/* s390 timer register */\n #define NT_S390_TODCMP\t0x302\t\t/* s390 TOD clock comparator register */\n #define NT_S390_TODPREG\t0x303\t\t/* s390 TOD programmable register */\n@@ -3470,7 +3471,9 @@ enum\n \n /* Valid values for the e_flags field.  */\n \n-#define EF_S390_HIGH_GPRS    0x00000001  /* High GPRs kernel facility needed.  */\n+#define EF_S390_HIGH_GPRS    0x00000001  /* High GPRs kernel facility needed.\n+\t\t\t\t\t    This was used in now removed s390-32\n+\t\t\t\t\t    arch.  */\n \n /* Additional s390 relocs */\n \ndiff --git a/intl/dcigettext.c b/intl/dcigettext.c\nindex e70c938566..9ebc54eeec 100644\n--- a/intl/dcigettext.c\n+++ b/intl/dcigettext.c\n@@ -72,7 +72,7 @@ extern int errno;\n   /* Guess whether integer division by zero raises signal SIGFPE.\n      Set to 1 only if you know for sure.  In case of doubt, set to 0.  */\n # if defined __alpha__ || defined __arm__ || defined __i386__ \\\n-     || defined __m68k__ || defined __s390__\n+     || defined __m68k__ || defined __s390x__\n #  define INTDIV0_RAISES_SIGFPE 1\n # else\n #  define INTDIV0_RAISES_SIGFPE 0\ndiff --git a/manual/math.texi b/manual/math.texi\nindex fd7284953d..cf57937943 100644\n--- a/manual/math.texi\n+++ b/manual/math.texi\n@@ -70,7 +70,7 @@ provided for @code{_Float32}, @code{_Float64} and @code{_Float32x} on\n all platforms.\n It is also provided for @code{_Float128} and @code{_Float64x} on\n powerpc64le (PowerPC 64-bits little-endian), x86_64, x86,\n-aarch64, alpha, loongarch, mips64, riscv, s390 and sparc.\n+aarch64, alpha, loongarch, mips64, riscv, s390x and sparc.\n \n @menu\n * Mathematical Constants::      Precise numeric values for often-used\ndiff --git a/stdlib/test-bz22786.c b/stdlib/test-bz22786.c\nindex 242a3044db..6e2636d896 100644\n--- a/stdlib/test-bz22786.c\n+++ b/stdlib/test-bz22786.c\n@@ -46,9 +46,7 @@ do_test (void)\n   if (path == NULL)\n     {\n       printf (\"Repeated allocation (%zu bytes): %m\\n\", path_len);\n-      /* On 31-bit s390 the malloc will always fail as we do not have\n-\t so much memory, and we want to mark the test unsupported.\n-\t Likewise on systems with little physical memory the test will\n+      /* On systems with little physical memory the test will\n \t fail and should be unsupported.  */\n       return EXIT_UNSUPPORTED;\n     }\ndiff --git a/string/string-inlines.c b/string/string-inlines.c\nindex 7de9ff6aa4..bab58c91a2 100644\n--- a/string/string-inlines.c\n+++ b/string/string-inlines.c\n@@ -208,7 +208,7 @@ __old_strpbrk_c3 (const char *__s, int __accept1, int __accept2, int __accept3)\n }\n compat_symbol (libc, __old_strpbrk_c3, __strpbrk_c3, GLIBC_2_1_1);\n \n-# if defined __mc68020__ || defined __s390__ || defined __i386__\n+# if defined __mc68020__ || defined __s390x__ || defined __i386__\n #  define _STRING_INLINE_unaligned 1\n # else\n #  define _STRING_INLINE_unaligned 0\ndiff --git a/support/support_readdir.c b/support/support_readdir.c\nindex 6cb6b6bfcd..793b7bc87e 100644\n--- a/support/support_readdir.c\n+++ b/support/support_readdir.c\n@@ -42,8 +42,8 @@ static int (*readdir64_r_compat) (DIR *, struct __old_dirent64 *,\n static void __attribute__ ((constructor))\n init (void)\n {\n-  /* These compat symbols exists on alpha, i386, m67k , powerpc, s390,\n-     sparc. at the same GLIBC_2.1 version. */\n+  /* These compat symbols exists on alpha, i386, m67k , powerpc, sparc\n+     at the same GLIBC_2.1 version. */\n   readdir64_compat = dlvsym (RTLD_DEFAULT, \"readdir64\", \"GLIBC_2.1\");\n   readdir64_r_compat = dlvsym (RTLD_DEFAULT, \"readdir64_r\", \"GLIBC_2.1\");\n }\ndiff --git a/sysdeps/s390/bits/link.h b/sysdeps/s390/bits/link.h\nindex c9f6aab63c..794d6ca286 100644\n--- a/sysdeps/s390/bits/link.h\n+++ b/sysdeps/s390/bits/link.h\n@@ -23,64 +23,6 @@\n typedef char La_s390_vr[16];\n #endif\n \n-#if __ELF_NATIVE_CLASS == 32\n-\n-/* Registers for entry into PLT on s390-32.  */\n-typedef struct La_s390_32_regs\n-{\n-  uint32_t lr_r2;\n-  uint32_t lr_r3;\n-  uint32_t lr_r4;\n-  uint32_t lr_r5;\n-  uint32_t lr_r6;\n-  double lr_fp0;\n-  double lr_fp2;\n-# if defined HAVE_S390_VX_ASM_SUPPORT\n-  La_s390_vr lr_v24;\n-  La_s390_vr lr_v25;\n-  La_s390_vr lr_v26;\n-  La_s390_vr lr_v27;\n-  La_s390_vr lr_v28;\n-  La_s390_vr lr_v29;\n-  La_s390_vr lr_v30;\n-  La_s390_vr lr_v31;\n-# endif\n-} La_s390_32_regs;\n-\n-/* Return values for calls from PLT on s390-32.  */\n-typedef struct La_s390_32_retval\n-{\n-  uint32_t lrv_r2;\n-  uint32_t lrv_r3;\n-  double lrv_fp0;\n-# if defined HAVE_S390_VX_ASM_SUPPORT\n-  La_s390_vr lrv_v24;\n-# endif\n-} La_s390_32_retval;\n-\n-\n-__BEGIN_DECLS\n-\n-extern Elf32_Addr la_s390_32_gnu_pltenter (Elf32_Sym *__sym,\n-\t\t\t\t\t   unsigned int __ndx,\n-\t\t\t\t\t   uintptr_t *__refcook,\n-\t\t\t\t\t   uintptr_t *__defcook,\n-\t\t\t\t\t   La_s390_32_regs *__regs,\n-\t\t\t\t\t   unsigned int *__flags,\n-\t\t\t\t\t   const char *__symname,\n-\t\t\t\t\t   long int *__framesizep);\n-extern unsigned int la_s390_32_gnu_pltexit (Elf32_Sym *__sym,\n-\t\t\t\t\t    unsigned int __ndx,\n-\t\t\t\t\t    uintptr_t *__refcook,\n-\t\t\t\t\t    uintptr_t *__defcook,\n-\t\t\t\t\t    const La_s390_32_regs *__inregs,\n-\t\t\t\t\t    La_s390_32_retval *__outregs,\n-\t\t\t\t\t    const char *symname);\n-\n-__END_DECLS\n-\n-#else\n-\n /* Registers for entry into PLT on s390-64.  */\n typedef struct La_s390_64_regs\n {\n@@ -135,5 +77,3 @@ extern unsigned int la_s390_64_gnu_pltexit (Elf64_Sym *__sym,\n \t\t\t\t\t    const char *__symname);\n \n __END_DECLS\n-\n-#endif\ndiff --git a/sysdeps/s390/bits/setjmp.h b/sysdeps/s390/bits/setjmp.h\nindex 4b87fe55a1..3afa770bf7 100644\n--- a/sysdeps/s390/bits/setjmp.h\n+++ b/sysdeps/s390/bits/setjmp.h\n@@ -33,13 +33,7 @@ typedef struct __s390_jmp_buf\n   /* We save registers 6-15.  */\n   long int __gregs[10];\n \n-# if __WORDSIZE == 64\n-  /* We save fpu registers f8 - f15.  */\n   long __fpregs[8];\n-# else\n-  /* We save fpu registers 4 and 6.  */\n-  long __fpregs[4];\n-# endif\n } __jmp_buf[1];\n \n #endif\ndiff --git a/sysdeps/s390/configure b/sysdeps/s390/configure\nindex e3766aa801..f4ec662610 100644\n--- a/sysdeps/s390/configure\n+++ b/sysdeps/s390/configure\n@@ -15,7 +15,6 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext\n void testvecinsn ()\n {\n     __asm__ (\".machine \\\"z13\\\" \\n\\t\"\n-\t     \".machinemode \\\"zarch_nohighgprs\\\" \\n\\t\"\n \t     \"vistrbs %%v16,%%v17 \\n\\t\"\n \t     \"locghie %%r1,0\" : :);\n }\n@@ -91,7 +90,6 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext\n void testinsn (char *buf)\n {\n     __asm__ (\".machine \\\"arch13\\\" \\n\\t\"\n-\t     \".machinemode \\\"zarch_nohighgprs\\\" \\n\\t\"\n \t     \"lghi %%r0,16 \\n\\t\"\n \t     \"mvcrl 0(%0),32(%0) \\n\\t\"\n \t     \"vstrs %%v20,%%v20,%%v20,%%v20,0,2\"\ndiff --git a/sysdeps/s390/configure.ac b/sysdeps/s390/configure.ac\nindex 4265bfd9f4..82e1a4445f 100644\n--- a/sysdeps/s390/configure.ac\n+++ b/sysdeps/s390/configure.ac\n@@ -6,7 +6,6 @@ AC_COMPILE_IFELSE([AC_LANG_SOURCE([[\n void testvecinsn ()\n {\n     __asm__ (\".machine \\\"z13\\\" \\n\\t\"\n-\t     \".machinemode \\\"zarch_nohighgprs\\\" \\n\\t\"\n \t     \"vistrbs %%v16,%%v17 \\n\\t\"\n \t     \"locghie %%r1,0\" : :);\n }\n@@ -43,7 +42,6 @@ AC_COMPILE_IFELSE([AC_LANG_SOURCE([[\n void testinsn (char *buf)\n {\n     __asm__ (\".machine \\\"arch13\\\" \\n\\t\"\n-\t     \".machinemode \\\"zarch_nohighgprs\\\" \\n\\t\"\n \t     \"lghi %%r0,16 \\n\\t\"\n \t     \"mvcrl 0(%0),32(%0) \\n\\t\"\n \t     \"vstrs %%v20,%%v20,%%v20,%%v20,0,2\"\ndiff --git a/sysdeps/s390/cpu-features.c b/sysdeps/s390/cpu-features.c\nindex 76e9079bd4..fd6f2357d5 100644\n--- a/sysdeps/s390/cpu-features.c\n+++ b/sysdeps/s390/cpu-features.c\n@@ -170,15 +170,12 @@ init_cpu_features_no_tunables (struct cpu_features *cpu_features)\n   cpu_features->hwcap = GLRO(dl_hwcap);\n \n   /* We want just 1 double word to be returned.  */\n-  if (__glibc_likely ((cpu_features->hwcap & HWCAP_S390_STFLE)\n-\t\t      && (cpu_features->hwcap & HWCAP_S390_ZARCH)\n-\t\t      && (cpu_features->hwcap & HWCAP_S390_HIGH_GPRS)))\n+  if (__glibc_likely ((cpu_features->hwcap & HWCAP_S390_STFLE)))\n     {\n       unsigned long long stfle_bits[4] = { 0 };\n       register unsigned long reg0 __asm__(\"0\") = 3;\n       __asm__ __volatile__(\".machine push\"        \"\\n\\t\"\n \t\t\t   \".machine \\\"z9-109\\\"\"  \"\\n\\t\"\n-\t\t\t   \".machinemode \\\"zarch_nohighgprs\\\"\\n\\t\"\n \t\t\t   \"stfle %0\"             \"\\n\\t\"\n \t\t\t   \".machine pop\"         \"\\n\"\n \t\t\t   : \"=QS\" (stfle_bits[0]),\ndiff --git a/sysdeps/s390/dl-tls.h b/sysdeps/s390/dl-tls.h\nindex eff8cb61b3..4c4f8e7b44 100644\n--- a/sysdeps/s390/dl-tls.h\n+++ b/sysdeps/s390/dl-tls.h\n@@ -69,7 +69,6 @@ versioned_symbol (ld, __tls_get_addr_internal_tmp,\n    2) __tls_get_offset returns the offset of the requested variable to\n       the thread descriptor instead of a pointer to the variable.\n  */\n-#  ifdef __s390x__\n __asm__(\"\\n\\\n \t.text\\n\\\n \t.globl __tls_get_offset\\n\\\n@@ -79,20 +78,6 @@ __tls_get_offset:\\n\\\n \tla\t%r2,0(%r2,%r12)\\n\\\n \tjg\t__tls_get_addr\\n\\\n \");\n-#  elif defined __s390__\n-__asm__(\"\\n\\\n-\t.text\\n\\\n-\t.globl __tls_get_offset\\n\\\n-\t.type __tls_get_offset, @function\\n\\\n-\t.align 4\\n\\\n-__tls_get_offset:\\n\\\n-\tbasr\t%r3,0\\n\\\n-0:\tla\t%r2,0(%r2,%r12)\\n\\\n-\tl\t%r4,1f-0b(%r3)\\n\\\n-\tb\t0(%r4,%r3)\\n\\\n-1:\t.long\t__tls_get_addr - 0b\\n\\\n-\");\n-#  endif\n # else /* IS_IN (rtld) */\n extern void *__tls_get_addr_internal (tls_index *ti);\n # endif /* !IS_IN (rtld) */\ndiff --git a/sysdeps/s390/fpu/fenv_private.h b/sysdeps/s390/fpu/fenv_private.h\nindex fbefc7889c..42eb94cd15 100644\n--- a/sysdeps/s390/fpu/fenv_private.h\n+++ b/sysdeps/s390/fpu/fenv_private.h\n@@ -1,4 +1,4 @@\n-/* Private floating point rounding and exceptions handling.  390/s390x version.\n+/* Private floating point rounding and exceptions handling.  s390x version.\n    Copyright (C) 2019-2026 Free Software Foundation, Inc.\n    This file is part of the GNU C Library.\n \ndiff --git a/sysdeps/s390/fpu/s_llrint.c b/sysdeps/s390/fpu/s_llrint.c\nindex ae628b3025..03937b79a9 100644\n--- a/sysdeps/s390/fpu/s_llrint.c\n+++ b/sysdeps/s390/fpu/s_llrint.c\n@@ -17,11 +17,7 @@\n    License along with the GNU C Library; if not, see\n    <https://www.gnu.org/licenses/>.  */\n \n-#if defined __s390x__ && defined HAVE_S390_MIN_Z196_ZARCH_ASM_SUPPORT\n-/* We only support s390x as on s390 a long long int refers to a register pair\n-   of two 4byte registers instead of a 8byte register which is produced by the\n-   instruction.\n-   Note: On s390 this instruction would only be used if build with -mzarch.  */\n+#ifdef HAVE_S390_MIN_Z196_ZARCH_ASM_SUPPORT\n # include <math.h>\n # include <libm-alias-double.h>\n \ndiff --git a/sysdeps/s390/fpu/s_llrintf.c b/sysdeps/s390/fpu/s_llrintf.c\nindex b94705da42..c3a8638c7c 100644\n--- a/sysdeps/s390/fpu/s_llrintf.c\n+++ b/sysdeps/s390/fpu/s_llrintf.c\n@@ -17,11 +17,7 @@\n    License along with the GNU C Library; if not, see\n    <https://www.gnu.org/licenses/>.  */\n \n-#if defined __s390x__ && defined HAVE_S390_MIN_Z196_ZARCH_ASM_SUPPORT\n-/* We only support s390x as on s390 a long long int refers to a register pair\n-   of two 4byte registers instead of a 8byte register which is produced by the\n-   instruction.\n-   Note: On s390 this instruction would only be used if build with -mzarch.  */\n+#ifdef HAVE_S390_MIN_Z196_ZARCH_ASM_SUPPORT\n # include <math.h>\n # include <libm-alias-float.h>\n \ndiff --git a/sysdeps/s390/fpu/s_llrintl.c b/sysdeps/s390/fpu/s_llrintl.c\nindex 61938b67ee..5c3c0536b0 100644\n--- a/sysdeps/s390/fpu/s_llrintl.c\n+++ b/sysdeps/s390/fpu/s_llrintl.c\n@@ -17,11 +17,7 @@\n    License along with the GNU C Library; if not, see\n    <https://www.gnu.org/licenses/>.  */\n \n-#if defined __s390x__ && defined HAVE_S390_MIN_Z196_ZARCH_ASM_SUPPORT\n-/* We only support s390x as on s390 a long long int refers to a register pair\n-   of two 4byte registers instead of a 8byte register which is produced by the\n-   instruction.\n-   Note: On s390 this instruction would only be used if build with -mzarch.  */\n+#ifdef HAVE_S390_MIN_Z196_ZARCH_ASM_SUPPORT\n # include <math.h>\n # include <math_private.h>\n # include <libm-alias-ldouble.h>\ndiff --git a/sysdeps/s390/fpu/s_llround.c b/sysdeps/s390/fpu/s_llround.c\nindex 0d598c4bd5..c625322384 100644\n--- a/sysdeps/s390/fpu/s_llround.c\n+++ b/sysdeps/s390/fpu/s_llround.c\n@@ -17,11 +17,7 @@\n    License along with the GNU C Library; if not, see\n    <https://www.gnu.org/licenses/>.  */\n \n-#if defined __s390x__ && defined HAVE_S390_MIN_Z196_ZARCH_ASM_SUPPORT\n-/* We only support s390x as on s390 a long long int refers to a register pair\n-   of two 4byte registers instead of a 8byte register which is produced by the\n-   instruction.\n-   Note: On s390 this instruction would only be used if build with -mzarch.  */\n+#ifdef HAVE_S390_MIN_Z196_ZARCH_ASM_SUPPORT\n # include <math.h>\n # include <libm-alias-double.h>\n \ndiff --git a/sysdeps/s390/fpu/s_llroundf.c b/sysdeps/s390/fpu/s_llroundf.c\nindex 5b77705f1a..cdea8fc4f3 100644\n--- a/sysdeps/s390/fpu/s_llroundf.c\n+++ b/sysdeps/s390/fpu/s_llroundf.c\n@@ -17,11 +17,7 @@\n    License along with the GNU C Library; if not, see\n    <https://www.gnu.org/licenses/>.  */\n \n-#if defined __s390x__ && defined HAVE_S390_MIN_Z196_ZARCH_ASM_SUPPORT\n-/* We only support s390x as on s390 a long long int refers to a register pair\n-   of two 4byte registers instead of a 8byte register which is produced by the\n-   instruction.\n-   Note: On s390 this instruction would only be used if build with -mzarch.  */\n+#ifdef HAVE_S390_MIN_Z196_ZARCH_ASM_SUPPORT\n # include <math.h>\n # include <libm-alias-float.h>\n \ndiff --git a/sysdeps/s390/fpu/s_llroundl.c b/sysdeps/s390/fpu/s_llroundl.c\nindex fff507979f..39d533b36c 100644\n--- a/sysdeps/s390/fpu/s_llroundl.c\n+++ b/sysdeps/s390/fpu/s_llroundl.c\n@@ -17,11 +17,7 @@\n    License along with the GNU C Library; if not, see\n    <https://www.gnu.org/licenses/>.  */\n \n-#if defined __s390x__ && defined HAVE_S390_MIN_Z196_ZARCH_ASM_SUPPORT\n-/* We only support s390x as on s390 a long long int refers to a register pair\n-   of two 4byte registers instead of a 8byte register which is produced by the\n-   instruction.\n-   Note: On s390 this instruction would only be used if build with -mzarch.  */\n+#ifdef HAVE_S390_MIN_Z196_ZARCH_ASM_SUPPORT\n # include <math.h>\n # include <math_private.h>\n # include <libm-alias-ldouble.h>\ndiff --git a/sysdeps/s390/fpu/s_lrint.c b/sysdeps/s390/fpu/s_lrint.c\nindex e6c0117dca..6c99bab4b6 100644\n--- a/sysdeps/s390/fpu/s_lrint.c\n+++ b/sysdeps/s390/fpu/s_lrint.c\n@@ -21,15 +21,6 @@\n # include <math.h>\n # include <libm-alias-double.h>\n \n-/* The sizeof (long int) differs between s390x (8byte) and s390 (4byte).\n-   Thus we need different instructions as the target size is encoded there.\n-   Note: On s390 this instruction is only used if build with -mzarch.  */\n-# ifdef __s390x__\n-#  define INSN \"cgdbra\"\n-# else\n-#  define INSN \"cfdbra\"\n-# endif\n-\n long int\n __lrint (double x)\n {\n@@ -41,9 +32,9 @@ __lrint (double x)\n      Note: a nan is also indicated by cc=3).\n      If the resulting value is within the target limits, redo\n      without suppressing the inexact exception.  */\n-  __asm__ (INSN \" %0,0,%1,4 \\n\\t\"\n+  __asm__ (\"cgdbra %0,0,%1,4 \\n\\t\"\n \t   \"jo 1f \\n\\t\"\n-\t   INSN \" %0,0,%1,0 \\n\\t\"\n+\t   \"cgdbra %0,0,%1,0 \\n\\t\"\n \t   \"1:\"\n \t   : \"=&d\" (y) : \"f\" (x) : \"cc\");\n   return y;\ndiff --git a/sysdeps/s390/fpu/s_lrintf.c b/sysdeps/s390/fpu/s_lrintf.c\nindex 9e489e9d63..382836c4fb 100644\n--- a/sysdeps/s390/fpu/s_lrintf.c\n+++ b/sysdeps/s390/fpu/s_lrintf.c\n@@ -21,15 +21,6 @@\n # include <math.h>\n # include <libm-alias-float.h>\n \n-/* The sizeof (long int) differs between s390x (8byte) and s390 (4byte).\n-   Thus we need different instructions as the target size is encoded there.\n-   Note: On s390 this instruction is only used if build with -mzarch.  */\n-# ifdef __s390x__\n-#  define INSN \"cgebra\"\n-# else\n-#  define INSN \"cfebra\"\n-# endif\n-\n long int\n __lrintf (float x)\n {\n@@ -41,9 +32,9 @@ __lrintf (float x)\n      Note: a nan is also indicated by cc=3).\n      If the resulting value is within the target limits, redo\n      without suppressing the inexact exception.  */\n-  __asm__ (INSN \" %0,0,%1,4 \\n\\t\"\n+  __asm__ (\"cgebra %0,0,%1,4 \\n\\t\"\n \t   \"jo 1f \\n\\t\"\n-\t   INSN \" %0,0,%1,0 \\n\\t\"\n+\t   \"cgebra %0,0,%1,0 \\n\\t\"\n \t   \"1:\"\n \t   : \"=&d\" (y) : \"f\" (x) : \"cc\");\n   return y;\ndiff --git a/sysdeps/s390/fpu/s_lrintl.c b/sysdeps/s390/fpu/s_lrintl.c\nindex 417e7bd4dc..bf200a53c9 100644\n--- a/sysdeps/s390/fpu/s_lrintl.c\n+++ b/sysdeps/s390/fpu/s_lrintl.c\n@@ -22,15 +22,6 @@\n # include <math_private.h>\n # include <libm-alias-ldouble.h>\n \n-/* The sizeof (long int) differs between s390x (8byte) and s390 (4byte).\n-   Thus we need different instructions as the target size is encoded there.\n-   Note: On s390 this instruction is only used if build with -mzarch.  */\n-# ifdef __s390x__\n-#  define INSN \"cgxbra\"\n-# else\n-#  define INSN \"cfxbra\"\n-# endif\n-\n long int\n __lrintl (_Float128 x)\n {\n@@ -42,9 +33,9 @@ __lrintl (_Float128 x)\n      Note: a nan is also indicated by cc=3).\n      If the resulting value is within the target limits, redo\n      without suppressing the inexact exception.  */\n-  __asm__ (INSN \" %0,0,%1,4 \\n\\t\"\n+  __asm__ (\"cgxbra %0,0,%1,4 \\n\\t\"\n \t   \"jo 1f \\n\\t\"\n-\t   INSN \" %0,0,%1,0 \\n\\t\"\n+\t   \"cgxbra %0,0,%1,0 \\n\\t\"\n \t   \"1:\"\n \t   : \"=&d\" (y) : \"f\" (x) : \"cc\");\n   return y;\ndiff --git a/sysdeps/s390/fpu/s_lround.c b/sysdeps/s390/fpu/s_lround.c\nindex db079c4aeb..09d203e0c3 100644\n--- a/sysdeps/s390/fpu/s_lround.c\n+++ b/sysdeps/s390/fpu/s_lround.c\n@@ -21,15 +21,6 @@\n # include <math.h>\n # include <libm-alias-double.h>\n \n-/* The sizeof (long int) differs between s390x (8byte) and s390 (4byte).\n-   Thus we need different instructions as the target size is encoded there.\n-   Note: On s390 this instruction is only used if build with -mzarch.  */\n-# ifdef __s390x__\n-#  define INSN \"cgdbra\"\n-# else\n-#  define INSN \"cfdbra\"\n-# endif\n-\n long int\n __lround (double x)\n {\n@@ -37,7 +28,7 @@ __lround (double x)\n   /* The z196 zarch \"convert to fixed\" (cgdbra) instruction is rounding\n      x to the nearest integer with \"ties away from 0\" rounding mode\n      (M3-field: 1) where inexact exceptions are suppressed (M4-field: 4).  */\n-  __asm__ (INSN \" %0,1,%1,4\" : \"=d\" (y) : \"f\" (x) : \"cc\");\n+  __asm__ (\"cgdbra %0,1,%1,4\" : \"=d\" (y) : \"f\" (x) : \"cc\");\n   return y;\n }\n libm_alias_double (__lround, lround)\ndiff --git a/sysdeps/s390/fpu/s_lroundf.c b/sysdeps/s390/fpu/s_lroundf.c\nindex 4be5a1e1a7..80061d1ac8 100644\n--- a/sysdeps/s390/fpu/s_lroundf.c\n+++ b/sysdeps/s390/fpu/s_lroundf.c\n@@ -21,15 +21,6 @@\n # include <math.h>\n # include <libm-alias-float.h>\n \n-/* The sizeof (long int) differs between s390x (8byte) and s390 (4byte).\n-   Thus we need different instructions as the target size is encoded there.\n-   Note: On s390 this instruction is only used if build with -mzarch.  */\n-# ifdef __s390x__\n-#  define INSN \"cgebra\"\n-# else\n-#  define INSN \"cfebra\"\n-# endif\n-\n long int\n __lroundf (float x)\n {\n@@ -37,7 +28,7 @@ __lroundf (float x)\n   /* The z196 zarch \"convert to fixed\" (cgebra) instruction is rounding\n      x to the nearest integer with \"ties away from 0\" rounding mode\n      (M3-field: 1) where inexact exceptions are suppressed (M4-field: 4).  */\n-  __asm__ (INSN \" %0,1,%1,4\" : \"=d\" (y) : \"f\" (x) : \"cc\");\n+  __asm__ (\"cgebra %0,1,%1,4\" : \"=d\" (y) : \"f\" (x) : \"cc\");\n   return y;\n }\n libm_alias_float (__lround, lround)\ndiff --git a/sysdeps/s390/fpu/s_lroundl.c b/sysdeps/s390/fpu/s_lroundl.c\nindex 046a71f60a..0f8f486ed9 100644\n--- a/sysdeps/s390/fpu/s_lroundl.c\n+++ b/sysdeps/s390/fpu/s_lroundl.c\n@@ -22,15 +22,6 @@\n # include <math_private.h>\n # include <libm-alias-ldouble.h>\n \n-/* The sizeof (long int) differs between s390x (8byte) and s390 (4byte).\n-   Thus we need different instructions as the target size is encoded there.\n-   Note: On s390 this instruction is only used if build with -mzarch.  */\n-# ifdef __s390x__\n-#  define INSN \"cgxbra\"\n-# else\n-#  define INSN \"cfxbra\"\n-# endif\n-\n long int\n __lroundl (_Float128 x)\n {\n@@ -38,7 +29,7 @@ __lroundl (_Float128 x)\n   /* The z196 zarch \"convert to fixed\" (cgxbra) instruction is rounding\n      x to the nearest integer with \"ties away from 0\" rounding mode\n      (M3-field: 1) where inexact exceptions are suppressed (M4-field: 4).  */\n-  __asm__ (INSN \" %0,1,%1,4\" : \"=d\" (y) : \"f\" (x) : \"cc\");\n+  __asm__ (\"cgxbra %0,1,%1,4\" : \"=d\" (y) : \"f\" (x) : \"cc\");\n   return y;\n }\n libm_alias_ldouble (__lround, lround)\ndiff --git a/sysdeps/s390/ifunc-memchr.h b/sysdeps/s390/ifunc-memchr.h\nindex a0ed7c5444..5dcf2850a6 100644\n--- a/sysdeps/s390/ifunc-memchr.h\n+++ b/sysdeps/s390/ifunc-memchr.h\n@@ -31,18 +31,18 @@\n \n #if defined HAVE_S390_MIN_Z13_ZARCH_ASM_SUPPORT\n # define MEMCHR_DEFAULT\t\tMEMCHR_Z13\n-# define HAVE_MEMCHR_Z900_G5\t0\n+# define HAVE_MEMCHR_Z900\t0\n # define HAVE_MEMCHR_Z13\t1\n #else\n-# define MEMCHR_DEFAULT\t\tMEMCHR_Z900_G5\n-# define HAVE_MEMCHR_Z900_G5\t1\n+# define MEMCHR_DEFAULT\t\tMEMCHR_Z900\n+# define HAVE_MEMCHR_Z900\t1\n # define HAVE_MEMCHR_Z13\tHAVE_MEMCHR_IFUNC_AND_VX_SUPPORT\n #endif\n \n-#if HAVE_MEMCHR_Z900_G5\n-# define MEMCHR_Z900_G5\t\t__memchr_default\n+#if HAVE_MEMCHR_Z900\n+# define MEMCHR_Z900\t\t__memchr_default\n #else\n-# define MEMCHR_Z900_G5\t\tNULL\n+# define MEMCHR_Z900\t\tNULL\n #endif\n \n #if HAVE_MEMCHR_Z13\ndiff --git a/sysdeps/s390/ifunc-memcmp.h b/sysdeps/s390/ifunc-memcmp.h\nindex 8a21278a0f..cb427978cd 100644\n--- a/sysdeps/s390/ifunc-memcmp.h\n+++ b/sysdeps/s390/ifunc-memcmp.h\n@@ -25,25 +25,25 @@\n \n #if defined HAVE_S390_MIN_Z196_ZARCH_ASM_SUPPORT\n # define MEMCMP_DEFAULT\t\tMEMCMP_Z196\n-# define HAVE_MEMCMP_Z900_G5\t0\n+# define HAVE_MEMCMP_Z900\t0\n # define HAVE_MEMCMP_Z10\t0\n # define HAVE_MEMCMP_Z196\t1\n #elif defined HAVE_S390_MIN_Z10_ZARCH_ASM_SUPPORT\n # define MEMCMP_DEFAULT\t\tMEMCMP_Z10\n-# define HAVE_MEMCMP_Z900_G5\t0\n+# define HAVE_MEMCMP_Z900\t0\n # define HAVE_MEMCMP_Z10\t1\n # define HAVE_MEMCMP_Z196\tHAVE_MEMCMP_IFUNC\n #else\n-# define MEMCMP_DEFAULT\t\tMEMCMP_Z900_G5\n-# define HAVE_MEMCMP_Z900_G5\t1\n+# define MEMCMP_DEFAULT\t\tMEMCMP_Z900\n+# define HAVE_MEMCMP_Z900\t1\n # define HAVE_MEMCMP_Z10\tHAVE_MEMCMP_IFUNC\n # define HAVE_MEMCMP_Z196\tHAVE_MEMCMP_IFUNC\n #endif\n \n-#if HAVE_MEMCMP_Z900_G5\n-# define MEMCMP_Z900_G5\t\t__memcmp_default\n+#if HAVE_MEMCMP_Z900\n+# define MEMCMP_Z900\t\t__memcmp_default\n #else\n-# define MEMCMP_Z900_G5\t\tNULL\n+# define MEMCMP_Z900\t\tNULL\n #endif\n \n #if HAVE_MEMCMP_Z10\ndiff --git a/sysdeps/s390/ifunc-memcpy.h b/sysdeps/s390/ifunc-memcpy.h\nindex 91efab3428..48afc2c23a 100644\n--- a/sysdeps/s390/ifunc-memcpy.h\n+++ b/sysdeps/s390/ifunc-memcpy.h\n@@ -26,19 +26,19 @@\n #if defined HAVE_S390_MIN_Z196_ZARCH_ASM_SUPPORT\n # define MEMCPY_DEFAULT\t\tMEMCPY_Z196\n # define MEMPCPY_DEFAULT\tMEMPCPY_Z196\n-# define HAVE_MEMCPY_Z900_G5\t0\n+# define HAVE_MEMCPY_Z900\t0\n # define HAVE_MEMCPY_Z10\t0\n # define HAVE_MEMCPY_Z196\t1\n #elif defined HAVE_S390_MIN_Z10_ZARCH_ASM_SUPPORT\n # define MEMCPY_DEFAULT\t\tMEMCPY_Z10\n # define MEMPCPY_DEFAULT\tMEMPCPY_Z10\n-# define HAVE_MEMCPY_Z900_G5\t0\n+# define HAVE_MEMCPY_Z900\t0\n # define HAVE_MEMCPY_Z10\t1\n # define HAVE_MEMCPY_Z196\tHAVE_MEMCPY_IFUNC\n #else\n-# define MEMCPY_DEFAULT\t\tMEMCPY_Z900_G5\n-# define MEMPCPY_DEFAULT\tMEMPCPY_Z900_G5\n-# define HAVE_MEMCPY_Z900_G5\t1\n+# define MEMCPY_DEFAULT\t\tMEMCPY_Z900\n+# define MEMPCPY_DEFAULT\tMEMPCPY_Z900\n+# define HAVE_MEMCPY_Z900\t1\n # define HAVE_MEMCPY_Z10\tHAVE_MEMCPY_IFUNC\n # define HAVE_MEMCPY_Z196\tHAVE_MEMCPY_IFUNC\n #endif\n@@ -79,12 +79,12 @@\n # define HAVE_MEMMOVE_ARCH13\tHAVE_MEMMOVE_IFUNC_AND_ARCH13_SUPPORT\n #endif\n \n-#if HAVE_MEMCPY_Z900_G5\n-# define MEMCPY_Z900_G5\t\t__memcpy_default\n-# define MEMPCPY_Z900_G5\t__mempcpy_default\n+#if HAVE_MEMCPY_Z900\n+# define MEMCPY_Z900\t\t__memcpy_default\n+# define MEMPCPY_Z900\t\t__mempcpy_default\n #else\n-# define MEMCPY_Z900_G5\t\tNULL\n-# define MEMPCPY_Z900_G5\tNULL\n+# define MEMCPY_Z900\t\tNULL\n+# define MEMPCPY_Z900\t\tNULL\n #endif\n \n #if HAVE_MEMCPY_Z10\ndiff --git a/sysdeps/s390/ifunc-memset.h b/sysdeps/s390/ifunc-memset.h\nindex b0041d1a58..569591c9cc 100644\n--- a/sysdeps/s390/ifunc-memset.h\n+++ b/sysdeps/s390/ifunc-memset.h\n@@ -25,17 +25,17 @@\n \n #if defined HAVE_S390_MIN_Z196_ZARCH_ASM_SUPPORT\n # define MEMSET_DEFAULT\t\tMEMSET_Z196\n-# define HAVE_MEMSET_Z900_G5\t0\n+# define HAVE_MEMSET_Z900\t0\n # define HAVE_MEMSET_Z10\t0\n # define HAVE_MEMSET_Z196\t1\n #elif defined HAVE_S390_MIN_Z10_ZARCH_ASM_SUPPORT\n # define MEMSET_DEFAULT\t\tMEMSET_Z10\n-# define HAVE_MEMSET_Z900_G5\t0\n+# define HAVE_MEMSET_Z900\t0\n # define HAVE_MEMSET_Z10\t1\n # define HAVE_MEMSET_Z196\tHAVE_MEMSET_IFUNC\n #else\n-# define MEMSET_DEFAULT\t\tMEMSET_Z900_G5\n-# define HAVE_MEMSET_Z900_G5\t1\n+# define MEMSET_DEFAULT\t\tMEMSET_Z900\n+# define HAVE_MEMSET_Z900\t1\n # define HAVE_MEMSET_Z10\tHAVE_MEMSET_IFUNC\n # define HAVE_MEMSET_Z196\tHAVE_MEMSET_IFUNC\n #endif\n@@ -46,10 +46,10 @@\n # define HAVE_MEMSET_MVCLE\t0\n #endif\n \n-#if HAVE_MEMSET_Z900_G5\n-# define MEMSET_Z900_G5\t\t__memset_default\n+#if HAVE_MEMSET_Z900\n+# define MEMSET_Z900\t\t__memset_default\n #else\n-# define MEMSET_Z900_G5\t\tNULL\n+# define MEMSET_Z900\t\tNULL\n #endif\n \n #if HAVE_MEMSET_Z10\ndiff --git a/sysdeps/s390/ifunc-strcmp.h b/sysdeps/s390/ifunc-strcmp.h\nindex 7d32d72b60..069827c460 100644\n--- a/sysdeps/s390/ifunc-strcmp.h\n+++ b/sysdeps/s390/ifunc-strcmp.h\n@@ -31,18 +31,18 @@\n \n #if defined HAVE_S390_MIN_Z13_ZARCH_ASM_SUPPORT\n # define STRCMP_DEFAULT\t\tSTRCMP_Z13\n-# define HAVE_STRCMP_Z900_G5\t0\n+# define HAVE_STRCMP_Z900\t0\n # define HAVE_STRCMP_Z13\t1\n #else\n-# define STRCMP_DEFAULT\t\tSTRCMP_Z900_G5\n-# define HAVE_STRCMP_Z900_G5\t1\n+# define STRCMP_DEFAULT\t\tSTRCMP_Z900\n+# define HAVE_STRCMP_Z900\t1\n # define HAVE_STRCMP_Z13\tHAVE_STRCMP_IFUNC_AND_VX_SUPPORT\n #endif\n \n-#if HAVE_STRCMP_Z900_G5\n-# define STRCMP_Z900_G5\t\t__strcmp_default\n+#if HAVE_STRCMP_Z900\n+# define STRCMP_Z900\t\t__strcmp_default\n #else\n-# define STRCMP_Z900_G5\t\tNULL\n+# define STRCMP_Z900\t\tNULL\n #endif\n \n #if HAVE_STRCMP_Z13\ndiff --git a/sysdeps/s390/ifunc-strcpy.h b/sysdeps/s390/ifunc-strcpy.h\nindex 919bd74923..9cd26f2f76 100644\n--- a/sysdeps/s390/ifunc-strcpy.h\n+++ b/sysdeps/s390/ifunc-strcpy.h\n@@ -31,18 +31,18 @@\n \n #if defined HAVE_S390_MIN_Z13_ZARCH_ASM_SUPPORT\n # define STRCPY_DEFAULT\t\tSTRCPY_Z13\n-# define HAVE_STRCPY_Z900_G5\t0\n+# define HAVE_STRCPY_Z900\t0\n # define HAVE_STRCPY_Z13\t1\n #else\n-# define STRCPY_DEFAULT\t\tSTRCPY_Z900_G5\n-# define HAVE_STRCPY_Z900_G5\t1\n+# define STRCPY_DEFAULT\t\tSTRCPY_Z900\n+# define HAVE_STRCPY_Z900\t1\n # define HAVE_STRCPY_Z13\tHAVE_STRCPY_IFUNC_AND_VX_SUPPORT\n #endif\n \n-#if HAVE_STRCPY_Z900_G5\n-# define STRCPY_Z900_G5\t\t__strcpy_default\n+#if HAVE_STRCPY_Z900\n+# define STRCPY_Z900\t\t__strcpy_default\n #else\n-# define STRCPY_Z900_G5\t\tNULL\n+# define STRCPY_Z900\t\tNULL\n #endif\n \n #if HAVE_STRCPY_Z13\ndiff --git a/sysdeps/s390/ifunc-strncpy.h b/sysdeps/s390/ifunc-strncpy.h\nindex de426e611e..625b52a3ab 100644\n--- a/sysdeps/s390/ifunc-strncpy.h\n+++ b/sysdeps/s390/ifunc-strncpy.h\n@@ -31,18 +31,18 @@\n \n #if defined HAVE_S390_MIN_Z13_ZARCH_ASM_SUPPORT\n # define STRNCPY_DEFAULT\tSTRNCPY_Z13\n-# define HAVE_STRNCPY_Z900_G5\t0\n+# define HAVE_STRNCPY_Z900\t0\n # define HAVE_STRNCPY_Z13\t1\n #else\n-# define STRNCPY_DEFAULT\tSTRNCPY_Z900_G5\n-# define HAVE_STRNCPY_Z900_G5\t1\n+# define STRNCPY_DEFAULT\tSTRNCPY_Z900\n+# define HAVE_STRNCPY_Z900\t1\n # define HAVE_STRNCPY_Z13\tHAVE_STRNCPY_IFUNC_AND_VX_SUPPORT\n #endif\n \n-#if HAVE_STRNCPY_Z900_G5\n-# define STRNCPY_Z900_G5\t__strncpy_default\n+#if HAVE_STRNCPY_Z900\n+# define STRNCPY_Z900\t\t__strncpy_default\n #else\n-# define STRNCPY_Z900_G5\tNULL\n+# define STRNCPY_Z900\t\tNULL\n #endif\n \n #if HAVE_STRNCPY_Z13\ndiff --git a/sysdeps/s390/iso-8859-1_cp037_z900.c b/sysdeps/s390/iso-8859-1_cp037_z900.c\nindex 3e7f131f15..b38e9e6b40 100644\n--- a/sysdeps/s390/iso-8859-1_cp037_z900.c\n+++ b/sysdeps/s390/iso-8859-1_cp037_z900.c\n@@ -169,12 +169,6 @@ __attribute__ ((aligned (8))) =\n #define MIN_NEEDED_FROM\t\t1\n #define MIN_NEEDED_TO\t\t1\n \n-# if defined __s390x__\n-#  define BRANCH_ON_COUNT(REG,LBL) \"brctg %\" #REG \",\" #LBL \"\\n\\t\"\n-# else\n-#  define BRANCH_ON_COUNT(REG,LBL) \"brct %\" #REG \",\" #LBL \"\\n\\t\"\n-# endif\n-\n #define TR_LOOP(TABLE)\t\t\t\t\t\t\t\\\n   {\t\t\t\t\t\t\t\t\t\\\n     size_t length = (inend - inptr < outend - outptr\t\t\t\\\n@@ -188,7 +182,7 @@ __attribute__ ((aligned (8))) =\n \t\t\t     \"   tr 0(256,%[R_OUT]),0(%[R_TBL])\\n\\t\"\t\\\n \t\t\t     \"   la %[R_IN],256(%[R_IN])\\n\\t\"\t\t\\\n \t\t\t     \"   la %[R_OUT],256(%[R_OUT])\\n\\t\"\t\t\\\n-\t\t\t     BRANCH_ON_COUNT ([R_LI], 0b)\t\t\\\n+\t\t\t     \"   brctg %[R_LI],0b\\n\\t\"\t\t\t\\\n \t\t\t     : /* outputs */ [R_IN] \"+a\" (inptr)\t\\\n \t\t\t       , [R_OUT] \"+a\" (outptr), [R_LI] \"+d\" (blocks) \\\n \t\t\t     : /* inputs */ [R_TBL] \"a\" (TABLE)\t\t\\\ndiff --git a/sysdeps/s390/jmpbuf-unwind.h b/sysdeps/s390/jmpbuf-unwind.h\nindex 97dbb40078..3812c126a5 100644\n--- a/sysdeps/s390/jmpbuf-unwind.h\n+++ b/sysdeps/s390/jmpbuf-unwind.h\n@@ -30,8 +30,7 @@\n   ((void *) (address) < (void *) demangle ((jmpbuf)->__gregs[__JB_GPR15]))\n \n \n-/* On s390{,x}, CFA is always 96 (resp. 160) bytes above actual\n-   %r15.  */\n+/* On s390x, CFA is always 160 bytes above actual %r15.  */\n #define _JMPBUF_CFA_UNWINDS_ADJ(_jmpbuf, _context, _adj) \\\n   _JMPBUF_UNWINDS_ADJ (_jmpbuf,\t\t\t\t\t\\\n \t\t       (void *) (_Unwind_GetCFA (_context)\t\\\ndiff --git a/sysdeps/s390/ldsodefs.h b/sysdeps/s390/ldsodefs.h\nindex 0313b50774..6c4a999e33 100644\n--- a/sysdeps/s390/ldsodefs.h\n+++ b/sysdeps/s390/ldsodefs.h\n@@ -22,18 +22,10 @@\n #include <elf.h>\n #include <cpu-features.h>\n \n-struct La_s390_32_regs;\n-struct La_s390_32_retval;\n struct La_s390_64_regs;\n struct La_s390_64_retval;\n \n #define ARCH_PLTENTER_MEMBERS\t\t\t\t\t\t\\\n-    Elf32_Addr (*s390_32_gnu_pltenter) (Elf32_Sym *, unsigned int,\t\\\n-\t\t\t\t\tuintptr_t *,\t\t\t\\\n-\t\t\t\t\tuintptr_t *,\t\t\t\\\n-\t\t\t\t\tstruct La_s390_32_regs *,\t\\\n-\t\t\t\t\tunsigned int *, const char *name, \\\n-\t\t\t\t\tlong int *framesizep);\t\t\\\n     Elf64_Addr (*s390_64_gnu_pltenter) (Elf64_Sym *, unsigned int,\t\\\n \t\t\t\t\tuintptr_t *,\t\t\t\\\n \t\t\t\t\tuintptr_t *,\t\t\t\\\n@@ -42,11 +34,6 @@ struct La_s390_64_retval;\n \t\t\t\t\tlong int *framesizep)\n \n #define ARCH_PLTEXIT_MEMBERS\t\t\t\t\t\t\\\n-    unsigned int (*s390_32_gnu_pltexit) (Elf32_Sym *, unsigned int,\t\\\n-\t\t\t\t\t uintptr_t *, uintptr_t *,\t\\\n-\t\t\t\t\t const struct La_s390_32_regs *, \\\n-\t\t\t\t\t struct La_s390_32_retval *,\t\\\n-\t\t\t\t\t const char *);\t\t\t\\\n     unsigned int (*s390_64_gnu_pltexit) (Elf64_Sym *, unsigned int,\t\\\n \t\t\t\t\t uintptr_t *, uintptr_t *,\t\\\n \t\t\t\t\t const struct La_s390_64_regs *, \\\ndiff --git a/sysdeps/s390/linkmap.h b/sysdeps/s390/linkmap.h\nindex 283615b99a..faf0b96d3e 100644\n--- a/sysdeps/s390/linkmap.h\n+++ b/sysdeps/s390/linkmap.h\n@@ -1,13 +1,5 @@\n-#if __WORDSIZE == 64\n struct link_map_machine\n-  {\n-    Elf64_Addr plt; /* Address of .plt + 0x2e */\n-    const Elf64_Rela *jmprel; /* Address of first JMP_SLOT reloc */\n-  };\n-#else\n-struct link_map_machine\n-  {\n-    Elf32_Addr plt; /* Address of .plt + 0x2c */\n-    const Elf32_Rela *jmprel; /* Address of first JMP_SLOT reloc */\n-  };\n-#endif\n+{\n+  Elf64_Addr plt; /* Address of .plt + 0x2e */\n+  const Elf64_Rela *jmprel; /* Address of first JMP_SLOT reloc */\n+};\ndiff --git a/sysdeps/s390/memccpy-vx.S b/sysdeps/s390/memccpy-vx.S\nindex 8008e374ce..648039d867 100644\n--- a/sysdeps/s390/memccpy-vx.S\n+++ b/sysdeps/s390/memccpy-vx.S\n@@ -1,4 +1,4 @@\n-/* Vector optimized 32/64 bit S/390 version of memccpy.\n+/* Vector optimized 64 bit S/390 version of memccpy.\n    Copyright (C) 2015-2026 Free Software Foundation, Inc.\n    This file is part of the GNU C Library.\n \n@@ -46,11 +46,6 @@\n */\n ENTRY(MEMCCPY_Z13)\n \t.machine \"z13\"\n-\t.machinemode \"zarch_nohighgprs\"\n-\n-# if !defined __s390x__\n-\tllgfr\t%r5,%r5\n-# endif /* !defined __s390x__ */\n \n \tvlvgp\t%v31,%r6,%r7\t/* Save registers.  */\n \tclgije\t%r5,0,.Lnf_end\t/* If len == 0 then exit.  */\ndiff --git a/sysdeps/s390/memchr-vx.S b/sysdeps/s390/memchr-vx.S\nindex e6c3ac4181..86cd0291f7 100644\n--- a/sysdeps/s390/memchr-vx.S\n+++ b/sysdeps/s390/memchr-vx.S\n@@ -1,4 +1,4 @@\n-/* Vector optimized 32/64 bit S/390 version of memchr.\n+/* Vector optimized 64 bit S/390 version of memchr.\n    Copyright (C) 2015-2026 Free Software Foundation, Inc.\n    This file is part of the GNU C Library.\n \n@@ -40,13 +40,7 @@\n    -v18=c replicated\n */\n ENTRY(MEMCHR_Z13)\n-\n \t.machine \"z13\"\n-\t.machinemode \"zarch_nohighgprs\"\n-\n-# if !defined __s390x__\n-\tllgfr\t%r4,%r4\n-# endif /* !defined __s390x__ */\n \n \tclgije\t%r4,0,.Lnf_end\t/* If len == 0 then exit.  */\n \n@@ -157,7 +151,7 @@ strong_alias (MEMCHR_Z13, __memchr)\n weak_alias (__memchr, memchr)\n # endif\n \n-# if ! HAVE_MEMCHR_Z900_G5 && defined SHARED && IS_IN (libc)\n+# if ! HAVE_MEMCHR_Z900 && defined SHARED && IS_IN (libc)\n strong_alias (MEMCHR_Z13, __GI_memchr)\n # endif\n #endif\ndiff --git a/sysdeps/s390/memchr-z900.S b/sysdeps/s390/memchr-z900.S\nindex 16b9c19429..c0ffd864f7 100644\n--- a/sysdeps/s390/memchr-z900.S\n+++ b/sysdeps/s390/memchr-z900.S\n@@ -1,4 +1,4 @@\n-/* Search a character in a block of memory.  31/64 bit S/390 version.\n+/* Search a character in a block of memory.  64 bit S/390 version.\n    Copyright (C) 2001-2026 Free Software Foundation, Inc.\n    This file is part of the GNU C Library.\n \n@@ -25,51 +25,26 @@\n #include \"sysdep.h\"\n #include \"asm-syntax.h\"\n \n-#if HAVE_MEMCHR_Z900_G5\n-# if defined __s390x__\n-#  define SLGR\tslgr\n-#  define LGHI\tlghi\n-#  define NGR\tngr\n-#  define LGR\tlgr\n-# else\n-#  define SLGR\tslr\n-#  define LGHI\tlhi\n-#  define NGR\tnr\n-#  define LGR\tlr\n-# endif /* ! defined __s390x__  */\n-\n+#if HAVE_MEMCHR_Z900\n \t.text\n-ENTRY(MEMCHR_Z900_G5)\n-\tLGHI  %r0,0xff\n-\tNGR   %r0,%r3\n-\tLGR   %r1,%r2\n-# if ! defined __s390x__\n-\ttmlh  %r4,32768\n-\tjo    3f\t\t/* Jump away if n >= 0x80000000  */\n-# endif\n+ENTRY(MEMCHR_Z900)\n+\tlghi  %r0,0xff\n+\tngr   %r0,%r3\n+\tlgr   %r1,%r2\n \tla    %r2,0(%r4,%r1)\n 0:\tsrst  %r2,%r1\n \tjo    0b\n \tbrc   13,1f\n-\tSLGR  %r2,%r2\n+\tslgr  %r2,%r2\n 1:\tbr    %r14\n-# if ! defined __s390x__\n-\t/* On s390 (31bit), the pointer to the first byte after s (stored in\n-\t   r2) always wraps around with n >= 0x80000000 and can lead to stop\n-\t   searching before end of s.  Thus just use r2=0 in this case.\n-\t   If r2 < r1, the srst instruction stops searching with cc=2 \"not\n-\t   found\" when wrapping around from top address to zero.  */\n-3:\tSLGR  %r2,%r2\n-\tj     0b\n-# endif\n-END(MEMCHR_Z900_G5)\n+END(MEMCHR_Z900)\n \n # if ! HAVE_MEMCHR_IFUNC\n-strong_alias (MEMCHR_Z900_G5, __memchr)\n+strong_alias (MEMCHR_Z900, __memchr)\n weak_alias (__memchr, memchr)\n # endif\n \n # if defined SHARED && IS_IN (libc)\n-strong_alias (MEMCHR_Z900_G5, __GI_memchr)\n+strong_alias (MEMCHR_Z900, __GI_memchr)\n # endif\n #endif\ndiff --git a/sysdeps/s390/memchr.c b/sysdeps/s390/memchr.c\nindex 764a10a839..8ddfaa03d4 100644\n--- a/sysdeps/s390/memchr.c\n+++ b/sysdeps/s390/memchr.c\n@@ -24,8 +24,8 @@\n # undef memchr\n # include <ifunc-resolve.h>\n \n-# if HAVE_MEMCHR_Z900_G5\n-extern __typeof (__redirect_memchr) MEMCHR_Z900_G5 attribute_hidden;\n+# if HAVE_MEMCHR_Z900\n+extern __typeof (__redirect_memchr) MEMCHR_Z900 attribute_hidden;\n # endif\n \n # if HAVE_MEMCHR_Z13\ndiff --git a/sysdeps/s390/memcmp-z900.S b/sysdeps/s390/memcmp-z900.S\nindex 00ec2bba52..abdbcaa35e 100644\n--- a/sysdeps/s390/memcmp-z900.S\n+++ b/sysdeps/s390/memcmp-z900.S\n@@ -1,4 +1,4 @@\n-/* memcmp - compare two memory blocks.  31/64 bit S/390 version.\n+/* memcmp - compare two memory blocks.  64 bit S/390 version.\n    Copyright (C) 2012-2026 Free Software Foundation, Inc.\n    This file is part of the GNU C Library.\n \n@@ -28,72 +28,38 @@\n \n        .text\n \n-#if HAVE_MEMCMP_Z900_G5\n-# if defined __s390x__\n-#  define LTGR\tltgr\n-#  define AGHI\taghi\n-#  define BRCTG\tbrctg\n-# else\n-#  define LTGR\tltr\n-#  define AGHI\tahi\n-#  define BRCTG\tbrct\n-# endif /* ! defined __s390x__  */\n-ENTRY(MEMCMP_Z900_G5)\n-# if defined __s390x__\n+#if HAVE_MEMCMP_Z900\n+ENTRY(MEMCMP_Z900)\n \t.machine \"z900\"\n-# else\n-\t.machine \"g5\"\n-\tbasr    %r5,0\n-.L_Z900_G5_16:\n-#  define Z900_G5_EX_D .L_Z900_G5_15-.L_Z900_G5_16\n-# endif /* ! defined __s390x__  */\n-\tLTGR    %r4,%r4\n-\tje      .L_Z900_G5_4\n-\tAGHI    %r4,-1\n-# if defined __s390x__\n+\tltgr    %r4,%r4\n+\tje      .L_Z900_4\n+\taghi    %r4,-1\n \tsrlg    %r1,%r4,8\n-\tlarl    %r5,.L_Z900_G5_15\n-#  define Z900_G5_EX_D 0\n-# else\n-\tlr\t%r1,%r4\n-\tsrl\t%r1,8\n-# endif /* ! defined __s390x__  */\n-\tLTGR    %r1,%r1\n-\tjne     .L_Z900_G5_12\n-.L_Z900_G5_3:\n-\tex      %r4,Z900_G5_EX_D(%r5)\n-.L_Z900_G5_4:\n+\tlarl    %r5,.L_Z900_15\n+\tltgr    %r1,%r1\n+\tjne     .L_Z900_12\n+.L_Z900_3:\n+\tex      %r4,0(%r5)\n+.L_Z900_4:\n \tipm     %r2\n-# if defined __s390x__\n \tsllg    %r2,%r2,34\n \tsrag    %r2,%r2,62\n-# else\n-\tsll     %r2,2\n-\tsra     %r2,30\n-# endif /* ! defined __s390x__  */\n \tbr      %r14\n-.L_Z900_G5_12:\n+.L_Z900_12:\n \tclc     0(256,%r3),0(%r2)\n-\tjne     .L_Z900_G5_4\n+\tjne     .L_Z900_4\n \tla      %r3,256(%r3)\n \tla      %r2,256(%r2)\n-\tBRCTG   %r1,.L_Z900_G5_12\n-\tj       .L_Z900_G5_3\n-.L_Z900_G5_15:\n+\tbrctg   %r1,.L_Z900_12\n+\tj       .L_Z900_3\n+.L_Z900_15:\n \tclc     0(1,%r3),0(%r2)\n-END(MEMCMP_Z900_G5)\n-# undef LTGR\n-# undef AGHI\n-# undef BRCTG\n-#endif /* HAVE_MEMCMP_Z900_G5  */\n+END(MEMCMP_Z900)\n+#endif /* HAVE_MEMCMP_Z900  */\n \n #if HAVE_MEMCMP_Z10\n ENTRY(MEMCMP_Z10)\n \t.machine \"z10\"\n-\t.machinemode \"zarch_nohighgprs\"\n-# if !defined __s390x__\n-\tllgfr\t%r4,%r4\n-# endif /* !defined __s390x__  */\n \tltgr    %r4,%r4\n \tje      .L_Z10_4\n \taghi    %r4,-1\n@@ -123,10 +89,6 @@ END(MEMCMP_Z10)\n #if HAVE_MEMCMP_Z196\n ENTRY(MEMCMP_Z196)\n \t.machine \"z196\"\n-\t.machinemode \"zarch_nohighgprs\"\n-# if !defined __s390x__\n-\tllgfr\t%r4,%r4\n-# endif /* !defined __s390x__  */\n \tltgr    %r4,%r4\n \tje      .L_Z196_4\n \taghi    %r4,-1\ndiff --git a/sysdeps/s390/memcmp.c b/sysdeps/s390/memcmp.c\nindex b6f6faa224..5ff55c8091 100644\n--- a/sysdeps/s390/memcmp.c\n+++ b/sysdeps/s390/memcmp.c\n@@ -23,8 +23,8 @@\n # undef memcmp\n # include <ifunc-resolve.h>\n \n-# if HAVE_MEMCMP_Z900_G5\n-extern __typeof (__redirect_memcmp) MEMCMP_Z900_G5 attribute_hidden;\n+# if HAVE_MEMCMP_Z900\n+extern __typeof (__redirect_memcmp) MEMCMP_Z900 attribute_hidden;\n # endif\n \n # if HAVE_MEMCMP_Z10\ndiff --git a/sysdeps/s390/memcopy.h b/sysdeps/s390/memcopy.h\nindex 6ec81298d8..1eb8dc4057 100644\n--- a/sysdeps/s390/memcopy.h\n+++ b/sysdeps/s390/memcopy.h\n@@ -18,6 +18,6 @@\n \n #include <sysdeps/generic/memcopy.h>\n \n-/* The s390/s390x memcpy implementations are safe to be used by memmove.  */\n+/* The s390x memcpy implementations are safe to be used by memmove.  */\n #undef MEMCPY_OK_FOR_FWD_MEMMOVE\n #define MEMCPY_OK_FOR_FWD_MEMMOVE 1\ndiff --git a/sysdeps/s390/memcpy-z900.S b/sysdeps/s390/memcpy-z900.S\nindex 037d245816..3966585e83 100644\n--- a/sysdeps/s390/memcpy-z900.S\n+++ b/sysdeps/s390/memcpy-z900.S\n@@ -1,4 +1,4 @@\n-/* memcpy - copy a block from source to destination.  31/64 bit S/390 version.\n+/* memcpy - copy a block from source to destination.  64 bit S/390 version.\n    Copyright (C) 2012-2026 Free Software Foundation, Inc.\n    This file is part of the GNU C Library.\n \n@@ -28,83 +28,49 @@\n \n        .text\n \n-#if defined __s390x__\n-# define LTGR\tltgr\n-# define CGHI\tcghi\n-# define LGR\tlgr\n-# define AGHI\taghi\n-# define BRCTG\tbrctg\n-#else\n-# define LTGR\tltr\n-# define CGHI\tchi\n-# define LGR\tlr\n-# define AGHI\tahi\n-# define BRCTG\tbrct\n-#endif /* ! defined __s390x__  */\n-\n-#if HAVE_MEMCPY_Z900_G5\n-ENTRY(MEMPCPY_Z900_G5)\n-# if defined __s390x__\n+#if HAVE_MEMCPY_Z900\n+ENTRY(MEMPCPY_Z900)\n \t.machine \"z900\"\n-# else\n-\t.machine \"g5\"\n-# endif /* ! defined __s390x__  */\n-\tLGR     %r1,%r2             # Use as dest\n+\tlgr     %r1,%r2             # Use as dest\n \tla      %r2,0(%r4,%r2)      # Return dest + n\n-\tj\t.L_Z900_G5_start\n-END(MEMPCPY_Z900_G5)\n+\tj\t.L_Z900_start\n+END(MEMPCPY_Z900)\n \n-ENTRY(MEMCPY_Z900_G5)\n-# if defined __s390x__\n+ENTRY(MEMCPY_Z900)\n \t.machine \"z900\"\n-# else\n-\t.machine \"g5\"\n-# endif /* ! defined __s390x__  */\n-\tLGR     %r1,%r2             # r1: Use as dest ; r2: Return dest\n-.L_Z900_G5_start:\n-\tLTGR    %r4,%r4\n-\tje      .L_Z900_G5_4\n-\tAGHI    %r4,-1\n-# if defined __s390x__\n+\tlgr     %r1,%r2             # r1: Use as dest ; r2: Return dest\n+.L_Z900_start:\n+\tltgr    %r4,%r4\n+\tje      .L_Z900_4\n+\taghi    %r4,-1\n \tsrlg\t%r5,%r4,8\n-# else\n-\tlr\t%r5,%r4\n-\tsrl\t%r5,8\n-# endif /* ! defined __s390x__  */\n-\tLTGR    %r5,%r5\n-\tjne     .L_Z900_G5_13\n-.L_Z900_G5_3:\n-# if defined __s390x__\n-\tlarl    %r5,.L_Z900_G5_15\n-#  define Z900_G5_EX_D 0\n-# else\n-\tbasr    %r5,0\n-.L_Z900_G5_14:\n-#  define Z900_G5_EX_D .L_Z900_G5_15-.L_Z900_G5_14\n-# endif /* ! defined __s390x__  */\n-\tex      %r4,Z900_G5_EX_D(%r5)\n-.L_Z900_G5_4:\n+\tltgr    %r5,%r5\n+\tjne     .L_Z900_13\n+.L_Z900_3:\n+\tlarl    %r5,.L_Z900_15\n+\tex      %r4,0(%r5)\n+.L_Z900_4:\n \tbr      %r14\n-.L_Z900_G5_13:\n-\tCGHI\t%r5,4096            # Switch to mvcle for copies >1MB\n+.L_Z900_13:\n+\tcghi\t%r5,4096            # Switch to mvcle for copies >1MB\n \tjh      __memcpy_mvcle\n-.L_Z900_G5_12:\n+.L_Z900_12:\n \tmvc     0(256,%r1),0(%r3)\n \tla      %r1,256(%r1)\n \tla      %r3,256(%r3)\n-\tBRCTG   %r5,.L_Z900_G5_12\n-\tj       .L_Z900_G5_3\n-.L_Z900_G5_15:\n+\tbrctg   %r5,.L_Z900_12\n+\tj       .L_Z900_3\n+.L_Z900_15:\n \tmvc     0(1,%r1),0(%r3)\n-END(MEMCPY_Z900_G5)\n-#endif /* HAVE_MEMCPY_Z900_G5  */\n+END(MEMCPY_Z900)\n+#endif /* HAVE_MEMCPY_Z900  */\n \n ENTRY(__memcpy_mvcle)\n \t# Using as standalone function will result in unexpected\n \t# results since the length field is incremented by 1 in order to\n \t# compensate the changes already done in the functions above.\n-\tLGR     %r0,%r2             # backup return dest [ + n ]\n-\tAGHI    %r4,1               # length + 1\n+\tlgr     %r0,%r2             # backup return dest [ + n ]\n+\taghi    %r4,1               # length + 1\n \tLGR     %r5,%r4             # source length\n \tLGR     %r4,%r3             # source address\n \tLGR     %r2,%r1             # destination address\n@@ -112,20 +78,13 @@ ENTRY(__memcpy_mvcle)\n .L_MVCLE_1:\n \tmvcle   %r2,%r4,0           # that's it, MVCLE is your friend\n \tjo      .L_MVCLE_1\n-\tLGR     %r2,%r0             # return destination address\n+\tlgr     %r2,%r0             # return destination address\n \tbr      %r14\n END(__memcpy_mvcle)\n \n-#undef LTGR\n-#undef CGHI\n-#undef LGR\n-#undef AGHI\n-#undef BRCTG\n-\n #if HAVE_MEMCPY_Z10\n ENTRY(MEMPCPY_Z10)\n \t.machine \"z10\"\n-\t.machinemode \"zarch_nohighgprs\"\n \tlgr     %r1,%r2         # Use as dest\n \tla      %r2,0(%r4,%r2)  # Return dest + n\n \tj\t.L_Z10_start\n@@ -133,12 +92,8 @@ END(MEMPCPY_Z10)\n \n ENTRY(MEMCPY_Z10)\n \t.machine \"z10\"\n-\t.machinemode \"zarch_nohighgprs\"\n \tlgr     %r1,%r2         # r1: Use as dest ; r2: Return dest\n .L_Z10_start:\n-# if !defined __s390x__\n-\tllgfr\t%r4,%r4\n-# endif /* !defined __s390x__  */\n \tcgije   %r4,0,.L_Z10_4\n \taghi    %r4,-1\n \tsrlg    %r5,%r4,8\n@@ -166,7 +121,6 @@ END(MEMCPY_Z10)\n #if HAVE_MEMCPY_Z196\n ENTRY(MEMPCPY_Z196)\n \t.machine \"z196\"\n-\t.machinemode \"zarch_nohighgprs\"\n \tlgr     %r1,%r2         # Use as dest\n \tla      %r2,0(%r4,%r2)  # Return dest + n\n \tj\t.L_Z196_start\n@@ -174,12 +128,8 @@ END(MEMPCPY_Z196)\n \n ENTRY(MEMCPY_Z196)\n \t.machine \"z196\"\n-\t.machinemode \"zarch_nohighgprs\"\n \tlgr     %r1,%r2         # r1: Use as dest ; r2: Return dest\n .L_Z196_start:\n-# if !defined __s390x__\n-\tllgfr\t%r4,%r4\n-# endif /* !defined __s390x__  */\n \tltgr    %r4,%r4\n \tje      .L_Z196_4\n .L_Z196_start2:\n@@ -220,13 +170,6 @@ END(MEMCPY_Z196)\n #if HAVE_MEMMOVE_Z13\n ENTRY(MEMMOVE_Z13)\n \t.machine \"z13\"\n-\t.machinemode \"zarch_nohighgprs\"\n-# if !defined __s390x__\n-\t/* Note: The 31bit dst and src pointers are prefixed with zeroes.  */\n-\tllgfr\t%r4,%r4\n-\tllgfr\t%r3,%r3\n-\tllgfr\t%r2,%r2\n-# endif /* !defined __s390x__ */\n \tsgrk\t%r0,%r2,%r3\n \tclgijh\t%r4,16,.L_MEMMOVE_Z13_LARGE\n \taghik\t%r5,%r4,-1\n@@ -289,13 +232,6 @@ END(MEMMOVE_Z13)\n #if HAVE_MEMMOVE_ARCH13\n ENTRY(MEMMOVE_ARCH13)\n \t.machine \"arch13\"\n-\t.machinemode \"zarch_nohighgprs\"\n-# if ! defined __s390x__\n-\t/* Note: The 31bit dst and src pointers are prefixed with zeroes.  */\n-\tllgfr\t%r4,%r4\n-\tllgfr\t%r3,%r3\n-\tllgfr\t%r2,%r2\n-# endif /* ! defined __s390x__ */\n \tsgrk\t%r5,%r2,%r3\n \taghik\t%r0,%r4,-1\t/* Both vstl and mvcrl needs highest index.  */\n \tclgijh\t%r4,16,.L_MEMMOVE_ARCH13_LARGE\ndiff --git a/sysdeps/s390/memcpy.c b/sysdeps/s390/memcpy.c\nindex 243f3a3046..cfad6cdcb4 100644\n--- a/sysdeps/s390/memcpy.c\n+++ b/sysdeps/s390/memcpy.c\n@@ -24,8 +24,8 @@\n # undef memcpy\n # include <ifunc-resolve.h>\n \n-# if HAVE_MEMCPY_Z900_G5\n-extern __typeof (__redirect_memcpy) MEMCPY_Z900_G5 attribute_hidden;\n+# if HAVE_MEMCPY_Z900\n+extern __typeof (__redirect_memcpy) MEMCPY_Z900 attribute_hidden;\n # endif\n \n # if HAVE_MEMCPY_Z10\ndiff --git a/sysdeps/s390/memmem-arch13.S b/sysdeps/s390/memmem-arch13.S\nindex 227c6fecfb..e864471391 100644\n--- a/sysdeps/s390/memmem-arch13.S\n+++ b/sysdeps/s390/memmem-arch13.S\n@@ -1,4 +1,4 @@\n-/* Vector optimized 32/64 bit S/390 version of memmem.\n+/* Vector optimized 64 bit S/390 version of memmem.\n    Copyright (C) 2019-2026 Free Software Foundation, Inc.\n    This file is part of the GNU C Library.\n \n@@ -27,13 +27,6 @@\n    Locate a substring.  */\n ENTRY(MEMMEM_ARCH13)\n \t.machine \"arch13\"\n-\t.machinemode \"zarch_nohighgprs\"\n-# if ! defined __s390x__\n-\tllgfr\t%r3,%r3\n-\tllgfr\t%r5,%r5\n-\tllgfr\t%r4,%r4\n-\tllgfr\t%r2,%r2\n-# endif /* ! defined __s390x__ */\n \tclgrjl\t%r3,%r5,.Lend_no_match\t/* Haystack < needle?  */\n \n \t/* Jump to fallback if needle > 9.  See also strstr-arch13.S.  */\ndiff --git a/sysdeps/s390/mempcpy.c b/sysdeps/s390/mempcpy.c\nindex 43604948e7..49f01b0575 100644\n--- a/sysdeps/s390/mempcpy.c\n+++ b/sysdeps/s390/mempcpy.c\n@@ -28,8 +28,8 @@\n # undef __mempcpy\n # include <ifunc-resolve.h>\n \n-# if HAVE_MEMCPY_Z900_G5\n-extern __typeof (__redirect___mempcpy) MEMPCPY_Z900_G5 attribute_hidden;\n+# if HAVE_MEMCPY_Z900\n+extern __typeof (__redirect___mempcpy) MEMPCPY_Z900 attribute_hidden;\n # endif\n \n # if HAVE_MEMCPY_Z10\ndiff --git a/sysdeps/s390/memrchr-vx.S b/sysdeps/s390/memrchr-vx.S\nindex 53ca78ae24..7b65479777 100644\n--- a/sysdeps/s390/memrchr-vx.S\n+++ b/sysdeps/s390/memrchr-vx.S\n@@ -1,4 +1,4 @@\n-/* Vector optimized 32/64 bit S/390 version of memrchr.\n+/* Vector optimized 64 bit S/390 version of memrchr.\n    Copyright (C) 2015-2026 Free Software Foundation, Inc.\n    This file is part of the GNU C Library.\n \n@@ -44,11 +44,7 @@\n */\n ENTRY(MEMRCHR_Z13)\n \t.machine \"z13\"\n-\t.machinemode \"zarch_nohighgprs\"\n \n-# if !defined __s390x__\n-\tllgfr\t%r4,%r4\n-# endif /* !defined __s390x__ */\n \tclgije\t%r4,0,.Lnot_found\n \n \tvlvgb\t%v18,%r3,0\t/* Generate vector which elements are all c.\ndiff --git a/sysdeps/s390/memset-z900.S b/sysdeps/s390/memset-z900.S\nindex 987589988b..646ea9b33d 100644\n--- a/sysdeps/s390/memset-z900.S\n+++ b/sysdeps/s390/memset-z900.S\n@@ -1,4 +1,4 @@\n-/* Set a block of memory to some byte value.  31/64 bit S/390 version.\n+/* Set a block of memory to some byte value.  64 bit S/390 version.\n    Copyright (C) 2001-2026 Free Software Foundation, Inc.\n    This file is part of the GNU C Library.\n \n@@ -28,75 +28,39 @@\n \n        .text\n \n-#if HAVE_MEMSET_Z900_G5\n-# if defined __s390x__\n-#  define LTGR\tltgr\n-#  define CGHI\tcghi\n-#  define LGR\tlgr\n-#  define AGHI\taghi\n-#  define BRCTG\tbrctg\n-# else\n-#  define LTGR\tltr\n-#  define CGHI\tchi\n-#  define LGR\tlr\n-#  define AGHI\tahi\n-#  define BRCTG\tbrct\n-# endif /* ! defined __s390x__  */\n-\n-ENTRY(MEMSET_Z900_G5)\n-.L_Z900_G5_start:\n-#if defined __s390x__\n+#if HAVE_MEMSET_Z900\n+ENTRY(MEMSET_Z900)\n+.L_Z900_start:\n \t.machine \"z900\"\n-#else\n-\t.machine \"g5\"\n-#endif /* ! defined __s390x__  */\n-\tLTGR    %r4,%r4\n-\tje      .L_Z900_G5_4\n+\tltgr    %r4,%r4\n+\tje      .L_Z900_4\n \tstc     %r3,0(%r2)\n-\tCGHI    %r4,1\n-\tLGR     %r1,%r2\n-\tje      .L_Z900_G5_4\n-\tAGHI    %r4,-2\n-#if defined __s390x__\n-\tlarl    %r5,.L_Z900_G5_18\n+\tcghi    %r4,1\n+\tlgr     %r1,%r2\n+\tje      .L_Z900_4\n+\taghi    %r4,-2\n+\tlarl    %r5,.L_Z900_18\n \tsrlg    %r3,%r4,8\n-# define Z900_G5_EX_D 0\n-#else\n-\tbasr    %r5,0\n-.L_Z900_G5_19:\n-# define Z900_G5_EX_D .L_Z900_G5_18-.L_Z900_G5_19\n-\tlr      %r3,%r4\n-\tsrl     %r3,8\n-#endif /* ! defined __s390x__  */\n-\tLTGR    %r3,%r3\n-\tjne     .L_Z900_G5_14\n-.L_Z900_G5_3:\n-\tex      %r4,Z900_G5_EX_D(%r5)\n-.L_Z900_G5_4:\n+\tltgr    %r3,%r3\n+\tjne     .L_Z900_14\n+.L_Z900_3:\n+\tex      %r4,0(%r5)\n+.L_Z900_4:\n \tbr      %r14\n-.L_Z900_G5_14:\n+.L_Z900_14:\n \tmvc     1(256,%r1),0(%r1)\n \tla      %r1,256(%r1)\n-\tBRCTG   %r3,.L_Z900_G5_14\n-\tj       .L_Z900_G5_3\n-.L_Z900_G5_18:\n+\tbrctg   %r3,.L_Z900_14\n+\tj       .L_Z900_3\n+.L_Z900_18:\n \tmvc     1(1,%r1),0(%r1)\n-END(MEMSET_Z900_G5)\n-# undef LTGR\n-# undef CGHI\n-# undef LGR\n-# undef AGHI\n-# undef BRCTG\n-#endif /*  HAVE_MEMSET_Z900_G5  */\n+END(MEMSET_Z900)\n+#endif /*  HAVE_MEMSET_Z900  */\n \n #if HAVE_MEMSET_Z10\n ENTRY(MEMSET_Z10)\n .L_Z10_start:\n \t.machine \"z10\"\n-\t.machinemode \"zarch_nohighgprs\"\n-# if !defined __s390x__\n-\tllgfr\t%r4,%r4\n-# endif /* !defined __s390x__  */\n \tcgije   %r4,0,.L_Z10_4\n \tstc     %r3,0(%r2)\n \tlgr     %r1,%r2\n@@ -126,10 +90,6 @@ END(MEMSET_Z10)\n ENTRY(MEMSET_Z196)\n .L_Z196_start:\n \t.machine \"z196\"\n-\t.machinemode \"zarch_nohighgprs\"\n-# if !defined __s390x__\n-\tllgfr\t%r4,%r4\n-# endif /* !defined __s390x__  */\n \tclgfi\t%r4,1\n \tjl\t.L_Z196_4\t    # n == 0\n \tstc     %r3,0(%r2)\ndiff --git a/sysdeps/s390/memset.c b/sysdeps/s390/memset.c\nindex 1eb6dcb007..25ed9af660 100644\n--- a/sysdeps/s390/memset.c\n+++ b/sysdeps/s390/memset.c\n@@ -23,8 +23,8 @@\n # undef memset\n # include <ifunc-resolve.h>\n \n-# if HAVE_MEMSET_Z900_G5\n-extern __typeof (__redirect_memset) MEMSET_Z900_G5 attribute_hidden;\n+# if HAVE_MEMSET_Z900\n+extern __typeof (__redirect_memset) MEMSET_Z900 attribute_hidden;\n # endif\n \n # if HAVE_MEMSET_Z10\ndiff --git a/sysdeps/s390/multiarch/8bit-generic.c b/sysdeps/s390/multiarch/8bit-generic.c\nindex 10edde6641..8224cec557 100644\n--- a/sysdeps/s390/multiarch/8bit-generic.c\n+++ b/sysdeps/s390/multiarch/8bit-generic.c\n@@ -88,7 +88,6 @@\n \t   loop_count = 16;\t\t\t\t\t\t\\\n \t __asm__ volatile (\".machine push\\n\\t\"\t\t\t\t\\\n \t\t\t   \".machine \\\"z13\\\"\\n\\t\"\t\t\t\\\n-\t\t\t   \".machinemode \\\"zarch_nohighgprs\\\"\\n\\t\"\t\\\n \t\t\t   \"    sllk %[R_I],%[R_LI],4\\n\\t\"\t\t\\\n \t\t\t   \"    ahi %[R_I],-1\\n\\t\"\t\t\t\\\n \t\t\t   /* Execute mvc and tr with correct len.  */\t\\\n@@ -226,7 +225,6 @@\n \t   (ch == 0 is no error, but is handled differently)  */\t\\\n \t__asm__ volatile (\".machine push\\n\\t\"\t\t\t\t\\\n \t\t\t  \".machine \\\"z13\\\"\\n\\t\"\t\t\t\\\n-\t\t\t  \".machinemode \\\"zarch_nohighgprs\\\"\\n\\t\"\t\\\n \t\t\t  /* Setup to check for ch >= max.  */\t\t\\\n \t\t\t  \"    vzero %%v21\\n\\t\"\t\t\t\t\\\n \t\t\t  \"    vleih %%v21,-24576,0\\n\\t\" /* element 0:   >  */ \\\n@@ -288,7 +286,6 @@\n \t       check for errors (from_ucs4[ch] == 0).  */\t\t\\\n \t    __asm__ volatile (\".machine push\\n\\t\"\t\t\t\\\n \t\t\t      \".machine \\\"z13\\\"\\n\\t\"\t\t\t\\\n-\t\t\t      \".machinemode \\\"zarch_nohighgprs\\\"\\n\\t\"\t\\\n \t\t\t      \"    sllk %[R_I],%[R_LI],4\\n\\t\"\t\t\\\n \t\t\t      \"    ahi %[R_I],-1\\n\\t\"\t\t\t\\\n \t\t\t      /* Execute tr with correct len.  */\t\\\ndiff --git a/sysdeps/s390/multiarch/gconv_simple.c b/sysdeps/s390/multiarch/gconv_simple.c\nindex a6548d6d41..35a5699404 100644\n--- a/sysdeps/s390/multiarch/gconv_simple.c\n+++ b/sysdeps/s390/multiarch/gconv_simple.c\n@@ -77,11 +77,6 @@\n # undef __gconv_transform_internal_ucs2reverse\n \n /* Now define the functions with vector support.  */\n-# if defined __s390x__\n-#  define CONVERT_32BIT_SIZE_T(REG)\n-# else\n-#  define CONVERT_32BIT_SIZE_T(REG) \"llgfr %\" #REG \",%\" #REG \"\\n\\t\"\n-# endif\n \n /* Convert from ISO 646-IRV to the internal (UCS4-like) format.  */\n # define DEFINE_INIT\t\t0\n@@ -125,8 +120,6 @@\n     size_t loop_count, tmp;\t\t\t\t\t\t\\\n     __asm__ volatile (\".machine push\\n\\t\"\t\t\t\t\\\n \t\t      \".machine \\\"z13\\\"\\n\\t\"\t\t\t\t\\\n-\t\t      \".machinemode \\\"zarch_nohighgprs\\\"\\n\\t\"\t\t\\\n-\t\t      CONVERT_32BIT_SIZE_T ([R_LEN])\t\t\t\\\n \t\t      \"    vrepib %%v30,0x7f\\n\\t\" /* For compare > 0x7f.  */ \\\n \t\t      \"    srlg %[R_LI],%[R_LEN],4\\n\\t\"\t\t\t\\\n \t\t      \"    vrepib %%v31,0x20\\n\\t\"\t\t\t\\\n@@ -257,8 +250,6 @@ ICONV_VX_IFUNC (__gconv_transform_ascii_internal)\n     size_t loop_count, tmp, tmp2;\t\t\t\t\t\\\n     __asm__ volatile (\".machine push\\n\\t\"\t\t\t\t\\\n \t\t      \".machine \\\"z13\\\"\\n\\t\"\t\t\t\t\\\n-\t\t      \".machinemode \\\"zarch_nohighgprs\\\"\\n\\t\"\t\t\\\n-\t\t      CONVERT_32BIT_SIZE_T ([R_LEN])\t\t\t\\\n \t\t      /* Setup to check for ch > 0x7f.  */\t\t\\\n \t\t      \"    vzero %%v21\\n\\t\"\t\t\t\t\\\n \t\t      \"    srlg %[R_LI],%[R_LEN],4\\n\\t\"\t\t\t\\\n@@ -414,8 +405,6 @@ ICONV_VX_NAME (internal_ucs4le_loop) (struct __gconv_step *step,\n   size_t loop_count;\n   __asm__ volatile (\".machine push\\n\\t\"\n \t\t    \".machine \\\"z13\\\"\\n\\t\"\n-\t\t    \".machinemode \\\"zarch_nohighgprs\\\"\\n\\t\"\n-\t\t    CONVERT_32BIT_SIZE_T ([R_LEN])\n \t\t    \"    bras %[R_LI],1f\\n\\t\"\n \t\t    /* Vector permute mask:  */\n \t\t    \"    .long 0x03020100,0x7060504,0x0B0A0908,0x0F0E0D0C\\n\\t\"\n@@ -517,8 +506,6 @@ ICONV_VX_NAME (ucs4_internal_loop) (struct __gconv_step *step,\n       len = MIN (inend - inptr, outend - outptr) / 4;\n       __asm__ volatile (\".machine push\\n\\t\"\n \t\t\t\".machine \\\"z13\\\"\\n\\t\"\n-\t\t\t\".machinemode \\\"zarch_nohighgprs\\\"\\n\\t\"\n-\t\t\tCONVERT_32BIT_SIZE_T ([R_LEN])\n \t\t\t/* Setup to check for ch > 0x7fffffff.  */\n \t\t\t\"    larl %[R_LI],9f\\n\\t\"\n \t\t\t\"    vlm %%v20,%%v21,0(%[R_LI])\\n\\t\"\n@@ -644,8 +631,6 @@ ICONV_VX_NAME (ucs4le_internal_loop) (struct __gconv_step *step,\n       len = MIN (inend - inptr, outend - outptr) / 4;\n       __asm__ volatile (\".machine push\\n\\t\"\n \t\t\t\".machine \\\"z13\\\"\\n\\t\"\n-\t\t\t\".machinemode \\\"zarch_nohighgprs\\\"\\n\\t\"\n-\t\t\tCONVERT_32BIT_SIZE_T ([R_LEN])\n \t\t\t/* Setup to check for ch > 0x7fffffff.  */\n \t\t\t\"    larl %[R_LI],9f\\n\\t\"\n \t\t\t\"    vlm %%v20,%%v22,0(%[R_LI])\\n\\t\"\n@@ -783,8 +768,6 @@ ICONV_VX_IFUNC (__gconv_transform_ucs4le_internal)\n     len = MIN ((inend - inptr) / 2, (outend - outptr) / 4);\t\t\\\n     __asm__ volatile (\".machine push\\n\\t\"\t\t\t\t\\\n \t\t      \".machine \\\"z13\\\"\\n\\t\"\t\t\t\t\\\n-\t\t      \".machinemode \\\"zarch_nohighgprs\\\"\\n\\t\"\t\t\\\n-\t\t      CONVERT_32BIT_SIZE_T ([R_LEN])\t\t\t\\\n \t\t      /* Setup to check for ch >= 0xd800 && ch < 0xe000.  */ \\\n \t\t      \"    larl %[R_TMP],9f\\n\\t\"\t\t\t\\\n \t\t      \"    vlm %%v20,%%v21,0(%[R_TMP])\\n\\t\"\t\t\\\n@@ -907,8 +890,6 @@ ICONV_VX_IFUNC (__gconv_transform_ucs2_internal)\n     len = MIN ((inend - inptr) / 2, (outend - outptr) / 4);\t\t\\\n     __asm__ volatile (\".machine push\\n\\t\"\t\t\t\t\\\n \t\t      \".machine \\\"z13\\\"\\n\\t\"\t\t\t\t\\\n-\t\t      \".machinemode \\\"zarch_nohighgprs\\\"\\n\\t\"\t\t\\\n-\t\t      CONVERT_32BIT_SIZE_T ([R_LEN])\t\t\t\\\n \t\t      /* Setup to check for ch >= 0xd800 && ch < 0xe000.  */ \\\n \t\t      \"    larl %[R_TMP],9f\\n\\t\"\t\t\t\\\n \t\t      \"    vlm %%v20,%%v22,0(%[R_TMP])\\n\\t\"\t\t\\\n@@ -1051,8 +1032,6 @@ ICONV_VX_IFUNC (__gconv_transform_ucs2reverse_internal)\n \t  loop_count = (outend - outptr) / 16;\t\t\t\t\\\n \t__asm__ volatile (\".machine push\\n\\t\"\t\t\t\t\\\n \t\t\t  \".machine \\\"z13\\\"\\n\\t\"\t\t\t\\\n-\t\t\t  \".machinemode \\\"zarch_nohighgprs\\\"\\n\\t\"\t\\\n-\t\t\t  CONVERT_32BIT_SIZE_T ([R_LI])\t\t\t\\\n \t\t\t  \"    larl %[R_I],3f\\n\\t\"\t\t\t\\\n \t\t\t  \"    vlm %%v20,%%v23,0(%[R_I])\\n\\t\"\t\t\\\n \t\t\t  \"0:  \\n\\t\"\t\t\t\t\t\\\n@@ -1183,8 +1162,6 @@ ICONV_VX_IFUNC (__gconv_transform_internal_ucs2)\n \t  loop_count = (outend - outptr) / 16;\t\t\t\t\\\n \t__asm__ volatile (\".machine push\\n\\t\"\t\t\t\t\\\n \t\t\t  \".machine \\\"z13\\\"\\n\\t\"\t\t\t\\\n-\t\t\t  \".machinemode \\\"zarch_nohighgprs\\\"\\n\\t\"\t\\\n-\t\t\t  CONVERT_32BIT_SIZE_T ([R_LI])\t\t\t\\\n \t\t\t  \"    larl %[R_I],3f\\n\\t\"\t\t\t\\\n \t\t\t  \"    vlm %%v20,%%v24,0(%[R_I])\\n\\t\"\t\t\\\n \t\t\t  \"0:  \\n\\t\"\t\t\t\t\t\\\ndiff --git a/sysdeps/s390/multiarch/ifunc-impl-list.c b/sysdeps/s390/multiarch/ifunc-impl-list.c\nindex e948b97530..6e9799891a 100644\n--- a/sysdeps/s390/multiarch/ifunc-impl-list.c\n+++ b/sysdeps/s390/multiarch/ifunc-impl-list.c\n@@ -1,4 +1,4 @@\n-/* Enumerate available IFUNC implementations of a function. s390/s390x version.\n+/* Enumerate available IFUNC implementations of a function. s390x version.\n    Copyright (C) 2015-2026 Free Software Foundation, Inc.\n    This file is part of the GNU C Library.\n \n@@ -94,8 +94,8 @@ __libc_ifunc_impl_list (const char *name, struct libc_ifunc_impl *array,\n \t      IFUNC_IMPL_ADD (array, i, memset,\n \t\t\t      S390_IS_Z10 (stfle_bits), MEMSET_Z10)\n # endif\n-# if HAVE_MEMSET_Z900_G5\n-\t      IFUNC_IMPL_ADD (array, i, memset, 1, MEMSET_Z900_G5)\n+# if HAVE_MEMSET_Z900\n+\t      IFUNC_IMPL_ADD (array, i, memset, 1, MEMSET_Z900)\n # endif\n \t      )\n #endif /* HAVE_MEMSET_IFUNC */\n@@ -110,8 +110,8 @@ __libc_ifunc_impl_list (const char *name, struct libc_ifunc_impl *array,\n \t      IFUNC_IMPL_ADD (array, i, memcmp,\n \t\t\t      S390_IS_Z10 (stfle_bits), MEMCMP_Z10)\n # endif\n-# if HAVE_MEMCMP_Z900_G5\n-\t      IFUNC_IMPL_ADD (array, i, memcmp, 1, MEMCMP_Z900_G5)\n+# if HAVE_MEMCMP_Z900\n+\t      IFUNC_IMPL_ADD (array, i, memcmp, 1, MEMCMP_Z900)\n # endif\n \t      )\n #endif /* HAVE_MEMCMP_IFUNC */\n@@ -126,8 +126,8 @@ __libc_ifunc_impl_list (const char *name, struct libc_ifunc_impl *array,\n \t      IFUNC_IMPL_ADD (array, i, memcpy,\n \t\t\t      S390_IS_Z10 (stfle_bits), MEMCPY_Z10)\n # endif\n-# if HAVE_MEMCPY_Z900_G5\n-\t      IFUNC_IMPL_ADD (array, i, memcpy, 1, MEMCPY_Z900_G5)\n+# if HAVE_MEMCPY_Z900\n+\t      IFUNC_IMPL_ADD (array, i, memcpy, 1, MEMCPY_Z900)\n # endif\n \t      )\n \n@@ -140,8 +140,8 @@ __libc_ifunc_impl_list (const char *name, struct libc_ifunc_impl *array,\n \t      IFUNC_IMPL_ADD (array, i, mempcpy,\n \t\t\t      S390_IS_Z10 (stfle_bits), MEMPCPY_Z10)\n # endif\n-# if HAVE_MEMCPY_Z900_G5\n-\t      IFUNC_IMPL_ADD (array, i, mempcpy, 1, MEMPCPY_Z900_G5)\n+# if HAVE_MEMCPY_Z900\n+\t      IFUNC_IMPL_ADD (array, i, mempcpy, 1, MEMPCPY_Z900)\n # endif\n \t      )\n #endif /* HAVE_MEMCPY_IFUNC  */\n@@ -226,8 +226,8 @@ __libc_ifunc_impl_list (const char *name, struct libc_ifunc_impl *array,\n \t\tIFUNC_IMPL_ADD (array, i, strcpy,\n \t\t\t\tdl_hwcap & HWCAP_S390_VX, STRCPY_Z13)\n # endif\n-# if HAVE_STRCPY_Z900_G5\n-\t\tIFUNC_IMPL_ADD (array, i, strcpy, 1, STRCPY_Z900_G5)\n+# if HAVE_STRCPY_Z900\n+\t\tIFUNC_IMPL_ADD (array, i, strcpy, 1, STRCPY_Z900)\n # endif\n \t\t)\n #endif /* HAVE_STRCPY_IFUNC  */\n@@ -250,8 +250,8 @@ __libc_ifunc_impl_list (const char *name, struct libc_ifunc_impl *array,\n \t\tIFUNC_IMPL_ADD (array, i, strncpy,\n \t\t\t\tdl_hwcap & HWCAP_S390_VX, STRNCPY_Z13)\n # endif\n-# if HAVE_STRNCPY_Z900_G5\n-\t\tIFUNC_IMPL_ADD (array, i, strncpy, 1, STRNCPY_Z900_G5)\n+# if HAVE_STRNCPY_Z900\n+\t\tIFUNC_IMPL_ADD (array, i, strncpy, 1, STRNCPY_Z900)\n # endif\n \t\t)\n #endif /* HAVE_STRNCPY_IFUNC  */\n@@ -298,8 +298,8 @@ __libc_ifunc_impl_list (const char *name, struct libc_ifunc_impl *array,\n \t\tIFUNC_IMPL_ADD (array, i, strcmp,\n \t\t\t\tdl_hwcap & HWCAP_S390_VX, STRCMP_Z13)\n # endif\n-# if HAVE_STRCMP_Z900_G5\n-\t\tIFUNC_IMPL_ADD (array, i, strcmp, 1, STRCMP_Z900_G5)\n+# if HAVE_STRCMP_Z900\n+\t\tIFUNC_IMPL_ADD (array, i, strcmp, 1, STRCMP_Z900)\n # endif\n \t\t)\n #endif /* HAVE_STRCMP_IFUNC  */\n@@ -394,8 +394,8 @@ __libc_ifunc_impl_list (const char *name, struct libc_ifunc_impl *array,\n \t\tIFUNC_IMPL_ADD (array, i, memchr,\n \t\t\t\tdl_hwcap & HWCAP_S390_VX, MEMCHR_Z13)\n # endif\n-# if HAVE_MEMCHR_Z900_G5\n-\t\tIFUNC_IMPL_ADD (array, i, memchr, 1, MEMCHR_Z900_G5)\n+# if HAVE_MEMCHR_Z900\n+\t\tIFUNC_IMPL_ADD (array, i, memchr, 1, MEMCHR_Z900)\n # endif\n \t\t)\n #endif /* HAVE_MEMCHR_IFUNC  */\ndiff --git a/sysdeps/s390/multiarch/ifunc-resolve.h b/sysdeps/s390/multiarch/ifunc-resolve.h\nindex c6cb8fa97c..a66669e1d7 100644\n--- a/sysdeps/s390/multiarch/ifunc-resolve.h\n+++ b/sysdeps/s390/multiarch/ifunc-resolve.h\n@@ -1,5 +1,5 @@\n /* IFUNC resolver function for CPU specific functions.\n-   32/64 bit S/390 version.\n+   64 bit S/390 version.\n    Copyright (C) 2015-2026 Free Software Foundation, Inc.\n    This file is part of the GNU C Library.\n \ndiff --git a/sysdeps/s390/multiarch/utf8-utf16-z9.c b/sysdeps/s390/multiarch/utf8-utf16-z9.c\nindex dbc2b5b976..2153813957 100644\n--- a/sysdeps/s390/multiarch/utf8-utf16-z9.c\n+++ b/sysdeps/s390/multiarch/utf8-utf16-z9.c\n@@ -34,9 +34,7 @@ strong_alias (SINGLE_NAME (TO_LOOP_DEFAULT), SINGLE_NAME (TO_LOOP))\n s390_libc_ifunc_expr (FROM_LOOP_DEFAULT, FROM_LOOP,\n \t\t      (HAVE_FROM_VX && (hwcap & HWCAP_S390_VX))\n \t\t      ? FROM_LOOP_VX\n-\t\t      : (HAVE_FROM_CU && (hwcap & HWCAP_S390_ZARCH\n-\t\t\t\t\t  && hwcap & HWCAP_S390_HIGH_GPRS\n-\t\t\t\t\t  && hwcap & HWCAP_S390_ETF3EH))\n+\t\t      : (HAVE_FROM_CU && (hwcap & HWCAP_S390_ETF3EH))\n \t\t\t? FROM_LOOP_CU\n \t\t\t: FROM_LOOP_DEFAULT);\n \ndiff --git a/sysdeps/s390/multiarch/utf8-utf32-z9.c b/sysdeps/s390/multiarch/utf8-utf32-z9.c\nindex 06d7e66f9e..94f0767832 100644\n--- a/sysdeps/s390/multiarch/utf8-utf32-z9.c\n+++ b/sysdeps/s390/multiarch/utf8-utf32-z9.c\n@@ -34,9 +34,7 @@ strong_alias (SINGLE_NAME (TO_LOOP_DEFAULT), SINGLE_NAME (TO_LOOP))\n s390_libc_ifunc_expr (FROM_LOOP_DEFAULT, FROM_LOOP,\n \t\t      (HAVE_FROM_VX && (hwcap & HWCAP_S390_VX))\n \t\t      ? FROM_LOOP_VX\n-\t\t      : (HAVE_FROM_CU && (hwcap & HWCAP_S390_ZARCH\n-\t\t\t\t\t  && hwcap & HWCAP_S390_HIGH_GPRS\n-\t\t\t\t\t  && hwcap & HWCAP_S390_ETF3EH))\n+\t\t      : (HAVE_FROM_CU && (hwcap & HWCAP_S390_ETF3EH))\n \t\t\t? FROM_LOOP_CU\n \t\t\t: FROM_LOOP_DEFAULT);\n \ndiff --git a/sysdeps/s390/nptl/bits/struct_mutex.h b/sysdeps/s390/nptl/bits/struct_mutex.h\nindex 571265267c..ff2d251986 100644\n--- a/sysdeps/s390/nptl/bits/struct_mutex.h\n+++ b/sysdeps/s390/nptl/bits/struct_mutex.h\n@@ -24,39 +24,17 @@ struct __pthread_mutex_s\n   int __lock;\n   unsigned int __count;\n   int __owner;\n-#if __WORDSIZE == 64\n   unsigned int __nusers;\n-#endif\n   /* KIND must stay at this position in the structure to maintain\n      binary compatibility with static initializers.  */\n   int __kind;\n-#if __WORDSIZE == 64\n   short __spins;\n   short __glibc_reserved;\n   __pthread_list_t __list;\n # define __PTHREAD_MUTEX_HAVE_PREV      1\n-#else\n-  unsigned int __nusers;\n-  __extension__ union\n-  {\n-    struct\n-    {\n-      short __data_spins;\n-      short __data_unused;\n-    } __data;\n-#  define __spins __data.__data_spins\n-    __pthread_slist_t __list;\n-  };\n-# define __PTHREAD_MUTEX_HAVE_PREV      0\n-#endif\n };\n \n-#if __WORDSIZE == 64\n-# define __PTHREAD_MUTEX_INITIALIZER(__kind) \\\n+#define __PTHREAD_MUTEX_INITIALIZER(__kind) \\\n   0, 0, 0, 0, __kind, 0, 0, { 0, 0 }\n-#else\n-# define __PTHREAD_MUTEX_INITIALIZER(__kind) \\\n-  0, 0, 0, __kind, 0, { { 0, 0 } }\n-#endif\n \n #endif\ndiff --git a/sysdeps/s390/nptl/bits/struct_rwlock.h b/sysdeps/s390/nptl/bits/struct_rwlock.h\nindex ee49a9632d..ed1235b061 100644\n--- a/sysdeps/s390/nptl/bits/struct_rwlock.h\n+++ b/sysdeps/s390/nptl/bits/struct_rwlock.h\n@@ -28,7 +28,6 @@ struct __pthread_rwlock_arch_t\n   unsigned int __writers_futex;\n   unsigned int __pad3;\n   unsigned int __pad4;\n-#if __WORDSIZE == 64\n   int __cur_writer;\n   int __shared;\n   unsigned long int __pad1;\n@@ -36,23 +35,9 @@ struct __pthread_rwlock_arch_t\n   /* FLAGS must stay at this position in the structure to maintain\n      binary compatibility.  */\n   unsigned int __flags;\n-# else\n-  unsigned char __pad1;\n-  unsigned char __pad2;\n-  unsigned char __shared;\n-  /* FLAGS must stay at this position in the structure to maintain\n-     binary compatibility.  */\n-  unsigned char __flags;\n-  int __cur_writer;\n-#endif\n };\n \n-#if __WORDSIZE == 64\n-# define __PTHREAD_RWLOCK_INITIALIZER(__flags) \\\n+#define __PTHREAD_RWLOCK_INITIALIZER(__flags) \\\n   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, __flags\n-#else\n-# define __PTHREAD_RWLOCK_INITIALIZER(__flags) \\\n-  0, 0, 0, 0, 0, 0, 0, 0, 0, __flags, 0\n-#endif\n \n #endif\ndiff --git a/sysdeps/s390/nptl/pthread-offsets.h b/sysdeps/s390/nptl/pthread-offsets.h\nindex 9e2112120b..f8e4469f7e 100644\n--- a/sysdeps/s390/nptl/pthread-offsets.h\n+++ b/sysdeps/s390/nptl/pthread-offsets.h\n@@ -1,13 +1,2 @@\n-#include <bits/wordsize.h>\n-\n-#if __WORDSIZE == 64\n-# define __PTHREAD_MUTEX_KIND_OFFSET     16\n-#else\n-# define __PTHREAD_MUTEX_KIND_OFFSET     12\n-#endif\n-\n-#if __WORDSIZE == 64\n-# define __PTHREAD_RWLOCK_FLAGS_OFFSET   48\n-#else\n-# define __PTHREAD_RWLOCK_FLAGS_OFFSET   27\n-#endif\n+#define __PTHREAD_MUTEX_KIND_OFFSET     16\n+#define __PTHREAD_RWLOCK_FLAGS_OFFSET   48\ndiff --git a/sysdeps/s390/nptl/tls.h b/sysdeps/s390/nptl/tls.h\nindex 9870e54327..de7e9c6482 100644\n--- a/sysdeps/s390/nptl/tls.h\n+++ b/sysdeps/s390/nptl/tls.h\n@@ -44,10 +44,6 @@ typedef struct\n   void *__private_ss;\n } tcbhead_t;\n \n-# ifndef __s390x__\n-#  define TLS_MULTIPLE_THREADS_IN_TCB 1\n-# endif\n-\n #else /* __ASSEMBLER__ */\n # include <tcb-offsets.h>\n #endif\ndiff --git a/sysdeps/s390/rawmemchr-vx.S b/sysdeps/s390/rawmemchr-vx.S\nindex e74c63f6e4..4bf4e4bdda 100644\n--- a/sysdeps/s390/rawmemchr-vx.S\n+++ b/sysdeps/s390/rawmemchr-vx.S\n@@ -1,4 +1,4 @@\n-/* Vector optimized 32/64 bit S/390 version of rawmemchr.\n+/* Vector optimized 64 bit S/390 version of rawmemchr.\n    Copyright (C) 2015-2026 Free Software Foundation, Inc.\n    This file is part of the GNU C Library.\n \n@@ -41,7 +41,6 @@\n */\n ENTRY(RAWMEMCHR_Z13)\n \t.machine \"z13\"\n-\t.machinemode \"zarch_nohighgprs\"\n \n \tvlbb\t%v16,0(%r2),6\t/* Load s until next 4k-byte boundary.  */\n \tlcbb\t%r1,0(%r2),6\t/* Get bytes to 4k-byte boundary or 16.  */\ndiff --git a/sysdeps/s390/s390-64/bits/wordsize.h b/sysdeps/s390/s390-64/bits/wordsize.h\nindex 00e88b0628..b263c3141b 100644\n--- a/sysdeps/s390/s390-64/bits/wordsize.h\n+++ b/sysdeps/s390/s390-64/bits/wordsize.h\n@@ -1,11 +1,4 @@\n /* Determine the wordsize from the preprocessor defines.  */\n \n-#if defined __s390x__\n-# define __WORDSIZE\t64\n-#else\n-# define __WORDSIZE\t32\n-# define __WORDSIZE32_SIZE_ULONG       1\n-# define __WORDSIZE32_PTRDIFF_LONG     0\n-#endif\n-\n-#define __WORDSIZE_TIME64_COMPAT32     0\n+#define __WORDSIZE\t\t\t64\n+#define __WORDSIZE_TIME64_COMPAT32\t0\ndiff --git a/sysdeps/s390/s390-64/stackguard-macros.h b/sysdeps/s390/s390-64/stackguard-macros.h\nindex 2c97d3824f..3671c7cd7a 100644\n--- a/sysdeps/s390/s390-64/stackguard-macros.h\n+++ b/sysdeps/s390/s390-64/stackguard-macros.h\n@@ -3,7 +3,7 @@\n #define STACK_CHK_GUARD \\\n   ({ uintptr_t x; __asm__ (\"ear %0,%%a0; sllg %0,%0,32; ear %0,%%a1; lg %0,0x28(%0)\" : \"=a\" (x)); x; })\n \n-/* On s390/s390x there is no unique pointer guard, instead we use the\n+/* On s390x there is no unique pointer guard, instead we use the\n    same value as the stack guard.  */\n #define POINTER_CHK_GUARD\t\t\t\t\t\\\n   ({\t\t\t\t\t\t\t\t\\\ndiff --git a/sysdeps/s390/s390-64/strncpy-z900.S b/sysdeps/s390/s390-64/strncpy-z900.S\nindex 579e121731..6d954cf402 100644\n--- a/sysdeps/s390/s390-64/strncpy-z900.S\n+++ b/sysdeps/s390/s390-64/strncpy-z900.S\n@@ -26,8 +26,8 @@\n #include \"sysdep.h\"\n #include \"asm-syntax.h\"\n \n-#if HAVE_STRNCPY_Z900_G5\n-ENTRY(STRNCPY_Z900_G5)\n+#if HAVE_STRNCPY_Z900\n+ENTRY(STRNCPY_Z900)\n \t.text\n \tstg   %r2,48(%r15)\t    # save dst pointer\n \tslgr  %r2,%r3\t\t    # %r3 points to src, %r2+%r3 to dst\n@@ -87,13 +87,13 @@ ENTRY(STRNCPY_Z900_G5)\n \tjo    .L13\n .Lexit: lg    %r2,48(%r15)\t    # return dst pointer\n \tbr    %r14\n-END(STRNCPY_Z900_G5)\n+END(STRNCPY_Z900)\n \n # if ! HAVE_STRNCPY_IFUNC\n-strong_alias (STRNCPY_Z900_G5, strncpy)\n+strong_alias (STRNCPY_Z900, strncpy)\n # endif\n \n # if defined SHARED && IS_IN (libc)\n-strong_alias (STRNCPY_Z900_G5, __GI_strncpy)\n+strong_alias (STRNCPY_Z900, __GI_strncpy)\n # endif\n #endif\ndiff --git a/sysdeps/s390/sotruss-lib.c b/sysdeps/s390/sotruss-lib.c\nindex 4b0194ab0a..ff6ebf7a43 100644\n--- a/sysdeps/s390/sotruss-lib.c\n+++ b/sysdeps/s390/sotruss-lib.c\n@@ -22,24 +22,12 @@\n \n #include <elf/sotruss-lib.c>\n \n-#if __ELF_NATIVE_CLASS == 32\n-# define la_s390_gnu_pltenter\tla_s390_32_gnu_pltenter\n-# define la_s390_gnu_pltexit\tla_s390_32_gnu_pltexit\n-# define La_s390_regs\t\tLa_s390_32_regs\n-# define La_s390_retval\t\tLa_s390_32_retval\n-#else\n-# define la_s390_gnu_pltenter\tla_s390_64_gnu_pltenter\n-# define la_s390_gnu_pltexit\tla_s390_64_gnu_pltexit\n-# define La_s390_regs\t\tLa_s390_64_regs\n-# define La_s390_retval\t\tLa_s390_64_retval\n-#endif\n-\n-ElfW(Addr)\n-la_s390_gnu_pltenter (ElfW(Sym) *sym,\n-\t\t      unsigned int ndx __attribute__ ((unused)),\n-\t\t      uintptr_t *refcook, uintptr_t *defcook,\n-\t\t      La_s390_regs *regs, unsigned int *flags,\n-\t\t      const char *symname, long int *framesizep)\n+Elf64_Addr\n+la_s390_64_gnu_pltenter (Elf64_Sym *sym,\n+\t\t\t unsigned int ndx __attribute__ ((unused)),\n+\t\t\t uintptr_t *refcook, uintptr_t *defcook,\n+\t\t\t La_s390_64_regs *regs, unsigned int *flags,\n+\t\t\t const char *symname, long int *framesizep)\n {\n   print_enter (refcook, defcook, symname,\n \t       regs->lr_r2, regs->lr_r3, regs->lr_r4, *flags);\n@@ -51,10 +39,11 @@ la_s390_gnu_pltenter (ElfW(Sym) *sym,\n }\n \n unsigned int\n-la_s390_gnu_pltexit (ElfW(Sym) *sym, unsigned int ndx, uintptr_t *refcook,\n-\t\t     uintptr_t *defcook,\n-\t\t     const struct La_s390_regs *inregs,\n-\t\t     struct La_s390_retval *outregs, const char *symname)\n+la_s390_64_gnu_pltexit (Elf64_Sym *sym, unsigned int ndx, uintptr_t *refcook,\n+\t\t\tuintptr_t *defcook,\n+\t\t\tconst struct La_s390_64_regs *inregs,\n+\t\t\tstruct La_s390_64_retval *outregs,\n+\t\t\tconst char *symname)\n {\n   print_exit (refcook, defcook, symname, outregs->lrv_r2);\n \ndiff --git a/sysdeps/s390/stpcpy-vx.S b/sysdeps/s390/stpcpy-vx.S\nindex 02c8e45617..8184fd3bc4 100644\n--- a/sysdeps/s390/stpcpy-vx.S\n+++ b/sysdeps/s390/stpcpy-vx.S\n@@ -1,4 +1,4 @@\n-/* Vector optimized 32/64 bit S/390 version of stpcpy.\n+/* Vector optimized 64 bit S/390 version of stpcpy.\n    Copyright (C) 2015-2026 Free Software Foundation, Inc.\n    This file is part of the GNU C Library.\n \n@@ -40,7 +40,6 @@\n */\n ENTRY(STPCPY_Z13)\n \t.machine \"z13\"\n-\t.machinemode \"zarch_nohighgprs\"\n \n \tvlbb\t%v16,0(%r3),6\t/* Load s until next 4k-byte boundary.  */\n \tlcbb\t%r1,0(%r3),6\t/* Get bytes to 4k-byte boundary or 16.  */\ndiff --git a/sysdeps/s390/stpncpy-vx.S b/sysdeps/s390/stpncpy-vx.S\nindex 739bf7ebce..46a82e71b0 100644\n--- a/sysdeps/s390/stpncpy-vx.S\n+++ b/sysdeps/s390/stpncpy-vx.S\n@@ -1,4 +1,4 @@\n-/* Vector optimized 32/64 bit S/390 version of stpncpy.\n+/* Vector optimized 64 bit S/390 version of stpncpy.\n    Copyright (C) 2015-2026 Free Software Foundation, Inc.\n    This file is part of the GNU C Library.\n \n@@ -42,11 +42,6 @@\n */\n ENTRY(STPNCPY_Z13)\n \t.machine \"z13\"\n-\t.machinemode \"zarch_nohighgprs\"\n-\n-# if !defined __s390x__\n-\tllgfr\t%r4,%r4\n-# endif /* !defined __s390x__ */\n \n \tclgfi\t%r4,0\n \tber\t%r14\t\t/* Nothing to do, if n == 0.  */\ndiff --git a/sysdeps/s390/strcat-vx.S b/sysdeps/s390/strcat-vx.S\nindex 434c78ca4a..0f36c8de8a 100644\n--- a/sysdeps/s390/strcat-vx.S\n+++ b/sysdeps/s390/strcat-vx.S\n@@ -1,4 +1,4 @@\n-/* Vector optimized 32/64 bit S/390 version of strcat.\n+/* Vector optimized 64 bit S/390 version of strcat.\n    Copyright (C) 2015-2026 Free Software Foundation, Inc.\n    This file is part of the GNU C Library.\n \n@@ -40,7 +40,6 @@\n */\n ENTRY(STRCAT_Z13)\n \t.machine \"z13\"\n-\t.machinemode \"zarch_nohighgprs\"\n \n \tlgr\t%r0,%r2\t\t/* Save destination pointer for return.  */\n \ndiff --git a/sysdeps/s390/strchr-vx.S b/sysdeps/s390/strchr-vx.S\nindex f263f51bb7..4544c85592 100644\n--- a/sysdeps/s390/strchr-vx.S\n+++ b/sysdeps/s390/strchr-vx.S\n@@ -1,4 +1,4 @@\n-/* Vector optimized 32/64 bit S/390 version of strchr.\n+/* Vector optimized 64 bit S/390 version of strchr.\n    Copyright (C) 2015-2026 Free Software Foundation, Inc.\n    This file is part of the GNU C Library.\n \n@@ -40,7 +40,6 @@\n */\n ENTRY(STRCHR_Z13)\n \t.machine \"z13\"\n-\t.machinemode \"zarch_nohighgprs\"\n \n \tvlbb\t%v16,0(%r2),6\t/* Load s until next 4k-byte boundary.  */\n \tlcbb\t%r1,0(%r2),6\t/* Get bytes to 4k-byte boundary or 16.  */\ndiff --git a/sysdeps/s390/strchrnul-vx.S b/sysdeps/s390/strchrnul-vx.S\nindex 4a648190a5..485be32b04 100644\n--- a/sysdeps/s390/strchrnul-vx.S\n+++ b/sysdeps/s390/strchrnul-vx.S\n@@ -1,4 +1,4 @@\n-/* Vector optimized 32/64 bit S/390 version of strchrnul.\n+/* Vector optimized 64 bit S/390 version of strchrnul.\n    Copyright (C) 2015-2026 Free Software Foundation, Inc.\n    This file is part of the GNU C Library.\n \n@@ -39,7 +39,6 @@\n */\n ENTRY(STRCHRNUL_Z13)\n \t.machine \"z13\"\n-\t.machinemode \"zarch_nohighgprs\"\n \n \tvlbb\t%v16,0(%r2),6\t/* Load s until next 4k-byte boundary.  */\n \tlcbb\t%r1,0(%r2),6\t/* Get bytes to 4k-byte boundary or 16.  */\ndiff --git a/sysdeps/s390/strcmp-vx.S b/sysdeps/s390/strcmp-vx.S\nindex fda693002d..2fe013cb82 100644\n--- a/sysdeps/s390/strcmp-vx.S\n+++ b/sysdeps/s390/strcmp-vx.S\n@@ -1,4 +1,4 @@\n-/* Vector optimized 32/64 bit S/390 version of strcmp.\n+/* Vector optimized 64 bit S/390 version of strcmp.\n    Copyright (C) 2015-2026 Free Software Foundation, Inc.\n    This file is part of the GNU C Library.\n \n@@ -39,7 +39,6 @@\n */\n ENTRY(STRCMP_Z13)\n \t.machine \"z13\"\n-\t.machinemode \"zarch_nohighgprs\"\n \n \tlghi\t%r5,0\t\t/* current_len = 0.  */\n \n@@ -113,7 +112,7 @@ END(STRCMP_Z13)\n strong_alias (STRCMP_Z13, strcmp)\n # endif\n \n-# if ! HAVE_STRCMP_Z900_G5 && defined SHARED && IS_IN (libc)\n+# if ! HAVE_STRCMP_Z900 && defined SHARED && IS_IN (libc)\n strong_alias (STRCMP_Z13, __GI_strcmp)\n # endif\n #endif\ndiff --git a/sysdeps/s390/strcmp-z900.S b/sysdeps/s390/strcmp-z900.S\nindex 2404cdc3c0..07ad1fbdf5 100644\n--- a/sysdeps/s390/strcmp-z900.S\n+++ b/sysdeps/s390/strcmp-z900.S\n@@ -24,35 +24,27 @@\n #include \"sysdep.h\"\n #include \"asm-syntax.h\"\n \n-#if HAVE_STRCMP_Z900_G5\n-# if defined __s390x__\n-#  define SLGR\tslgr\n-#  define LGHI\tlghi\n-# else\n-#  define SLGR\tslr\n-#  define LGHI\tlhi\n-# endif /* ! defined __s390x__  */\n-\n+#if HAVE_STRCMP_Z900\n \t.text\n-ENTRY(STRCMP_Z900_G5)\n-\tSLGR   %r0,%r0\n+ENTRY(STRCMP_Z900)\n+\tslgr   %r0,%r0\n 0:\tclst  %r2,%r3\n \tjo    0b\n \tjp    1f\n \tjm    2f\n-\tSLGR  %r2,%r2\n+\tslgr  %r2,%r2\n \tbr    %r14\n-1:\tLGHI  %r2,1\n+1:\tlghi  %r2,1\n \tbr    %r14\n-2:\tLGHI  %r2,-1\n+2:\tlghi  %r2,-1\n \tbr    %r14\n-END(STRCMP_Z900_G5)\n+END(STRCMP_Z900)\n \n # if ! HAVE_STRCMP_IFUNC\n-strong_alias (STRCMP_Z900_G5, strcmp)\n+strong_alias (STRCMP_Z900, strcmp)\n # endif\n \n # if defined SHARED && IS_IN (libc)\n-strong_alias (STRCMP_Z900_G5, __GI_strcmp)\n+strong_alias (STRCMP_Z900, __GI_strcmp)\n # endif\n #endif\ndiff --git a/sysdeps/s390/strcmp.c b/sysdeps/s390/strcmp.c\nindex 2dbffb13c9..9ed3abee19 100644\n--- a/sysdeps/s390/strcmp.c\n+++ b/sysdeps/s390/strcmp.c\n@@ -26,8 +26,8 @@\n # include <ifunc-resolve.h>\n # undef strcmp\n \n-# if HAVE_STRCMP_Z900_G5\n-extern __typeof (__redirect_strcmp) STRCMP_Z900_G5 attribute_hidden;\n+# if HAVE_STRCMP_Z900\n+extern __typeof (__redirect_strcmp) STRCMP_Z900 attribute_hidden;\n # endif\n \n # if HAVE_STRCMP_Z13\ndiff --git a/sysdeps/s390/strcpy-vx.S b/sysdeps/s390/strcpy-vx.S\nindex 2ddc96ed0b..7cc6dd8f68 100644\n--- a/sysdeps/s390/strcpy-vx.S\n+++ b/sysdeps/s390/strcpy-vx.S\n@@ -1,4 +1,4 @@\n-/* Vector optimized 32/64 bit S/390 version of strcpy.\n+/* Vector optimized 64 bit S/390 version of strcpy.\n    Copyright (C) 2015-2026 Free Software Foundation, Inc.\n    This file is part of the GNU C Library.\n \n@@ -38,7 +38,6 @@\n */\n ENTRY(STRCPY_Z13)\n \t.machine \"z13\"\n-\t.machinemode \"zarch_nohighgprs\"\n \n \tvlbb\t%v16,0(%r3),6\t/* Load s until next 4k-byte boundary.  */\n \tlcbb\t%r1,0(%r3),6\t/* Get bytes to 4k-byte boundary or 16.  */\n@@ -103,7 +102,7 @@ END(STRCPY_Z13)\n strong_alias (STRCPY_Z13, strcpy)\n # endif\n \n-# if ! HAVE_STRCPY_Z900_G5 && defined SHARED && IS_IN (libc)\n+# if ! HAVE_STRCPY_Z900 && defined SHARED && IS_IN (libc)\n strong_alias (STRCPY_Z13, __GI_strcpy)\n # endif\n #endif\ndiff --git a/sysdeps/s390/strcpy-z900.S b/sysdeps/s390/strcpy-z900.S\nindex 39f7238152..a34cb56b9a 100644\n--- a/sysdeps/s390/strcpy-z900.S\n+++ b/sysdeps/s390/strcpy-z900.S\n@@ -1,4 +1,4 @@\n-/* strcpy - copy a string from source to destination.  64/31 bit S/390 version.\n+/* strcpy - copy a string from source to destination.  64 bit S/390 version.\n    Copyright (C) 2001-2026 Free Software Foundation, Inc.\n    This file is part of the GNU C Library.\n \n@@ -24,32 +24,21 @@\n #include \"sysdep.h\"\n #include \"asm-syntax.h\"\n \n-#if HAVE_STRCPY_Z900_G5\n-# if defined __s390x__\n-#  define SLGR\tslgr\n-#  define LGR\tlgr\n-# else\n-#  define SLGR\tslr\n-#  define LGR\tlr\n-# endif /* ! defined __s390x__  */\n-\n-        .text\n-ENTRY(STRCPY_Z900_G5)\n-\tSLGR  %r0,%r0\n-\tLGR   %r1,%r2\n+#if HAVE_STRCPY_Z900\n+\t.text\n+ENTRY(STRCPY_Z900)\n+\tslgr  %r0,%r0\n+\tlgr   %r1,%r2\n 0:\tmvst  %r1,%r3\n \tjo    0b\n \tbr    %r14\n-END(STRCPY_Z900_G5)\n-\n-# undef SLGR\n-# undef LGR\n+END(STRCPY_Z900)\n \n # if ! HAVE_STRCPY_IFUNC\n-strong_alias (STRCPY_Z900_G5, strcpy)\n+strong_alias (STRCPY_Z900, strcpy)\n # endif\n \n # if defined SHARED && IS_IN (libc)\n-strong_alias (STRCPY_Z900_G5, __GI_strcpy)\n+strong_alias (STRCPY_Z900, __GI_strcpy)\n # endif\n #endif\ndiff --git a/sysdeps/s390/strcpy.c b/sysdeps/s390/strcpy.c\nindex a307a5f370..daede82f3f 100644\n--- a/sysdeps/s390/strcpy.c\n+++ b/sysdeps/s390/strcpy.c\n@@ -24,8 +24,8 @@\n # undef strcpy\n # include <ifunc-resolve.h>\n \n-# if HAVE_STRCPY_Z900_G5\n-extern __typeof (__redirect_strcpy) STRCPY_Z900_G5 attribute_hidden;\n+# if HAVE_STRCPY_Z900\n+extern __typeof (__redirect_strcpy) STRCPY_Z900 attribute_hidden;\n # endif\n \n # if HAVE_STRCPY_Z13\ndiff --git a/sysdeps/s390/strcspn-vx.S b/sysdeps/s390/strcspn-vx.S\nindex 7a825131dd..e28f738d6c 100644\n--- a/sysdeps/s390/strcspn-vx.S\n+++ b/sysdeps/s390/strcspn-vx.S\n@@ -1,4 +1,4 @@\n-/* Vector optimized 32/64 bit S/390 version of strcspn.\n+/* Vector optimized 64 bit S/390 version of strcspn.\n    Copyright (C) 2015-2026 Free Software Foundation, Inc.\n    This file is part of the GNU C Library.\n \n@@ -62,7 +62,6 @@\n */\n ENTRY(STRCSPN_Z13)\n \t.machine \"z13\"\n-\t.machinemode \"zarch_nohighgprs\"\n \n \t/*\n \t  Check if reject-string fits in one vreg:\ndiff --git a/sysdeps/s390/strlen-vx.S b/sysdeps/s390/strlen-vx.S\nindex e4bbcd4500..99f71f1e22 100644\n--- a/sysdeps/s390/strlen-vx.S\n+++ b/sysdeps/s390/strlen-vx.S\n@@ -1,4 +1,4 @@\n-/* Vector optimized 32/64 bit S/390 version of strlen.\n+/* Vector optimized 64 bit S/390 version of strlen.\n    Copyright (C) 2015-2026 Free Software Foundation, Inc.\n    This file is part of the GNU C Library.\n \n@@ -37,7 +37,6 @@\n */\n ENTRY(STRLEN_Z13)\n \t.machine \"z13\"\n-\t.machinemode \"zarch_nohighgprs\"\n \n \tvlbb\t%v16,0(%r2),6\t/* Load s until next 4k-byte boundary.  */\n \tlcbb\t%r1,0(%r2),6\t/* Get bytes to 4k-byte boundary or 16.  */\ndiff --git a/sysdeps/s390/strncat-vx.S b/sysdeps/s390/strncat-vx.S\nindex 02b2022cbc..53e80a49c1 100644\n--- a/sysdeps/s390/strncat-vx.S\n+++ b/sysdeps/s390/strncat-vx.S\n@@ -1,4 +1,4 @@\n-/* Vector optimized 32/64 bit S/390 version of strncat.\n+/* Vector optimized 64 bit S/390 version of strncat.\n    Copyright (C) 2015-2026 Free Software Foundation, Inc.\n    This file is part of the GNU C Library.\n \n@@ -43,11 +43,6 @@\n */\n ENTRY(STRNCAT_Z13)\n \t.machine \"z13\"\n-\t.machinemode \"zarch_nohighgprs\"\n-\n-# if !defined __s390x__\n-\tllgfr\t%r4,%r4\n-# endif /* !defined __s390x__ */\n \n \tclgfi\t%r4,0\n \tber\t%r14\t\t/* Nothing to do, if n == 0.  */\ndiff --git a/sysdeps/s390/strncmp-vx.S b/sysdeps/s390/strncmp-vx.S\nindex 332dd4593e..a334bdfca1 100644\n--- a/sysdeps/s390/strncmp-vx.S\n+++ b/sysdeps/s390/strncmp-vx.S\n@@ -1,4 +1,4 @@\n-/* Vector optimized 32/64 bit S/390 version of strncmp.\n+/* Vector optimized 64 bit S/390 version of strncmp.\n    Copyright (C) 2015-2026 Free Software Foundation, Inc.\n    This file is part of the GNU C Library.\n \n@@ -41,11 +41,6 @@\n */\n ENTRY(STRNCMP_Z13)\n \t.machine \"z13\"\n-\t.machinemode \"zarch_nohighgprs\"\n-\n-# if !defined __s390x__\n-\tllgfr\t%r4,%r4\n-# endif /* !defined __s390x__ */\n \n \tclgije\t%r4,0,.Lend_equal /* Nothing to do if n == 0,  */\n \tlghi\t%r5,0\t\t/* current_len = 0.  */\ndiff --git a/sysdeps/s390/strncpy-vx.S b/sysdeps/s390/strncpy-vx.S\nindex 76155bf8c4..9d65d4ebe7 100644\n--- a/sysdeps/s390/strncpy-vx.S\n+++ b/sysdeps/s390/strncpy-vx.S\n@@ -1,4 +1,4 @@\n-/* Vector optimized 32/64 bit S/390 version of strncpy.\n+/* Vector optimized 64 bit S/390 version of strncpy.\n    Copyright (C) 2015-2026 Free Software Foundation, Inc.\n    This file is part of the GNU C Library.\n \n@@ -42,11 +42,6 @@\n */\n ENTRY(STRNCPY_Z13)\n \t.machine \"z13\"\n-\t.machinemode \"zarch_nohighgprs\"\n-\n-# if !defined __s390x__\n-\tllgfr\t%r4,%r4\n-# endif /* !defined __s390x__ */\n \n \tclgfi\t%r4,0\n \tber\t%r14\t\t/* Nothing to do, if n == 0.  */\n@@ -202,7 +197,7 @@ END(STRNCPY_Z13)\n strong_alias (STRNCPY_Z13, strncpy)\n # endif\n \n-# if ! HAVE_STRNCPY_Z900_G5 && defined SHARED && IS_IN (libc)\n+# if ! HAVE_STRNCPY_Z900 && defined SHARED && IS_IN (libc)\n strong_alias (STRNCPY_Z13, __GI_strncpy)\n # endif\n #endif\ndiff --git a/sysdeps/s390/strncpy.c b/sysdeps/s390/strncpy.c\nindex b7ace482a5..986f00a0f4 100644\n--- a/sysdeps/s390/strncpy.c\n+++ b/sysdeps/s390/strncpy.c\n@@ -26,8 +26,8 @@\n # undef strncpy\n # include <ifunc-resolve.h>\n \n-# if HAVE_STRNCPY_Z900_G5\n-extern __typeof (__redirect_strncpy) STRNCPY_Z900_G5 attribute_hidden;\n+# if HAVE_STRNCPY_Z900\n+extern __typeof (__redirect_strncpy) STRNCPY_Z900 attribute_hidden;\n # endif\n \n # if HAVE_STRNCPY_Z13\ndiff --git a/sysdeps/s390/strnlen-vx.S b/sysdeps/s390/strnlen-vx.S\nindex db1bda229f..29e3353d5a 100644\n--- a/sysdeps/s390/strnlen-vx.S\n+++ b/sysdeps/s390/strnlen-vx.S\n@@ -1,4 +1,4 @@\n-/* Vector optimized 32/64 bit S/390 version of strnlen.\n+/* Vector optimized 64 bit S/390 version of strnlen.\n    Copyright (C) 2015-2026 Free Software Foundation, Inc.\n    This file is part of the GNU C Library.\n \n@@ -38,11 +38,6 @@\n */\n ENTRY(STRNLEN_Z13)\n \t.machine \"z13\"\n-\t.machinemode \"zarch_nohighgprs\"\n-\n-# if !defined __s390x__\n-\tllgfr\t%r3,%r3\n-# endif /* !defined __s390x__ */\n \n \tclgfi\t%r3,0\t\t/* if maxlen == 0, return 0.  */\n \tlocgre\t%r2,%r3\ndiff --git a/sysdeps/s390/strpbrk-vx.S b/sysdeps/s390/strpbrk-vx.S\nindex 8fb6963be2..6bf1213418 100644\n--- a/sysdeps/s390/strpbrk-vx.S\n+++ b/sysdeps/s390/strpbrk-vx.S\n@@ -1,4 +1,4 @@\n-/* Vector optimized 32/64 bit S/390 version of strpbrk.\n+/* Vector optimized 64 bit S/390 version of strpbrk.\n    Copyright (C) 2015-2026 Free Software Foundation, Inc.\n    This file is part of the GNU C Library.\n \n@@ -63,7 +63,6 @@\n */\n ENTRY(STRPBRK_Z13)\n \t.machine \"z13\"\n-\t.machinemode \"zarch_nohighgprs\"\n \n \t/*\n \t  Check if accept-string fits in one vreg:\ndiff --git a/sysdeps/s390/strrchr-vx.S b/sysdeps/s390/strrchr-vx.S\nindex ed2342c9e3..219c6d59ce 100644\n--- a/sysdeps/s390/strrchr-vx.S\n+++ b/sysdeps/s390/strrchr-vx.S\n@@ -1,4 +1,4 @@\n-/* Vector optimized 32/64 bit S/390 version of strrchr.\n+/* Vector optimized 64 bit S/390 version of strrchr.\n    Copyright (C) 2015-2026 Free Software Foundation, Inc.\n    This file is part of the GNU C Library.\n \n@@ -43,7 +43,6 @@\n */\n ENTRY(STRRCHR_Z13)\n \t.machine \"z13\"\n-\t.machinemode \"zarch_nohighgprs\"\n \n \tvlbb\t%v16,0(%r2),6\t/* Load s until next 4k-byte boundary.  */\n \tlcbb\t%r0,0(%r2),6\t/* Get bytes to 4k-byte boundary or 16.  */\ndiff --git a/sysdeps/s390/strspn-vx.S b/sysdeps/s390/strspn-vx.S\nindex aa985de110..67de888395 100644\n--- a/sysdeps/s390/strspn-vx.S\n+++ b/sysdeps/s390/strspn-vx.S\n@@ -1,4 +1,4 @@\n-/* Vector optimized 32/64 bit S/390 version of strspn.\n+/* Vector optimized 64 bit S/390 version of strspn.\n    Copyright (C) 2015-2026 Free Software Foundation, Inc.\n    This file is part of the GNU C Library.\n \n@@ -61,7 +61,6 @@\n */\n ENTRY(STRSPN_Z13)\n \t.machine \"z13\"\n-\t.machinemode \"zarch_nohighgprs\"\n \n \t/*\n \t  Check if accept-string fits in one vreg:\ndiff --git a/sysdeps/s390/strstr-arch13.S b/sysdeps/s390/strstr-arch13.S\nindex 10875acad6..acf47928ba 100644\n--- a/sysdeps/s390/strstr-arch13.S\n+++ b/sysdeps/s390/strstr-arch13.S\n@@ -1,4 +1,4 @@\n-/* Vector optimized 32/64 bit S/390 version of strstr.\n+/* Vector optimized 64 bit S/390 version of strstr.\n    Copyright (C) 2019-2026 Free Software Foundation, Inc.\n    This file is part of the GNU C Library.\n \n@@ -26,7 +26,6 @@\n    Locate a substring.  */\n ENTRY(STRSTR_ARCH13)\n \t.machine \"arch13\"\n-\t.machinemode \"zarch_nohighgprs\"\n \tlcbb\t%r1,0(%r3),6\n \tjo\t.Lneedle_on_bb\t/* Needle on block-boundary?  */\n \tvl\t%v18,0(%r3),6\t/* Load needle.  */\ndiff --git a/sysdeps/s390/tst-dl-runtime-mod.S b/sysdeps/s390/tst-dl-runtime-mod.S\nindex 6090d21a97..58feb14450 100644\n--- a/sysdeps/s390/tst-dl-runtime-mod.S\n+++ b/sysdeps/s390/tst-dl-runtime-mod.S\n@@ -20,11 +20,7 @@\n \t.type\tr0x2, @function\n r0x2:\n \t.cfi_startproc\n-#if defined (__s390x__)\n \tagr %r0,%r0\n-#else\n-\tar %r0,%r0\n-#endif\n \tbr %r14\n \t.cfi_endproc\n \t.size\tr0x2, .-r0x2\ndiff --git a/sysdeps/s390/tst-dl-runtime.c b/sysdeps/s390/tst-dl-runtime.c\nindex 3b2fc3093e..49087ef5e0 100644\n--- a/sysdeps/s390/tst-dl-runtime.c\n+++ b/sysdeps/s390/tst-dl-runtime.c\n@@ -22,11 +22,7 @@\n #include <stdlib.h>\n #include <unistd.h>\n \n-#if defined (__s390x__)\n static const unsigned long magic_value = 0x0011223344556677UL;\n-#else\n-static const unsigned long magic_value = 0x00112233;\n-#endif\n \n unsigned long r0x2_trampoline (unsigned long);\n \n@@ -35,7 +31,6 @@ unsigned long r0x2_trampoline (unsigned long);\n    _dl_runtime_resolve and _dl_runtime_profile.  */\n asm (\"    .type r0x2_trampoline, @function\\n\"\n      \"r0x2_trampoline:\\n\"\n-#if defined (__s390x__)\n      \"    lgr %r0,%r2\\n\"\n      \"    stg %r14,112(%r15)\\n\"\n      \"    aghi %r15,-160\\n\"\n@@ -44,28 +39,6 @@ asm (\"    .type r0x2_trampoline, @function\\n\"\n      \"    lg %r14,112(%r15)\\n\"\n      \"    lgr %r2,%r0\\n\"\n      \"    br %r14\\n\"\n-#elif defined (__zarch__)\n-     \"    lr %r0,%r2\\n\"\n-     \"    st %r14,56(%r15)\\n\"\n-     \"    ahi %r15,-96\\n\"\n-     \"    brasl %r14,r0x2@plt\\n\"\n-     \"    ahi %r15,96\\n\"\n-     \"    l %r14,56(%r15)\\n\"\n-     \"    lr %r2,%r0\\n\"\n-     \"    br %r14\\n\"\n-#else\n-     \"    lr %r0,%r2\\n\"\n-     \"    st %r14,56(%r15)\\n\"\n-     \"    ahi %r15,-96\\n\"\n-     \"    balr %r14,0\\n\"\n-     \"    l %r14,1f-.(%r14)\\n\"\n-     \"    basr %r14,%r14\\n\"\n-     \"    ahi %r15,96\\n\"\n-     \"    l %r14,56(%r15)\\n\"\n-     \"    lr %r2,%r0\\n\"\n-     \"    br %r14\\n\"\n-     \"1: .long r0x2\\n\"\n-#endif\n      );\n \n static int\ndiff --git a/sysdeps/s390/utf16-utf32-z9.c b/sysdeps/s390/utf16-utf32-z9.c\nindex ceba2fad5e..68d256a7b2 100644\n--- a/sysdeps/s390/utf16-utf32-z9.c\n+++ b/sysdeps/s390/utf16-utf32-z9.c\n@@ -49,12 +49,6 @@\n # define ASM_CLOBBER_VR(NR)\n #endif\n \n-#if defined __s390x__\n-# define CONVERT_32BIT_SIZE_T(REG)\n-#else\n-# define CONVERT_32BIT_SIZE_T(REG) \"llgfr %\" #REG \",%\" #REG \"\\n\\t\"\n-#endif\n-\n /* UTF-32 big endian byte order mark.  */\n #define BOM_UTF32               0x0000feffu\n \n@@ -256,12 +250,9 @@ gconv_end (struct __gconv_step *data)\n     unsigned long tmp, tmp2, tmp3;\t\t\t\t\t\\\n     asm volatile (\".machine push\\n\\t\"\t\t\t\t\t\\\n \t\t  \".machine \\\"z13\\\"\\n\\t\"\t\t\t\t\\\n-\t\t  \".machinemode \\\"zarch_nohighgprs\\\"\\n\\t\"\t\t\\\n \t\t  /* Setup to check for surrogates.  */\t\t\t\\\n \t\t  \"    larl %[R_TMP],9f\\n\\t\"\t\t\t\t\\\n \t\t  \"    vlm %%v30,%%v31,0(%[R_TMP])\\n\\t\"\t\t\t\\\n-\t\t  CONVERT_32BIT_SIZE_T ([R_INLEN])\t\t\t\\\n-\t\t  CONVERT_32BIT_SIZE_T ([R_OUTLEN])\t\t\t\\\n \t\t  /* Loop which handles UTF-16 chars <0xd800, >0xdfff.  */ \\\n \t\t  \"0:  clgijl %[R_INLEN],16,2f\\n\\t\"\t\t\t\\\n \t\t  \"    clgijl %[R_OUTLEN],32,2f\\n\\t\"\t\t\t\\\n@@ -402,12 +393,9 @@ gconv_end (struct __gconv_step *data)\n     unsigned long tmp, tmp2, tmp3;\t\t\t\t\t\\\n     asm volatile (\".machine push\\n\\t\"\t\t\t\t\t\\\n \t\t  \".machine \\\"z13\\\"\\n\\t\"\t\t\t\t\\\n-\t\t  \".machinemode \\\"zarch_nohighgprs\\\"\\n\\t\"\t\t\\\n \t\t  /* Setup to check for surrogates.  */\t\t\t\\\n \t\t  \"    larl %[R_TMP],9f\\n\\t\"\t\t\t\t\\\n \t\t  \"    vlm %%v30,%%v31,0(%[R_TMP])\\n\\t\"\t\t\t\\\n-\t\t  CONVERT_32BIT_SIZE_T ([R_INLEN])\t\t\t\\\n-\t\t  CONVERT_32BIT_SIZE_T ([R_OUTLEN])\t\t\t\\\n \t\t  /* Loop which handles UTF-16 chars <0xd800, >0xdfff.  */ \\\n \t\t  \"0:  clgijl %[R_INLEN],16,20f\\n\\t\"\t\t\t\\\n \t\t  \"    clgijl %[R_OUTLEN],32,20f\\n\\t\"\t\t\t\\\n@@ -572,12 +560,9 @@ gconv_end (struct __gconv_step *data)\n     unsigned long tmp, tmp2, tmp3;\t\t\t\t\t\\\n     asm volatile (\".machine push\\n\\t\"\t\t\t\t\t\\\n \t\t  \".machine \\\"z13\\\"\\n\\t\"\t\t\t\t\\\n-\t\t  \".machinemode \\\"zarch_nohighgprs\\\"\\n\\t\"\t\t\\\n \t\t  /* Setup to check for surrogates.  */\t\t\t\\\n \t\t  \"    larl %[R_TMP],9f\\n\\t\"\t\t\t\t\\\n \t\t  \"    vlm %%v30,%%v31,0(%[R_TMP])\\n\\t\"\t\t\t\\\n-\t\t  CONVERT_32BIT_SIZE_T ([R_INLEN])\t\t\t\\\n-\t\t  CONVERT_32BIT_SIZE_T ([R_OUTLEN])\t\t\t\\\n \t\t  /* Loop which handles UTF-32 chars\t\t\t\\\n \t\t     ch < 0xd800 || (ch > 0xdfff && ch < 0x10000).  */\t\\\n \t\t  \"0:  clgijl %[R_INLEN],32,2f\\n\\t\"\t\t\t\\\n@@ -712,12 +697,9 @@ gconv_end (struct __gconv_step *data)\n     unsigned long tmp, tmp2, tmp3;\t\t\t\t\t\\\n     asm volatile (\".machine push\\n\\t\"\t\t\t\t\t\\\n \t\t  \".machine \\\"z13\\\"\\n\\t\"\t\t\t\t\\\n-\t\t  \".machinemode \\\"zarch_nohighgprs\\\"\\n\\t\"\t\t\\\n \t\t  /* Setup to check for surrogates.  */\t\t\t\\\n \t\t  \"    larl %[R_TMP],9f\\n\\t\"\t\t\t\t\\\n \t\t  \"    vlm %%v30,%%v31,0(%[R_TMP])\\n\\t\"\t\t\t\\\n-\t\t  CONVERT_32BIT_SIZE_T ([R_INLEN])\t\t\t\\\n-\t\t  CONVERT_32BIT_SIZE_T ([R_OUTLEN])\t\t\t\\\n \t\t  /* Loop which handles UTF-32 chars\t\t\t\\\n \t\t     ch < 0xd800 || (ch > 0xdfff && ch < 0x10000).  */\t\\\n \t\t  \"0:  clgijl %[R_INLEN],32,20f\\n\\t\"\t\t\t\\\ndiff --git a/sysdeps/s390/utf8-utf16-z9.c b/sysdeps/s390/utf8-utf16-z9.c\nindex 1c43f5b221..1bc52e5833 100644\n--- a/sysdeps/s390/utf8-utf16-z9.c\n+++ b/sysdeps/s390/utf8-utf16-z9.c\n@@ -59,12 +59,6 @@\n # define ASM_CLOBBER_VR(NR)\n #endif\n \n-#if defined __s390x__\n-# define CONVERT_32BIT_SIZE_T(REG)\n-#else\n-# define CONVERT_32BIT_SIZE_T(REG) \"llgfr %\" #REG \",%\" #REG \"\\n\\t\"\n-#endif\n-\n /* Defines for skeleton.c.  */\n #define DEFINE_INIT\t\t0\n #define DEFINE_FINI\t\t0\n@@ -176,7 +170,6 @@ gconv_end (struct __gconv_step *data)\n \t\t\t\t\t\t\t\t\t\\\n     __asm__ __volatile__ (\".machine push       \\n\\t\"\t\t\t\\\n \t\t\t  \".machine \\\"z9-109\\\" \\n\\t\"\t\t\t\\\n-\t\t\t  \".machinemode \\\"zarch_nohighgprs\\\"\\n\\t\"\t\\\n \t\t\t  \"0: \" INSTRUCTION \"  \\n\\t\"\t\t\t\\\n \t\t\t  \".machine pop        \\n\\t\"\t\t\t\\\n \t\t\t  \"   jo     0b        \\n\\t\"\t\t\t\\\n@@ -247,11 +240,8 @@ gconv_end (struct __gconv_step *data)\n     unsigned long tmp, tmp2, tmp3;\t\t\t\t\t\\\n     asm volatile (\".machine push\\n\\t\"\t\t\t\t\t\\\n \t\t  \".machine \\\"z13\\\"\\n\\t\"\t\t\t\t\\\n-\t\t  \".machinemode \\\"zarch_nohighgprs\\\"\\n\\t\"\t\t\\\n \t\t  \"    vrepib %%v30,0x7f\\n\\t\" /* For compare > 0x7f.  */ \\\n \t\t  \"    vrepib %%v31,0x20\\n\\t\"\t\t\t\t\\\n-\t\t  CONVERT_32BIT_SIZE_T ([R_INLEN])\t\t\t\\\n-\t\t  CONVERT_32BIT_SIZE_T ([R_OUTLEN])\t\t\t\\\n \t\t  /* Loop which handles UTF-8 chars <=0x7f.  */\t\t\\\n \t\t  \"0:  clgijl %[R_INLEN],16,20f\\n\\t\"\t\t\t\\\n \t\t  \"    clgijl %[R_OUTLEN],32,20f\\n\\t\"\t\t\t\\\n@@ -636,12 +626,9 @@ gconv_end (struct __gconv_step *data)\n     unsigned long tmp, tmp2, tmp3;\t\t\t\t\t\\\n     asm volatile (\".machine push\\n\\t\"\t\t\t\t\t\\\n \t\t  \".machine \\\"z13\\\"\\n\\t\"\t\t\t\t\\\n-\t\t  \".machinemode \\\"zarch_nohighgprs\\\"\\n\\t\"\t\t\\\n \t\t  /* Setup to check for values <= 0x7f.  */\t\t\\\n \t\t  \"    larl %[R_TMP],9f\\n\\t\"\t\t\t\t\\\n \t\t  \"    vlm %%v30,%%v31,0(%[R_TMP])\\n\\t\"\t\t\t\\\n-\t\t  CONVERT_32BIT_SIZE_T ([R_INLEN])\t\t\t\\\n-\t\t  CONVERT_32BIT_SIZE_T ([R_OUTLEN])\t\t\t\\\n \t\t  /* Loop which handles UTF-16 chars <=0x7f.  */\t\\\n \t\t  \"0:  clgijl %[R_INLEN],32,2f\\n\\t\"\t\t\t\\\n \t\t  \"    clgijl %[R_OUTLEN],16,2f\\n\\t\"\t\t\t\\\n@@ -823,12 +810,9 @@ gconv_end (struct __gconv_step *data)\n     unsigned long tmp, tmp2, tmp3;\t\t\t\t\t\\\n     asm volatile (\".machine push\\n\\t\"\t\t\t\t\t\\\n \t\t  \".machine \\\"z13\\\"\\n\\t\"\t\t\t\t\\\n-\t\t  \".machinemode \\\"zarch_nohighgprs\\\"\\n\\t\"\t\t\\\n \t\t  /* Setup to check for values <= 0x7f.  */\t\t\\\n \t\t  \"    larl %[R_TMP],9f\\n\\t\"\t\t\t\t\\\n \t\t  \"    vlm %%v30,%%v31,0(%[R_TMP])\\n\\t\"\t\t\t\\\n-\t\t  CONVERT_32BIT_SIZE_T ([R_INLEN])\t\t\t\\\n-\t\t  CONVERT_32BIT_SIZE_T ([R_OUTLEN])\t\t\t\\\n \t\t  /* Loop which handles UTF-16 chars <=0x7f.  */\t\\\n \t\t  \"0:  clgijl %[R_INLEN],32,20f\\n\\t\"\t\t\t\\\n \t\t  \"    clgijl %[R_OUTLEN],16,20f\\n\\t\"\t\t\t\\\ndiff --git a/sysdeps/s390/utf8-utf32-z9.c b/sysdeps/s390/utf8-utf32-z9.c\nindex a5bf48e499..c1708772c6 100644\n--- a/sysdeps/s390/utf8-utf32-z9.c\n+++ b/sysdeps/s390/utf8-utf32-z9.c\n@@ -59,12 +59,6 @@\n # define ASM_CLOBBER_VR(NR)\n #endif\n \n-#if defined __s390x__\n-# define CONVERT_32BIT_SIZE_T(REG)\n-#else\n-# define CONVERT_32BIT_SIZE_T(REG) \"llgfr %\" #REG \",%\" #REG \"\\n\\t\"\n-#endif\n-\n /* Defines for skeleton.c.  */\n #define DEFINE_INIT\t\t0\n #define DEFINE_FINI\t\t0\n@@ -176,7 +170,6 @@ gconv_end (struct __gconv_step *data)\n \t\t\t\t\t\t\t\t\t\\\n     __asm__ __volatile__ (\".machine push       \\n\\t\"\t\t\t\\\n \t\t\t  \".machine \\\"z9-109\\\" \\n\\t\"\t\t\t\\\n-\t\t\t  \".machinemode \\\"zarch_nohighgprs\\\"\\n\\t\"\t\\\n \t\t\t  \"0: \" INSTRUCTION \"  \\n\\t\"\t\t\t\\\n \t\t\t  \".machine pop        \\n\\t\"\t\t\t\\\n \t\t\t  \"   jo     0b        \\n\\t\"\t\t\t\\\n@@ -480,11 +473,8 @@ gconv_end (struct __gconv_step *data)\n     unsigned long tmp, tmp2, tmp3;\t\t\t\t\t\\\n     asm volatile (\".machine push\\n\\t\"\t\t\t\t\t\\\n \t\t  \".machine \\\"z13\\\"\\n\\t\"\t\t\t\t\\\n-\t\t  \".machinemode \\\"zarch_nohighgprs\\\"\\n\\t\"\t\t\\\n \t\t  \"    vrepib %%v30,0x7f\\n\\t\" /* For compare > 0x7f.  */ \\\n \t\t  \"    vrepib %%v31,0x20\\n\\t\"\t\t\t\t\\\n-\t\t  CONVERT_32BIT_SIZE_T ([R_INLEN])\t\t\t\\\n-\t\t  CONVERT_32BIT_SIZE_T ([R_OUTLEN])\t\t\t\\\n \t\t  /* Loop which handles UTF-8 chars <=0x7f.  */\t\t\\\n \t\t  \"0:  clgijl %[R_INLEN],16,20f\\n\\t\"\t\t\t\\\n \t\t  \"    clgijl %[R_OUTLEN],64,20f\\n\\t\"\t\t\t\\\n@@ -691,13 +681,10 @@ gconv_end (struct __gconv_step *data)\n     unsigned long tmp, tmp2, tmp3;\t\t\t\t\t\\\n     asm volatile (\".machine push\\n\\t\"\t\t\t\t\t\\\n \t\t  \".machine \\\"z13\\\"\\n\\t\"\t\t\t\t\\\n-\t\t  \".machinemode \\\"zarch_nohighgprs\\\"\\n\\t\"\t\t\\\n \t\t  \"    vleif %%v20,127,0\\n\\t\"   /* element 0: 127  */\t\\\n \t\t  \"    vzero %%v21\\n\\t\"\t\t\t\t\t\\\n \t\t  \"    vleih %%v21,8192,0\\n\\t\"  /* element 0:   >  */\t\\\n \t\t  \"    vleih %%v21,-8192,2\\n\\t\" /* element 1: =<>  */\t\\\n-\t\t  CONVERT_32BIT_SIZE_T ([R_INLEN])\t\t\t\\\n-\t\t  CONVERT_32BIT_SIZE_T ([R_OUTLEN])\t\t\t\\\n \t\t  /* Loop which handles UTF-32 chars <=0x7f.  */\t\\\n \t\t  \"0:  clgijl %[R_INLEN],64,2f\\n\\t\"\t\t\t\\\n \t\t  \"    clgijl %[R_OUTLEN],16,2f\\n\\t\"\t\t\t\\\n@@ -869,13 +856,10 @@ gconv_end (struct __gconv_step *data)\n     unsigned long tmp, tmp2;\t\t\t\t\t\t\\\n     asm volatile (\".machine push\\n\\t\"\t\t\t\t\t\\\n \t\t  \".machine \\\"z13\\\"\\n\\t\"\t\t\t\t\\\n-\t\t  \".machinemode \\\"zarch_nohighgprs\\\"\\n\\t\"\t\t\\\n \t\t  \"    vleif %%v20,127,0\\n\\t\"   /* element 0: 127  */\t\\\n \t\t  \"    vzero %%v21\\n\\t\"\t\t\t\t\t\\\n \t\t  \"    vleih %%v21,8192,0\\n\\t\"  /* element 0:   >  */\t\\\n \t\t  \"    vleih %%v21,-8192,2\\n\\t\" /* element 1: =<>  */\t\\\n-\t\t  CONVERT_32BIT_SIZE_T ([R_INLEN])\t\t\t\\\n-\t\t  CONVERT_32BIT_SIZE_T ([R_OUTLEN])\t\t\t\\\n \t\t  /* Loop which handles UTF-32 chars <= 0x7f.  */\t\\\n \t\t  \"0:  clgijl %[R_INLEN],64,20f\\n\\t\"\t\t\t\\\n \t\t  \"    clgijl %[R_OUTLEN],16,20f\\n\\t\"\t\t\t\\\ndiff --git a/sysdeps/s390/wcpcpy-vx.S b/sysdeps/s390/wcpcpy-vx.S\nindex 98c9d09064..ee509ab8d0 100644\n--- a/sysdeps/s390/wcpcpy-vx.S\n+++ b/sysdeps/s390/wcpcpy-vx.S\n@@ -1,4 +1,4 @@\n-/* Vector optimized 32/64 bit S/390 version of wcpcpy.\n+/* Vector optimized 64 bit S/390 version of wcpcpy.\n    Copyright (C) 2015-2026 Free Software Foundation, Inc.\n    This file is part of the GNU C Library.\n \n@@ -40,7 +40,6 @@\n */\n ENTRY(WCPCPY_Z13)\n \t.machine \"z13\"\n-\t.machinemode \"zarch_nohighgprs\"\n \n \tvlbb\t%v16,0(%r3),6\t/* Load s until next 4k-byte boundary.  */\n \tlcbb\t%r1,0(%r3),6\t/* Get bytes to 4k-byte boundary or 16.  */\ndiff --git a/sysdeps/s390/wcpncpy-vx.S b/sysdeps/s390/wcpncpy-vx.S\nindex 097eee9678..69817aa97d 100644\n--- a/sysdeps/s390/wcpncpy-vx.S\n+++ b/sysdeps/s390/wcpncpy-vx.S\n@@ -1,4 +1,4 @@\n-/* Vector optimized 32/64 bit S/390 version of wcpncpy.\n+/* Vector optimized 64 bit S/390 version of wcpncpy.\n    Copyright (C) 2015-2026 Free Software Foundation, Inc.\n    This file is part of the GNU C Library.\n \n@@ -41,11 +41,6 @@\n */\n ENTRY(WCPNCPY_Z13)\n \t.machine \"z13\"\n-\t.machinemode \"zarch_nohighgprs\"\n-\n-# if !defined __s390x__\n-\tllgfr\t%r4,%r4\n-# endif /* !defined __s390x__ */\n \n \tclgfi\t%r4,0\n \tber\t%r14\t\t/* Nothing to do, if n == 0.  */\n@@ -62,13 +57,8 @@ ENTRY(WCPNCPY_Z13)\n \tllgfr\t%r6,%r6\t\t/* Convert 32bit to 64bit.  */\n \n \t/* Check range of maxlen and convert to byte-count.  */\n-# ifdef __s390x__\n \ttmhh\t%r4,49152\t/* Test bit 0 or 1 of maxlen.  */\n \tlghi\t%r1,-4\t\t/* Max byte-count is 18446744073709551612.  */\n-# else\n-\ttmlh\t%r4,49152\t/* Test bit 0 or 1 of maxlen.  */\n-\tllilf\t%r1,4294967292\t/* Max byte-count is 4294967292.  */\n-# endif /* !__s390x__ */\n \tsllg\t%r4,%r4,2\t/* Convert character-count to byte-count.  */\n \tlocgrne\t%r4,%r1\t\t/* Use max byte-count, if bit 0/1 was one.  */\n \ndiff --git a/sysdeps/s390/wcscat-vx.S b/sysdeps/s390/wcscat-vx.S\nindex 0feb4797e6..a7ec6d50b5 100644\n--- a/sysdeps/s390/wcscat-vx.S\n+++ b/sysdeps/s390/wcscat-vx.S\n@@ -1,4 +1,4 @@\n-/* Vector optimized 32/64 bit S/390 version of wcscat.\n+/* Vector optimized 64 bit S/390 version of wcscat.\n    Copyright (C) 2015-2026 Free Software Foundation, Inc.\n    This file is part of the GNU C Library.\n \n@@ -40,7 +40,6 @@\n */\n ENTRY(WCSCAT_Z13)\n \t.machine \"z13\"\n-\t.machinemode \"zarch_nohighgprs\"\n \n \tvlbb\t%v16,0(%r2),6\t/* Load s until next 4k-byte boundary.  */\n \tlcbb\t%r1,0(%r2),6\t/* Get bytes to 4k-byte boundary or 16.  */\ndiff --git a/sysdeps/s390/wcschr-vx.S b/sysdeps/s390/wcschr-vx.S\nindex dd4ca46d9a..af3f5cf849 100644\n--- a/sysdeps/s390/wcschr-vx.S\n+++ b/sysdeps/s390/wcschr-vx.S\n@@ -1,4 +1,4 @@\n-/* Vector optimized 32/64 bit S/390 version of wcschr.\n+/* Vector optimized 64 bit S/390 version of wcschr.\n    Copyright (C) 2015-2026 Free Software Foundation, Inc.\n    This file is part of the GNU C Library.\n \n@@ -39,7 +39,6 @@\n */\n ENTRY(WCSCHR_Z13)\n \t.machine \"z13\"\n-\t.machinemode \"zarch_nohighgprs\"\n \n \tvlbb\t%v16,0(%r2),6\t/* Load s until next 4k-byte boundary.  */\n \tlcbb\t%r1,0(%r2),6\t/* Get bytes to 4k-byte boundary or 16.  */\ndiff --git a/sysdeps/s390/wcschrnul-vx.S b/sysdeps/s390/wcschrnul-vx.S\nindex 9d1d0b3670..0107fd5a66 100644\n--- a/sysdeps/s390/wcschrnul-vx.S\n+++ b/sysdeps/s390/wcschrnul-vx.S\n@@ -1,4 +1,4 @@\n-/* Vector optimized 32/64 bit S/390 version of wcschrnul.\n+/* Vector optimized 64 bit S/390 version of wcschrnul.\n    Copyright (C) 2015-2026 Free Software Foundation, Inc.\n    This file is part of the GNU C Library.\n \n@@ -38,7 +38,6 @@\n */\n ENTRY(WCSCHRNUL_Z13)\n \t.machine \"z13\"\n-\t.machinemode \"zarch_nohighgprs\"\n \n \tvlbb\t%v16,0(%r2),6\t/* Load s until next 4k-byte boundary.  */\n \tlcbb\t%r1,0(%r2),6\t/* Get bytes to 4k-byte boundary or 16.  */\ndiff --git a/sysdeps/s390/wcscmp-vx.S b/sysdeps/s390/wcscmp-vx.S\nindex 39d62412d5..25f992e75c 100644\n--- a/sysdeps/s390/wcscmp-vx.S\n+++ b/sysdeps/s390/wcscmp-vx.S\n@@ -1,4 +1,4 @@\n-/* Vector optimized 32/64 bit S/390 version of wcscmp.\n+/* Vector optimized 64 bit S/390 version of wcscmp.\n    Copyright (C) 2015-2026 Free Software Foundation, Inc.\n    This file is part of the GNU C Library.\n \n@@ -39,7 +39,6 @@\n */\n ENTRY(WCSCMP_Z13)\n \t.machine \"z13\"\n-\t.machinemode \"zarch_nohighgprs\"\n \n \tlghi\t%r5,0\t\t/* current_len = 0.  */\n \ndiff --git a/sysdeps/s390/wcscpy-vx.S b/sysdeps/s390/wcscpy-vx.S\nindex 718fb2f9e1..2aa266d2ef 100644\n--- a/sysdeps/s390/wcscpy-vx.S\n+++ b/sysdeps/s390/wcscpy-vx.S\n@@ -1,4 +1,4 @@\n-/* Vector optimized 32/64 bit S/390 version of wcscpy.\n+/* Vector optimized 64 bit S/390 version of wcscpy.\n    Copyright (C) 2015-2026 Free Software Foundation, Inc.\n    This file is part of the GNU C Library.\n \n@@ -40,7 +40,6 @@\n */\n ENTRY(WCSCPY_Z13)\n \t.machine \"z13\"\n-\t.machinemode \"zarch_nohighgprs\"\n \n \tvlbb\t%v16,0(%r3),6\t/* Load s until next 4k-byte boundary.  */\n \tlcbb\t%r1,0(%r3),6\t/* Get bytes to 4k-byte boundary or 16.  */\ndiff --git a/sysdeps/s390/wcscspn-vx.S b/sysdeps/s390/wcscspn-vx.S\nindex b5b910f8bf..3a6fcb6e1b 100644\n--- a/sysdeps/s390/wcscspn-vx.S\n+++ b/sysdeps/s390/wcscspn-vx.S\n@@ -1,4 +1,4 @@\n-/* Vector optimized 32/64 bit S/390 version of wcscspn.\n+/* Vector optimized 64 bit S/390 version of wcscspn.\n    Copyright (C) 2015-2026 Free Software Foundation, Inc.\n    This file is part of the GNU C Library.\n \n@@ -60,7 +60,6 @@\n */\n ENTRY(WCSCSPN_Z13)\n \t.machine \"z13\"\n-\t.machinemode \"zarch_nohighgprs\"\n \n \ttmll\t%r2,3\t\t/* Test if s is 4-byte aligned?  */\n \tjne\t.Lfallback\t/* And use common-code variant if not.  */\ndiff --git a/sysdeps/s390/wcslen-vx.S b/sysdeps/s390/wcslen-vx.S\nindex 29a9131521..cd4459ac82 100644\n--- a/sysdeps/s390/wcslen-vx.S\n+++ b/sysdeps/s390/wcslen-vx.S\n@@ -1,4 +1,4 @@\n-/* Vector optimized 32/64 bit S/390 version of wcslen.\n+/* Vector optimized 64 bit S/390 version of wcslen.\n    Copyright (C) 2015-2026 Free Software Foundation, Inc.\n    This file is part of the GNU C Library.\n \n@@ -37,7 +37,6 @@\n */\n ENTRY(WCSLEN_Z13)\n \t.machine \"z13\"\n-\t.machinemode \"zarch_nohighgprs\"\n \n \tvlbb\t%v16,0(%r2),6\t/* Load s until next 4k-byte boundary.  */\n \tlcbb\t%r1,0(%r2),6\t/* Get bytes to 4k-byte boundary or 16.  */\ndiff --git a/sysdeps/s390/wcsncat-vx.S b/sysdeps/s390/wcsncat-vx.S\nindex 91d2a9b89d..155459dd5e 100644\n--- a/sysdeps/s390/wcsncat-vx.S\n+++ b/sysdeps/s390/wcsncat-vx.S\n@@ -1,4 +1,4 @@\n-/* Vector optimized 32/64 bit S/390 version of wcsncat.\n+/* Vector optimized 64 bit S/390 version of wcsncat.\n    Copyright (C) 2015-2026 Free Software Foundation, Inc.\n    This file is part of the GNU C Library.\n \n@@ -43,11 +43,6 @@\n */\n ENTRY(WCSNCAT_Z13)\n \t.machine \"z13\"\n-\t.machinemode \"zarch_nohighgprs\"\n-\n-# if !defined __s390x__\n-\tllgfr\t%r4,%r4\n-# endif /* !defined __s390x__ */\n \n \tclgfi\t%r4,0\n \tber\t%r14\t\t/* Nothing to do, if n == 0.  */\n@@ -123,13 +118,8 @@ ENTRY(WCSNCAT_Z13)\n \tlghi\t%r5,0\t\t/* current_len = 0.  */\n \n \t/* Check range of maxlen and convert to byte-count.  */\n-# ifdef __s390x__\n \ttmhh\t%r4,49152\t/* Test bit 0 or 1 of maxlen.  */\n \tlghi\t%r1,-4\t\t/* Max byte-count is 18446744073709551612.  */\n-# else\n-\ttmlh\t%r4,49152\t/* Test bit 0 or 1 of maxlen.  */\n-\tllilf\t%r1,4294967292\t/* Max byte-count is 4294967292.  */\n-# endif /* !__s390x__ */\n \tsllg\t%r4,%r4,2\t/* Convert character-count to byte-count.  */\n \tlocgrne\t%r4,%r1\t\t/* Use max byte-count, if bit 0/1 was one.  */\n \ndiff --git a/sysdeps/s390/wcsncmp-vx.S b/sysdeps/s390/wcsncmp-vx.S\nindex f01fcc56a6..3fb3756059 100644\n--- a/sysdeps/s390/wcsncmp-vx.S\n+++ b/sysdeps/s390/wcsncmp-vx.S\n@@ -1,4 +1,4 @@\n-/* Vector optimized 32/64 bit S/390 version of wcsncmp.\n+/* Vector optimized 64 bit S/390 version of wcsncmp.\n    Copyright (C) 2015-2026 Free Software Foundation, Inc.\n    This file is part of the GNU C Library.\n \n@@ -40,22 +40,12 @@\n */\n ENTRY(WCSNCMP_Z13)\n \t.machine \"z13\"\n-\t.machinemode \"zarch_nohighgprs\"\n-\n-# if !defined __s390x__\n-\tllgfr\t%r4,%r4\n-# endif /* !defined __s390x__ */\n \n \tclgije\t%r4,0,.Lend_equal /* Nothing to do if n == 0.  */\n \n \t/* Check range of n and convert to byte-count.  */\n-# ifdef __s390x__\n \ttmhh\t%r4,49152\t/* Test bit 0 or 1 of maxlen.  */\n \tlghi\t%r1,-4\t\t/* Max byte-count is 18446744073709551612.  */\n-# else\n-\ttmlh\t%r4,49152\t/* Test bit 0 or 1 of maxlen.  */\n-\tllilf\t%r1,4294967292\t/* Max byte-count is 4294967292.  */\n-# endif /* !__s390x__ */\n \tsllg\t%r4,%r4,2\t/* Convert character-count to byte-count.  */\n \tlocgrne\t%r4,%r1\t\t/* Use max byte-count, if bit 0/1 was one.  */\n \ndiff --git a/sysdeps/s390/wcsncpy-vx.S b/sysdeps/s390/wcsncpy-vx.S\nindex c1d6732e87..afe1495185 100644\n--- a/sysdeps/s390/wcsncpy-vx.S\n+++ b/sysdeps/s390/wcsncpy-vx.S\n@@ -1,4 +1,4 @@\n-/* Vector optimized 32/64 bit S/390 version of wcsncpy.\n+/* Vector optimized 64 bit S/390 version of wcsncpy.\n    Copyright (C) 2015-2026 Free Software Foundation, Inc.\n    This file is part of the GNU C Library.\n \n@@ -43,11 +43,6 @@\n */\n ENTRY(WCSNCPY_Z13)\n \t.machine \"z13\"\n-\t.machinemode \"zarch_nohighgprs\"\n-\n-# if !defined __s390x__\n-\tllgfr\t%r4,%r4\n-# endif /* !defined __s390x__ */\n \n \tclgfi\t%r4,0\n \tber\t%r14\t\t/* Nothing to do, if n == 0.  */\n@@ -66,13 +61,8 @@ ENTRY(WCSNCPY_Z13)\n \tlghi\t%r5,0\t\t/* current_len = 0.  */\n \n \t/* Check range of maxlen and convert to byte-count.  */\n-# ifdef __s390x__\n \ttmhh\t%r4,49152\t/* Test bit 0 or 1 of n.  */\n \tlghi\t%r1,-4\t\t/* Max byte-count is 18446744073709551612.  */\n-# else\n-\ttmlh\t%r4,49152\t/* Test bit 0 or 1 of n.  */\n-\tllilf\t%r1,4294967292\t/* Max byte-count is 4294967292.  */\n-# endif /* !__s390x__ */\n \tsllg\t%r4,%r4,2\t/* Convert character-count to byte-count.  */\n \tlocgrne\t%r4,%r1\t\t/* Use max byte-count, if bit 0/1 was one.  */\n \ndiff --git a/sysdeps/s390/wcsnlen-vx.S b/sysdeps/s390/wcsnlen-vx.S\nindex bfff0ba2a4..d57b3bb5b3 100644\n--- a/sysdeps/s390/wcsnlen-vx.S\n+++ b/sysdeps/s390/wcsnlen-vx.S\n@@ -1,4 +1,4 @@\n-/* Vector optimized 32/64 bit S/390 version of wcsnlen.\n+/* Vector optimized 64 bit S/390 version of wcsnlen.\n    Copyright (C) 2015-2026 Free Software Foundation, Inc.\n    This file is part of the GNU C Library.\n \n@@ -38,11 +38,6 @@\n ENTRY(WCSNLEN_Z13)\n \n \t.machine \"z13\"\n-\t.machinemode \"zarch_nohighgprs\"\n-\n-# if !defined __s390x__\n-\tllgfr\t%r3,%r3\n-# endif /* !defined __s390x__ */\n \n \tclgfi\t%r3,0\t\t/* if maxlen == 0, return 0.  */\n \tlocgre\t%r2,%r3\n@@ -56,13 +51,8 @@ ENTRY(WCSNLEN_Z13)\n \tjne\t.Lfallback\t/* And use common-code variant if not.  */\n \n \t/* Check range of maxlen and convert to byte-count.  */\n-# ifdef __s390x__\n \ttmhh\t%r3,49152\t/* Test bit 0 or 1 of maxlen.  */\n \tlghi\t%r4,-4\t\t/* Max byte-count is 18446744073709551612.  */\n-# else\n-\ttmlh\t%r3,49152\t/* Test bit 0 or 1 of maxlen.  */\n-\tllilf\t%r4,4294967292\t/* Max byte-count is 4294967292.  */\n-# endif /* !__s390x__ */\n \tsllg\t%r3,%r3,2\t/* Convert character-count to byte-count.  */\n \tlocgrne\t%r3,%r4\t\t/* Use max byte-count, if bit 0/1 was one.  */\n \ndiff --git a/sysdeps/s390/wcspbrk-vx.S b/sysdeps/s390/wcspbrk-vx.S\nindex d1c0b2b47d..d97b2c02f1 100644\n--- a/sysdeps/s390/wcspbrk-vx.S\n+++ b/sysdeps/s390/wcspbrk-vx.S\n@@ -1,4 +1,4 @@\n-/* Vector optimized 32/64 bit S/390 version of wcspbrk.\n+/* Vector optimized 64 bit S/390 version of wcspbrk.\n    Copyright (C) 2015-2026 Free Software Foundation, Inc.\n    This file is part of the GNU C Library.\n \n@@ -62,7 +62,6 @@\n */\n ENTRY(WCSPBRK_Z13)\n \t.machine \"z13\"\n-\t.machinemode \"zarch_nohighgprs\"\n \n \ttmll\t%r2,3\t\t/* Test if s is 4-byte aligned?  */\n \tjne\t.Lfallback\t/* And use common-code variant if not.  */\ndiff --git a/sysdeps/s390/wcsrchr-vx.S b/sysdeps/s390/wcsrchr-vx.S\nindex 9e5f4ceea3..4e9934f01e 100644\n--- a/sysdeps/s390/wcsrchr-vx.S\n+++ b/sysdeps/s390/wcsrchr-vx.S\n@@ -1,4 +1,4 @@\n-/* Vector optimized 32/64 bit S/390 version of wcsrchr.\n+/* Vector optimized 64 bit S/390 version of wcsrchr.\n    Copyright (C) 2015-2026 Free Software Foundation, Inc.\n    This file is part of the GNU C Library.\n \n@@ -42,7 +42,6 @@\n */\n ENTRY(WCSRCHR_Z13)\n \t.machine \"z13\"\n-\t.machinemode \"zarch_nohighgprs\"\n \n \tvlbb\t%v16,0(%r2),6\t/* Load s until next 4k-byte boundary.  */\n \tlcbb\t%r0,0(%r2),6\t/* Get bytes to 4k-byte boundary or 16.  */\ndiff --git a/sysdeps/s390/wcsspn-vx.S b/sysdeps/s390/wcsspn-vx.S\nindex 81d7ccb101..bdd316950d 100644\n--- a/sysdeps/s390/wcsspn-vx.S\n+++ b/sysdeps/s390/wcsspn-vx.S\n@@ -1,4 +1,4 @@\n-/* Vector optimized 32/64 bit S/390 version of wcsspn.\n+/* Vector optimized 64 bit S/390 version of wcsspn.\n    Copyright (C) 2015-2026 Free Software Foundation, Inc.\n    This file is part of the GNU C Library.\n \n@@ -60,7 +60,6 @@\n */\n ENTRY(WCSSPN_Z13)\n \t.machine \"z13\"\n-\t.machinemode \"zarch_nohighgprs\"\n \n \ttmll\t%r2,3\t\t/* Test if s is 4-byte aligned?  */\n \tjne\t.Lfallback\t/* And use common-code variant if not.  */\ndiff --git a/sysdeps/s390/wmemchr-vx.S b/sysdeps/s390/wmemchr-vx.S\nindex 6882395ce7..2040ee8eba 100644\n--- a/sysdeps/s390/wmemchr-vx.S\n+++ b/sysdeps/s390/wmemchr-vx.S\n@@ -1,4 +1,4 @@\n-/* Vector optimized 32/64 bit S/390 version of wmemchr.\n+/* Vector optimized 64 bit S/390 version of wmemchr.\n    Copyright (C) 2015-2026 Free Software Foundation, Inc.\n    This file is part of the GNU C Library.\n \n@@ -41,11 +41,6 @@\n */\n ENTRY(WMEMCHR_Z13)\n \t.machine \"z13\"\n-\t.machinemode \"zarch_nohighgprs\"\n-\n-# if !defined __s390x__\n-\tllgfr\t%r4,%r4\n-# endif /* !defined __s390x__ */\n \n \tclgije\t%r4,0,.Lnf_end\t/* If len == 0 then exit.  */\n \n@@ -61,13 +56,8 @@ ENTRY(WMEMCHR_Z13)\n \tlghi\t%r5,16\t\t/* current_len = 16.  */\n \n \t/* Check range of maxlen and convert to byte-count.  */\n-# ifdef __s390x__\n \ttmhh\t%r4,49152\t/* Test bit 0 or 1 of maxlen.  */\n \tlghi\t%r1,-4\t\t/* Max byte-count is 18446744073709551612.  */\n-# else\n-\ttmlh\t%r4,49152\t/* Test bit 0 or 1 of maxlen.  */\n-\tllilf\t%r1,4294967292\t/* Max byte-count is 4294967292.  */\n-# endif /* !__s390x__ */\n \tsllg\t%r4,%r4,2\t/* Convert character-count to byte-count.  */\n \tlocgrne\t%r4,%r1\t\t/* Use max byte-count, if bit 0/1 was one.  */\n \ndiff --git a/sysdeps/s390/wmemcmp-vx.S b/sysdeps/s390/wmemcmp-vx.S\nindex 3d07b815a0..6a2997d74b 100644\n--- a/sysdeps/s390/wmemcmp-vx.S\n+++ b/sysdeps/s390/wmemcmp-vx.S\n@@ -1,4 +1,4 @@\n-/* Vector Optimized 32/64 bit S/390 version of wmemcmp.\n+/* Vector Optimized 64 bit S/390 version of wmemcmp.\n    Copyright (C) 2015-2026 Free Software Foundation, Inc.\n    This file is part of the GNU C Library.\n \n@@ -40,21 +40,11 @@\n */\n ENTRY(WMEMCMP_Z13)\n \t.machine \"z13\"\n-\t.machinemode \"zarch_nohighgprs\"\n-\n-# if !defined __s390x__\n-\tllgfr\t%r4,%r4\n-# endif /* !defined __s390x__ */\n \tclgije\t%r4,0,.Lend_equal /* Nothing to do if n == 0.  */\n \n \t/* Check range of maxlen and convert to byte-count.  */\n-# ifdef __s390x__\n \ttmhh\t%r4,49152\t/* Test bit 0 or 1 of maxlen.  */\n \tlghi\t%r1,-4\t\t/* Max byte-count is 18446744073709551612.  */\n-# else\n-\ttmlh\t%r4,49152\t/* Test bit 0 or 1 of maxlen.  */\n-\tllilf\t%r1,4294967292\t/* Max byte-count is 4294967292.  */\n-# endif /* !__s390x__ */\n \tsllg\t%r4,%r4,2\t/* Convert character-count to byte-count.  */\n \tlocgrne\t%r4,%r1\t\t/* Use max byte-count, if bit 0/1 was one.  */\n \ndiff --git a/sysdeps/s390/wmemset-vx.S b/sysdeps/s390/wmemset-vx.S\nindex 4f3661297c..f7ab5dd8c7 100644\n--- a/sysdeps/s390/wmemset-vx.S\n+++ b/sysdeps/s390/wmemset-vx.S\n@@ -1,4 +1,4 @@\n-/* Vector Optimized 32/64 bit S/390 version of wmemset.\n+/* Vector Optimized 64 bit S/390 version of wmemset.\n    Copyright (C) 2015-2026 Free Software Foundation, Inc.\n    This file is part of the GNU C Library.\n \n@@ -41,11 +41,6 @@\n */\n ENTRY(WMEMSET_Z13)\n \t.machine \"z13\"\n-\t.machinemode \"zarch_nohighgprs\"\n-\n-# if !defined __s390x__\n-\tllgfr\t%r4,%r4\n-# endif /* !defined __s390x__ */\n \n \tvlvgg\t%v31,%r2,0\t/* Save destination pointer for return.  */\n \tclgije\t%r4,0,.Lend\n@@ -54,13 +49,8 @@ ENTRY(WMEMSET_Z13)\n \tvrepf\t%v16,%v16,0\n \n \t/* Check range of maxlen and convert to byte-count.  */\n-# ifdef __s390x__\n \ttmhh\t%r4,49152\t/* Test bit 0 or 1 of maxlen.  */\n \tlghi\t%r5,-4\t\t/* Max byte-count is 18446744073709551612.  */\n-# else\n-\ttmlh\t%r4,49152\t/* Test bit 0 or 1 of maxlen.  */\n-\tllilf\t%r5,4294967292\t/* Max byte-count is 4294967292.  */\n-# endif /* !__s390x__ */\n \tsllg\t%r4,%r4,2\t/* Convert character-count to byte-count.  */\n \tlocgrne\t%r4,%r5\t\t/* Use max byte-count, if bit 0/1 was one.  */\n \ndiff --git a/sysdeps/unix/sysv/linux/fxstat.c b/sysdeps/unix/sysv/linux/fxstat.c\nindex 2b45a31c2d..a034345ee3 100644\n--- a/sysdeps/unix/sysv/linux/fxstat.c\n+++ b/sysdeps/unix/sysv/linux/fxstat.c\n@@ -43,7 +43,7 @@ __fxstat (int vers, int fd, struct stat *buf)\n \treturn r ?: stat_overflow (buf);\n # else\n \t/* Old kABIs with old non-LFS support, e.g. arm, i386, hppa, m68k,\n-\t   microblaze, s390, sh, powerpc, and sparc.  */\n+\t   microblaze, sh, powerpc, and sparc.  */\n \treturn INLINE_SYSCALL_CALL (fstat, fd, buf);\n # endif\n       }\ndiff --git a/sysdeps/unix/sysv/linux/fxstatat.c b/sysdeps/unix/sysv/linux/fxstatat.c\nindex 8f4dcdd3a9..12d743f61e 100644\n--- a/sysdeps/unix/sysv/linux/fxstatat.c\n+++ b/sysdeps/unix/sysv/linux/fxstatat.c\n@@ -43,7 +43,7 @@ __fxstatat (int vers, int fd, const char *file, struct stat *st, int flag)\n   return INLINE_SYSCALL_ERROR_RETURN_VALUE (EINVAL);\n #else\n   /* Old kABIs with old non-LFS support, e.g. arm, i386, hppa, m68k, mips32,\n-     microblaze, s390, sh, powerpc32, and sparc32.  */\n+     microblaze, sh, powerpc32, and sparc32.  */\n   struct stat64 st64;\n   int r = INLINE_SYSCALL_CALL (fstatat64, fd, file, &st64, flag);\n   return r ?: __xstat32_conv (vers, &st64, st);\ndiff --git a/sysdeps/unix/sysv/linux/ipc_priv.h b/sysdeps/unix/sysv/linux/ipc_priv.h\nindex 24f6867e0e..2b75a49b1e 100644\n--- a/sysdeps/unix/sysv/linux/ipc_priv.h\n+++ b/sysdeps/unix/sysv/linux/ipc_priv.h\n@@ -48,8 +48,8 @@ struct __old_ipc_perm\n #define MSGRCV_ARGS(__msgp, __msgtyp) \\\n   ((long int []){ (long int) __msgp, __msgtyp })\n \n-/* This macro is required to handle the s390 variants, which passes the\n-   arguments in a different order than default.  */\n+/* This macro is required to handle s390x, which passes the arguments in a\n+   different order than default.  */\n #define SEMTIMEDOP_IPC_ARGS(__nsops, __sops, __timeout) \\\n   (__nsops), 0, (__sops), (__timeout)\n \ndiff --git a/sysdeps/unix/sysv/linux/kernel-features.h b/sysdeps/unix/sysv/linux/kernel-features.h\nindex 94bdbbb730..85f6e888db 100644\n--- a/sysdeps/unix/sysv/linux/kernel-features.h\n+++ b/sysdeps/unix/sysv/linux/kernel-features.h\n@@ -155,7 +155,7 @@\n    similar to kernel:\n \n    - __ASSUME_CLONE_BACKWARDS: for variant 1.\n-   - __ASSUME_CLONE_BACKWARDS2: for variant 2 (s390).\n+   - __ASSUME_CLONE_BACKWARDS2: for variant 2 (s390x).\n    - __ASSUME_CLONE_BACKWARDS3: for variant 3 (microblaze).\n    - __ASSUME_CLONE_DEFAULT: for variant 4.\n    */\ndiff --git a/sysdeps/unix/sysv/linux/lxstat.c b/sysdeps/unix/sysv/linux/lxstat.c\nindex a65e2715a8..6efe1698bc 100644\n--- a/sysdeps/unix/sysv/linux/lxstat.c\n+++ b/sysdeps/unix/sysv/linux/lxstat.c\n@@ -44,7 +44,7 @@ __lxstat (int vers, const char *name, struct stat *buf)\n \treturn r ?: stat_overflow (buf);\n # else\n \t/* Old kABIs with old non-LFS support, e.g. arm, i386, hppa, m68k,\n-\t   microblaze, s390, sh, powerpc, and sparc.  */\n+\t   microblaze, sh, powerpc, and sparc.  */\n \treturn INLINE_SYSCALL_CALL (lstat, name, buf);\n # endif\n       }\ndiff --git a/sysdeps/unix/sysv/linux/lxstat64.c b/sysdeps/unix/sysv/linux/lxstat64.c\nindex 22b0bedbf1..e743aaec4a 100644\n--- a/sysdeps/unix/sysv/linux/lxstat64.c\n+++ b/sysdeps/unix/sysv/linux/lxstat64.c\n@@ -75,7 +75,7 @@ ___lxstat64 (int vers, const char *name, struct stat64 *buf)\n \t\t\t\tAT_SYMLINK_NOFOLLOW);\n # else\n   /* Old kABIs with old non-LFS support, e.g. arm, i386, hppa, m68k,\n-     microblaze, s390, sh, mips32, powerpc32, and sparc32.  */\n+     microblaze, sh, mips32, powerpc32, and sparc32.  */\n   return INLINE_SYSCALL_CALL (lstat64, name, buf);\n # endif /* STAT_IS_KERNEL_STAT  */\n #endif /* XSTAT_IS_XSTAT64  */\ndiff --git a/sysdeps/unix/sysv/linux/posix_fadvise.c b/sysdeps/unix/sysv/linux/posix_fadvise.c\nindex b62cf8c002..01c450de31 100644\n--- a/sysdeps/unix/sysv/linux/posix_fadvise.c\n+++ b/sysdeps/unix/sysv/linux/posix_fadvise.c\n@@ -32,11 +32,7 @@\n    __NR_fadvise64_64 (without the alignment argument required for the ABI).\n \n    Third option will be used by mips o32.  Mips will use a 7 argument\n-   syscall with __NR_fadvise64.\n-\n-   s390 implements fadvice64_64 using a specific struct with arguments\n-   packed inside.  This is the only implementation handled in arch-specific\n-   code.  */\n+   syscall with __NR_fadvise64.  */\n \n int\n posix_fadvise (int fd, off_t offset, off_t len, int advise)\ndiff --git a/sysdeps/unix/sysv/linux/posix_fadvise64.c b/sysdeps/unix/sysv/linux/posix_fadvise64.c\nindex 56748fd7fe..b19b5deb56 100644\n--- a/sysdeps/unix/sysv/linux/posix_fadvise64.c\n+++ b/sysdeps/unix/sysv/linux/posix_fadvise64.c\n@@ -25,11 +25,7 @@ libc_hidden_proto (__posix_fadvise64_l64)\n \n /* Both arm and powerpc implements fadvise64_64 with last 'advise' argument\n    just after 'fd' to avoid the requirement of implementing 7-arg syscalls.\n-   ARM also defines __NR_fadvise64_64 as __NR_arm_fadvise64_64.\n-\n-   s390 implements fadvice64_64 using a specific struct with arguments\n-   packed inside.  This is the only implementation handled in arch-specific\n-   code.  */\n+   ARM also defines __NR_fadvise64_64 as __NR_arm_fadvise64_64.  */\n \n #ifndef __NR_fadvise64_64\n # define __NR_fadvise64_64 __NR_fadvise64\ndiff --git a/sysdeps/unix/sysv/linux/s390/Makefile b/sysdeps/unix/sysv/linux/s390/Makefile\nindex d5433f1dd9..218aff1aee 100644\n--- a/sysdeps/unix/sysv/linux/s390/Makefile\n+++ b/sysdeps/unix/sysv/linux/s390/Makefile\n@@ -1,7 +1,3 @@\n-abi-variants := 32 64\n-abi-32-condition := __WORDSIZE == 32\n-abi-64-condition := __WORDSIZE == 64\n-\n ifeq ($(subdir),rt)\n librt-routines += rt-sysdep\n librt-shared-only-routines += rt-sysdep\ndiff --git a/sysdeps/unix/sysv/linux/s390/bits/elfclass.h b/sysdeps/unix/sysv/linux/s390/bits/elfclass.h\nindex 723aa1189a..59de7fbef6 100644\n--- a/sysdeps/unix/sysv/linux/s390/bits/elfclass.h\n+++ b/sysdeps/unix/sysv/linux/s390/bits/elfclass.h\n@@ -27,11 +27,6 @@\n \n #define __ELF_NATIVE_CLASS __WORDSIZE\n \n-#if __WORDSIZE == 64\n /* 64 bit Linux for S/390 is exceptional as it has .hash section with\n    64 bit entries.  */\n typedef uint64_t Elf_Symndx;\n-#else\n-/* 32 bit Linux for S/390 has normal .hash section entries with 32 bits.  */\n-typedef uint32_t Elf_Symndx;\n-#endif\ndiff --git a/sysdeps/unix/sysv/linux/s390/bits/fcntl.h b/sysdeps/unix/sysv/linux/s390/bits/fcntl.h\nindex 75ea4e23c6..0531f13efd 100644\n--- a/sysdeps/unix/sysv/linux/s390/bits/fcntl.h\n+++ b/sysdeps/unix/sysv/linux/s390/bits/fcntl.h\n@@ -22,29 +22,20 @@\n \n #include <bits/wordsize.h>\n \n-#if __WORDSIZE == 64\n /* Not necessary, files are always with 64bit off_t.  */\n-# define __O_LARGEFILE\t0\n-#endif\n+#define __O_LARGEFILE\t0\n \n-#if __WORDSIZE == 64\n /* Not necessary, we always have 64-bit offsets.  */\n-# define F_GETLK64\t5\t/* Get record locking info.  */\n-# define F_SETLK64\t6\t/* Set record locking info (non-blocking).  */\n-# define F_SETLKW64\t7\t/* Set record locking info (blocking).\t*/\n-#endif\n+#define F_GETLK64\t5\t/* Get record locking info.  */\n+#define F_SETLK64\t6\t/* Set record locking info (non-blocking).  */\n+#define F_SETLKW64\t7\t/* Set record locking info (blocking).\t*/\n \n struct flock\n   {\n     short int l_type;\t/* Type of lock: F_RDLCK, F_WRLCK, or F_UNLCK.\t*/\n     short int l_whence;\t/* Where `l_start' is relative to (like `lseek').  */\n-#if __WORDSIZE == 64 || !defined __USE_FILE_OFFSET64\n     __off_t l_start;\t/* Offset where the lock begins.  */\n     __off_t l_len;\t/* Size of the locked area; zero means until EOF.  */\n-#else\n-    __off64_t l_start;\t/* Offset where the lock begins.  */\n-    __off64_t l_len;\t/* Size of the locked area; zero means until EOF.  */\n-#endif\n     __pid_t l_pid;\t/* Process holding the lock.  */\n   };\n \n@@ -59,13 +50,8 @@ struct flock64\n   };\n #endif\n \n-#if __WORDSIZE == 64\n-# define __POSIX_FADV_DONTNEED\t6 /* Don't need these pages.  */\n-# define __POSIX_FADV_NOREUSE\t7 /* Data will be accessed once.  */\n-#else\n-# define __POSIX_FADV_DONTNEED\t4 /* Don't need these pages.  */\n-# define __POSIX_FADV_NOREUSE\t5 /* Data will be accessed once.  */\n-#endif\n+#define __POSIX_FADV_DONTNEED\t6 /* Don't need these pages.  */\n+#define __POSIX_FADV_NOREUSE\t7 /* Data will be accessed once.  */\n \n /* Include generic Linux declarations.  */\n #include <bits/fcntl-linux.h>\ndiff --git a/sysdeps/unix/sysv/linux/s390/bits/sigaction.h b/sysdeps/unix/sysv/linux/s390/bits/sigaction.h\nindex 7f761808dc..19cdb14c32 100644\n--- a/sysdeps/unix/sysv/linux/s390/bits/sigaction.h\n+++ b/sysdeps/unix/sysv/linux/s390/bits/sigaction.h\n@@ -1,4 +1,4 @@\n-/* Definitions for 31 & 64 bit S/390 sigaction.\n+/* Definitions for 64 bit S/390 sigaction.\n    Copyright (C) 2001-2026 Free Software Foundation, Inc.\n    This file is part of the GNU C Library.\n \n@@ -23,9 +23,6 @@\n # error \"Never include <bits/sigaction.h> directly; use <signal.h> instead.\"\n #endif\n \n-#include <bits/wordsize.h>\n-\n-#if __WORDSIZE == 64\n /* Structure describing the action to be taken when a signal arrives.  */\n struct sigaction\n   {\n@@ -55,36 +52,6 @@ struct sigaction\n     /* Additional set of signals to be blocked.\t */\n     __sigset_t sa_mask;\n   };\n-#else\n-/* Structure describing the action to be taken when a signal arrives.  */\n-struct sigaction\n-  {\n-    /* Signal handler.  */\n-#if defined __USE_POSIX199309 || defined __USE_XOPEN_EXTENDED\n-    union\n-      {\n-\t/* Used if SA_SIGINFO is not set.  */\n-\t__sighandler_t sa_handler;\n-\t/* Used if SA_SIGINFO is set.  */\n-\tvoid (*sa_sigaction) (int, siginfo_t *, void *);\n-      }\n-    __sigaction_handler;\n-# define sa_handler\t__sigaction_handler.sa_handler\n-# define sa_sigaction\t__sigaction_handler.sa_sigaction\n-#else\n-    __sighandler_t sa_handler;\n-#endif\n-\n-    /* Additional set of signals to be blocked.  */\n-    __sigset_t sa_mask;\n-\n-    /* Special flags.  */\n-    int sa_flags;\n-\n-    /* Restore handler.  */\n-    void (*sa_restorer) (void);\n-  };\n-#endif\n \n /* Bits in `sa_flags'.  */\n #define\tSA_NOCLDSTOP  1\t\t /* Don't send SIGCHLD when children stop.  */\ndiff --git a/sysdeps/unix/sysv/linux/s390/bits/struct_stat.h b/sysdeps/unix/sysv/linux/s390/bits/struct_stat.h\nindex e98192d7ef..f6a3a785a1 100644\n--- a/sysdeps/unix/sysv/linux/s390/bits/struct_stat.h\n+++ b/sysdeps/unix/sysv/linux/s390/bits/struct_stat.h\n@@ -25,7 +25,6 @@\n \n #include <bits/wordsize.h>\n \n-#if __WORDSIZE == 64\n struct stat\n   {\n     __dev_t st_dev;\t\t/* Device.  */\n@@ -62,70 +61,8 @@ struct stat\n     __blkcnt_t st_blocks;\t/* Nr. 512-byte blocks allocated.  */\n     long int __glibc_reserved[3];\n   };\n-#else\n-struct stat\n-  {\n-# ifdef __USE_TIME64_REDIRECTS\n-#  include <bits/struct_stat_time64_helper.h>\n-# else\n-    __dev_t st_dev;\t\t\t/* Device.  */\n-    unsigned int __pad1;\n-#  ifndef __USE_FILE_OFFSET64\n-    __ino_t st_ino;\t\t\t/* File serial number.\t*/\n-#  else\n-    __ino_t __st_ino;\t\t\t/* 32bit file serial number.\t*/\n-#  endif\n-    __mode_t st_mode;\t\t\t/* File mode.  */\n-    __nlink_t st_nlink;\t\t\t/* Link count.  */\n-    __uid_t st_uid;\t\t\t/* User ID of the file's owner.\t*/\n-    __gid_t st_gid;\t\t\t/* Group ID of the file's group.*/\n-    __dev_t st_rdev;\t\t\t/* Device number, if device.  */\n-    unsigned int __pad2;\n-#  ifndef __USE_FILE_OFFSET64\n-    __off_t st_size;\t\t\t/* Size of file, in bytes.  */\n-#  else\n-    __off64_t st_size;\t\t\t/* Size of file, in bytes.  */\n-#  endif\n-    __blksize_t st_blksize;\t\t/* Optimal block size for I/O.  */\n-\n-#  ifndef __USE_FILE_OFFSET64\n-    __blkcnt_t st_blocks;\t\t/* Number 512-byte blocks allocated. */\n-#  else\n-    __blkcnt64_t st_blocks;\t\t/* Number 512-byte blocks allocated. */\n-#  endif\n-#  ifdef __USE_XOPEN2K8\n-    /* Nanosecond resolution timestamps are stored in a format\n-       equivalent to 'struct timespec'.  This is the type used\n-       whenever possible but the Unix namespace rules do not allow the\n-       identifier 'timespec' to appear in the <sys/stat.h> header.\n-       Therefore we have to handle the use of this header in strictly\n-       standard-compliant sources special.  */\n-    struct timespec st_atim;\t\t/* Time of last access.  */\n-    struct timespec st_mtim;\t\t/* Time of last modification.  */\n-    struct timespec st_ctim;\t\t/* Time of last status change.  */\n-#   define st_atime st_atim.tv_sec\t/* Backward compatibility.  */\n-#   define st_mtime st_mtim.tv_sec\n-#   define st_ctime st_ctim.tv_sec\n-#  else\n-    __time_t st_atime;\t\t\t/* Time of last access.  */\n-    unsigned long int st_atimensec;\t/* Nscecs of last access.  */\n-    __time_t st_mtime;\t\t\t/* Time of last modification.  */\n-    unsigned long int st_mtimensec;\t/* Nsecs of last modification.  */\n-    __time_t st_ctime;\t\t\t/* Time of last status change.  */\n-    unsigned long int st_ctimensec;\t/* Nsecs of last status change.  */\n-#  endif\n-#  ifndef __USE_FILE_OFFSET64\n-    unsigned long int __glibc_reserved4;\n-    unsigned long int __glibc_reserved5;\n-#  else\n-    __ino64_t st_ino;\t\t\t/* File serial number.\t*/\n-#  endif\n-# endif\n-  };\n-# endif\n \n #ifdef __USE_LARGEFILE64\n-# if __WORDSIZE == 64\n /* Note stat64 is the same shape as stat.  */\n struct stat64\n   {\n@@ -138,7 +75,7 @@ struct stat64\n     int __glibc_reserved0;\n     __dev_t st_rdev;\t\t/* Device number, if device.  */\n     __off_t st_size;\t\t/* Size of file, in bytes.  */\n-#  ifdef __USE_XOPEN2K8\n+# ifdef __USE_XOPEN2K8\n     /* Nanosecond resolution timestamps are stored in a format\n        equivalent to 'struct timespec'.  This is the type used\n        whenever possible but the Unix namespace rules do not allow the\n@@ -148,66 +85,21 @@ struct stat64\n     struct timespec st_atim;\t\t/* Time of last access.  */\n     struct timespec st_mtim;\t\t/* Time of last modification.  */\n     struct timespec st_ctim;\t\t/* Time of last status change.  */\n-#   define st_atime st_atim.tv_sec\t/* Backward compatibility.  */\n-#   define st_mtime st_mtim.tv_sec\n-#   define st_ctime st_ctim.tv_sec\n-#  else\n+#  define st_atime st_atim.tv_sec\t/* Backward compatibility.  */\n+#  define st_mtime st_mtim.tv_sec\n+#  define st_ctime st_ctim.tv_sec\n+# else\n     __time_t st_atime;\t\t\t/* Time of last access.  */\n     unsigned long int st_atimensec;\t/* Nscecs of last access.  */\n     __time_t st_mtime;\t\t\t/* Time of last modification.  */\n     unsigned long int st_mtimensec;\t/* Nsecs of last modification.  */\n     __time_t st_ctime;\t\t\t/* Time of last status change.  */\n     unsigned long int st_ctimensec;\t/* Nsecs of last status change.  */\n-#  endif\n+# endif\n     __blksize_t st_blksize;\t/* Optimal block size for I/O.\t*/\n     __blkcnt64_t st_blocks;\t/* Nr. 512-byte blocks allocated.  */\n     long int __glibc_reserved[3];\n   };\n-# else\n-struct stat64\n-  {\n-#  ifdef __USE_TIME64_REDIRECTS\n-#   include <bits/struct_stat_time64_helper.h>\n-#  else\n-    __dev_t st_dev;\t\t\t/* Device.  */\n-    unsigned int __pad1;\n-\n-    __ino_t __st_ino;\t\t\t/* 32bit file serial number.\t*/\n-    __mode_t st_mode;\t\t\t/* File mode.  */\n-    __nlink_t st_nlink;\t\t\t/* Link count.  */\n-    __uid_t st_uid;\t\t\t/* User ID of the file's owner.\t*/\n-    __gid_t st_gid;\t\t\t/* Group ID of the file's group.*/\n-    __dev_t st_rdev;\t\t\t/* Device number, if device.  */\n-    unsigned int __pad2;\n-    __off64_t st_size;\t\t\t/* Size of file, in bytes.  */\n-    __blksize_t st_blksize;\t\t/* Optimal block size for I/O.  */\n-\n-    __blkcnt64_t st_blocks;\t\t/* Number 512-byte blocks allocated. */\n-#   ifdef __USE_XOPEN2K8\n-    /* Nanosecond resolution timestamps are stored in a format\n-       equivalent to 'struct timespec'.  This is the type used\n-       whenever possible but the Unix namespace rules do not allow the\n-       identifier 'timespec' to appear in the <sys/stat.h> header.\n-       Therefore we have to handle the use of this header in strictly\n-       standard-compliant sources special.  */\n-    struct timespec st_atim;\t\t/* Time of last access.  */\n-    struct timespec st_mtim;\t\t/* Time of last modification.  */\n-    struct timespec st_ctim;\t\t/* Time of last status change.  */\n-#    define st_atime st_atim.tv_sec\t/* Backward compatibility.  */\n-#    define st_mtime st_mtim.tv_sec\n-#    define st_ctime st_ctim.tv_sec\n-#   else\n-    __time_t st_atime;\t\t\t/* Time of last access.  */\n-    unsigned long int st_atimensec;\t/* Nscecs of last access.  */\n-    __time_t st_mtime;\t\t\t/* Time of last modification.  */\n-    unsigned long int st_mtimensec;\t/* Nsecs of last modification.  */\n-    __time_t st_ctime;\t\t\t/* Time of last status change.  */\n-    unsigned long int st_ctimensec;\t/* Nsecs of last status change.  */\n-#   endif\n-    __ino64_t st_ino;\t\t\t/* File serial number.\t\t*/\n-#  endif\n-  };\n-# endif\n #endif\n \n /* Tell code we have these members.  */\ndiff --git a/sysdeps/unix/sysv/linux/s390/bits/typesizes.h b/sysdeps/unix/sysv/linux/s390/bits/typesizes.h\nindex 826a1e425c..6e2be2270f 100644\n--- a/sysdeps/unix/sysv/linux/s390/bits/typesizes.h\n+++ b/sysdeps/unix/sysv/linux/s390/bits/typesizes.h\n@@ -57,42 +57,34 @@\n #define __TIMER_T_TYPE\t\tvoid *\n #define __BLKSIZE_T_TYPE\t__SLONGWORD_TYPE\n #define __FSID_T_TYPE\t\tstruct { int __val[2]; }\n-#if defined __GNUC__ && __GNUC__ <= 2\n-/* Compatibility with g++ 2.95.x.  */\n-#define __SSIZE_T_TYPE\t\t__SWORD_TYPE\n-#else\n-/* size_t is unsigned long int on s390 -m31.  */\n-#define __SSIZE_T_TYPE\t\t__SLONGWORD_TYPE\n-#endif\n+\n+/* With s390-32, __SSIZE_T_TYPE was __SWORD_TYPE for compatibility with\n+   g++ 2.95.x.  Afterwards __SLONGWORD_TYPE was needed as size_t was\n+   unsigned long int on s390-32.\n+   Now as only s390-64 exists, __SWORD_TYPE can be used as also used in the\n+   generic version as both types result in long int.  */\n+#define __SSIZE_T_TYPE         __SWORD_TYPE\n+\n #define __SYSCALL_SLONG_TYPE\t__SLONGWORD_TYPE\n #define __SYSCALL_ULONG_TYPE\t__ULONGWORD_TYPE\n-#define __CPU_MASK_TYPE \t__ULONGWORD_TYPE\n+#define __CPU_MASK_TYPE\t\t__ULONGWORD_TYPE\n \n-#ifdef __s390x__\n /* Tell the libc code that off_t and off64_t are actually the same type\n    for all ABI purposes, even if possibly expressed as different base types\n    for C type-checking purposes.  */\n-# define __OFF_T_MATCHES_OFF64_T\t1\n+#define __OFF_T_MATCHES_OFF64_T\t1\n \n /* Same for ino_t and ino64_t.  */\n-# define __INO_T_MATCHES_INO64_T\t1\n+#define __INO_T_MATCHES_INO64_T\t1\n \n /* And for __rlim_t and __rlim64_t.  */\n-# define __RLIM_T_MATCHES_RLIM64_T\t1\n+#define __RLIM_T_MATCHES_RLIM64_T\t1\n \n /* And for fsblkcnt_t, fsblkcnt64_t, fsfilcnt_t and fsfilcnt64_t.  */\n-# define __STATFS_MATCHES_STATFS64  1\n+#define __STATFS_MATCHES_STATFS64  1\n \n /* And for getitimer, setitimer and rusage  */\n-# define __KERNEL_OLD_TIMEVAL_MATCHES_TIMEVAL64 1\n-#else\n-# define __RLIM_T_MATCHES_RLIM64_T\t0\n-\n-# define __STATFS_MATCHES_STATFS64  0\n-\n-/* And for getitimer, setitimer and rusage  */\n-# define __KERNEL_OLD_TIMEVAL_MATCHES_TIMEVAL64 0\n-#endif\n+#define __KERNEL_OLD_TIMEVAL_MATCHES_TIMEVAL64 1\n \n /* Number of descriptors that can fit in an `fd_set'.  */\n #define\t__FD_SETSIZE\t\t1024\ndiff --git a/sysdeps/unix/sysv/linux/s390/kernel-features.h b/sysdeps/unix/sysv/linux/s390/kernel-features.h\nindex a955c18738..d7af29285f 100644\n--- a/sysdeps/unix/sysv/linux/s390/kernel-features.h\n+++ b/sysdeps/unix/sysv/linux/s390/kernel-features.h\n@@ -47,9 +47,6 @@\n # undef __ASSUME_DIRECT_SYSVIPC_SYSCALLS\n # undef __ASSUME_SYSVIPC_DEFAULT_IPC_64\n #endif\n-#ifndef __s390x__\n-# define __ASSUME_SYSVIPC_BROKEN_MODE_T\n-#endif\n \n #undef __ASSUME_CLONE_DEFAULT\n #define __ASSUME_CLONE_BACKWARDS2\ndiff --git a/sysdeps/unix/sysv/linux/s390/readelflib.c b/sysdeps/unix/sysv/linux/s390/readelflib.c\nindex 6229b705d2..87e900f536 100644\n--- a/sysdeps/unix/sysv/linux/s390/readelflib.c\n+++ b/sysdeps/unix/sysv/linux/s390/readelflib.c\n@@ -16,9 +16,6 @@\n    <https://www.gnu.org/licenses/>.  */\n \n \n-int process_elf32_file (const char *file_name, const char *lib,\n-\t\t\tint *flag, unsigned int *isa_level, char **soname,\n-\t\t\tvoid *file_contents, size_t file_length);\n int process_elf64_file (const char *file_name, const char *lib,\n \t\t\tint *flag, unsigned int *isa_level, char **soname,\n \t\t\tvoid *file_contents, size_t file_length);\n@@ -29,29 +26,15 @@ process_elf_file (const char *file_name, const char *lib, int *flag,\n \t\t  unsigned int *isa_level, char **soname, void *file_contents,\n \t\t  size_t file_length)\n {\n-  ElfW(Ehdr) *elf_header = (ElfW(Ehdr) *) file_contents;\n-  int ret;\n-\n-  if (elf_header->e_ident [EI_CLASS] == ELFCLASS32)\n-    return process_elf32_file (file_name, lib, flag, isa_level, soname,\n-\t\t\t       file_contents, file_length);\n-  else\n-    {\n-      ret = process_elf64_file (file_name, lib, flag, isa_level, soname,\n-\t\t\t       \tfile_contents, file_length);\n-      /* S/390 64bit libraries are always libc.so.6+.  */\n-      if (!ret)\n-\t*flag = FLAG_S390_LIB64|FLAG_ELF_LIBC6;\n-      return ret;\n-    }\n+  int ret = process_elf64_file (file_name, lib, flag, isa_level, soname,\n+\t\t\t\tfile_contents, file_length);\n+  /* S/390 64bit libraries are always libc.so.6+ which is already set\n+     in process_elf64_file.  */\n+  if (!ret)\n+    *flag |= FLAG_S390_LIB64;\n+  return ret;\n }\n \n-#undef __ELF_NATIVE_CLASS\n-#undef process_elf_file\n-#define process_elf_file process_elf32_file\n-#define __ELF_NATIVE_CLASS 32\n-#include \"elf/readelflib.c\"\n-\n #undef __ELF_NATIVE_CLASS\n #undef process_elf_file\n #define process_elf_file process_elf64_file\ndiff --git a/sysdeps/unix/sysv/linux/s390/s390-64/Makefile b/sysdeps/unix/sysv/linux/s390/s390-64/Makefile\nindex 6795734747..0c338cba36 100644\n--- a/sysdeps/unix/sysv/linux/s390/s390-64/Makefile\n+++ b/sysdeps/unix/sysv/linux/s390/s390-64/Makefile\n@@ -1,6 +1,3 @@\n-# See Makeconfig regarding the use of default-abi.\n-default-abi := 64\n-\n ifeq ($(subdir),misc)\n sysdep_headers += sys/elf.h\n endif\ndiff --git a/sysdeps/unix/sysv/linux/s390/sigcontextinfo.h b/sysdeps/unix/sysv/linux/s390/sigcontextinfo.h\nindex 08679ffc82..ac1fc28dc3 100644\n--- a/sysdeps/unix/sysv/linux/s390/sigcontextinfo.h\n+++ b/sysdeps/unix/sysv/linux/s390/sigcontextinfo.h\n@@ -23,11 +23,7 @@\n static inline uintptr_t\n sigcontext_get_pc (const ucontext_t *ctx)\n {\n-#ifdef __s390x__\n  return ctx->uc_mcontext.psw.addr;\n-#else\n- return ctx->uc_mcontext.psw.addr & 0x7FFFFFFF;\n-#endif\n }\n \n #endif\ndiff --git a/sysdeps/unix/sysv/linux/s390/sys/ucontext.h b/sysdeps/unix/sysv/linux/s390/sys/ucontext.h\nindex 1d4d979b6c..3bbddd08ba 100644\n--- a/sysdeps/unix/sysv/linux/s390/sys/ucontext.h\n+++ b/sysdeps/unix/sysv/linux/s390/sys/ucontext.h\n@@ -45,11 +45,7 @@ typedef unsigned long greg_t;\n    the register set is an array, we make gregset_t a simple array\n    that has the same size as s390_regs.  This is needed for the\n    elf_prstatus structure.  */\n-#if __WORDSIZE == 64\n-# define __NGREG 27\n-#else\n-# define __NGREG 36\n-#endif\n+#define __NGREG 27\n #ifdef __USE_MISC\n # define NGREG __NGREG\n #endif\ndiff --git a/sysdeps/unix/sysv/linux/s390/sysconf.c b/sysdeps/unix/sysv/linux/s390/sysconf.c\nindex 7083b63737..57ccaed4e3 100644\n--- a/sysdeps/unix/sysv/linux/s390/sysconf.c\n+++ b/sysdeps/unix/sysv/linux/s390/sysconf.c\n@@ -1,4 +1,4 @@\n-/* Get system parameters, e.g. cache information.  S390/S390x version.\n+/* Get system parameters, e.g. cache information.  S390x version.\n    Copyright (C) 2015-2026 Free Software Foundation, Inc.\n    This file is part of the GNU C Library.\n \n@@ -50,14 +50,9 @@ get_cache_info (int level, int attr, int type)\n \n   /* Check if ecag-instruction is available.\n      ecag - extract CPU attribute (only in zarch; arch >= z10; in as 2.24)  */\n-  if (!(features->hwcap & HWCAP_S390_STFLE)\n-#if !defined __s390x__\n-      || !(features->hwcap & HWCAP_S390_ZARCH)\n-      || !(features->hwcap & HWCAP_S390_HIGH_GPRS)\n-#endif /* !__s390x__ */\n-      )\n+  if (!(features->hwcap & HWCAP_S390_STFLE))\n     {\n-      /* stfle (or zarch, high-gprs on s390-32) is not available.\n+      /* stfle is not available.\n \t We are on an old machine. Return 256byte for LINESIZE for L1 d/i-cache,\n \t otherwise 0.  */\n       if (level == 1 && attr == CACHE_ATTR_LINESIZE)\n@@ -81,7 +76,6 @@ get_cache_info (int level, int attr, int type)\n   arg = (CACHE_LEVEL_MAX - level) * 8;\n   __asm__ __volatile__ (\".machine push\\n\\t\"\n \t\t\t\".machine \\\"z10\\\"\\n\\t\"\n-\t\t\t\".machinemode \\\"zarch_nohighgprs\\\"\\n\\t\"\n \t\t\t\"ecag %0,%%r0,0\\n\\t\"   /* returns 64bit unsigned integer.  */\n \t\t\t\"srlg %0,%0,0(%1)\\n\\t\" /* right align 8bit cache info field.  */\n \t\t\t\".machine pop\"\n@@ -97,7 +91,6 @@ get_cache_info (int level, int attr, int type)\n   cmd = (attr << 4) | ((level - 1) << 1) | type;\n   __asm__ __volatile__ (\".machine push\\n\\t\"\n \t\t\t\".machine \\\"z10\\\"\\n\\t\"\n-\t\t\t\".machinemode \\\"zarch_nohighgprs\\\"\\n\\t\"\n \t\t\t\"ecag %0,%%r0,0(%1)\\n\\t\"\n \t\t\t\".machine pop\"\n \t\t\t: \"=d\" (val)\ndiff --git a/sysdeps/unix/sysv/linux/s390/sysdep.h b/sysdeps/unix/sysv/linux/s390/sysdep.h\nindex ee2d92edff..593e70dc1e 100644\n--- a/sysdeps/unix/sysv/linux/s390/sysdep.h\n+++ b/sysdeps/unix/sysv/linux/s390/sysdep.h\n@@ -69,14 +69,9 @@\n #define VDSO_HASH  123718585\n \n /* List of system calls which are supported as vsyscalls.  */\n-#ifdef __s390x__\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-#else\n-#define HAVE_CLOCK_GETRES_VSYSCALL\t\"__kernel_clock_getres\"\n-#define HAVE_CLOCK_GETTIME_VSYSCALL\t\"__kernel_clock_gettime\"\n-#endif\n #define HAVE_GETTIMEOFDAY_VSYSCALL\t\"__kernel_gettimeofday\"\n #define HAVE_GETCPU_VSYSCALL\t\t\"__kernel_getcpu\"\n \ndiff --git a/sysdeps/unix/sysv/linux/s390/xstatver.h b/sysdeps/unix/sysv/linux/s390/xstatver.h\nindex 9923199e40..f24ab4a9ee 100644\n--- a/sysdeps/unix/sysv/linux/s390/xstatver.h\n+++ b/sysdeps/unix/sysv/linux/s390/xstatver.h\n@@ -1,19 +1,10 @@\n /* Versions of the 'struct stat' data structure used in compatibility xstat\n    functions.  */\n-\n-#include <bits/wordsize.h>\n-\n-#if __WORDSIZE == 64\n-# define _STAT_VER_KERNEL\t0\n-# define _STAT_VER_LINUX\t1\n-# define _MKNOD_VER_LINUX\t0\n-#else\n-# define _STAT_VER_LINUX_OLD\t1\n-# define _STAT_VER_KERNEL\t1\n-# define _STAT_VER_SVR4\t\t2\n-# define _STAT_VER_LINUX\t3\n-# define _MKNOD_VER_LINUX\t1\n-# define _MKNOD_VER_SVR4\t2\n-#endif\n+#define _STAT_VER_KERNEL\t0\n+#define _STAT_VER_LINUX\t\t1\n #define _STAT_VER\t\t_STAT_VER_LINUX\n+\n+/* Versions of the 'xmknod' interface used in compatibility xmknod\n+   functions.  */\n+#define _MKNOD_VER_LINUX\t0\n #define _MKNOD_VER\t\t_MKNOD_VER_LINUX\ndiff --git a/sysdeps/unix/sysv/linux/tst-ofdlocks-compat.c b/sysdeps/unix/sysv/linux/tst-ofdlocks-compat.c\nindex f9cdde3222..0947fff157 100644\n--- a/sysdeps/unix/sysv/linux/tst-ofdlocks-compat.c\n+++ b/sysdeps/unix/sysv/linux/tst-ofdlocks-compat.c\n@@ -41,9 +41,9 @@ do_prepare (int argc, char **argv)\n \n /* Linux between 4.13 and 4.15 return EOVERFLOW for LFS OFD locks usage\n    in compat mode (non-LFS ABI running on a LFS default kernel, such as\n-   i386 on a x86_64 kernel or s390-32 on a s390-64 kernel) [1].  This is\n-   a kernel issue because __NR_fcntl64 is the expected way to use OFD locks\n-   (used on GLIBC for both fcntl and fcntl64).\n+   i386 on a x86_64 kernel) [1].  This is a kernel issue because __NR_fcntl64\n+   is the expected way to use OFD locks (used on GLIBC for both fcntl and\n+   fcntl64).\n \n    [1] https://sourceware.org/ml/libc-alpha/2018-07/msg00243.html  */\n \ndiff --git a/sysdeps/unix/sysv/linux/xstat.c b/sysdeps/unix/sysv/linux/xstat.c\nindex a67139cafa..33863c3cb7 100644\n--- a/sysdeps/unix/sysv/linux/xstat.c\n+++ b/sysdeps/unix/sysv/linux/xstat.c\n@@ -43,7 +43,7 @@ __xstat (int vers, const char *name, struct stat *buf)\n \treturn r ?: stat_overflow (buf);\n # else\n \t/* Old kABIs with old non-LFS support, e.g. arm, i386, hppa, m68k,\n-\t   microblaze, s390, sh, powerpc, and sparc32.  */\n+\t   microblaze, sh, powerpc, and sparc32.  */\n \treturn INLINE_SYSCALL_CALL (stat, name, buf);\n # endif\n       }\ndiff --git a/sysdeps/unix/sysv/linux/xstat64.c b/sysdeps/unix/sysv/linux/xstat64.c\nindex 8baa8214bc..7d513e4af0 100644\n--- a/sysdeps/unix/sysv/linux/xstat64.c\n+++ b/sysdeps/unix/sysv/linux/xstat64.c\n@@ -72,7 +72,7 @@ ___xstat64 (int vers, const char *name, struct stat64 *buf)\n     return INLINE_SYSCALL_CALL (fstatat64, AT_FDCWD, name, buf, 0);\n # else\n   /* Old kABIs with old non-LFS support, e.g. arm, i386, hppa, m68k,\n-     microblaze, s390, sh, mips32, powerpc32, and sparc32.  */\n+     microblaze, sh, mips32, powerpc32, and sparc32.  */\n   return INLINE_SYSCALL_CALL (stat64, name, buf);\n # endif /* STAT_IS_KERNEL_STAT  */\n #endif /* XSTAT_IS_XSTAT64  */\n",
    "prefixes": [
        "2/5"
    ]
}