Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/1.2/patches/2221358/?format=api
{ "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" ] }