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