From patchwork Thu Apr 9 08:47:06 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Stefan Liebler X-Patchwork-Id: 132845 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from vm01.sourceware.org (localhost [127.0.0.1]) by sourceware.org (Postfix) with ESMTP id 7DFB84BA2E05 for ; Thu, 9 Apr 2026 08:56:49 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 7DFB84BA2E05 Authentication-Results: sourceware.org; dkim=pass (2048-bit key, unprotected) header.d=ibm.com header.i=@ibm.com header.a=rsa-sha256 header.s=pp1 header.b=tm1O9uny X-Original-To: libc-alpha@sourceware.org Delivered-To: libc-alpha@sourceware.org Received: from mx0a-001b2d01.pphosted.com (mx0a-001b2d01.pphosted.com [148.163.156.1]) by sourceware.org (Postfix) with ESMTPS id AB9FE4BA2E10 for ; Thu, 9 Apr 2026 08:51:19 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org AB9FE4BA2E10 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=linux.ibm.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=linux.ibm.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org AB9FE4BA2E10 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=148.163.156.1 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1775724680; cv=none; b=tAPud2AaxQEb6gAwGN4PCDkojVfxSMaVmO6gdo3D/yWHVYSrqIsOcV6ZNVZOteJOTjXIug7Y3GDpP7hM1qLBFbjWMZiTfc9pz6cmTlyD4Za+jmtoD6mwGWn+V7C/kOH8CvAvGSeTY8GHHPlrOVFwdR3cRT+zAjbzrOjLVxb8Vjw= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1775724680; c=relaxed/simple; bh=Iw0qcPOoMUiNUY/1AXjg8db8PaWHt7UmyqLo1vD//7Q=; h=DKIM-Signature:From:To:Subject:Date:Message-ID:MIME-Version; b=xByJFDKRtnUWmYOAZH7T5612Zx3ELr84wI8fJgqQx3TSsxnPgwnKhFap8afoPrWNhVlg1FXcrMAs9HBOF1Ws/kC5aqnNPeDId7KfemhbQWN0RikxrA8rI5eGZ8TLame7u3jOYNEtv0IkGRbFmnLitA+eDgSe5WsbOb1xhvOyTWI= ARC-Authentication-Results: i=1; server2.sourceware.org DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org AB9FE4BA2E10 Received: from pps.filterd (m0360083.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 638Iauf62591197 for ; Thu, 9 Apr 2026 08:51:18 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h=cc :content-transfer-encoding:date:from:in-reply-to:message-id :mime-version:references:subject:to; s=pp1; bh=RYBkj/IFkJzjvb3/Z aLfCGvLBYTKoGcP3NKIsaElQxs=; b=tm1O9unyS+zNmJYXNkqwZUPkZqkKD/Q4/ FvKfB60KMrhR0uPOUA0CP5VW2bMc2OVUp4UkjYWflyzLJ/B3kfmeiwFIJLoot7Mx 07Ls1Hv6MZ8Jd1Sqyx0HnvmCUyHO9GSNv2CuG0rgbezBMHayfJBzO7xBKMBukXWk 21DNLKHf/qVnmzCDbaMk7rat7YthHyqJ271L+4aV0zMPzmkXd1JvkgO7p+tHjKPg zF8KZatDk8JDsi5ZgPdqdYUbHousgASL7jIZ7/ssccI6gYq6UjuoUo6tcjyh91d9 oWKHEqpqoYKmJA/GPuyvrYRVs9th+2mhIRjxuXGFt1o74goP876jQ== Received: from ppma11.dal12v.mail.ibm.com (db.9e.1632.ip4.static.sl-reverse.com [50.22.158.219]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 4dcn2ec4ew-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for ; Thu, 09 Apr 2026 08:51:17 +0000 (GMT) Received: from pps.filterd (ppma11.dal12v.mail.ibm.com [127.0.0.1]) by ppma11.dal12v.mail.ibm.com (8.18.1.2/8.18.1.2) with ESMTP id 6397aYt3014356 for ; Thu, 9 Apr 2026 08:51:17 GMT Received: from smtprelay06.fra02v.mail.ibm.com ([9.218.2.230]) by ppma11.dal12v.mail.ibm.com (PPS) with ESMTPS id 4dcmg4tvg5-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for ; Thu, 09 Apr 2026 08:51:16 +0000 Received: from smtpav03.fra02v.mail.ibm.com (smtpav03.fra02v.mail.ibm.com [10.20.54.102]) by smtprelay06.fra02v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 6398pB8O27459864 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 9 Apr 2026 08:51:11 GMT Received: from smtpav03.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 95E2C20043; Thu, 9 Apr 2026 08:51:11 +0000 (GMT) Received: from smtpav03.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 5C3082004D; Thu, 9 Apr 2026 08:51:11 +0000 (GMT) Received: from a35lp68.lnxne.boe (unknown [9.87.84.240]) by smtpav03.fra02v.mail.ibm.com (Postfix) with ESMTP; Thu, 9 Apr 2026 08:51:11 +0000 (GMT) From: Stefan Liebler To: libc-alpha@sourceware.org Cc: Stefan Liebler Subject: [PATCH 1/5] s390: Remove support for s390-32. Date: Thu, 9 Apr 2026 10:47:06 +0200 Message-ID: <20260409085102.3475867-2-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 X-TM-AS-GCONF: 00 X-Proofpoint-ORIG-GUID: 2H_6gfnkksOf4qUxmW482FHKrYy7gAPQ X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNDA5MDA3NyBTYWx0ZWRfX13zwKaZ+6qFN +QvByy/Ir2D587kbPJTDYR0lxivxAdUrpvaKi8mTMmjOo+Y7Oq4yFe8ZUPbaURJBGiJKOxw/fcX FTobQJo5soFv6IxRukfQkwyuj0Yzpy+90ZuahWzSeFaK3tut+ZLbjJChgT7G/aLmejTMGEqjWr7 YQv3rkPJtqsKZdXYcUNAV26pj2iA7ihMSvse5U/d7CMN5p2z3S7Rja4Eq90vTyMZDzdQp6QUyLC KWWgdMcQ3uJdwKMDDbwxu7PlqrmCJPeWdbQLgco2WsRDCbPruQLR+seHIm/6Gk0vVZfBzBtDYb9 e4vn0WQIJe8Zu2whS+pAZiWJ5hvud4u91PP06nqqsLstYOYYdNq3S+xSWeIAfgJWD2Ia/m8kHiz gHSskzHX7BxiAzkxxJy/xLtp5cu5ZGtyycTMRLiVPB36ETxIwLHueGV3UEs13zrRr9lSPvv1jWu IhCSmiKzpEHoDZoyXnQ== X-Authority-Analysis: v=2.4 cv=Cfw4Irrl c=1 sm=1 tr=0 ts=69d76886 cx=c_pps a=aDMHemPKRhS1OARIsFnwRA==:117 a=aDMHemPKRhS1OARIsFnwRA==:17 a=A5OVakUREuEA:10 a=VkNPw1HP01LnGYTKEx00:22 a=RnoormkPH1_aCDwRdu11:22 a=iQ6ETzBq9ecOQQE5vZCe:22 a=mDV3o1hIAAAA:8 a=s3kzTyyZQRi_GxO_xJoA:9 a=b5yvp1CzAETj8YAn:21 X-Proofpoint-GUID: 2H_6gfnkksOf4qUxmW482FHKrYy7gAPQ X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-04-09_02,2026-04-08_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 phishscore=0 clxscore=1015 adultscore=0 suspectscore=0 priorityscore=1501 impostorscore=0 bulkscore=0 spamscore=0 lowpriorityscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2604010000 definitions=main-2604090077 X-Spam-Status: No, score=-10.1 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_EF, GIT_PATCH_0, KAM_SHORT, KAM_STOCKGEN, RCVD_IN_DNSWL_LOW, RCVD_IN_MSPIKE_H4, RCVD_IN_MSPIKE_WL, RCVD_IN_VALIDITY_RPBL_BLOCKED, RCVD_IN_VALIDITY_SAFE_BLOCKED, SPF_HELO_NONE, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on sourceware.org X-BeenThere: libc-alpha@sourceware.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Libc-alpha mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: libc-alpha-bounces~patchwork=sourceware.org@sourceware.org The linux 6.19 release has removed support for compat syscalls on s390x. Therefore s390-linux-gnu (31bit) configuration was deprecated with glibc 2.43: commit 638d437dbf9c68e40986edaa9b0d1c2e72a1ae81 "Deprecate s390-linux-gnu (31bit)" While deprecation, the build-many-glibcs.py script has already removed s390 (31bit). Now explicitely exit with an error in sysdeps/s390/preconfigure if somebody tries to build glibc for s390 (31bit). Furthermore all s390-32 specific files are removed. --- NEWS | 2 + sysdeps/s390/preconfigure | 14 +- sysdeps/s390/preconfigure.ac | 13 + sysdeps/s390/s390-32/Implies | 1 - sysdeps/s390/s390-32/Makefile | 9 - sysdeps/s390/s390-32/Versions | 6 - sysdeps/s390/s390-32/__longjmp.c | 88 - sysdeps/s390/s390-32/add_n.S | 62 - sysdeps/s390/s390-32/addmul_1.S | 57 - sysdeps/s390/s390-32/bits/wordsize.h | 11 - sysdeps/s390/s390-32/bsd-_setjmp.S | 1 - sysdeps/s390/s390-32/bsd-setjmp.S | 1 - sysdeps/s390/s390-32/crti.S | 104 - sysdeps/s390/s390-32/crtn.S | 47 - sysdeps/s390/s390-32/dl-machine.h | 450 --- sysdeps/s390/s390-32/dl-trampoline.S | 33 - sysdeps/s390/s390-32/dl-trampoline.h | 336 -- sysdeps/s390/s390-32/mul_1.S | 54 - sysdeps/s390/s390-32/s390-mcount.S | 88 - sysdeps/s390/s390-32/setjmp.S | 123 - sysdeps/s390/s390-32/stackguard-macros.h | 15 - sysdeps/s390/s390-32/start.S | 211 -- sysdeps/s390/s390-32/strncpy-z900.S | 88 - sysdeps/s390/s390-32/sub_n.S | 61 - sysdeps/s390/s390-32/symbol-hacks.h | 21 - sysdeps/s390/s390-32/sysdep.h | 100 - sysdeps/s390/s390-32/tst-audit.h | 25 - sysdeps/unix/sysv/linux/s390/s390-32/Makefile | 31 - sysdeps/unix/sysv/linux/s390/s390-32/Versions | 56 - .../sysv/linux/s390/s390-32/____longjmp_chk.c | 52 - .../linux/s390/s390-32/__makecontext_ret.S | 43 - .../sysv/linux/s390/s390-32/arch-syscall.h | 441 --- .../sysv/linux/s390/s390-32/c++-types.data | 67 - sysdeps/unix/sysv/linux/s390/s390-32/clone.S | 73 - sysdeps/unix/sysv/linux/s390/s390-32/clone3.S | 77 - .../unix/sysv/linux/s390/s390-32/getcontext.S | 96 - .../unix/sysv/linux/s390/s390-32/getutent.c | 32 - .../unix/sysv/linux/s390/s390-32/getutent_r.c | 37 - .../unix/sysv/linux/s390/s390-32/getutid.c | 32 - .../unix/sysv/linux/s390/s390-32/getutid_r.c | 34 - .../unix/sysv/linux/s390/s390-32/getutline.c | 32 - .../sysv/linux/s390/s390-32/getutline_r.c | 33 - .../unix/sysv/linux/s390/s390-32/getutmp.c | 36 - .../unix/sysv/linux/s390/s390-32/getutxent.c | 29 - .../unix/sysv/linux/s390/s390-32/getutxid.c | 29 - .../unix/sysv/linux/s390/s390-32/getutxline.c | 29 - .../linux/s390/s390-32/glob64-lstat-compat.c | 2 - .../sysv/linux/s390/s390-32/kernel_stat.h | 40 - .../unix/sysv/linux/s390/s390-32/ld.abilist | 8 - .../s390/s390-32/libBrokenLocale.abilist | 1 - .../sysv/linux/s390/s390-32/libanl.abilist | 1 - .../unix/sysv/linux/s390/s390-32/libc.abilist | 3271 ----------------- .../s390/s390-32/libc_malloc_debug.abilist | 30 - .../sysv/linux/s390/s390-32/libdl.abilist | 4 - .../unix/sysv/linux/s390/s390-32/libm.abilist | 1444 -------- .../sysv/linux/s390/s390-32/libnsl.abilist | 121 - .../linux/s390/s390-32/libpthread.abilist | 18 - .../sysv/linux/s390/s390-32/libresolv.abilist | 67 - .../sysv/linux/s390/s390-32/librt.abilist | 5 - .../linux/s390/s390-32/libthread_db.abilist | 40 - .../sysv/linux/s390/s390-32/libutil-compat.c | 23 - .../sysv/linux/s390/s390-32/libutil.abilist | 2 - sysdeps/unix/sysv/linux/s390/s390-32/login.c | 35 - .../unix/sysv/linux/s390/s390-32/login32.c | 37 - .../sysv/linux/s390/s390-32/makecontext.c | 100 - .../unix/sysv/linux/s390/s390-32/oldglob.c | 2 - .../sysv/linux/s390/s390-32/pointer_guard.h | 45 - .../sysv/linux/s390/s390-32/posix_fadvise64.c | 66 - .../unix/sysv/linux/s390/s390-32/pututxline.c | 29 - .../unix/sysv/linux/s390/s390-32/setcontext.S | 73 - .../sysv/linux/s390/s390-32/swapcontext.S | 114 - .../unix/sysv/linux/s390/s390-32/syscall.S | 42 - .../sysv/linux/s390/s390-32/syscall_cancel.S | 62 - .../sysv/linux/s390/s390-32/syscalls.list | 18 - sysdeps/unix/sysv/linux/s390/s390-32/sysdep.S | 73 - sysdeps/unix/sysv/linux/s390/s390-32/sysdep.h | 180 - .../sysv/linux/s390/s390-32/time64-compat.h | 2 - .../unix/sysv/linux/s390/s390-32/updwtmp.c | 31 - .../unix/sysv/linux/s390/s390-32/updwtmpx.c | 29 - .../sysv/linux/s390/s390-32/utmp-compat.h | 20 - .../sysv/linux/s390/s390-32/utmp-convert.h | 85 - sysdeps/unix/sysv/linux/s390/s390-32/utmp32.c | 183 - sysdeps/unix/sysv/linux/s390/s390-32/utmp32.h | 51 - .../sysv/linux/s390/s390-32/utmpx-convert.h | 84 - .../unix/sysv/linux/s390/s390-32/utmpx32.c | 138 - .../unix/sysv/linux/s390/s390-32/utmpx32.h | 59 - sysdeps/unix/sysv/linux/s390/s390-32/vfork.S | 47 - 87 files changed, 26 insertions(+), 9936 deletions(-) create mode 100644 sysdeps/s390/preconfigure.ac delete mode 100644 sysdeps/s390/s390-32/Implies delete mode 100644 sysdeps/s390/s390-32/Makefile delete mode 100644 sysdeps/s390/s390-32/Versions delete mode 100644 sysdeps/s390/s390-32/__longjmp.c delete mode 100644 sysdeps/s390/s390-32/add_n.S delete mode 100644 sysdeps/s390/s390-32/addmul_1.S delete mode 100644 sysdeps/s390/s390-32/bits/wordsize.h delete mode 100644 sysdeps/s390/s390-32/bsd-_setjmp.S delete mode 100644 sysdeps/s390/s390-32/bsd-setjmp.S delete mode 100644 sysdeps/s390/s390-32/crti.S delete mode 100644 sysdeps/s390/s390-32/crtn.S delete mode 100644 sysdeps/s390/s390-32/dl-machine.h delete mode 100644 sysdeps/s390/s390-32/dl-trampoline.S delete mode 100644 sysdeps/s390/s390-32/dl-trampoline.h delete mode 100644 sysdeps/s390/s390-32/mul_1.S delete mode 100644 sysdeps/s390/s390-32/s390-mcount.S delete mode 100644 sysdeps/s390/s390-32/setjmp.S delete mode 100644 sysdeps/s390/s390-32/stackguard-macros.h delete mode 100644 sysdeps/s390/s390-32/start.S delete mode 100644 sysdeps/s390/s390-32/strncpy-z900.S delete mode 100644 sysdeps/s390/s390-32/sub_n.S delete mode 100644 sysdeps/s390/s390-32/symbol-hacks.h delete mode 100644 sysdeps/s390/s390-32/sysdep.h delete mode 100644 sysdeps/s390/s390-32/tst-audit.h delete mode 100644 sysdeps/unix/sysv/linux/s390/s390-32/Makefile delete mode 100644 sysdeps/unix/sysv/linux/s390/s390-32/Versions delete mode 100644 sysdeps/unix/sysv/linux/s390/s390-32/____longjmp_chk.c delete mode 100644 sysdeps/unix/sysv/linux/s390/s390-32/__makecontext_ret.S delete mode 100644 sysdeps/unix/sysv/linux/s390/s390-32/arch-syscall.h delete mode 100644 sysdeps/unix/sysv/linux/s390/s390-32/c++-types.data delete mode 100644 sysdeps/unix/sysv/linux/s390/s390-32/clone.S delete mode 100644 sysdeps/unix/sysv/linux/s390/s390-32/clone3.S delete mode 100644 sysdeps/unix/sysv/linux/s390/s390-32/getcontext.S delete mode 100644 sysdeps/unix/sysv/linux/s390/s390-32/getutent.c delete mode 100644 sysdeps/unix/sysv/linux/s390/s390-32/getutent_r.c delete mode 100644 sysdeps/unix/sysv/linux/s390/s390-32/getutid.c delete mode 100644 sysdeps/unix/sysv/linux/s390/s390-32/getutid_r.c delete mode 100644 sysdeps/unix/sysv/linux/s390/s390-32/getutline.c delete mode 100644 sysdeps/unix/sysv/linux/s390/s390-32/getutline_r.c delete mode 100644 sysdeps/unix/sysv/linux/s390/s390-32/getutmp.c delete mode 100644 sysdeps/unix/sysv/linux/s390/s390-32/getutxent.c delete mode 100644 sysdeps/unix/sysv/linux/s390/s390-32/getutxid.c delete mode 100644 sysdeps/unix/sysv/linux/s390/s390-32/getutxline.c delete mode 100644 sysdeps/unix/sysv/linux/s390/s390-32/glob64-lstat-compat.c delete mode 100644 sysdeps/unix/sysv/linux/s390/s390-32/kernel_stat.h delete mode 100644 sysdeps/unix/sysv/linux/s390/s390-32/ld.abilist delete mode 100644 sysdeps/unix/sysv/linux/s390/s390-32/libBrokenLocale.abilist delete mode 100644 sysdeps/unix/sysv/linux/s390/s390-32/libanl.abilist delete mode 100644 sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist delete mode 100644 sysdeps/unix/sysv/linux/s390/s390-32/libc_malloc_debug.abilist delete mode 100644 sysdeps/unix/sysv/linux/s390/s390-32/libdl.abilist delete mode 100644 sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist delete mode 100644 sysdeps/unix/sysv/linux/s390/s390-32/libnsl.abilist delete mode 100644 sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist delete mode 100644 sysdeps/unix/sysv/linux/s390/s390-32/libresolv.abilist delete mode 100644 sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist delete mode 100644 sysdeps/unix/sysv/linux/s390/s390-32/libthread_db.abilist delete mode 100644 sysdeps/unix/sysv/linux/s390/s390-32/libutil-compat.c delete mode 100644 sysdeps/unix/sysv/linux/s390/s390-32/libutil.abilist delete mode 100644 sysdeps/unix/sysv/linux/s390/s390-32/login.c delete mode 100644 sysdeps/unix/sysv/linux/s390/s390-32/login32.c delete mode 100644 sysdeps/unix/sysv/linux/s390/s390-32/makecontext.c delete mode 100644 sysdeps/unix/sysv/linux/s390/s390-32/oldglob.c delete mode 100644 sysdeps/unix/sysv/linux/s390/s390-32/pointer_guard.h delete mode 100644 sysdeps/unix/sysv/linux/s390/s390-32/posix_fadvise64.c delete mode 100644 sysdeps/unix/sysv/linux/s390/s390-32/pututxline.c delete mode 100644 sysdeps/unix/sysv/linux/s390/s390-32/setcontext.S delete mode 100644 sysdeps/unix/sysv/linux/s390/s390-32/swapcontext.S delete mode 100644 sysdeps/unix/sysv/linux/s390/s390-32/syscall.S delete mode 100644 sysdeps/unix/sysv/linux/s390/s390-32/syscall_cancel.S delete mode 100644 sysdeps/unix/sysv/linux/s390/s390-32/syscalls.list delete mode 100644 sysdeps/unix/sysv/linux/s390/s390-32/sysdep.S delete mode 100644 sysdeps/unix/sysv/linux/s390/s390-32/sysdep.h delete mode 100644 sysdeps/unix/sysv/linux/s390/s390-32/time64-compat.h delete mode 100644 sysdeps/unix/sysv/linux/s390/s390-32/updwtmp.c delete mode 100644 sysdeps/unix/sysv/linux/s390/s390-32/updwtmpx.c delete mode 100644 sysdeps/unix/sysv/linux/s390/s390-32/utmp-compat.h delete mode 100644 sysdeps/unix/sysv/linux/s390/s390-32/utmp-convert.h delete mode 100644 sysdeps/unix/sysv/linux/s390/s390-32/utmp32.c delete mode 100644 sysdeps/unix/sysv/linux/s390/s390-32/utmp32.h delete mode 100644 sysdeps/unix/sysv/linux/s390/s390-32/utmpx-convert.h delete mode 100644 sysdeps/unix/sysv/linux/s390/s390-32/utmpx32.c delete mode 100644 sysdeps/unix/sysv/linux/s390/s390-32/utmpx32.h delete mode 100644 sysdeps/unix/sysv/linux/s390/s390-32/vfork.S diff --git a/NEWS b/NEWS index c6e9a83923..97a9e12b57 100644 --- a/NEWS +++ b/NEWS @@ -25,6 +25,8 @@ Deprecated and removed features, and other changes affecting compatibility: alignment, because no object of size 1 can have a fundamental alignment greater than 1. + * The s390-linux-gnu (31bit) configuration is no longer supported. + Changes to build and runtime requirements: [Add changes to build and runtime requirements here] diff --git a/sysdeps/s390/preconfigure b/sysdeps/s390/preconfigure index d6302b0c15..0536f3eb80 100644 --- a/sysdeps/s390/preconfigure +++ b/sysdeps/s390/preconfigure @@ -1,6 +1,14 @@ -# preconfigure fragment for s390. +# This file is generated from configure.ac by Autoconf. DO NOT EDIT! + # Local preconfigure fragment for sysdeps/s390 case "$machine" in -s390) base_machine=s390 machine=s390/s390-32 ;; -s390x) base_machine=s390 machine=s390/s390-64 ;; +s390x) + base_machine=s390 + machine=s390/s390-64 + ;; +s390) + as_fn_error $? "s390-32 is not supported anymore." "$LINENO" 5 + exit 1 +;; esac + diff --git a/sysdeps/s390/preconfigure.ac b/sysdeps/s390/preconfigure.ac new file mode 100644 index 0000000000..aee9e4e0cc --- /dev/null +++ b/sysdeps/s390/preconfigure.ac @@ -0,0 +1,13 @@ +GLIBC_PROVIDES dnl See aclocal.m4 in the top level source directory. +# Local preconfigure fragment for sysdeps/s390 + +case "$machine" in +s390x) + base_machine=s390 + machine=s390/s390-64 + ;; +s390) + AC_MSG_ERROR(s390-32 is not supported anymore.) + exit 1 +;; +esac diff --git a/sysdeps/s390/s390-32/Implies b/sysdeps/s390/s390-32/Implies deleted file mode 100644 index 39a34c5f57..0000000000 --- a/sysdeps/s390/s390-32/Implies +++ /dev/null @@ -1 +0,0 @@ -wordsize-32 diff --git a/sysdeps/s390/s390-32/Makefile b/sysdeps/s390/s390-32/Makefile deleted file mode 100644 index a07f2986ae..0000000000 --- a/sysdeps/s390/s390-32/Makefile +++ /dev/null @@ -1,9 +0,0 @@ -ifeq ($(subdir),gmon) -sysdep_routines += s390-mcount -endif - -ifeq ($(subdir),elf) -CFLAGS-rtld.c += -Wno-uninitialized -Wno-unused -CFLAGS-dl-load.c += -Wno-unused -CFLAGS-dl-reloc.c += -Wno-unused -endif diff --git a/sysdeps/s390/s390-32/Versions b/sysdeps/s390/s390-32/Versions deleted file mode 100644 index 2b020f8f58..0000000000 --- a/sysdeps/s390/s390-32/Versions +++ /dev/null @@ -1,6 +0,0 @@ -libc { - GLIBC_2.0 { - # Functions from libgcc. - __divdi3; __moddi3; __udivdi3; __umoddi3; - } -} diff --git a/sysdeps/s390/s390-32/__longjmp.c b/sysdeps/s390/s390-32/__longjmp.c deleted file mode 100644 index 52da6cb9ec..0000000000 --- a/sysdeps/s390/s390-32/__longjmp.c +++ /dev/null @@ -1,88 +0,0 @@ -/* Copyright (C) 2000-2026 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, see - . */ - -#include -#include -#include -#include -#include -#include -#include -#include - -/* See sysdeps/unix/sysv/linux/s390/s390-32/pointer_guard.h. */ -#if IS_IN (rtld) -# undef PTR_DEMANGLE -#endif - -/* Jump to the position specified by ENV, causing the - setjmp call there to return VAL, or 1 if VAL is 0. */ -void -__longjmp (__jmp_buf env, int val) -{ -#ifdef PTR_DEMANGLE - uintptr_t guard = THREAD_GET_POINTER_GUARD (); -# ifdef CHECK_SP - CHECK_SP (env, guard); -# endif -#elif defined CHECK_SP - CHECK_SP (env, 0); -#endif - register int r2 __asm__ ("%r2") = val == 0 ? 1 : val; -#ifdef PTR_DEMANGLE - register uintptr_t r3 __asm__ ("%r3") = guard; - register void *r1 __asm__ ("%r1") = (void *) env; -#endif - /* Restore registers and jump back. */ - __asm__ __volatile__ ( - /* longjmp probe expects longjmp first argument, second - argument and target address. */ -#ifdef PTR_DEMANGLE - "lm %%r4,%%r5,32(%1)\n\t" - "xr %%r4,%2\n\t" - "xr %%r5,%2\n\t" - LIBC_PROBE_ASM (longjmp, 4@%1 -4@%0 4@%%r4) -#else - LIBC_PROBE_ASM (longjmp, 4@%1 -4@%0 4@%%r14) -#endif - - /* restore fpregs */ - "ld %%f6,48(%1)\n\t" - "ld %%f4,40(%1)\n\t" - - /* restore gregs and return to jmp_buf target */ -#ifdef PTR_DEMANGLE - "lm %%r6,%%r13,0(%1)\n\t" - "lr %%r15,%%r5\n\t" - LIBC_PROBE_ASM (longjmp_target, 4@%1 -4@%0 4@%%r4) - "br %%r4" -#else - "lm %%r6,%%r15,0(%1)\n\t" - LIBC_PROBE_ASM (longjmp_target, 4@%1 -4@%0 4@%%r14) - "br %%r14" -#endif - : : "r" (r2), -#ifdef PTR_DEMANGLE - "r" (r1), "r" (r3) -#else - "a" (env) -#endif - ); - - /* Avoid `volatile function does return' warnings. */ - for (;;); -} diff --git a/sysdeps/s390/s390-32/add_n.S b/sysdeps/s390/s390-32/add_n.S deleted file mode 100644 index b365dbd10e..0000000000 --- a/sysdeps/s390/s390-32/add_n.S +++ /dev/null @@ -1,62 +0,0 @@ -/* Add two limb vectors of the same length > 0 and store sum in a third - limb vector. - Copyright (C) 2000-2026 Free Software Foundation, Inc. - This file is part of the GNU MP Library. - - The GNU MP Library is free software; you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as published by - the Free Software Foundation; either version 2.1 of the License, or (at your - option) any later version. - - The GNU MP Library is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public - License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with the GNU MP Library; see the file COPYING.LIB. If not, - see . */ - -/* - INPUT PARAMETERS - res_ptr %r2 - s1_ptr %r3 - s2_ptr %r4 - size %r5 -*/ - -#include "sysdep.h" -#include "asm-syntax.h" - - .text -ENTRY(__mpn_add_n) - st %r6,24(%r15) # save register 6 - cfi_offset (%r6, -72) - sr %r1,%r1 - lhi %r0,1 # cannot use ahi to add carry, use alr -.L0: l %r6,0(%r1,%r3) # .L0 -> no carry from last add - al %r6,0(%r1,%r4) - st %r6,0(%r1,%r2) - la %r1,4(0,%r1) - brc 3,.L3 -.L1: brct %r5,.L0 - slr %r2,%r2 # no last carry to return - j .Lexit -.L2: l %r6,0(%r1,%r3) # .L2 -> carry from last add - al %r6,0(%r1,%r4) - brc 3,.L4 - alr %r6,%r0 # no carry yet, add carry from last add - st %r6,0(%r1,%r2) - la %r1,4(0,%r1) - brc 12,.L1 # new carry ? -.L3: brct %r5,.L2 - lr %r2,%r0 # return last carry - j .Lexit -.L4: alr %r6,%r0 # already a carry, add carry from last add - st %r6,0(%r1,%r2) - la %r1,4(0,%r1) - brct %r5,.L2 - lr %r2,%r0 # return last carry -.Lexit: l %r6,24(%r15) # restore register 6 - br %r14 -END(__mpn_add_n) diff --git a/sysdeps/s390/s390-32/addmul_1.S b/sysdeps/s390/s390-32/addmul_1.S deleted file mode 100644 index 5a1e052067..0000000000 --- a/sysdeps/s390/s390-32/addmul_1.S +++ /dev/null @@ -1,57 +0,0 @@ -/* S390 __mpn_addmul_1 -- Multiply a limb vector with a limb and add - the result to a second limb vector. - Copyright (C) 2000-2026 Free Software Foundation, Inc. - This file is part of the GNU MP Library. - - The GNU MP Library is free software; you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as published by - the Free Software Foundation; either version 2.1 of the License, or (at your - option) any later version. - - The GNU MP Library is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public - License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with the GNU MP Library; see the file COPYING.LIB. If not, - see . */ - -/* - INPUT PARAMETERS - res_ptr %r2 - s1_ptr %r3 - sizeP %r4 - s2_limb %r5 -*/ - -#include "sysdep.h" -#include "asm-syntax.h" - - .text -ENTRY(__mpn_addmul_1) - st %r6,24(%r15) - cfi_offset (%r6, -72) - slr %r6,%r6 # cy_limb = 0 -.L0: icm %r1,15,0(%r3) # get s1_ptr[i] - mr %r0,%r5 # umul_ppmm(prod_high,prod_low,s1_ptr[j],s2_limb) - jnm .L1 - alr %r0,%r5 -.L1: ltr %r5,%r5 - jnm .L2 - al %r0,0(%r3) -.L2: alr %r1,%r6 # prod_low += cy_limb - lr %r6,%r0 # cy_limb = prod_high - brc 12,.L3 - ahi %r6,1 # + (prod_low < cy_limb) -.L3: al %r1,0(%r2) # prod_low += res_ptr[i] - brc 12,.L4 - ahi %r6,1 # cy_limb++ -.L4: st %r1,0(%r2) - la %r2,4(0,%r2) - la %r3,4(0,%r3) - brct %r4,.L0 - lr %r2,%r6 # return cy_limb - l %r6,24(%r15) -.Lexit: br %r14 -END(__mpn_addmul_1) diff --git a/sysdeps/s390/s390-32/bits/wordsize.h b/sysdeps/s390/s390-32/bits/wordsize.h deleted file mode 100644 index 129e47182b..0000000000 --- a/sysdeps/s390/s390-32/bits/wordsize.h +++ /dev/null @@ -1,11 +0,0 @@ -/* Determine the wordsize from the preprocessor defines. */ - -#if defined __s390x__ -# define __WORDSIZE 64 -#else -# define __WORDSIZE 32 -# define __WORDSIZE32_SIZE_ULONG 1 -# define __WORDSIZE32_PTRDIFF_LONG 0 -#endif - -#define __WORDSIZE_TIME64_COMPAT32 0 diff --git a/sysdeps/s390/s390-32/bsd-_setjmp.S b/sysdeps/s390/s390-32/bsd-_setjmp.S deleted file mode 100644 index 1417270201..0000000000 --- a/sysdeps/s390/s390-32/bsd-_setjmp.S +++ /dev/null @@ -1 +0,0 @@ -/* We don't need any code here since the setjmp.S file contains it. */ diff --git a/sysdeps/s390/s390-32/bsd-setjmp.S b/sysdeps/s390/s390-32/bsd-setjmp.S deleted file mode 100644 index 1417270201..0000000000 --- a/sysdeps/s390/s390-32/bsd-setjmp.S +++ /dev/null @@ -1 +0,0 @@ -/* We don't need any code here since the setjmp.S file contains it. */ diff --git a/sysdeps/s390/s390-32/crti.S b/sysdeps/s390/s390-32/crti.S deleted file mode 100644 index aef7134fb6..0000000000 --- a/sysdeps/s390/s390-32/crti.S +++ /dev/null @@ -1,104 +0,0 @@ -/* Special .init and .fini section support for S/390. - Copyright (C) 2000-2026 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - In addition to the permissions in the GNU Lesser General Public - License, the Free Software Foundation gives you unlimited - permission to link the compiled version of this file with other - programs, and to distribute those programs without any restriction - coming from the use of this file. (The GNU Lesser General Public - License restrictions do apply in other respects; for example, they - cover modification of the file, and distribution when not linked - into another program.) - - Note that people who make modified versions of this file are not - obligated to grant this special exception for their modified - versions; it is their choice whether to do so. The GNU Lesser - General Public License gives permission to release a modified - version without this exception; this exception also makes it - possible to release a modified version which carries forward this - exception. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, see - . */ - -/* crti.S puts a function prologue at the beginning of the .init and - .fini sections and defines global symbols for those addresses, so - they can be called as functions. The symbols _init and _fini are - magic and cause the linker to emit DT_INIT and DT_FINI. */ - -#include -#include - -#ifndef PREINIT_FUNCTION -# define PREINIT_FUNCTION __gmon_start__ -#endif - -#ifndef PREINIT_FUNCTION_WEAK -# define PREINIT_FUNCTION_WEAK 1 -#endif - -#if PREINIT_FUNCTION_WEAK - weak_extern (PREINIT_FUNCTION) -#else - .hidden PREINIT_FUNCTION -#endif - - .section .init,"ax",@progbits - .globl _init - .hidden _init - .type _init,@function - .align 4 -_init: - stm %r6,%r15,24(%r15) - bras %r13,1f -0: -#if PREINIT_FUNCTION_WEAK - .long PREINIT_FUNCTION@GOT -#else - .long PREINIT_FUNCTION-0b -#endif - .long _GLOBAL_OFFSET_TABLE_-0b -1: lr %r1,%r15 - ahi %r15,-96 - st %r1,0(%r15) - l %r12,4(%r13) - ar %r12,%r13 - l %r1,0(%r13) -#if PREINIT_FUNCTION_WEAK - l %r1,0(%r1,%r12) - ltr %r1,%r1 - je 2f -#else - la %r1,0(%r1,%r13) -#endif - basr %r14,%r1 - .align 4,0x07 -2: - - .section .fini,"ax",@progbits - .globl _fini - .hidden _fini - .type _fini,@function - .align 4 -_fini: - stm %r6,%r15,24(%r15) - bras %r13,1f -0: .long _GLOBAL_OFFSET_TABLE_-0b -1: lr %r1,%r15 - ahi %r15,-96 - st %r1,0(%r15) - l %r12,0(%r13) - ar %r12,%r13 - .align 4,0x07 diff --git a/sysdeps/s390/s390-32/crtn.S b/sysdeps/s390/s390-32/crtn.S deleted file mode 100644 index f3fdc5df42..0000000000 --- a/sysdeps/s390/s390-32/crtn.S +++ /dev/null @@ -1,47 +0,0 @@ -/* Special .init and .fini section support for S/390. - Copyright (C) 2000-2026 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - In addition to the permissions in the GNU Lesser General Public - License, the Free Software Foundation gives you unlimited - permission to link the compiled version of this file with other - programs, and to distribute those programs without any restriction - coming from the use of this file. (The GNU Lesser General Public - License restrictions do apply in other respects; for example, they - cover modification of the file, and distribution when not linked - into another program.) - - Note that people who make modified versions of this file are not - obligated to grant this special exception for their modified - versions; it is their choice whether to do so. The GNU Lesser - General Public License gives permission to release a modified - version without this exception; this exception also makes it - possible to release a modified version which carries forward this - exception. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, see - . */ - -/* crtn.S puts function epilogues in the .init and .fini sections - corresponding to the prologues in crti.S. */ - - .section .init,"ax",@progbits - l %r4,152(%r15) - lm %r6,%r15,120(%r15) - br %r4 - - .section .fini,"ax",@progbits - l %r4,152(%r15) - lm %r6,%r15,120(%r15) - br %r4 diff --git a/sysdeps/s390/s390-32/dl-machine.h b/sysdeps/s390/s390-32/dl-machine.h deleted file mode 100644 index 998b129b90..0000000000 --- a/sysdeps/s390/s390-32/dl-machine.h +++ /dev/null @@ -1,450 +0,0 @@ -/* Machine-dependent ELF dynamic relocation inline functions. S390 Version. - Copyright (C) 2000-2026 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, see - . */ - -#ifndef dl_machine_h -#define dl_machine_h - -#define ELF_MACHINE_NAME "s390" - -#include -#include -#include -#include -#include -#include -#include - -#define ELF_MACHINE_IRELATIVE R_390_IRELATIVE - -/* This is an older, now obsolete value. */ -#define EM_S390_OLD 0xA390 - -/* Return nonzero iff ELF header is compatible with the running host. */ -static inline int -elf_machine_matches_host (const Elf32_Ehdr *ehdr) -{ - /* Check if the kernel provides the high gpr facility if needed by - the binary. */ - if ((ehdr->e_flags & EF_S390_HIGH_GPRS) - && !(GLRO (dl_hwcap) & HWCAP_S390_HIGH_GPRS)) - return 0; - - return (ehdr->e_machine == EM_S390 || ehdr->e_machine == EM_S390_OLD) - && ehdr->e_ident[EI_CLASS] == ELFCLASS32; -} - - -/* Return the run-time load address of the shared object. */ -static inline Elf32_Addr -elf_machine_load_address (void) -{ - /* Starting from binutils-2.23, the linker will define the magic symbol - __ehdr_start to point to our own ELF header. */ - extern const ElfW(Ehdr) __ehdr_start attribute_hidden; - return (ElfW(Addr)) &__ehdr_start; -} - -/* Return the link-time address of _DYNAMIC. */ -static inline Elf32_Addr -elf_machine_dynamic (void) -{ - extern ElfW(Dyn) _DYNAMIC[] attribute_hidden; - return (ElfW(Addr)) _DYNAMIC - elf_machine_load_address (); -} - -/* Set up the loaded object described by L so its unrelocated PLT - entries will jump to the on-demand fixup code in dl-runtime.c. */ - -static inline int __attribute__ ((unused)) -elf_machine_runtime_setup (struct link_map *l, struct r_scope_elem *scope[], - int lazy, int profile) -{ - extern void _dl_runtime_resolve (Elf32_Word); - extern void _dl_runtime_profile (Elf32_Word); -#if defined HAVE_S390_VX_ASM_SUPPORT - extern void _dl_runtime_resolve_vx (Elf32_Word); - extern void _dl_runtime_profile_vx (Elf32_Word); -#endif - - - if (l->l_info[DT_JMPREL] && lazy) - { - /* The GOT entries for functions in the PLT have not yet been filled - in. Their initial contents will arrange when called to push an - offset into the .rel.plt section, push _GLOBAL_OFFSET_TABLE_[1], - and then jump to _GLOBAL_OFFSET_TABLE[2]. */ - Elf32_Addr *got; - got = (Elf32_Addr *) D_PTR (l, l_info[DT_PLTGOT]); - /* If a library is prelinked but we have to relocate anyway, - we have to be able to undo the prelinking of .got.plt. - The prelinker saved us here address of .plt + 0x2c. */ - if (got[1]) - { - l->l_mach.plt = got[1] + l->l_addr; - l->l_mach.jmprel = (const Elf32_Rela *) D_PTR (l, l_info[DT_JMPREL]); - } - got[1] = (Elf32_Addr) l; /* Identify this shared object. */ - - /* The got[2] entry contains the address of a function which gets - called to get the address of a so far unresolved function and - jump to it. The profiling extension of the dynamic linker allows - to intercept the calls to collect information. In this case we - don't store the address in the GOT so that all future calls also - end in this function. */ -#ifdef SHARED - if (__glibc_unlikely (profile)) - { -# if defined HAVE_S390_VX_ASM_SUPPORT - if (GLRO(dl_hwcap) & HWCAP_S390_VX) - got[2] = (Elf32_Addr) &_dl_runtime_profile_vx; - else - got[2] = (Elf32_Addr) &_dl_runtime_profile; -# else - got[2] = (Elf32_Addr) &_dl_runtime_profile; -# endif - - if (GLRO(dl_profile) != NULL - && _dl_name_match_p (GLRO(dl_profile), l)) - /* This is the object we are looking for. Say that we really - want profiling and the timers are started. */ - GL(dl_profile_map) = l; - } - else -#endif - { - /* This function will get called to fix up the GOT entry indicated by - the offset on the stack, and then jump to the resolved address. */ -#if defined HAVE_S390_VX_ASM_SUPPORT - if (GLRO(dl_hwcap) & HWCAP_S390_VX) - got[2] = (Elf32_Addr) &_dl_runtime_resolve_vx; - else - got[2] = (Elf32_Addr) &_dl_runtime_resolve; -#else - got[2] = (Elf32_Addr) &_dl_runtime_resolve; -#endif - } - } - - return lazy; -} - -/* Mask identifying addresses reserved for the user program, - where the dynamic linker should not map anything. */ -#define ELF_MACHINE_USER_ADDRESS_MASK 0xf8000000UL - -/* Initial entry point code for the dynamic linker. - The C function `_dl_start' is the real entry point; - its return value is the user program's entry point. */ - -#define RTLD_START __asm__ ("\n\ -.text\n\ -.align 4\n\ -.globl _start\n\ -.globl _dl_start_user\n\ -_start:\n\ - basr %r13,0\n\ -0: ahi %r13,.Llit-0b\n\ - lr %r2,%r15\n\ - # Alloc stack frame\n\ - ahi %r15,-96\n\ - # Set the back chain to zero\n\ - xc 0(4,%r15),0(%r15)\n\ - # Call _dl_start with %r2 pointing to arg on stack\n\ - l %r14,.Ladr1-.Llit(%r13)\n\ - bas %r14,0(%r14,%r13) # call _dl_start\n\ -_dl_start_user:\n\ - # Save the user entry point address in %r8.\n\ - lr %r8,%r2\n\ - # Point %r12 at the GOT.\n\ - l %r12,.Ladr0-.Llit(%r13)\n\ - ar %r12,%r13\n\ - # The special initializer gets called with the stack just\n\ - # as the application's entry point will see it; it can\n\ - # switch stacks if it moves these contents over.\n\ -" RTLD_START_SPECIAL_INIT "\n\ - # Call the function to run the initializers.\n\ - # Load the parameters:\n\ - # (%r2, %r3, %r4, %r5) = (_dl_loaded, argc, argv, envp)\n\ -4: l %r2,_rtld_local@GOT(%r12)\n\ - l %r2,0(%r2)\n\ - l %r3,96(%r15)\n\ - la %r4,100(%r15)\n\ - lr %r5,%r3\n\ - sll %r5,2\n\ - la %r5,104(%r5,%r15)\n\ - l %r1,.Ladr4-.Llit(%r13)\n\ - bas %r14,0(%r1,%r13)\n\ - # Pass our finalizer function to the user in %r14, as per ELF ABI.\n\ - l %r14,_dl_fini@GOT(%r12)\n\ - # Free stack frame\n\ - ahi %r15,96\n\ - # Jump to the user's entry point (saved in %r8).\n\ - br %r8\n\ -.Llit:\n\ -.Ladr0: .long _GLOBAL_OFFSET_TABLE_-.Llit\n\ -.Ladr1: .long _dl_start-.Llit\n\ -.Ladr4: .long _dl_init@PLT-.Llit\n\ -"); - -#ifndef RTLD_START_SPECIAL_INIT -#define RTLD_START_SPECIAL_INIT /* nothing */ -#endif - -/* ELF_RTYPE_CLASS_PLT iff TYPE describes relocation of a PLT entry or - TLS variable, so undefined references should not be allowed to - define the value. - ELF_RTYPE_CLASS_COPY iff TYPE should not be allowed to resolve to one - of the main executable's symbols, as for a COPY reloc. */ -#define elf_machine_type_class(type) \ - ((((type) == R_390_JMP_SLOT || (type) == R_390_TLS_DTPMOD \ - || (type) == R_390_TLS_DTPOFF || (type) == R_390_TLS_TPOFF) \ - * ELF_RTYPE_CLASS_PLT) \ - | (((type) == R_390_COPY) * ELF_RTYPE_CLASS_COPY)) - -/* A reloc type used for ld.so cmdline arg lookups to reject PLT entries. */ -#define ELF_MACHINE_JMP_SLOT R_390_JMP_SLOT - -/* We define an initialization functions. This is called very early in - _dl_sysdep_start. */ -#define DL_PLATFORM_INIT dl_platform_init () - -static inline void __attribute__ ((unused)) -dl_platform_init (void) -{ - if (GLRO(dl_platform) != NULL && *GLRO(dl_platform) == '\0') - /* Avoid an empty string which would disturb us. */ - GLRO(dl_platform) = NULL; - -#ifdef SHARED - /* init_cpu_features has been called early from __libc_start_main in - static executable. */ - init_cpu_features (&GLRO(dl_s390_cpu_features)); -#endif -} - -static inline Elf32_Addr -elf_machine_fixup_plt (struct link_map *map, lookup_t t, - const ElfW(Sym) *refsym, const ElfW(Sym) *sym, - const Elf32_Rela *reloc, - Elf32_Addr *reloc_addr, Elf32_Addr value) -{ - return *reloc_addr = value; -} - -/* Return the final value of a plt relocation. */ -static inline Elf32_Addr -elf_machine_plt_value (struct link_map *map, const Elf32_Rela *reloc, - Elf32_Addr value) -{ - return value; -} - -/* Names of the architecture-specific auditing callback functions. */ -#define ARCH_LA_PLTENTER s390_32_gnu_pltenter -#define ARCH_LA_PLTEXIT s390_32_gnu_pltexit - -#endif /* !dl_machine_h */ - - -#ifdef RESOLVE_MAP - -/* Perform the relocation specified by RELOC and SYM (which is fully resolved). - MAP is the object containing the reloc. */ - -static inline void -__attribute__ ((always_inline)) -elf_machine_rela (struct link_map *map, struct r_scope_elem *scope[], - const Elf32_Rela *reloc, const Elf32_Sym *sym, - const struct r_found_version *version, - void *const reloc_addr_arg, int skip_ifunc) -{ - Elf32_Addr *const reloc_addr = reloc_addr_arg; - const unsigned int r_type = ELF32_R_TYPE (reloc->r_info); - -#if !defined RTLD_BOOTSTRAP - if (__glibc_unlikely (r_type == R_390_RELATIVE)) - *reloc_addr = map->l_addr + reloc->r_addend; - else -#endif - if (__glibc_unlikely (r_type == R_390_NONE)) - return; - else - { -#if !defined RTLD_BOOTSTRAP - /* Only needed for R_390_COPY below. */ - const Elf32_Sym *const refsym = sym; -#endif - struct link_map *sym_map = RESOLVE_MAP (map, scope, &sym, version, - r_type); - Elf32_Addr value = SYMBOL_ADDRESS (sym_map, sym, true); - - if (sym != NULL - && __builtin_expect (ELFW(ST_TYPE) (sym->st_info) == STT_GNU_IFUNC, 0) - && __builtin_expect (sym->st_shndx != SHN_UNDEF, 1) - && __builtin_expect (!skip_ifunc, 1)) - value = elf_ifunc_invoke (value); - - switch (r_type) - { - case R_390_IRELATIVE: - value = map->l_addr + reloc->r_addend; - if (__glibc_likely (!skip_ifunc)) - value = elf_ifunc_invoke (value); - *reloc_addr = value; - break; - - case R_390_GLOB_DAT: - case R_390_JMP_SLOT: - *reloc_addr = value + reloc->r_addend; - break; - - case R_390_TLS_DTPMOD: -#ifdef RTLD_BOOTSTRAP - /* During startup the dynamic linker is always the module - with index 1. - XXX If this relocation is necessary move before RESOLVE - call. */ - *reloc_addr = 1; -#else - /* Get the information from the link map returned by the - resolv function. */ - if (sym_map != NULL) - *reloc_addr = sym_map->l_tls_modid; -#endif - break; - case R_390_TLS_DTPOFF: -#ifndef RTLD_BOOTSTRAP - /* During relocation all TLS symbols are defined and used. - Therefore the offset is already correct. */ - if (sym != NULL) - *reloc_addr = sym->st_value + reloc->r_addend; -#endif - break; - case R_390_TLS_TPOFF: - /* The offset is negative, forward from the thread pointer. */ -#ifdef RTLD_BOOTSTRAP - *reloc_addr = sym->st_value + reloc->r_addend - map->l_tls_offset; -#else - /* We know the offset of the object the symbol is contained in. - It is a negative value which will be added to the - thread pointer. */ - if (sym != NULL) - { - CHECK_STATIC_TLS (map, sym_map); - *reloc_addr = (sym->st_value + reloc->r_addend - - sym_map->l_tls_offset); - } -#endif - break; - -#ifndef RTLD_BOOTSTRAP - /* Not needed in dl-conflict.c. */ - case R_390_COPY: - if (sym == NULL) - /* This can happen in trace mode if an object could not be - found. */ - break; - if (__builtin_expect (sym->st_size > refsym->st_size, 0) - || (__builtin_expect (sym->st_size < refsym->st_size, 0) - && __builtin_expect (GLRO(dl_verbose), 0))) - { - const char *strtab; - - strtab = (const char *) D_PTR(map,l_info[DT_STRTAB]); - _dl_error_printf ("\ -%s: Symbol `%s' has different size in shared object, consider re-linking\n", - RTLD_PROGNAME, strtab + refsym->st_name); - } - memcpy (reloc_addr_arg, (void *) value, - MIN (sym->st_size, refsym->st_size)); - break; - case R_390_32: - *reloc_addr = value + reloc->r_addend; - break; - case R_390_16: - *(unsigned short *) reloc_addr = value + reloc->r_addend; - break; - case R_390_8: - *(char *) reloc_addr = value + reloc->r_addend; - break; - case R_390_PC32: - *reloc_addr = value + reloc->r_addend - (Elf32_Addr) reloc_addr; - break; - case R_390_PC16DBL: - *(unsigned short *) reloc_addr = (unsigned short) - ((short) (value + reloc->r_addend - (Elf32_Addr) reloc_addr) >> 1); - break; - case R_390_PC32DBL: - *(unsigned int *) reloc_addr = (unsigned int) - ((int) (value + reloc->r_addend - (Elf32_Addr) reloc_addr) >> 1); - break; - case R_390_PC16: - *(unsigned short *) reloc_addr = - value + reloc->r_addend - (Elf32_Addr) reloc_addr; - break; - case R_390_NONE: - break; -#endif -#if !defined(RTLD_BOOTSTRAP) || defined(_NDEBUG) - default: - /* We add these checks in the version to relocate ld.so only - if we are still debugging. */ - _dl_reloc_bad_type (map, r_type, 0); - break; -#endif - } - } -} - -static inline void -__attribute__ ((always_inline)) -elf_machine_rela_relative (Elf32_Addr l_addr, const Elf32_Rela *reloc, - void *const reloc_addr_arg) -{ - Elf32_Addr *const reloc_addr = reloc_addr_arg; - *reloc_addr = l_addr + reloc->r_addend; -} - -static inline void -__attribute__ ((always_inline)) -elf_machine_lazy_rel (struct link_map *map, struct r_scope_elem *scope[], - Elf32_Addr l_addr, const Elf32_Rela *reloc, - int skip_ifunc) -{ - Elf32_Addr *const reloc_addr = (void *) (l_addr + reloc->r_offset); - const unsigned int r_type = ELF32_R_TYPE (reloc->r_info); - /* Check for unexpected PLT reloc type. */ - if (__glibc_likely (r_type == R_390_JMP_SLOT)) - { - if (__builtin_expect (map->l_mach.plt, 0) == 0) - *reloc_addr += l_addr; - else - *reloc_addr = map->l_mach.plt + (reloc - map->l_mach.jmprel) * 32; - } - else if (__glibc_likely (r_type == R_390_IRELATIVE)) - { - Elf32_Addr value = map->l_addr + reloc->r_addend; - if (__glibc_likely (!skip_ifunc)) - value = elf_ifunc_invoke (value); - *reloc_addr = value; - } - else - _dl_reloc_bad_type (map, r_type, 1); -} - -#endif /* RESOLVE_MAP */ diff --git a/sysdeps/s390/s390-32/dl-trampoline.S b/sysdeps/s390/s390-32/dl-trampoline.S deleted file mode 100644 index c2564f95dd..0000000000 --- a/sysdeps/s390/s390-32/dl-trampoline.S +++ /dev/null @@ -1,33 +0,0 @@ -/* PLT trampolines. s390 version. - Copyright (C) 2005-2026 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, see - . */ - -#include - - .text -/* Create variant of _dl_runtime_resolve/profile for machines before z13. - No vector registers are saved/restored. */ -#include - -#if defined HAVE_S390_VX_ASM_SUPPORT -/* Create variant of _dl_runtime_resolve/profile for z13 and newer. - The vector registers are saved/restored, too.*/ -# define _dl_runtime_resolve _dl_runtime_resolve_vx -# define _dl_runtime_profile _dl_runtime_profile_vx -# define RESTORE_VRS -# include -#endif diff --git a/sysdeps/s390/s390-32/dl-trampoline.h b/sysdeps/s390/s390-32/dl-trampoline.h deleted file mode 100644 index 9599ec4fca..0000000000 --- a/sysdeps/s390/s390-32/dl-trampoline.h +++ /dev/null @@ -1,336 +0,0 @@ -/* PLT trampolines. s390 version. - Copyright (C) 2016-2026 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, see - . */ - -/* This code is used in dl-runtime.c to call the `fixup' function - and then redirect to the address it returns. */ - -/* The PLT stubs will call _dl_runtime_resolve/_dl_runtime_profile - * with the following linkage: - * r2 - r6 : parameter registers - * f0, f2 : floating point parameter registers - * v24, v26, v28, v30, v25, v27, v29, v31 : vector parameter registers - * 24(r15), 28(r15) : PLT arguments PLT1, PLT2 - * 96(r15) : additional stack parameters - * The slightly tightened normal clobber rules for function calls apply: - * r0 : call saved (for __fentry__) - * r1 - r5 : call clobbered - * r6 - r13 : call saved - * r14 : return address (call clobbered) - * r15 : stack pointer (call saved) - * f4, f6 : call saved - * f0 - f3, f5, f7 - f15 : call clobbered - * v0 - v3, v5, v7 - v15 : bytes 0-7 overlap with fprs: call clobbered - bytes 8-15: call clobbered - * v4, v6 : bytes 0-7 overlap with f4, f6: call saved - bytes 8-15: call clobbered - * v16 - v31 : call clobbered - */ - -#define CFA_OFF 96 -#define FRAME_OFF CFA_OFF + FRAME_SIZE -#define V24_OFF -224 -#define V25_OFF -208 -#define V26_OFF -192 -#define V27_OFF -176 -#define V28_OFF -160 -#define V29_OFF -144 -#define V30_OFF -128 -#define V31_OFF -112 -#define R0_OFF -76 -#define PLT1_OFF -72 -#define PLT2_OFF -68 -#define R2_OFF -64 -#define R3_OFF -60 -#define R4_OFF -56 -#define R5_OFF -52 -#define R14_OFF -48 -#define R15_OFF -44 -#define F0_OFF -40 -#define F2_OFF -32 - .globl _dl_runtime_resolve - .type _dl_runtime_resolve, @function - cfi_startproc - .align 16 -_dl_runtime_resolve: - st %r0,CFA_OFF+R0_OFF(%r15) - cfi_offset (r0, R0_OFF) - stm %r2,%r5,CFA_OFF+R2_OFF(%r15) # save registers - cfi_offset (r2, R2_OFF) - cfi_offset (r3, R3_OFF) - cfi_offset (r4, R4_OFF) - cfi_offset (r5, R5_OFF) - stm %r14,%r15,CFA_OFF+R14_OFF(%r15) - cfi_offset (r14, R14_OFF) - cfi_offset (r15, R15_OFF) - std %f0,CFA_OFF+F0_OFF(%r15) - cfi_offset (f0, F0_OFF) - std %f2,CFA_OFF+F2_OFF(%r15) - cfi_offset (f2, F2_OFF) - lr %r0,%r15 - lm %r2,%r3,CFA_OFF+PLT1_OFF(%r15) # load args saved by PLT -#ifdef RESTORE_VRS -# define FRAME_SIZE (CFA_OFF + 128) - ahi %r15,-FRAME_SIZE # create stack frame - cfi_adjust_cfa_offset (FRAME_SIZE) - .machine push - .machine "z13" - .machinemode "zarch_nohighgprs" - vstm %v24,%v31,FRAME_OFF+V24_OFF(%r15) # save call-clobbered vr args - cfi_offset (v24, V24_OFF) - cfi_offset (v25, V25_OFF) - cfi_offset (v26, V26_OFF) - cfi_offset (v27, V27_OFF) - cfi_offset (v28, V28_OFF) - cfi_offset (v29, V29_OFF) - cfi_offset (v30, V30_OFF) - cfi_offset (v31, V31_OFF) - .machine pop -#else -# define FRAME_SIZE CFA_OFF - ahi %r15,-FRAME_SIZE # create stack frame - cfi_adjust_cfa_offset (FRAME_SIZE) -#endif - st %r0,0(%r15) # write backchain - basr %r1,0 -0: l %r14,1f-0b(%r1) - bas %r14,0(%r14,%r1) # call _dl_fixup - lr %r1,%r2 # function addr returned in r2 -#ifdef RESTORE_VRS - .machine push - .machine "z13" - .machinemode "zarch_nohighgprs" - vlm %v24,%v31,FRAME_OFF+V24_OFF(%r15) # restore vector registers - .machine pop -#endif - lm %r14,%r15,FRAME_OFF+R14_OFF(%r15) # restore frame and registers -#undef FRAME_SIZE - cfi_def_cfa_offset (CFA_OFF) - ld %f0,CFA_OFF+F0_OFF(%r15) - ld %f2,CFA_OFF+F2_OFF(%r15) - lm %r2,%r5,CFA_OFF+R2_OFF(%r15) - l %r0,CFA_OFF+R0_OFF(%r15) - br %r1 -1: .long _dl_fixup - 0b - cfi_endproc - .size _dl_runtime_resolve, .-_dl_runtime_resolve -#undef V24_OFF -#undef V25_OFF -#undef V26_OFF -#undef V27_OFF -#undef V28_OFF -#undef V29_OFF -#undef V30_OFF -#undef V31_OFF -#undef R0_OFF -#undef PLT1_OFF -#undef PLT2_OFF -#undef R2_OFF -#undef R3_OFF -#undef R4_OFF -#undef R5_OFF -#undef R14_OFF -#undef R15_OFF -#undef F0_OFF -#undef F2_OFF - -#if !defined PROF && defined SHARED -# define SIZEOF_STRUCT_LA_S390_32_REGS 168 -# define REGS_OFF -264 -# define R2_OFF -264 -# define R3_OFF -260 -# define R4_OFF -256 -# define R5_OFF -252 -# define R6_OFF -248 -# define F0_OFF -240 -# define F2_OFF -232 -# define V24_OFF -224 -# define V25_OFF -208 -# define V26_OFF -192 -# define V27_OFF -176 -# define V28_OFF -160 -# define V29_OFF -144 -# define V30_OFF -128 -# define V31_OFF -112 -# define R0_OFF -88 -# define R12_OFF -84 -# define R14_OFF -80 -# define FRAMESIZE_OFF -76 -# define PLT1_OFF -72 -# define PLT2_OFF -68 -# define PREGS_OFF -64 -# define RETVAL_OFF -56 -# define RET_R2_OFF -56 -# define RET_R3_OFF -52 -# define RET_F0_OFF -48 -# define RET_V24_OFF -40 - .globl _dl_runtime_profile - .type _dl_runtime_profile, @function - cfi_startproc - .align 16 -_dl_runtime_profile: - st %r0,CFA_OFF+R0_OFF(%r15) - cfi_offset (r0, R0_OFF) - st %r12,CFA_OFF+R12_OFF(%r15) # r12 is used as backup of r15 - cfi_offset (r12, R12_OFF) - st %r14,CFA_OFF+R14_OFF(%r15) - cfi_offset (r14, R14_OFF) - lr %r12,%r15 # backup stack pointer - cfi_def_cfa_register (12) -# define FRAME_SIZE (CFA_OFF + SIZEOF_STRUCT_LA_S390_32_REGS) - ahi %r15,-FRAME_SIZE # create stack frame: - st %r12,0(%r15) # save backchain - - stm %r2,%r6,FRAME_OFF+R2_OFF(%r15) # save registers - cfi_offset (r2, R2_OFF) # + r6 needed as arg for - cfi_offset (r3, R3_OFF) # _dl_profile_fixup - cfi_offset (r4, R4_OFF) - cfi_offset (r5, R5_OFF) - cfi_offset (r6, R6_OFF) - std %f0,FRAME_OFF+F0_OFF(%r15) - cfi_offset (f0, F0_OFF) - std %f2,FRAME_OFF+F2_OFF(%r15) - cfi_offset (f2, F2_OFF) -# ifdef RESTORE_VRS - .machine push - .machine "z13" - .machinemode "zarch_nohighgprs" - vstm %v24,%v31,FRAME_OFF+V24_OFF(%r15) # store call-clobbered - cfi_offset (v24, V24_OFF) # vr arguments - cfi_offset (v25, V25_OFF) - cfi_offset (v26, V26_OFF) - cfi_offset (v27, V27_OFF) - cfi_offset (v28, V28_OFF) - cfi_offset (v29, V29_OFF) - cfi_offset (v30, V30_OFF) - cfi_offset (v31, V31_OFF) - .machine pop -# endif - - lm %r2,%r3,CFA_OFF+PLT1_OFF(%r12) # load arguments saved by PLT - lr %r4,%r14 # return address as third parm - basr %r1,0 -0: l %r14,6f-0b(%r1) - la %r5,FRAME_OFF+REGS_OFF(%r15) # struct La_s390_32_regs * - la %r6,CFA_OFF+FRAMESIZE_OFF(%r12) # long int * framesize - bas %r14,0(%r14,%r1) # call resolver - lr %r1,%r2 # function addr returned in r2 - ld %f0,FRAME_OFF+F0_OFF(%r15) # restore call-clobbered - ld %f2,FRAME_OFF+F2_OFF(%r15) # arg fprs -# ifdef RESTORE_VRS - .machine push - .machine "z13" - .machinemode "zarch_nohighgprs" # restore call-clobbered - vlm %v24,%v31,FRAME_OFF+V24_OFF(%r15)# arg vrs - .machine pop -# endif - icm %r0,15,CFA_OFF+FRAMESIZE_OFF(%r12) # load & test framesize - jnm 2f - # framesize < 0 means no - lm %r2,%r6,FRAME_OFF+R2_OFF(%r15) # pltexit call, so we can do a - # tail call without - # copying the arg overflow area - lr %r15,%r12 # remove stack frame - cfi_def_cfa_register (15) - l %r14,CFA_OFF+R14_OFF(%r15) # restore registers - l %r12,CFA_OFF+R12_OFF(%r15) - l %r0,CFA_OFF+R0_OFF(%r15) - br %r1 # tail call - - cfi_def_cfa_register (12) -2: la %r4,FRAME_OFF+REGS_OFF(%r15) # struct La_s390_32_regs * - st %r4,CFA_OFF+PREGS_OFF(%r12) - jz 4f # framesize == 0 ? - ahi %r0,7 # align framesize to 8 - lhi %r2,-8 - nr %r0,%r2 - slr %r15,%r0 # make room for framesize bytes - st %r12,0(%r15) # save backchain - la %r2,FRAME_OFF+REGS_OFF(%r15) - la %r3,CFA_OFF(%r12) - srl %r0,3 -3: mvc 0(8,%r2),0(%r3) # copy additional parameters - la %r2,8(%r2) - la %r3,8(%r3) - brct %r0,3b -4: lm %r2,%r6,0(%r4) # load register parameters - basr %r14,%r1 # call resolved function - stm %r2,%r3,CFA_OFF+RET_R2_OFF(%r12) # store return vals r2, r3, f0 - std %f0,CFA_OFF+RET_F0_OFF(%r12) # to struct La_s390_32_retval -# ifdef RESTORE_VRS - .machine push - .machine "z13" - vst %v24,CFA_OFF+RET_V24_OFF(%r12) # store return value v24 - .machine pop -# endif - lm %r2,%r4,CFA_OFF+PLT1_OFF(%r12) # r2, r3: args saved by PLT - # r4: struct La_s390_32_regs * - basr %r1,0 -5: l %r14,7f-5b(%r1) - la %r5,CFA_OFF+RETVAL_OFF(%r12) # struct La_s390_32_retval * - bas %r14,0(%r14,%r1) # call _dl_audit_pltexit - - lr %r15,%r12 # remove stack frame -# undef FRAME_SIZE - cfi_def_cfa_register (15) - l %r14,CFA_OFF+R14_OFF(%r15) # restore registers - l %r12,CFA_OFF+R12_OFF(%r15) - l %r0,CFA_OFF+R0_OFF(%r15) - lm %r2,%r3,CFA_OFF+RET_R2_OFF(%r15) # restore return values - ld %f0,CFA_OFF+RET_F0_OFF(%r15) -# ifdef RESTORE_VRS - .machine push - .machine "z13" - vl %v24,CFA_OFF+RET_V24_OFF(%r15) # restore return value v24 - .machine pop -# endif - br %r14 - -6: .long _dl_profile_fixup - 0b -7: .long _dl_audit_pltexit - 5b - cfi_endproc - .size _dl_runtime_profile, .-_dl_runtime_profile -# undef SIZEOF_STRUCT_LA_S390_32_REGS -# undef REGS_OFF -# undef R2_OFF -# undef R3_OFF -# undef R4_OFF -# undef R5_OFF -# undef R6_OFF -# undef F0_OFF -# undef F2_OFF -# undef V24_OFF -# undef V25_OFF -# undef V26_OFF -# undef V27_OFF -# undef V28_OFF -# undef V29_OFF -# undef V30_OFF -# undef V31_OFF -# undef R0_OFF -# undef R12_OFF -# undef R14_OFF -# undef FRAMESIZE_OFF -# undef PLT1_OFF -# undef PLT2_OFF -# undef PREGS_OFF -# undef RETVAL_OFF -# undef RET_R2_OFF -# undef RET_R3_OFF -# undef RET_F0_OFF -# undef RET_V24_OFF -#endif diff --git a/sysdeps/s390/s390-32/mul_1.S b/sysdeps/s390/s390-32/mul_1.S deleted file mode 100644 index 51471ef32d..0000000000 --- a/sysdeps/s390/s390-32/mul_1.S +++ /dev/null @@ -1,54 +0,0 @@ -/* __mpn_mul_1 -- Multiply a limb vector with a limb and store - the result in a second limb vector. - Copyright (C) 2000-2026 Free Software Foundation, Inc. - This file is part of the GNU MP Library. - - The GNU MP Library is free software; you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as published by - the Free Software Foundation; either version 2.1 of the License, or (at your - option) any later version. - - The GNU MP Library is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public - License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with the GNU MP Library; see the file COPYING.LIB. If not, - see . */ - -/* - INPUT PARAMETERS - res_ptr %r2 - s1_ptr %r3 - size %r4 - s2_limb %r5 -*/ - -#include -#include "asm-syntax.h" - - .text -ENTRY(__mpn_mul_1) - st %r6,24(%r15) - cfi_offset (%r6, -72) - slr %r6,%r6 # cy_limb = 0 -.L0: icm %r1,15,0(%r3) # get s1_ptr[i] - mr %r0,%r5 # umul_ppmm(prod_high,prod_low,s1_ptr[j],s2_limb) - jnm .L1 - alr %r0,%r5 -.L1: ltr %r5,%r5 - jnm .L2 - al %r0,0(%r3) -.L2: alr %r1,%r6 # prod_low += cy_limb - lr %r6,%r0 # cy_limb = prod_high - brc 12,.L3 - ahi %r6,1 # + (prod_low < cy_limb) -.L3: st %r1,0(%r2) - la %r2,4(0,%r2) - la %r3,4(0,%r3) - brct %r4,.L0 - lr %r2,%r6 # return cy_limb - l %r6,24(%r15) -.Lexit: br %r14 -END(__mpn_mul_1) diff --git a/sysdeps/s390/s390-32/s390-mcount.S b/sysdeps/s390/s390-32/s390-mcount.S deleted file mode 100644 index 8386a169a8..0000000000 --- a/sysdeps/s390/s390-32/s390-mcount.S +++ /dev/null @@ -1,88 +0,0 @@ -/* S/390-specific implementation of profiling support. - Copyright (C) 2000-2026 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, see - . */ - -#include - -/* - * How profiling works on S/390: - * On the start of each function _mcount is called with the address of a - * data word in %r1 (initialized to 0, used for counting). The compiler - * with the option -p generates code of the form: - * - * STM 6,15,24(15) - * BRAS 13,.LTN0_0 - * .LT0_0: - * .LC12: .long _mcount - * .LC13: .long .LP0 - * .data - * .align 4 - * .LP0: .long 0 - * .text - * # function profiler - * st 14,4(15) - * l 14,.LC12-.LT0_0(13) - * l 1,.LC13-.LT0_0(13) - * basr 14,14 - * l 14,4(15) - * - * The _mcount implementation now has to call __mcount_internal with the - * address of .LP0 as first parameter and the return address as second - * parameter. &.LP0 was loaded to %r1 and the return address is in %r14. - * _mcount may not modify any register. - */ - - .globl C_SYMBOL_NAME(_mcount) - .type C_SYMBOL_NAME(_mcount), @function - cfi_startproc - .align ALIGNARG(4) -C_LABEL(_mcount) - /* Save the caller-clobbered registers. */ - ahi %r15,-128 - cfi_adjust_cfa_offset (128) - cfi_val_offset (r15, -96) - stm %r14,%r5,96(%r15) - cfi_offset (r14, -128) - l %r2,132(%r15) # callers address = first parameter - la %r2,0(%r2) # clear bit 0 - la %r3,0(%r14) # callees address = second parameter - -#ifdef PIC - bras %r14,0f - .long _GLOBAL_OFFSET_TABLE_-. -0: al %r14,0(%r14) - l %r14,__mcount_internal@GOT(%r14) -#else - bras %r14,0f - .long __mcount_internal -0: l %r14,0(%r14) -#endif - basr %r14,%r14 - - /* - * Pop the saved registers. Please note that `mcount' has no - * return value. - */ - lm %r14,%r5,96(%r15) - ahi %r15,128 - cfi_adjust_cfa_offset (-128) - br %r14 - cfi_endproc - ASM_SIZE_DIRECTIVE(C_SYMBOL_NAME(_mcount)) - -#undef mcount -weak_alias (_mcount, mcount) diff --git a/sysdeps/s390/s390-32/setjmp.S b/sysdeps/s390/s390-32/setjmp.S deleted file mode 100644 index 9f1a186418..0000000000 --- a/sysdeps/s390/s390-32/setjmp.S +++ /dev/null @@ -1,123 +0,0 @@ -/* setjmp for s390, ELF version. - Copyright (C) 2000-2026 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, see - . */ - -#include -#include -#define _ASM -#define _SETJMP_H -#include -#include -#include - -#if !IS_IN (rtld) && defined SHARED \ - && SHLIB_COMPAT (libc, GLIBC_2_19, GLIBC_2_20) -# define NEED_COMPAT_SYMBOLS 1 -/* We need a unique name in case of symbol versioning. */ -# define setjmp __v1setjmp -# define _setjmp __v1_setjmp -# define __sigsetjmp __v1__sigsetjmp -#else -# define NEED_COMPAT_SYMBOLS 0 -#endif - - /* We include the BSD entry points here as well. */ -ENTRY (setjmp) - lhi %r3,1 /* second argument of one */ - j .Linternal_sigsetjmp /* branch relative to __sigsetjmp */ -END (setjmp) - - /* Binary compatibility entry point. */ -ENTRY(_setjmp) - lhi %r3,0 /* second argument of zero */ - j .Linternal_sigsetjmp /* branch relative to __sigsetjmp */ -END (_setjmp) -#if NEED_COMPAT_SYMBOLS -strong_alias (_setjmp, __GI__setjmp) -#else -libc_hidden_def (_setjmp) -#endif - -ENTRY(__setjmp) - lhi %r3,0 /* second argument of zero */ - j .Linternal_sigsetjmp /* branch relative to __sigsetjmp */ -END (__setjmp) - -ENTRY(__sigsetjmp) -.Linternal_sigsetjmp: - /* setjmp probe expects sig/setjmp first argument (4@%r2), second - argument (-4@%r3) and target address (4@%r14). */ - LIBC_PROBE (setjmp, 3, 4@%r2, -4@%r3, 4@%r14) -#ifdef PTR_MANGLE - stm %r6,%r13,0(%r2) /* store registers in jmp_buf */ - lr %r4,%r14 - lr %r5,%r15 - PTR_MANGLE (%r4, %r1) - PTR_MANGLE2 (%r5, %r1) - stm %r4,%r5,32(%r2) -#else - stm %r6,%r15,0(%r2) /* store registers in jmp_buf */ -#endif - std %f4,40(%r2) - std %f6,48(%r2) -#if IS_IN (rtld) - /* In ld.so we never save the signal mask. */ - lhi %r2,0 - br %r14 -#elif defined PIC - /* We cannot use the PLT, because it requires that %r12 be set, but - we can't save and restore our caller's value. Instead, we do an - indirect jump through the GOT. */ - basr %r1,0 -.L0: al %r1,.L1 - .L0(0,%r1) /* get address of global offset table */ - /* get address of __sigjmp_save from got */ - l %r1,__sigjmp_save@GOT(%r1) - br %r1 -.L1: .long _GLOBAL_OFFSET_TABLE_ - .L0 -#else - basr %r1,0 -.L0: l %r1,.L1-.L0(0,%r1) /* load address of __sigjmp_save */ - br %r1 /* tail-call __sigjmp_save */ -.L1: .long __sigjmp_save -#endif -END (__sigsetjmp) -#if NEED_COMPAT_SYMBOLS -strong_alias (__sigsetjmp, __GI___sigsetjmp) -#else -libc_hidden_def (__sigsetjmp) -#endif - -#if NEED_COMPAT_SYMBOLS -/* In glibc release 2.19 new versions of setjmp-functions were introduced, - but were reverted before 2.20. Thus both versions are the same function. */ - -# undef setjmp -# undef _setjmp -# undef __sigsetjmp - -strong_alias (__v1setjmp, __v2setjmp); -versioned_symbol (libc, __v1setjmp, setjmp, GLIBC_2_0); -compat_symbol (libc, __v2setjmp, setjmp, GLIBC_2_19); - -strong_alias (__v1_setjmp, __v2_setjmp); -versioned_symbol (libc, __v1_setjmp, _setjmp, GLIBC_2_0); -compat_symbol (libc, __v2_setjmp, _setjmp, GLIBC_2_19); - -strong_alias (__v1__sigsetjmp, __v2__sigsetjmp); -versioned_symbol (libc, __v1__sigsetjmp, __sigsetjmp, GLIBC_2_0); -compat_symbol (libc, __v2__sigsetjmp, __sigsetjmp, GLIBC_2_19); -#endif /* NEED_COMPAT_SYMBOLS */ diff --git a/sysdeps/s390/s390-32/stackguard-macros.h b/sysdeps/s390/s390-32/stackguard-macros.h deleted file mode 100644 index 46109744ed..0000000000 --- a/sysdeps/s390/s390-32/stackguard-macros.h +++ /dev/null @@ -1,15 +0,0 @@ -#include - -#define STACK_CHK_GUARD \ - ({ uintptr_t x; __asm__ ("ear %0,%%a0; l %0,0x14(%0)" : "=a" (x)); x; }) - -/* On s390/s390x there is no unique pointer guard, instead we use the - same value as the stack guard. */ -#define POINTER_CHK_GUARD \ - ({ \ - uintptr_t x; \ - __asm__ ("ear %0,%%a0; l %0,%1(%0)" \ - : "=a" (x) \ - : "i" (offsetof (tcbhead_t, stack_guard))); \ - x; \ - }) diff --git a/sysdeps/s390/s390-32/start.S b/sysdeps/s390/s390-32/start.S deleted file mode 100644 index a417df4343..0000000000 --- a/sysdeps/s390/s390-32/start.S +++ /dev/null @@ -1,211 +0,0 @@ -/* Startup code compliant to the ELF s390 ABI. - Copyright (C) 2000-2026 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - In addition to the permissions in the GNU Lesser General Public - License, the Free Software Foundation gives you unlimited - permission to link the compiled version of this file with other - programs, and to distribute those programs without any restriction - coming from the use of this file. (The GNU Lesser General Public - License restrictions do apply in other respects; for example, they - cover modification of the file, and distribution when not linked - into another program.) - - Note that people who make modified versions of this file are not - obligated to grant this special exception for their modified - versions; it is their choice whether to do so. The GNU Lesser - General Public License gives permission to release a modified - version without this exception; this exception also makes it - possible to release a modified version which carries forward this - exception. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, see - . */ - -#include - -/* - This is the canonical entry point, usually the first thing in the text - segment. Most registers' values are unspecified, except for: - - %r14 Contains a function pointer to be registered with `atexit'. - This is how the dynamic linker arranges to have DT_FINI - functions called for shared libraries that have been loaded - before this code runs. - - %r15 The stack contains the arguments and environment: - 0(%r15) argc - 4(%r15) argv[0] - ... - (4*argc)(%r15) NULL - (4*(argc+1))(%r15) envp[0] - ... - NULL -*/ - - .text - .globl _start - .type _start,@function -_start: - cfi_startproc - /* Mark r14 as undefined in order to stop unwinding here! */ - cfi_undefined (r14) - - /* Check if the kernel provides highgprs facility if needed by - the binary. */ - - lr %r6,%r15 - la %r6,4(%r6) /* Skip the argument counter. */ - -.L11: l %r5,0(%r6) /* Skip the argument vector. */ - la %r6,4(%r6) - ltr %r5,%r5 - jne .L11 - -.L12: l %r5,0(%r6) /* Skip the environment vector. */ - la %r6,4(%r6) - ltr %r5,%r5 - jne .L12 - - /* Usually the auxiliary vector can be expected directly after - the environment variables. But we have to skip extra zeros - because the loader might have removed insecure variables for - setuid programs. */ - -.L26: l %r5,0(%r6) - la %r6,4(%r6) - ltr %r5,%r5 - jz .L26 - - ahi %r6,-4 - - /* Obtain the needed values from the auxiliary vector. */ - - lhi %r7,16 /* AT_HWCAP */ - lhi %r8,3 /* AT_PHDR */ - lhi %r9,5 /* AT_PHNUM */ - lhi %r2,4 /* AT_PHENT */ -.L13: l %r5,0(%r6) - clr %r5,%r7 - jne .L15 - l %r10,4(%r6) /* r10 = AT_HWCAP value. */ -.L15: clr %r5,%r8 - jne .L16 - l %r11,4(%r6) /* r11 = AT_PHDR value. */ -.L16: clr %r5,%r9 - jne .L17 - l %r12,4(%r6) /* r12 = AT_PHNUM value. */ -.L17: clr %r5,%r2 - jne .L18 - l %r0,4(%r6) /* r0 = AT_PHENT value. */ -.L18: ltr %r5,%r5 - la %r6,8(%r6) - jnz .L13 - - /* Locate the ELF header by looking for the first PT_LOAD - segment with a p_offset of zero. */ - - lr %r4,%r11 /* Backup AT_PHDR. */ - lhi %r7,1 /* PT_LOAD id */ - lhi %r8,0 -.L19: cl %r7,0(%r4) /* p_type == PT_LOAD? */ - jne .L20 - cl %r8,4(%r4) /* p_offset == 0? */ - jne .L20 - l %r9,8(%r4) /* r9 = PT_LOAD.p_vaddr <- ELF header address */ - j .L24 -.L20: alr %r4,%r0 /* r4 += AT_PHENT value */ - brct %r12,.L19 - - j .+2 /* Trap, there must be such a phdr. */ - -.L24: lr %r4,%r11 /* Backup AT_PHDR. */ - lhi %r2,6 /* PT_PHDR id */ -.L23: cl %r2,0(%r4) - jne .L22 - l %r3,8(%r4) /* r3 = PT_PHDR p_vaddr */ - j .L25 -.L22: alr %r4,%r0 /* r4 += AT_PHENT value */ - brct %r12,.L23 - - j .L14 /* No PT_PHDR found - skip checking. */ - -.L25: slr %r11,%r3 /* AT_PHDR - PT_PHDR.p_vaddr (relocation offset)*/ - alr %r9,%r11 /* PT_LOAD.p_vaddr += relocation offset */ - - l %r5,36(%r9) /* Load the e_flags field. */ - tml %r5,1 - jz .L14 /* Binary does not require highgprs facility. */ - - tml %r10,512 /* Check the AT_HWCAP value. */ - jz 2 /* Trap if no highgprs facility available. */ -.L14: - - /* Setup pointer to literal pool of _start */ - basr %r13,0 -.L0: ahi %r13,.Llit-.L0 - - /* load argc and argv from stack */ - la %r4,4(%r15) # get argv - l %r3,0(%r15) # get argc - - /* align the stack to a double word boundary */ - lhi %r0,-8 - nr %r15,%r0 - - /* Setup a stack frame and a parameter area */ - ahi %r15,-104 # make room on stack - xc 0(4,%r15),0(%r15) # clear back-chain - - /* set up arguments for __libc_start_main: - main, argc, argv, envp, _init, _fini, rtld_fini, stack_end - Note that envp will be determined later in __libc_start_main - */ - stm %r14,%r15,96(%r15) # store rtld_fini/stack_end to parameter area - la %r7,96(%r15) - l %r2,.L3-.Llit(%r13) # load pointer to main - l %r1,.L4-.Llit(%r13) # load pointer to __libc_start_main -#ifdef PIC - l %r12,.L5-.Llit(%r13) # load .got pointer - la %r12,0(%r13,%r12) - l %r2,0(%r12,%r2) - la %r1,0(%r13,%r1) -#endif - lhi %r6, 0 # Used to fini. - lhi %r5, 0 # Used to init. - - /* ok, now branch to the libc main routine */ - basr %r14,%r1 - - /* crash if __libc_start_main returns */ - .word 0 - - cfi_endproc -.Llit: -#ifndef PIC -.L3: .long main -.L4: .long __libc_start_main -#else -.L3: .long main@GOT -.L4: .long __libc_start_main@plt-.Llit -.L5: .long _GLOBAL_OFFSET_TABLE_-.Llit -#endif - -/* Define a symbol for the first piece of initialized data. */ - .data - .globl __data_start -__data_start: - .long 0 - .weak data_start - data_start = __data_start diff --git a/sysdeps/s390/s390-32/strncpy-z900.S b/sysdeps/s390/s390-32/strncpy-z900.S deleted file mode 100644 index c3ad92fa69..0000000000 --- a/sysdeps/s390/s390-32/strncpy-z900.S +++ /dev/null @@ -1,88 +0,0 @@ -/* strncpy - copy at most n characters from a string from source to - destination. For IBM S390 - This file is part of the GNU C Library. - Copyright (C) 2000-2026 Free Software Foundation, Inc. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, see - . */ - -/* - * R2 = address of destination (dst) - * R3 = address of source (src) - * R4 = max of bytes to copy - */ - -#include -#include "sysdep.h" -#include "asm-syntax.h" - -#if HAVE_STRNCPY_Z900_G5 -ENTRY(STRNCPY_Z900_G5) - .text - st %r2,24(%r15) # save dst pointer - slr %r2,%r3 # %r3 points to src, %r2+%r3 to dst - lhi %r1,3 - nr %r1,%r4 # last 2 bits of # bytes - srl %r4,2 - ltr %r4,%r4 # less than 4 bytes to copy ? - jz .L1 - bras %r5,.L0 # enter loop & load address of a 0 - .long 0 -.L0: icm %r0,8,0(%r3) # first byte - jz .L3 - icm %r0,4,1(%r3) # second byte - jz .L4 - icm %r0,2,2(%r3) # third byte - jz .L5 - icm %r0,1,3(%r3) # fourth byte - jz .L6 - st %r0,0(%r2,%r3) # store all four to dest. - la %r3,4(%r3) - brct %r4,.L0 -.L1: ltr %r1,%r1 - jz .Lexit -.L2: icm %r0,1,0(%r3) - stc %r0,0(%r2,%r3) - la %r3,1(%r3) - jz .L7 - brct %r1,.L2 - j .Lexit -.L3: icm %r0,4,0(%r5) -.L4: icm %r0,2,0(%r5) -.L5: icm %r0,1,0(%r5) -.L6: st %r0,0(%r2,%r3) - la %r3,4(%r3) - ahi %r4,-1 - j .L8 -.L7: ahi %r1,-1 -.L8: sll %r4,2 - alr %r4,%r1 - alr %r2,%r3 # start of dst area to be zeroed - lr %r3,%r4 - slr %r4,%r4 - slr %r5,%r5 -.L9: mvcle %r2,%r4,0 # pad dst with zeroes - jo .L9 -.Lexit: l %r2,24(%r15) # return dst pointer - br %r14 -END(STRNCPY_Z900_G5) - -# if ! HAVE_STRNCPY_IFUNC -strong_alias (STRNCPY_Z900_G5, strncpy) -# endif - -# if defined SHARED && IS_IN (libc) -strong_alias (STRNCPY_Z900_G5, __GI_strncpy) -# endif -#endif diff --git a/sysdeps/s390/s390-32/sub_n.S b/sysdeps/s390/s390-32/sub_n.S deleted file mode 100644 index 00bcf507bc..0000000000 --- a/sysdeps/s390/s390-32/sub_n.S +++ /dev/null @@ -1,61 +0,0 @@ -/* __mpn_sub_n -- Add two limb vectors of the same length > 0 and store - sum in a third limb vector. - Copyright (C) 2000-2026 Free Software Foundation, Inc. - This file is part of the GNU MP Library. - - The GNU MP Library is free software; you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as published by - the Free Software Foundation; either version 2.1 of the License, or (at your - option) any later version. - - The GNU MP Library is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public - License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with the GNU MP Library; see the file COPYING.LIB. If not, - see . */ - -/* - INPUT PARAMETERS - res_ptr %r2 - s1_ptr %r3 - s2_ptr %r4 - size %r5 -*/ - -#include "sysdep.h" -#include "asm-syntax.h" - -ENTRY(__mpn_sub_n) - st %r6,24(%r15) # save register 6 - cfi_offset (%r6, -72) - sr %r1,%r1 - lhi %r0,1 # cannot use ahi to add carry, use slr -.L0: l %r6,0(%r1,%r3) # .L0 -> no carry from last sub - sl %r6,0(%r1,%r4) - st %r6,0(%r1,%r2) - la %r1,4(0,%r1) - brc 4,.L3 -.L1: brct %r5,.L0 - slr %r2,%r2 # no last carry to return - j .Lexit -.L2: l %r6,0(%r1,%r3) # .L2 -> carry from last sub - sl %r6,0(%r1,%r4) - brc 4,.L4 - slr %r6,%r0 # no carry yet, add carry from last sub - st %r6,0(%r1,%r2) - la %r1,4(0,%r1) - brc 11,.L1 # new carry ? -.L3: brct %r5,.L2 - lr %r2,%r0 # return last carry - j .Lexit -.L4: slr %r6,%r0 # already a carry, add carry from last sub - st %r6,0(%r1,%r2) - la %r1,4(0,%r1) - brct %r5,.L2 - lr %r2,%r0 # return last carry -.Lexit: l %r6,24(%r15) # restore register 6 - br %r14 -END(__mpn_sub_n) diff --git a/sysdeps/s390/s390-32/symbol-hacks.h b/sysdeps/s390/s390-32/symbol-hacks.h deleted file mode 100644 index 840510ae1b..0000000000 --- a/sysdeps/s390/s390-32/symbol-hacks.h +++ /dev/null @@ -1,21 +0,0 @@ -/* Hacks needed for symbol manipulation. s390 version. - Copyright (C) 2017-2026 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, see - . */ - -#include - -#include_next "symbol-hacks.h" diff --git a/sysdeps/s390/s390-32/sysdep.h b/sysdeps/s390/s390-32/sysdep.h deleted file mode 100644 index 9b12f6df4b..0000000000 --- a/sysdeps/s390/s390-32/sysdep.h +++ /dev/null @@ -1,100 +0,0 @@ -/* Assembler macros for s390. - Copyright (C) 2000-2026 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, see - . */ - -#include - -#ifdef __ASSEMBLER__ - -/* Syntactic details of assembler. */ - -/* ELF uses byte-counts for .align, most others use log2 of count of bytes. */ -#define ALIGNARG(log2) 1<. */ - -#define pltenter la_s390_32_gnu_pltenter -#define pltexit la_s390_32_gnu_pltexit -#define La_regs La_s390_32_regs -#define La_retval La_s390_32_retval -#define int_retval lrv_r2 diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/Makefile b/sysdeps/unix/sysv/linux/s390/s390-32/Makefile deleted file mode 100644 index 2a5b4fbb6f..0000000000 --- a/sysdeps/unix/sysv/linux/s390/s390-32/Makefile +++ /dev/null @@ -1,31 +0,0 @@ -# See Makeconfig regarding the use of default-abi. -default-abi := 32 - -ifeq ($(subdir),login) -sysdep_routines += utmp32 utmpx32 login32 -shared-only-routines += utmp32 utmpx32 login32 -endif - -ifeq ($(subdir),misc) -sysdep_headers += sys/elf.h -endif - -ifeq ($(subdir),elf) -ifeq (yes,$(build-shared)) -# This is needed to support g++ v2 and v3. -sysdep_routines += framestate -shared-only-routines += framestate -endif -endif - -ifeq ($(subdir),stdlib) -sysdep_routines += __makecontext_ret -endif - -ifeq ($(subdir),csu) -ifeq (yes,$(build-shared)) -sysdep_routines += divdi3 -shared-only-routines += divdi3 -CPPFLAGS-divdi3.c = -Din_divdi3_c -endif -endif diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/Versions b/sysdeps/unix/sysv/linux/s390/s390-32/Versions deleted file mode 100644 index 1b96fc42a3..0000000000 --- a/sysdeps/unix/sysv/linux/s390/s390-32/Versions +++ /dev/null @@ -1,56 +0,0 @@ -libc { - GLIBC_2.0 { - # Exception handling support functions from libgcc - __register_frame; __register_frame_table; __deregister_frame; - __frame_state_for; __register_frame_info_table; - } - GLIBC_2.1 { - __chown; - } - GLIBC_2.2 { - # functions used in other libraries - __xstat64; __fxstat64; __lxstat64; - - # a* - alphasort64; - - # New rlimit interface - getrlimit; setrlimit; getrlimit64; - - # r* - readdir64; readdir64_r; - - # s* - scandir64; - - # v* - versionsort64; - } - GLIBC_2.9 { - getutent; - getutid; - getutline; - pututline; - updwtmp; - getutent_r; - getutid_r; - getutline_r; - getutxent; - getutxid; - getutxline; - pututxline; - updwtmpx; - getutmp; - getutmpx; - login; - } - GLIBC_2.31 { - msgctl; semctl; shmctl; - } -} - -libutil { - GLIBC_2.9 { - __libutil_version_placeholder; - } -} diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/____longjmp_chk.c b/sysdeps/unix/sysv/linux/s390/s390-32/____longjmp_chk.c deleted file mode 100644 index 404f1c1a90..0000000000 --- a/sysdeps/unix/sysv/linux/s390/s390-32/____longjmp_chk.c +++ /dev/null @@ -1,52 +0,0 @@ -/* Copyright (C) 2009-2026 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, see - . */ - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#define __longjmp ____longjmp_chk - -#define CHECK_SP(env, guard) \ - do \ - { \ - uintptr_t cur_sp; \ - uintptr_t new_sp = env->__gregs[9]; \ - __asm__ ("lr %0, %%r15" : "=r" (cur_sp)); \ - new_sp ^= guard; \ - if (new_sp < cur_sp) \ - { \ - stack_t oss; \ - int res = INTERNAL_SYSCALL_CALL (sigaltstack, NULL, &oss); \ - if (!INTERNAL_SYSCALL_ERROR_P (res)) \ - { \ - if ((oss.ss_flags & SS_ONSTACK) == 0 \ - || ((uintptr_t) (oss.ss_sp + oss.ss_size) - new_sp \ - < oss.ss_size)) \ - __fortify_fail ("longjmp causes uninitialized stack frame");\ - } \ - } \ - } while (0) - -#include "__longjmp.c" diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/__makecontext_ret.S b/sysdeps/unix/sysv/linux/s390/s390-32/__makecontext_ret.S deleted file mode 100644 index c5a70d2e32..0000000000 --- a/sysdeps/unix/sysv/linux/s390/s390-32/__makecontext_ret.S +++ /dev/null @@ -1,43 +0,0 @@ -/* Copyright (C) 2012-2026 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, see - . */ - -#include - -ENTRY(__makecontext_ret) - /* Mark r14 as undefined in order to stop unwinding here! */ - cfi_undefined (r14) - basr %r14,%r7 - ltr %r8,%r8 /* Check whether uc_link is 0. */ - jz 1f - lr %r2,%r8 - br %r9 -1: lhi %r2,0 /* EXIT return value. */ -#ifdef NO_HIDDEN - /* If SHARED and NO_HIDDEN is defined, we need to setup got pointer - as HIDDEN_JUMPTARGET expands to JUMPTARGET which expands to - exit@PLT. Otherwise HIDDEN_JUMPTARGET expands to __GI_exit if - SHARED is defined and to exit if SHARED is not defined. */ - SYSCALL_PIC_SETUP -#endif - basr %r1,0 -2: - al %r1,3f-2b(%r1) - basr %r14,%r1 /* Call exit. */ - j .+2 /* Trap if exit returns for some reason. */ -3: - .long HIDDEN_JUMPTARGET (exit) - 2b -END(__makecontext_ret) diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/arch-syscall.h b/sysdeps/unix/sysv/linux/s390/s390-32/arch-syscall.h deleted file mode 100644 index c55402b31f..0000000000 --- a/sysdeps/unix/sysv/linux/s390/s390-32/arch-syscall.h +++ /dev/null @@ -1,441 +0,0 @@ -/* AUTOGENERATED by update-syscall-lists.py. */ -#define __NR__llseek 140 -#define __NR__newselect 142 -#define __NR__sysctl 149 -#define __NR_accept4 364 -#define __NR_access 33 -#define __NR_acct 51 -#define __NR_add_key 278 -#define __NR_adjtimex 124 -#define __NR_afs_syscall 137 -#define __NR_alarm 27 -#define __NR_bdflush 134 -#define __NR_bind 361 -#define __NR_bpf 351 -#define __NR_brk 45 -#define __NR_cachestat 451 -#define __NR_capget 184 -#define __NR_capset 185 -#define __NR_chdir 12 -#define __NR_chmod 15 -#define __NR_chown 182 -#define __NR_chown32 212 -#define __NR_chroot 61 -#define __NR_clock_adjtime 337 -#define __NR_clock_adjtime64 405 -#define __NR_clock_getres 261 -#define __NR_clock_getres_time64 406 -#define __NR_clock_gettime 260 -#define __NR_clock_gettime64 403 -#define __NR_clock_nanosleep 262 -#define __NR_clock_nanosleep_time64 407 -#define __NR_clock_settime 259 -#define __NR_clock_settime64 404 -#define __NR_clone 120 -#define __NR_clone3 435 -#define __NR_close 6 -#define __NR_close_range 436 -#define __NR_connect 362 -#define __NR_copy_file_range 375 -#define __NR_creat 8 -#define __NR_create_module 127 -#define __NR_delete_module 129 -#define __NR_dup 41 -#define __NR_dup2 63 -#define __NR_dup3 326 -#define __NR_epoll_create 249 -#define __NR_epoll_create1 327 -#define __NR_epoll_ctl 250 -#define __NR_epoll_pwait 312 -#define __NR_epoll_pwait2 441 -#define __NR_epoll_wait 251 -#define __NR_eventfd 318 -#define __NR_eventfd2 323 -#define __NR_execve 11 -#define __NR_execveat 354 -#define __NR_exit 1 -#define __NR_exit_group 248 -#define __NR_faccessat 300 -#define __NR_faccessat2 439 -#define __NR_fadvise64 253 -#define __NR_fadvise64_64 264 -#define __NR_fallocate 314 -#define __NR_fanotify_init 332 -#define __NR_fanotify_mark 333 -#define __NR_fchdir 133 -#define __NR_fchmod 94 -#define __NR_fchmodat 299 -#define __NR_fchmodat2 452 -#define __NR_fchown 95 -#define __NR_fchown32 207 -#define __NR_fchownat 291 -#define __NR_fcntl 55 -#define __NR_fcntl64 221 -#define __NR_fdatasync 148 -#define __NR_fgetxattr 229 -#define __NR_file_getattr 468 -#define __NR_file_setattr 469 -#define __NR_finit_module 344 -#define __NR_flistxattr 232 -#define __NR_flock 143 -#define __NR_fork 2 -#define __NR_fremovexattr 235 -#define __NR_fsconfig 431 -#define __NR_fsetxattr 226 -#define __NR_fsmount 432 -#define __NR_fsopen 430 -#define __NR_fspick 433 -#define __NR_fstat 108 -#define __NR_fstat64 197 -#define __NR_fstatat64 293 -#define __NR_fstatfs 100 -#define __NR_fstatfs64 266 -#define __NR_fsync 118 -#define __NR_ftruncate 93 -#define __NR_ftruncate64 194 -#define __NR_futex 238 -#define __NR_futex_requeue 456 -#define __NR_futex_time64 422 -#define __NR_futex_wait 455 -#define __NR_futex_waitv 449 -#define __NR_futex_wake 454 -#define __NR_futimesat 292 -#define __NR_get_kernel_syms 130 -#define __NR_get_mempolicy 269 -#define __NR_get_robust_list 305 -#define __NR_getcpu 311 -#define __NR_getcwd 183 -#define __NR_getdents 141 -#define __NR_getdents64 220 -#define __NR_getegid 50 -#define __NR_getegid32 202 -#define __NR_geteuid 49 -#define __NR_geteuid32 201 -#define __NR_getgid 47 -#define __NR_getgid32 200 -#define __NR_getgroups 80 -#define __NR_getgroups32 205 -#define __NR_getitimer 105 -#define __NR_getpeername 368 -#define __NR_getpgid 132 -#define __NR_getpgrp 65 -#define __NR_getpid 20 -#define __NR_getpmsg 188 -#define __NR_getppid 64 -#define __NR_getpriority 96 -#define __NR_getrandom 349 -#define __NR_getresgid 171 -#define __NR_getresgid32 211 -#define __NR_getresuid 165 -#define __NR_getresuid32 209 -#define __NR_getrlimit 76 -#define __NR_getrusage 77 -#define __NR_getsid 147 -#define __NR_getsockname 367 -#define __NR_getsockopt 365 -#define __NR_gettid 236 -#define __NR_gettimeofday 78 -#define __NR_getuid 24 -#define __NR_getuid32 199 -#define __NR_getxattr 227 -#define __NR_getxattrat 464 -#define __NR_idle 112 -#define __NR_init_module 128 -#define __NR_inotify_add_watch 285 -#define __NR_inotify_init 284 -#define __NR_inotify_init1 324 -#define __NR_inotify_rm_watch 286 -#define __NR_io_cancel 247 -#define __NR_io_destroy 244 -#define __NR_io_getevents 245 -#define __NR_io_pgetevents 382 -#define __NR_io_pgetevents_time64 416 -#define __NR_io_setup 243 -#define __NR_io_submit 246 -#define __NR_io_uring_enter 426 -#define __NR_io_uring_register 427 -#define __NR_io_uring_setup 425 -#define __NR_ioctl 54 -#define __NR_ioperm 101 -#define __NR_ioprio_get 283 -#define __NR_ioprio_set 282 -#define __NR_ipc 117 -#define __NR_kcmp 343 -#define __NR_kexec_file_load 381 -#define __NR_kexec_load 277 -#define __NR_keyctl 280 -#define __NR_kill 37 -#define __NR_landlock_add_rule 445 -#define __NR_landlock_create_ruleset 444 -#define __NR_landlock_restrict_self 446 -#define __NR_lchown 16 -#define __NR_lchown32 198 -#define __NR_lgetxattr 228 -#define __NR_link 9 -#define __NR_linkat 296 -#define __NR_listen 363 -#define __NR_listmount 458 -#define __NR_listxattr 230 -#define __NR_listxattrat 465 -#define __NR_llistxattr 231 -#define __NR_lookup_dcookie 110 -#define __NR_lremovexattr 234 -#define __NR_lseek 19 -#define __NR_lsetxattr 225 -#define __NR_lsm_get_self_attr 459 -#define __NR_lsm_list_modules 461 -#define __NR_lsm_set_self_attr 460 -#define __NR_lstat 107 -#define __NR_lstat64 196 -#define __NR_madvise 219 -#define __NR_map_shadow_stack 453 -#define __NR_mbind 268 -#define __NR_membarrier 356 -#define __NR_memfd_create 350 -#define __NR_memfd_secret 447 -#define __NR_migrate_pages 287 -#define __NR_mincore 218 -#define __NR_mkdir 39 -#define __NR_mkdirat 289 -#define __NR_mknod 14 -#define __NR_mknodat 290 -#define __NR_mlock 150 -#define __NR_mlock2 374 -#define __NR_mlockall 152 -#define __NR_mmap 90 -#define __NR_mmap2 192 -#define __NR_mount 21 -#define __NR_mount_setattr 442 -#define __NR_move_mount 429 -#define __NR_move_pages 310 -#define __NR_mprotect 125 -#define __NR_mq_getsetattr 276 -#define __NR_mq_notify 275 -#define __NR_mq_open 271 -#define __NR_mq_timedreceive 274 -#define __NR_mq_timedreceive_time64 419 -#define __NR_mq_timedsend 273 -#define __NR_mq_timedsend_time64 418 -#define __NR_mq_unlink 272 -#define __NR_mremap 163 -#define __NR_mseal 462 -#define __NR_msgctl 402 -#define __NR_msgget 399 -#define __NR_msgrcv 401 -#define __NR_msgsnd 400 -#define __NR_msync 144 -#define __NR_munlock 151 -#define __NR_munlockall 153 -#define __NR_munmap 91 -#define __NR_name_to_handle_at 335 -#define __NR_nanosleep 162 -#define __NR_nfsservctl 169 -#define __NR_nice 34 -#define __NR_open 5 -#define __NR_open_by_handle_at 336 -#define __NR_open_tree 428 -#define __NR_open_tree_attr 467 -#define __NR_openat 288 -#define __NR_openat2 437 -#define __NR_pause 29 -#define __NR_perf_event_open 331 -#define __NR_personality 136 -#define __NR_pidfd_getfd 438 -#define __NR_pidfd_open 434 -#define __NR_pidfd_send_signal 424 -#define __NR_pipe 42 -#define __NR_pipe2 325 -#define __NR_pivot_root 217 -#define __NR_pkey_alloc 385 -#define __NR_pkey_free 386 -#define __NR_pkey_mprotect 384 -#define __NR_poll 168 -#define __NR_ppoll 302 -#define __NR_ppoll_time64 414 -#define __NR_prctl 172 -#define __NR_pread64 180 -#define __NR_preadv 328 -#define __NR_preadv2 376 -#define __NR_prlimit64 334 -#define __NR_process_madvise 440 -#define __NR_process_mrelease 448 -#define __NR_process_vm_readv 340 -#define __NR_process_vm_writev 341 -#define __NR_pselect6 301 -#define __NR_pselect6_time64 413 -#define __NR_ptrace 26 -#define __NR_putpmsg 189 -#define __NR_pwrite64 181 -#define __NR_pwritev 329 -#define __NR_pwritev2 377 -#define __NR_query_module 167 -#define __NR_quotactl 131 -#define __NR_quotactl_fd 443 -#define __NR_read 3 -#define __NR_readahead 222 -#define __NR_readdir 89 -#define __NR_readlink 85 -#define __NR_readlinkat 298 -#define __NR_readv 145 -#define __NR_reboot 88 -#define __NR_recvfrom 371 -#define __NR_recvmmsg 357 -#define __NR_recvmmsg_time64 417 -#define __NR_recvmsg 372 -#define __NR_remap_file_pages 267 -#define __NR_removexattr 233 -#define __NR_removexattrat 466 -#define __NR_rename 38 -#define __NR_renameat 295 -#define __NR_renameat2 347 -#define __NR_request_key 279 -#define __NR_restart_syscall 7 -#define __NR_rmdir 40 -#define __NR_rseq 383 -#define __NR_rt_sigaction 174 -#define __NR_rt_sigpending 176 -#define __NR_rt_sigprocmask 175 -#define __NR_rt_sigqueueinfo 178 -#define __NR_rt_sigreturn 173 -#define __NR_rt_sigsuspend 179 -#define __NR_rt_sigtimedwait 177 -#define __NR_rt_sigtimedwait_time64 421 -#define __NR_rt_tgsigqueueinfo 330 -#define __NR_s390_guarded_storage 378 -#define __NR_s390_pci_mmio_read 353 -#define __NR_s390_pci_mmio_write 352 -#define __NR_s390_runtime_instr 342 -#define __NR_s390_sthyi 380 -#define __NR_sched_get_priority_max 159 -#define __NR_sched_get_priority_min 160 -#define __NR_sched_getaffinity 240 -#define __NR_sched_getattr 346 -#define __NR_sched_getparam 155 -#define __NR_sched_getscheduler 157 -#define __NR_sched_rr_get_interval 161 -#define __NR_sched_rr_get_interval_time64 423 -#define __NR_sched_setaffinity 239 -#define __NR_sched_setattr 345 -#define __NR_sched_setparam 154 -#define __NR_sched_setscheduler 156 -#define __NR_sched_yield 158 -#define __NR_seccomp 348 -#define __NR_semctl 394 -#define __NR_semget 393 -#define __NR_semtimedop_time64 420 -#define __NR_sendfile 187 -#define __NR_sendfile64 223 -#define __NR_sendmmsg 358 -#define __NR_sendmsg 370 -#define __NR_sendto 369 -#define __NR_set_mempolicy 270 -#define __NR_set_mempolicy_home_node 450 -#define __NR_set_robust_list 304 -#define __NR_set_tid_address 252 -#define __NR_setdomainname 121 -#define __NR_setfsgid 139 -#define __NR_setfsgid32 216 -#define __NR_setfsuid 138 -#define __NR_setfsuid32 215 -#define __NR_setgid 46 -#define __NR_setgid32 214 -#define __NR_setgroups 81 -#define __NR_setgroups32 206 -#define __NR_sethostname 74 -#define __NR_setitimer 104 -#define __NR_setns 339 -#define __NR_setpgid 57 -#define __NR_setpriority 97 -#define __NR_setregid 71 -#define __NR_setregid32 204 -#define __NR_setresgid 170 -#define __NR_setresgid32 210 -#define __NR_setresuid 164 -#define __NR_setresuid32 208 -#define __NR_setreuid 70 -#define __NR_setreuid32 203 -#define __NR_setrlimit 75 -#define __NR_setsid 66 -#define __NR_setsockopt 366 -#define __NR_settimeofday 79 -#define __NR_setuid 23 -#define __NR_setuid32 213 -#define __NR_setxattr 224 -#define __NR_setxattrat 463 -#define __NR_shmat 397 -#define __NR_shmctl 396 -#define __NR_shmdt 398 -#define __NR_shmget 395 -#define __NR_shutdown 373 -#define __NR_sigaction 67 -#define __NR_sigaltstack 186 -#define __NR_signal 48 -#define __NR_signalfd 316 -#define __NR_signalfd4 322 -#define __NR_sigpending 73 -#define __NR_sigprocmask 126 -#define __NR_sigreturn 119 -#define __NR_sigsuspend 72 -#define __NR_socket 359 -#define __NR_socketcall 102 -#define __NR_socketpair 360 -#define __NR_splice 306 -#define __NR_stat 106 -#define __NR_stat64 195 -#define __NR_statfs 99 -#define __NR_statfs64 265 -#define __NR_statmount 457 -#define __NR_statx 379 -#define __NR_stime 25 -#define __NR_swapoff 115 -#define __NR_swapon 87 -#define __NR_symlink 83 -#define __NR_symlinkat 297 -#define __NR_sync 36 -#define __NR_sync_file_range 307 -#define __NR_syncfs 338 -#define __NR_sysfs 135 -#define __NR_sysinfo 116 -#define __NR_syslog 103 -#define __NR_tee 308 -#define __NR_tgkill 241 -#define __NR_time 13 -#define __NR_timer_create 254 -#define __NR_timer_delete 258 -#define __NR_timer_getoverrun 257 -#define __NR_timer_gettime 256 -#define __NR_timer_gettime64 408 -#define __NR_timer_settime 255 -#define __NR_timer_settime64 409 -#define __NR_timerfd 317 -#define __NR_timerfd_create 319 -#define __NR_timerfd_gettime 321 -#define __NR_timerfd_gettime64 410 -#define __NR_timerfd_settime 320 -#define __NR_timerfd_settime64 411 -#define __NR_times 43 -#define __NR_tkill 237 -#define __NR_truncate 92 -#define __NR_truncate64 193 -#define __NR_ugetrlimit 191 -#define __NR_umask 60 -#define __NR_umount 22 -#define __NR_umount2 52 -#define __NR_uname 122 -#define __NR_unlink 10 -#define __NR_unlinkat 294 -#define __NR_unshare 303 -#define __NR_uselib 86 -#define __NR_userfaultfd 355 -#define __NR_ustat 62 -#define __NR_utime 30 -#define __NR_utimensat 315 -#define __NR_utimensat_time64 412 -#define __NR_utimes 313 -#define __NR_vfork 190 -#define __NR_vhangup 111 -#define __NR_vmsplice 309 -#define __NR_wait4 114 -#define __NR_waitid 281 -#define __NR_write 4 -#define __NR_writev 146 diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/c++-types.data b/sysdeps/unix/sysv/linux/s390/s390-32/c++-types.data deleted file mode 100644 index 6e2036ec01..0000000000 --- a/sysdeps/unix/sysv/linux/s390/s390-32/c++-types.data +++ /dev/null @@ -1,67 +0,0 @@ -blkcnt64_t:x -blkcnt_t:l -blksize_t:l -caddr_t:Pc -clockid_t:i -clock_t:l -daddr_t:i -dev_t:y -fd_mask:l -fsblkcnt64_t:y -fsblkcnt_t:m -fsfilcnt64_t:y -fsfilcnt_t:m -fsid_t:8__fsid_t -gid_t:j -id_t:j -ino64_t:y -ino_t:m -int16_t:s -int32_t:i -int64_t:x -int8_t:a -intptr_t:i -key_t:i -loff_t:x -mode_t:j -nlink_t:j -off64_t:x -off_t:l -pid_t:i -pthread_attr_t:14pthread_attr_t -pthread_barrier_t:17pthread_barrier_t -pthread_barrierattr_t:21pthread_barrierattr_t -pthread_cond_t:14pthread_cond_t -pthread_condattr_t:18pthread_condattr_t -pthread_key_t:j -pthread_mutex_t:15pthread_mutex_t -pthread_mutexattr_t:19pthread_mutexattr_t -pthread_once_t:i -pthread_rwlock_t:16pthread_rwlock_t -pthread_rwlockattr_t:20pthread_rwlockattr_t -pthread_spinlock_t:i -pthread_t:m -quad_t:x -register_t:i -rlim64_t:y -rlim_t:m -sigset_t:10__sigset_t -size_t:m -socklen_t:j -ssize_t:l -suseconds_t:l -time_t:l -u_char:h -uid_t:j -uint:j -u_int:j -u_int16_t:t -u_int32_t:j -u_int64_t:y -u_int8_t:h -ulong:m -u_long:m -u_quad_t:y -useconds_t:j -ushort:t -u_short:t diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/clone.S b/sysdeps/unix/sysv/linux/s390/s390-32/clone.S deleted file mode 100644 index 0f9dac0c8e..0000000000 --- a/sysdeps/unix/sysv/linux/s390/s390-32/clone.S +++ /dev/null @@ -1,73 +0,0 @@ -/* Copyright (C) 2000-2026 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, see - . */ - -/* clone is even more special than fork as it mucks with stacks - and invokes a function in the right context after its all over. */ - -#include -#include -#define _ERRNO_H 1 -#include - -/* int __clone(int (*fn)(void *arg), void *child_stack, int flags, void *arg, - pid_t *parent_tid, void *tls, pid_t *child_tid); */ -/* sys_clone (void *child_stack, unsigned long flags, - pid_t *parent_tid, pid_t *child_tid, void *tls); */ - - .text -ENTRY(__clone) - stm %r6,%r7,24(%r15) /* Save registers. */ - cfi_offset (%r7, -68) - cfi_offset (%r6, -72) - ltr %r7,%r2 /* check fn and move to %r7 */ - jz error /* no NULL function pointers */ - lhi %r0,-8 /* Align the child_stack to a ... */ - nr %r3,%r0 /* double word boundary and ... */ - jz error /* avoid NULL stack pointers. */ - lr %r0,%r5 /* move *arg out of the way */ - lr %r2,%r3 /* move child_stack to %r2 */ - lr %r3,%r4 /* move flags to %r3 */ - lr %r4,%r6 /* move parent_tid to %r4 */ - l %r5,100(%r15) /* load child_tid from stack */ - l %r6,96(%r15) /* load tls from stack */ - lhi %r1,SYS_ify(clone) - svc 0 - ltr %r2,%r2 /* check return code */ - jz thread_start - lm %r6,%r7,24(%r15) /* Load registers. */ - jm SYSCALL_ERROR_LABEL - br %r14 -error: - lhi %r2,-EINVAL - lm %r6,%r7,24(%r15) /* Load registers. */ - j SYSCALL_ERROR_LABEL -PSEUDO_END (__clone) - -thread_start: - cfi_startproc - /* Mark r14 as undefined in order to stop unwinding here! */ - cfi_undefined (r14) - /* fn is in gpr 7, arg in gpr 0 */ - lr %r2,%r0 /* set first parameter to void *arg */ - ahi %r15,-96 /* make room on the stack for the save area */ - xc 0(4,%r15),0(%r15) - basr %r14,%r7 /* jump to fn */ - DO_CALL (exit, 1) - cfi_endproc - -libc_hidden_def (__clone) -weak_alias (__clone, clone) diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/clone3.S b/sysdeps/unix/sysv/linux/s390/s390-32/clone3.S deleted file mode 100644 index 4514401e83..0000000000 --- a/sysdeps/unix/sysv/linux/s390/s390-32/clone3.S +++ /dev/null @@ -1,77 +0,0 @@ -/* The clone3 syscall wrapper. Linux/s390x version. - Copyright (C) 2023-2026 Free Software Foundation, Inc. - - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, see - . */ - -#include -#define _ERRNO_H 1 -#include - -/* The userland implementation is: - int clone3 (struct clone_args *cl_args, size_t size, - int (*func)(void *arg), void *arg); - - the kernel entry is: - int clone3 (struct clone_args *cl_args, size_t size); - - The parameters are passed in registers from userland: - r2: cl_args - r3: size - r4: func - r5: arg */ - - .text -ENTRY(__clone3) - /* Sanity check args. */ - ltr %r2, %r2 - je error - ltr %r4, %r4 - je error - - /* Do the system call, the kernel expects: - r1: system call number - r2: cl_args - r3: size */ - lhi %r1, SYS_ify(clone3) - svc 0 - ltr %r2,%r2 /* check return code */ - jz thread_start - jm SYSCALL_ERROR_LABEL - br %r14 -error: - lhi %r2,-EINVAL - j SYSCALL_ERROR_LABEL -PSEUDO_END (__clone3) - - .align 16 - .type thread_start, %function -thread_start: - cfi_startproc - /* Mark r14 as undefined in order to stop unwinding here. */ - cfi_undefined (r14) - - /* func is in gpr 4, arg in gpr 5. */ - lr %r2, %r5 - ahi %r15, -96 - xc 0(4,%r15),0(%r15) - basr %r14, %r4 - - DO_CALL (exit, 1) - cfi_endproc - ASM_SIZE_DIRECTIVE (thread_start) - -libc_hidden_def (__clone3) diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/getcontext.S b/sysdeps/unix/sysv/linux/s390/s390-32/getcontext.S deleted file mode 100644 index be46ce9242..0000000000 --- a/sysdeps/unix/sysv/linux/s390/s390-32/getcontext.S +++ /dev/null @@ -1,96 +0,0 @@ -/* Copyright (C) 2001-2026 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, see - . */ - -#include -#include - -#include "ucontext_i.h" - -#include - -/* __getcontext (const ucontext_t *ucp) - - Saves the machine context in UCP such that when it is activated, - it appears as if __getcontext() returned again. - - This implementation is intended to be used for *synchronous* context - switches only. Therefore, it does not have to save anything - other than the PRESERVED state. */ - -ENTRY(__getcontext) - lr %r0,%r2 - - /* rt_sigprocmask (SIG_BLOCK, NULL, &sc->sc_mask, sigsetsize). */ - la %r4,SC_MASK(%r2) - la %r2,SIG_BLOCK - slr %r3,%r3 - lhi %r5,_NSIG8 - lhi %r1,SYS_ify(rt_sigprocmask) - svc 0 - - /* Store fpu context. */ - lr %r1,%r0 - stfpc SC_FPC(%r1) - std %f0,SC_FPRS(%r1) - std %f1,SC_FPRS+8(%r1) - std %f2,SC_FPRS+16(%r1) - std %f3,SC_FPRS+24(%r1) - std %f4,SC_FPRS+32(%r1) - std %f5,SC_FPRS+40(%r1) - std %f6,SC_FPRS+48(%r1) - std %f7,SC_FPRS+56(%r1) - std %f8,SC_FPRS+64(%r1) - std %f9,SC_FPRS+72(%r1) - std %f10,SC_FPRS+80(%r1) - std %f11,SC_FPRS+88(%r1) - std %f12,SC_FPRS+96(%r1) - std %f13,SC_FPRS+104(%r1) - std %f14,SC_FPRS+112(%r1) - std %f15,SC_FPRS+120(%r1) - - /* Set __getcontext return value to 0. */ - slr %r2,%r2 - - /* Store access registers. */ - stam %a0,%a15,SC_ACRS(%r1) - - /* Store general purpose registers. */ - stm %r0,%r15,SC_GPRS(%r1) - - /* Store psw mask to 0x0 and addr to return address. Then the address - can be retrieved from the ucontext structure in the same way as if it - is created by kernel and passed to a signal-handler. */ - st %r2,SC_PSW+0(%r1) - st %r14,SC_PSW+4(%r1) - - /* Return. */ - br %r14 -END(__getcontext) - -#if defined SHARED && SHLIB_COMPAT (libc, GLIBC_2_19, GLIBC_2_20) -/* In glibc release 2.19 a new version of getcontext was introduced, - but was reverted before 2.20. Thus both versions are the same function. */ -weak_alias (__getcontext, __v1__getcontext) -weak_alias (__getcontext, __v2__getcontext) -versioned_symbol (libc, __v1__getcontext, getcontext, GLIBC_2_1) -compat_symbol (libc, __v2__getcontext, getcontext, GLIBC_2_19) - -#else - -weak_alias (__getcontext, getcontext) - -#endif /* !(defined SHARED && SHLIB_COMPAT (libc, GLIBC_2_19, GLIBC_2_20)) */ diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/getutent.c b/sysdeps/unix/sysv/linux/s390/s390-32/getutent.c deleted file mode 100644 index f4665362d5..0000000000 --- a/sysdeps/unix/sysv/linux/s390/s390-32/getutent.c +++ /dev/null @@ -1,32 +0,0 @@ -/* Copyright (C) 2008-2026 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, see - . */ - -#include -#include - -#include "utmp-compat.h" - -#if defined SHARED -# undef weak_alias -# define weak_alias(n,a) -#endif -#include "login/getutent.c" -_weak_alias (buffer, __libc_getutent_freemem_ptr) - -#if defined SHARED -default_symbol_version (__getutent, getutent, UTMP_COMPAT_BASE); -#endif diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/getutent_r.c b/sysdeps/unix/sysv/linux/s390/s390-32/getutent_r.c deleted file mode 100644 index cc25a53e10..0000000000 --- a/sysdeps/unix/sysv/linux/s390/s390-32/getutent_r.c +++ /dev/null @@ -1,37 +0,0 @@ -/* Copyright (C) 2008-2026 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, see - . */ - -#include -#include -#include - -#include "utmp-compat.h" -#include "utmp-private.h" - -#if defined SHARED -weak_alias (__setutent, setutent) -weak_alias (__endutent, endutent) - -# undef weak_alias -# define weak_alias(n,a) -#endif -#include "login/getutent_r.c" - -#if defined SHARED -default_symbol_version (__getutent_r, getutent_r, UTMP_COMPAT_BASE); -default_symbol_version (__pututline, pututline, UTMP_COMPAT_BASE); -#endif diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/getutid.c b/sysdeps/unix/sysv/linux/s390/s390-32/getutid.c deleted file mode 100644 index 8634090ba5..0000000000 --- a/sysdeps/unix/sysv/linux/s390/s390-32/getutid.c +++ /dev/null @@ -1,32 +0,0 @@ -/* Copyright (C) 2008-2026 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, see - . */ - -#include -#include - -#include "utmp-compat.h" - -#if defined SHARED -# undef weak_alias -# define weak_alias(n,a) -#endif -#include "login/getutid.c" -_weak_alias (buffer, __libc_getutid_freemem_ptr) - -#if defined SHARED -default_symbol_version (__getutid, getutid, UTMP_COMPAT_BASE); -#endif diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/getutid_r.c b/sysdeps/unix/sysv/linux/s390/s390-32/getutid_r.c deleted file mode 100644 index b6a1b92982..0000000000 --- a/sysdeps/unix/sysv/linux/s390/s390-32/getutid_r.c +++ /dev/null @@ -1,34 +0,0 @@ -/* Copyright (C) 2008-2026 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, see - . */ - -#include -#include -#include -#include - -#include "utmp-compat.h" -#include "utmp-private.h" - -#if defined SHARED -# undef weak_alias -# define weak_alias(n,a) -#endif -#include "login/getutid_r.c" - -#if defined SHARED -default_symbol_version (__getutid_r, getutid_r, UTMP_COMPAT_BASE); -#endif diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/getutline.c b/sysdeps/unix/sysv/linux/s390/s390-32/getutline.c deleted file mode 100644 index cac435b9aa..0000000000 --- a/sysdeps/unix/sysv/linux/s390/s390-32/getutline.c +++ /dev/null @@ -1,32 +0,0 @@ -/* Copyright (C) 2008-2026 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, see - . */ - -#include -#include - -#include "utmp-compat.h" - -#if defined SHARED -# undef weak_alias -# define weak_alias(n,a) -#endif -#include "login/getutline.c" -_weak_alias (buffer, __libc_getutline_freemem_ptr) - -#if defined SHARED -default_symbol_version (__getutline, getutline, UTMP_COMPAT_BASE); -#endif diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/getutline_r.c b/sysdeps/unix/sysv/linux/s390/s390-32/getutline_r.c deleted file mode 100644 index 94f731ae81..0000000000 --- a/sysdeps/unix/sysv/linux/s390/s390-32/getutline_r.c +++ /dev/null @@ -1,33 +0,0 @@ -/* Copyright (C) 2008-2026 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, see - . */ - -#include -#include -#include - -#include "utmp-compat.h" -#include "utmp-private.h" - -#if defined SHARED -# undef weak_alias -# define weak_alias(n,a) -#endif -#include "login/getutline_r.c" - -#if defined SHARED -default_symbol_version (__getutline_r, getutline_r, UTMP_COMPAT_BASE);; -#endif diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/getutmp.c b/sysdeps/unix/sysv/linux/s390/s390-32/getutmp.c deleted file mode 100644 index f4bdaaed2f..0000000000 --- a/sysdeps/unix/sysv/linux/s390/s390-32/getutmp.c +++ /dev/null @@ -1,36 +0,0 @@ -/* Copyright (C) 2008-2026 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, see - . */ - -#include -#include -/* This is an ugly hack but we must not see the getutmpx declaration. */ -#define getutmpx XXXgetutmpx -#include -#undef getutmpx - -#include "utmp-compat.h" - -#undef weak_alias -#define weak_alias(n,a) -#define getutmp __getutmp -#define getutmpx __getutmpx -#include "sysdeps/gnu/getutmp.c" -#undef getutmp -#undef getutmpx - -default_symbol_version (__getutmp, getutmp, UTMP_COMPAT_BASE); -default_symbol_version (__getutmpx, getutmpx, UTMP_COMPAT_BASE); diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/getutxent.c b/sysdeps/unix/sysv/linux/s390/s390-32/getutxent.c deleted file mode 100644 index 1115b7da75..0000000000 --- a/sysdeps/unix/sysv/linux/s390/s390-32/getutxent.c +++ /dev/null @@ -1,29 +0,0 @@ -/* Copyright (C) 2008-2026 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, see - . */ - -#include -#include - -#include "utmp-compat.h" - -#undef weak_alias -#define weak_alias(n,a) -#define getutxent __getutxent -#include "login/getutxent.c" -#undef getutxent - -default_symbol_version (__getutxent, getutxent, UTMP_COMPAT_BASE); diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/getutxid.c b/sysdeps/unix/sysv/linux/s390/s390-32/getutxid.c deleted file mode 100644 index 7ed547035e..0000000000 --- a/sysdeps/unix/sysv/linux/s390/s390-32/getutxid.c +++ /dev/null @@ -1,29 +0,0 @@ -/* Copyright (C) 2008-2026 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, see - . */ - -#include -#include - -#include "utmp-compat.h" - -#undef weak_alias -#define weak_alias(n,a) -#define getutxid __getutxid -#include "login/getutxid.c" -#undef getutxid - -default_symbol_version (__getutxid, getutxid, UTMP_COMPAT_BASE); diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/getutxline.c b/sysdeps/unix/sysv/linux/s390/s390-32/getutxline.c deleted file mode 100644 index 1704b11ec7..0000000000 --- a/sysdeps/unix/sysv/linux/s390/s390-32/getutxline.c +++ /dev/null @@ -1,29 +0,0 @@ -/* Copyright (C) 2008-2026 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, see - . */ - -#include -#include - -#include "utmp-compat.h" - -#undef weak_alias -#define weak_alias(n,a) -#define getutxline __getutxline -#include "login/getutxline.c" -#undef getutxline - -default_symbol_version (__getutxline, getutxline, UTMP_COMPAT_BASE); diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/glob64-lstat-compat.c b/sysdeps/unix/sysv/linux/s390/s390-32/glob64-lstat-compat.c deleted file mode 100644 index 3016785fa1..0000000000 --- a/sysdeps/unix/sysv/linux/s390/s390-32/glob64-lstat-compat.c +++ /dev/null @@ -1,2 +0,0 @@ -#define GLOB_NO_OLD_VERSION -#include diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/kernel_stat.h b/sysdeps/unix/sysv/linux/s390/s390-32/kernel_stat.h deleted file mode 100644 index b1bc1459f0..0000000000 --- a/sysdeps/unix/sysv/linux/s390/s390-32/kernel_stat.h +++ /dev/null @@ -1,40 +0,0 @@ -/* Definition of `struct stat' used in the kernel.. */ -struct kernel_stat - { - unsigned short int st_dev; - unsigned short int __pad1; -#define _HAVE___PAD1 - unsigned long int st_ino; - unsigned short int st_mode; - unsigned short int st_nlink; - unsigned short int st_uid; - unsigned short int st_gid; - unsigned short int st_rdev; - unsigned short int __pad2; -#define _HAVE___PAD2 - unsigned long int st_size; - unsigned long int st_blksize; - unsigned long int st_blocks; - struct timespec st_atim; - struct timespec st_mtim; - struct timespec st_ctim; - unsigned long int __glibc_reserved4; -#define _HAVE___UNUSED4 - unsigned long int __glibc_reserved5; -#define _HAVE___UNUSED5 - }; - -#define _HAVE_STAT___UNUSED4 -#define _HAVE_STAT___UNUSED5 -#define _HAVE_STAT___PAD1 -#define _HAVE_STAT___PAD2 -#define _HAVE_STAT_NSEC -#define _HAVE_STAT64___PAD1 -#define _HAVE_STAT64___PAD2 -#define _HAVE_STAT64___ST_INO -#define _HAVE_STAT64_NSEC - -#define STAT_IS_KERNEL_STAT 0 -#define STAT64_IS_KERNEL_STAT64 1 -#define XSTAT_IS_XSTAT64 0 -#define STATFS_IS_STATFS64 0 diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/ld.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/ld.abilist deleted file mode 100644 index c15288394a..0000000000 --- a/sysdeps/unix/sysv/linux/s390/s390-32/ld.abilist +++ /dev/null @@ -1,8 +0,0 @@ -GLIBC_2.0 _r_debug D 0x14 -GLIBC_2.1 __libc_stack_end D 0x4 -GLIBC_2.1 _dl_mcount F -GLIBC_2.3 __tls_get_offset F -GLIBC_2.34 __rtld_version_placeholder F -GLIBC_2.35 __rseq_flags D 0x4 -GLIBC_2.35 __rseq_offset D 0x4 -GLIBC_2.35 __rseq_size D 0x4 diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libBrokenLocale.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libBrokenLocale.abilist deleted file mode 100644 index 54395f3c8d..0000000000 --- a/sysdeps/unix/sysv/linux/s390/s390-32/libBrokenLocale.abilist +++ /dev/null @@ -1 +0,0 @@ -GLIBC_2.0 __ctype_get_mb_cur_max F diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libanl.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libanl.abilist deleted file mode 100644 index b748507bd9..0000000000 --- a/sysdeps/unix/sysv/linux/s390/s390-32/libanl.abilist +++ /dev/null @@ -1 +0,0 @@ -GLIBC_2.2.3 __libanl_version_placeholder F diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist deleted file mode 100644 index 9bd9f5eb78..0000000000 --- a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist +++ /dev/null @@ -1,3271 +0,0 @@ -GCC_3.0 _Unwind_Find_FDE F -GCC_3.0 __deregister_frame_info_bases F -GCC_3.0 __register_frame_info_bases F -GCC_3.0 __register_frame_info_table_bases F -GLIBC_2.0 _IO_adjust_column F -GLIBC_2.0 _IO_default_doallocate F -GLIBC_2.0 _IO_default_finish F -GLIBC_2.0 _IO_default_pbackfail F -GLIBC_2.0 _IO_default_uflow F -GLIBC_2.0 _IO_default_xsgetn F -GLIBC_2.0 _IO_default_xsputn F -GLIBC_2.0 _IO_do_write F -GLIBC_2.0 _IO_doallocbuf F -GLIBC_2.0 _IO_fclose F -GLIBC_2.0 _IO_fdopen F -GLIBC_2.0 _IO_feof F -GLIBC_2.0 _IO_ferror F -GLIBC_2.0 _IO_fflush F -GLIBC_2.0 _IO_fgetpos F -GLIBC_2.0 _IO_fgets F -GLIBC_2.0 _IO_file_attach F -GLIBC_2.0 _IO_file_close F -GLIBC_2.0 _IO_file_close_it F -GLIBC_2.0 _IO_file_doallocate F -GLIBC_2.0 _IO_file_fopen F -GLIBC_2.0 _IO_file_init F -GLIBC_2.0 _IO_file_jumps D 0x54 -GLIBC_2.0 _IO_file_open F -GLIBC_2.0 _IO_file_overflow F -GLIBC_2.0 _IO_file_read F -GLIBC_2.0 _IO_file_seek F -GLIBC_2.0 _IO_file_seekoff F -GLIBC_2.0 _IO_file_setbuf F -GLIBC_2.0 _IO_file_stat F -GLIBC_2.0 _IO_file_sync F -GLIBC_2.0 _IO_file_underflow F -GLIBC_2.0 _IO_file_write F -GLIBC_2.0 _IO_file_xsputn F -GLIBC_2.0 _IO_flockfile F -GLIBC_2.0 _IO_flush_all F -GLIBC_2.0 _IO_flush_all_linebuffered F -GLIBC_2.0 _IO_fopen F -GLIBC_2.0 _IO_fprintf F -GLIBC_2.0 _IO_fputs F -GLIBC_2.0 _IO_fread F -GLIBC_2.0 _IO_free_backup_area F -GLIBC_2.0 _IO_fsetpos F -GLIBC_2.0 _IO_ftell F -GLIBC_2.0 _IO_ftrylockfile F -GLIBC_2.0 _IO_funlockfile F -GLIBC_2.0 _IO_fwrite F -GLIBC_2.0 _IO_getc F -GLIBC_2.0 _IO_getline F -GLIBC_2.0 _IO_gets F -GLIBC_2.0 _IO_init F -GLIBC_2.0 _IO_init_marker F -GLIBC_2.0 _IO_link_in F -GLIBC_2.0 _IO_list_all D 0x4 -GLIBC_2.0 _IO_marker_delta F -GLIBC_2.0 _IO_marker_difference F -GLIBC_2.0 _IO_padn F -GLIBC_2.0 _IO_peekc_locked F -GLIBC_2.0 _IO_popen F -GLIBC_2.0 _IO_printf F -GLIBC_2.0 _IO_proc_close F -GLIBC_2.0 _IO_proc_open F -GLIBC_2.0 _IO_putc F -GLIBC_2.0 _IO_puts F -GLIBC_2.0 _IO_remove_marker F -GLIBC_2.0 _IO_seekmark F -GLIBC_2.0 _IO_seekoff F -GLIBC_2.0 _IO_seekpos F -GLIBC_2.0 _IO_setb F -GLIBC_2.0 _IO_setbuffer F -GLIBC_2.0 _IO_setvbuf F -GLIBC_2.0 _IO_sgetn F -GLIBC_2.0 _IO_sprintf F -GLIBC_2.0 _IO_sputbackc F -GLIBC_2.0 _IO_sscanf F -GLIBC_2.0 _IO_stderr_ D 0x50 -GLIBC_2.0 _IO_stdin_ D 0x50 -GLIBC_2.0 _IO_stdout_ D 0x50 -GLIBC_2.0 _IO_str_init_readonly F -GLIBC_2.0 _IO_str_init_static F -GLIBC_2.0 _IO_str_overflow F -GLIBC_2.0 _IO_str_pbackfail F -GLIBC_2.0 _IO_str_seekoff F -GLIBC_2.0 _IO_str_underflow F -GLIBC_2.0 _IO_sungetc F -GLIBC_2.0 _IO_switch_to_get_mode F -GLIBC_2.0 _IO_un_link F -GLIBC_2.0 _IO_ungetc F -GLIBC_2.0 _IO_unsave_markers F -GLIBC_2.0 _IO_vfprintf F -GLIBC_2.0 _IO_vfscanf F -GLIBC_2.0 _IO_vsprintf F -GLIBC_2.0 ___brk_addr D 0x4 -GLIBC_2.0 __adjtimex F -GLIBC_2.0 __after_morecore_hook D 0x4 -GLIBC_2.0 __argz_count F -GLIBC_2.0 __argz_next F -GLIBC_2.0 __argz_stringify F -GLIBC_2.0 __assert_fail F -GLIBC_2.0 __assert_perror_fail F -GLIBC_2.0 __bsd_getpgrp F -GLIBC_2.0 __bzero F -GLIBC_2.0 __check_rhosts_file D 0x4 -GLIBC_2.0 __clone F -GLIBC_2.0 __close F -GLIBC_2.0 __cmsg_nxthdr F -GLIBC_2.0 __connect F -GLIBC_2.0 __ctype32_b D 0x4 -GLIBC_2.0 __ctype_b D 0x4 -GLIBC_2.0 __ctype_get_mb_cur_max F -GLIBC_2.0 __ctype_tolower D 0x4 -GLIBC_2.0 __ctype_toupper D 0x4 -GLIBC_2.0 __curbrk D 0x4 -GLIBC_2.0 __daylight D 0x4 -GLIBC_2.0 __dcgettext F -GLIBC_2.0 __default_morecore F -GLIBC_2.0 __deregister_frame F -GLIBC_2.0 __deregister_frame_info F -GLIBC_2.0 __dgettext F -GLIBC_2.0 __divdi3 F -GLIBC_2.0 __dn_comp F -GLIBC_2.0 __dn_skipname F -GLIBC_2.0 __dup2 F -GLIBC_2.0 __environ D 0x4 -GLIBC_2.0 __errno_location F -GLIBC_2.0 __fcntl F -GLIBC_2.0 __ffs F -GLIBC_2.0 __finite F -GLIBC_2.0 __finitef F -GLIBC_2.0 __finitel F -GLIBC_2.0 __fork F -GLIBC_2.0 __fpu_control D 0x4 -GLIBC_2.0 __frame_state_for F -GLIBC_2.0 __free_hook D 0x4 -GLIBC_2.0 __fxstat F -GLIBC_2.0 __getdelim F -GLIBC_2.0 __getpagesize F -GLIBC_2.0 __getpgid F -GLIBC_2.0 __getpid F -GLIBC_2.0 __gettimeofday F -GLIBC_2.0 __gmtime_r F -GLIBC_2.0 __h_errno_location F -GLIBC_2.0 __isinf F -GLIBC_2.0 __isinff F -GLIBC_2.0 __isinfl F -GLIBC_2.0 __isnan F -GLIBC_2.0 __isnanf F -GLIBC_2.0 __isnanl F -GLIBC_2.0 __iswctype F -GLIBC_2.0 __ivaliduser F -GLIBC_2.0 __libc_calloc F -GLIBC_2.0 __libc_free F -GLIBC_2.0 __libc_init_first F -GLIBC_2.0 __libc_mallinfo F -GLIBC_2.0 __libc_malloc F -GLIBC_2.0 __libc_mallopt F -GLIBC_2.0 __libc_memalign F -GLIBC_2.0 __libc_pvalloc F -GLIBC_2.0 __libc_realloc F -GLIBC_2.0 __libc_start_main F -GLIBC_2.0 __libc_valloc F -GLIBC_2.0 __lseek F -GLIBC_2.0 __lxstat F -GLIBC_2.0 __malloc_hook D 0x4 -GLIBC_2.0 __malloc_initialize_hook D 0x4 -GLIBC_2.0 __mbrlen F -GLIBC_2.0 __mbrtowc F -GLIBC_2.0 __memalign_hook D 0x4 -GLIBC_2.0 __mempcpy F -GLIBC_2.0 __moddi3 F -GLIBC_2.0 __monstartup F -GLIBC_2.0 __morecore D 0x4 -GLIBC_2.0 __nss_configure_lookup F -GLIBC_2.0 __nss_database_lookup F -GLIBC_2.0 __nss_group_lookup F -GLIBC_2.0 __nss_hosts_lookup F -GLIBC_2.0 __nss_next F -GLIBC_2.0 __nss_passwd_lookup F -GLIBC_2.0 __open F -GLIBC_2.0 __overflow F -GLIBC_2.0 __pipe F -GLIBC_2.0 __printf_fp F -GLIBC_2.0 __profile_frequency F -GLIBC_2.0 __progname D 0x4 -GLIBC_2.0 __progname_full D 0x4 -GLIBC_2.0 __pthread_getspecific F -GLIBC_2.0 __pthread_key_create F -GLIBC_2.0 __pthread_mutex_destroy F -GLIBC_2.0 __pthread_mutex_init F -GLIBC_2.0 __pthread_mutex_lock F -GLIBC_2.0 __pthread_mutex_trylock F -GLIBC_2.0 __pthread_mutex_unlock F -GLIBC_2.0 __pthread_mutexattr_destroy F -GLIBC_2.0 __pthread_mutexattr_init F -GLIBC_2.0 __pthread_mutexattr_settype F -GLIBC_2.0 __pthread_once F -GLIBC_2.0 __pthread_setspecific F -GLIBC_2.0 __rcmd_errstr D 0x4 -GLIBC_2.0 __read F -GLIBC_2.0 __realloc_hook D 0x4 -GLIBC_2.0 __register_frame F -GLIBC_2.0 __register_frame_info F -GLIBC_2.0 __register_frame_info_table F -GLIBC_2.0 __register_frame_table F -GLIBC_2.0 __res_dnok F -GLIBC_2.0 __res_hnok F -GLIBC_2.0 __res_mailok F -GLIBC_2.0 __res_ownok F -GLIBC_2.0 __res_randomid F -GLIBC_2.0 __res_send F -GLIBC_2.0 __sbrk F -GLIBC_2.0 __sched_get_priority_max F -GLIBC_2.0 __sched_get_priority_min F -GLIBC_2.0 __sched_getparam F -GLIBC_2.0 __sched_getscheduler F -GLIBC_2.0 __sched_setscheduler F -GLIBC_2.0 __sched_yield F -GLIBC_2.0 __secure_getenv F -GLIBC_2.0 __select F -GLIBC_2.0 __send F -GLIBC_2.0 __setpgid F -GLIBC_2.0 __sigaction F -GLIBC_2.0 __sigaddset F -GLIBC_2.0 __sigdelset F -GLIBC_2.0 __sigismember F -GLIBC_2.0 __sigpause F -GLIBC_2.0 __sigsetjmp F -GLIBC_2.0 __stpcpy F -GLIBC_2.0 __stpncpy F -GLIBC_2.0 __strcasecmp F -GLIBC_2.0 __strdup F -GLIBC_2.0 __strerror_r F -GLIBC_2.0 __strtod_internal F -GLIBC_2.0 __strtof_internal F -GLIBC_2.0 __strtok_r F -GLIBC_2.0 __strtol_internal F -GLIBC_2.0 __strtold_internal F -GLIBC_2.0 __strtoll_internal F -GLIBC_2.0 __strtoq_internal F -GLIBC_2.0 __strtoul_internal F -GLIBC_2.0 __strtoull_internal F -GLIBC_2.0 __strtouq_internal F -GLIBC_2.0 __sysv_signal F -GLIBC_2.0 __timezone D 0x4 -GLIBC_2.0 __tzname D 0x8 -GLIBC_2.0 __udivdi3 F -GLIBC_2.0 __uflow F -GLIBC_2.0 __umoddi3 F -GLIBC_2.0 __underflow F -GLIBC_2.0 __vfscanf F -GLIBC_2.0 __vsnprintf F -GLIBC_2.0 __vsscanf F -GLIBC_2.0 __wait F -GLIBC_2.0 __waitpid F -GLIBC_2.0 __wcstod_internal F -GLIBC_2.0 __wcstof_internal F -GLIBC_2.0 __wcstol_internal F -GLIBC_2.0 __wcstold_internal F -GLIBC_2.0 __wcstoll_internal F -GLIBC_2.0 __wcstoul_internal F -GLIBC_2.0 __wcstoull_internal F -GLIBC_2.0 __write F -GLIBC_2.0 __xmknod F -GLIBC_2.0 __xpg_basename F -GLIBC_2.0 __xstat F -GLIBC_2.0 _environ D 0x4 -GLIBC_2.0 _exit F -GLIBC_2.0 _libc_intl_domainname D 0x5 -GLIBC_2.0 _longjmp F -GLIBC_2.0 _mcleanup F -GLIBC_2.0 _mcount F -GLIBC_2.0 _nl_default_dirname D 0x12 -GLIBC_2.0 _nl_domain_bindings D 0x4 -GLIBC_2.0 _nl_msg_cat_cntr D 0x4 -GLIBC_2.0 _null_auth D 0xc -GLIBC_2.0 _obstack D 0x4 -GLIBC_2.0 _obstack_allocated_p F -GLIBC_2.0 _obstack_begin F -GLIBC_2.0 _obstack_begin_1 F -GLIBC_2.0 _obstack_free F -GLIBC_2.0 _obstack_memory_used F -GLIBC_2.0 _obstack_newchunk F -GLIBC_2.0 _pthread_cleanup_pop F -GLIBC_2.0 _pthread_cleanup_pop_restore F -GLIBC_2.0 _pthread_cleanup_push F -GLIBC_2.0 _pthread_cleanup_push_defer F -GLIBC_2.0 _res D 0x200 -GLIBC_2.0 _rpc_dtablesize F -GLIBC_2.0 _seterr_reply F -GLIBC_2.0 _setjmp F -GLIBC_2.0 _sys_errlist D 0x1ec -GLIBC_2.0 _sys_nerr D 0x4 -GLIBC_2.0 _sys_siglist D 0x80 -GLIBC_2.0 _tolower F -GLIBC_2.0 _toupper F -GLIBC_2.0 a64l F -GLIBC_2.0 abort F -GLIBC_2.0 abs F -GLIBC_2.0 accept F -GLIBC_2.0 access F -GLIBC_2.0 acct F -GLIBC_2.0 addmntent F -GLIBC_2.0 adjtime F -GLIBC_2.0 adjtimex F -GLIBC_2.0 advance F -GLIBC_2.0 alarm F -GLIBC_2.0 alphasort F -GLIBC_2.0 argz_add F -GLIBC_2.0 argz_add_sep F -GLIBC_2.0 argz_append F -GLIBC_2.0 argz_count F -GLIBC_2.0 argz_create F -GLIBC_2.0 argz_create_sep F -GLIBC_2.0 argz_delete F -GLIBC_2.0 argz_extract F -GLIBC_2.0 argz_insert F -GLIBC_2.0 argz_next F -GLIBC_2.0 argz_replace F -GLIBC_2.0 argz_stringify F -GLIBC_2.0 asctime F -GLIBC_2.0 asctime_r F -GLIBC_2.0 asprintf F -GLIBC_2.0 atexit F -GLIBC_2.0 atof F -GLIBC_2.0 atoi F -GLIBC_2.0 atol F -GLIBC_2.0 atoll F -GLIBC_2.0 authnone_create F -GLIBC_2.0 authunix_create F -GLIBC_2.0 authunix_create_default F -GLIBC_2.0 basename F -GLIBC_2.0 bcmp F -GLIBC_2.0 bcopy F -GLIBC_2.0 bdflush F -GLIBC_2.0 bind F -GLIBC_2.0 bindresvport F -GLIBC_2.0 bindtextdomain F -GLIBC_2.0 brk F -GLIBC_2.0 bsd_signal F -GLIBC_2.0 bsearch F -GLIBC_2.0 btowc F -GLIBC_2.0 bzero F -GLIBC_2.0 calloc F -GLIBC_2.0 callrpc F -GLIBC_2.0 canonicalize_file_name F -GLIBC_2.0 catclose F -GLIBC_2.0 catgets F -GLIBC_2.0 catopen F -GLIBC_2.0 cfgetispeed F -GLIBC_2.0 cfgetospeed F -GLIBC_2.0 cfmakeraw F -GLIBC_2.0 cfree F -GLIBC_2.0 cfsetispeed F -GLIBC_2.0 cfsetospeed F -GLIBC_2.0 cfsetspeed F -GLIBC_2.0 chdir F -GLIBC_2.0 chflags F -GLIBC_2.0 chmod F -GLIBC_2.0 chown F -GLIBC_2.0 chroot F -GLIBC_2.0 clearenv F -GLIBC_2.0 clearerr F -GLIBC_2.0 clearerr_unlocked F -GLIBC_2.0 clnt_broadcast F -GLIBC_2.0 clnt_create F -GLIBC_2.0 clnt_pcreateerror F -GLIBC_2.0 clnt_perrno F -GLIBC_2.0 clnt_perror F -GLIBC_2.0 clnt_spcreateerror F -GLIBC_2.0 clnt_sperrno F -GLIBC_2.0 clnt_sperror F -GLIBC_2.0 clntraw_create F -GLIBC_2.0 clnttcp_create F -GLIBC_2.0 clntudp_bufcreate F -GLIBC_2.0 clntudp_create F -GLIBC_2.0 clock F -GLIBC_2.0 clone F -GLIBC_2.0 close F -GLIBC_2.0 closedir F -GLIBC_2.0 closelog F -GLIBC_2.0 confstr F -GLIBC_2.0 connect F -GLIBC_2.0 copysign F -GLIBC_2.0 copysignf F -GLIBC_2.0 copysignl F -GLIBC_2.0 creat F -GLIBC_2.0 create_module F -GLIBC_2.0 ctermid F -GLIBC_2.0 ctime F -GLIBC_2.0 ctime_r F -GLIBC_2.0 cuserid F -GLIBC_2.0 daemon F -GLIBC_2.0 daylight D 0x4 -GLIBC_2.0 dcgettext F -GLIBC_2.0 delete_module F -GLIBC_2.0 dgettext F -GLIBC_2.0 difftime F -GLIBC_2.0 dirfd F -GLIBC_2.0 dirname F -GLIBC_2.0 div F -GLIBC_2.0 dladdr F -GLIBC_2.0 dlclose F -GLIBC_2.0 dlerror F -GLIBC_2.0 dlopen F -GLIBC_2.0 dlsym F -GLIBC_2.0 dn_expand F -GLIBC_2.0 dprintf F -GLIBC_2.0 drand48 F -GLIBC_2.0 drand48_r F -GLIBC_2.0 dup F -GLIBC_2.0 dup2 F -GLIBC_2.0 dysize F -GLIBC_2.0 ecvt F -GLIBC_2.0 ecvt_r F -GLIBC_2.0 endaliasent F -GLIBC_2.0 endfsent F -GLIBC_2.0 endgrent F -GLIBC_2.0 endhostent F -GLIBC_2.0 endmntent F -GLIBC_2.0 endnetent F -GLIBC_2.0 endnetgrent F -GLIBC_2.0 endprotoent F -GLIBC_2.0 endpwent F -GLIBC_2.0 endrpcent F -GLIBC_2.0 endservent F -GLIBC_2.0 endspent F -GLIBC_2.0 endttyent F -GLIBC_2.0 endusershell F -GLIBC_2.0 endutent F -GLIBC_2.0 environ D 0x4 -GLIBC_2.0 envz_add F -GLIBC_2.0 envz_entry F -GLIBC_2.0 envz_get F -GLIBC_2.0 envz_merge F -GLIBC_2.0 envz_remove F -GLIBC_2.0 envz_strip F -GLIBC_2.0 erand48 F -GLIBC_2.0 erand48_r F -GLIBC_2.0 err F -GLIBC_2.0 error F -GLIBC_2.0 error_at_line F -GLIBC_2.0 error_message_count D 0x4 -GLIBC_2.0 error_one_per_line D 0x4 -GLIBC_2.0 error_print_progname D 0x4 -GLIBC_2.0 errx F -GLIBC_2.0 ether_aton F -GLIBC_2.0 ether_aton_r F -GLIBC_2.0 ether_hostton F -GLIBC_2.0 ether_line F -GLIBC_2.0 ether_ntoa F -GLIBC_2.0 ether_ntoa_r F -GLIBC_2.0 ether_ntohost F -GLIBC_2.0 euidaccess F -GLIBC_2.0 execl F -GLIBC_2.0 execle F -GLIBC_2.0 execlp F -GLIBC_2.0 execv F -GLIBC_2.0 execve F -GLIBC_2.0 execvp F -GLIBC_2.0 exit F -GLIBC_2.0 fchdir F -GLIBC_2.0 fchflags F -GLIBC_2.0 fchmod F -GLIBC_2.0 fchown F -GLIBC_2.0 fclose F -GLIBC_2.0 fcloseall F -GLIBC_2.0 fcntl F -GLIBC_2.0 fcvt F -GLIBC_2.0 fcvt_r F -GLIBC_2.0 fdatasync F -GLIBC_2.0 fdopen F -GLIBC_2.0 feof F -GLIBC_2.0 feof_unlocked F -GLIBC_2.0 ferror F -GLIBC_2.0 ferror_unlocked F -GLIBC_2.0 fexecve F -GLIBC_2.0 fflush F -GLIBC_2.0 fflush_unlocked F -GLIBC_2.0 ffs F -GLIBC_2.0 fgetc F -GLIBC_2.0 fgetgrent F -GLIBC_2.0 fgetgrent_r F -GLIBC_2.0 fgetpos F -GLIBC_2.0 fgetpwent F -GLIBC_2.0 fgetpwent_r F -GLIBC_2.0 fgets F -GLIBC_2.0 fgetspent F -GLIBC_2.0 fgetspent_r F -GLIBC_2.0 fileno F -GLIBC_2.0 fileno_unlocked F -GLIBC_2.0 finite F -GLIBC_2.0 finitef F -GLIBC_2.0 finitel F -GLIBC_2.0 flock F -GLIBC_2.0 flockfile F -GLIBC_2.0 fnmatch F -GLIBC_2.0 fopen F -GLIBC_2.0 fopencookie F -GLIBC_2.0 fork F -GLIBC_2.0 forkpty F -GLIBC_2.0 fpathconf F -GLIBC_2.0 fprintf F -GLIBC_2.0 fputc F -GLIBC_2.0 fputc_unlocked F -GLIBC_2.0 fputs F -GLIBC_2.0 fread F -GLIBC_2.0 free F -GLIBC_2.0 freeaddrinfo F -GLIBC_2.0 freopen F -GLIBC_2.0 frexp F -GLIBC_2.0 frexpf F -GLIBC_2.0 frexpl F -GLIBC_2.0 fscanf F -GLIBC_2.0 fseek F -GLIBC_2.0 fsetpos F -GLIBC_2.0 fstatfs F -GLIBC_2.0 fsync F -GLIBC_2.0 ftell F -GLIBC_2.0 ftime F -GLIBC_2.0 ftok F -GLIBC_2.0 ftruncate F -GLIBC_2.0 ftrylockfile F -GLIBC_2.0 fts_children F -GLIBC_2.0 fts_close F -GLIBC_2.0 fts_open F -GLIBC_2.0 fts_read F -GLIBC_2.0 fts_set F -GLIBC_2.0 ftw F -GLIBC_2.0 funlockfile F -GLIBC_2.0 fwrite F -GLIBC_2.0 gcvt F -GLIBC_2.0 get_avphys_pages F -GLIBC_2.0 get_current_dir_name F -GLIBC_2.0 get_kernel_syms F -GLIBC_2.0 get_myaddress F -GLIBC_2.0 get_nprocs F -GLIBC_2.0 get_nprocs_conf F -GLIBC_2.0 get_phys_pages F -GLIBC_2.0 getaddrinfo F -GLIBC_2.0 getaliasbyname F -GLIBC_2.0 getaliasbyname_r F -GLIBC_2.0 getaliasent F -GLIBC_2.0 getaliasent_r F -GLIBC_2.0 getc F -GLIBC_2.0 getc_unlocked F -GLIBC_2.0 getchar F -GLIBC_2.0 getchar_unlocked F -GLIBC_2.0 getcwd F -GLIBC_2.0 getdelim F -GLIBC_2.0 getdirentries F -GLIBC_2.0 getdomainname F -GLIBC_2.0 getdtablesize F -GLIBC_2.0 getegid F -GLIBC_2.0 getenv F -GLIBC_2.0 geteuid F -GLIBC_2.0 getfsent F -GLIBC_2.0 getfsfile F -GLIBC_2.0 getfsspec F -GLIBC_2.0 getgid F -GLIBC_2.0 getgrent F -GLIBC_2.0 getgrent_r F -GLIBC_2.0 getgrgid F -GLIBC_2.0 getgrgid_r F -GLIBC_2.0 getgrnam F -GLIBC_2.0 getgrnam_r F -GLIBC_2.0 getgroups F -GLIBC_2.0 gethostbyaddr F -GLIBC_2.0 gethostbyaddr_r F -GLIBC_2.0 gethostbyname F -GLIBC_2.0 gethostbyname2 F -GLIBC_2.0 gethostbyname2_r F -GLIBC_2.0 gethostbyname_r F -GLIBC_2.0 gethostent F -GLIBC_2.0 gethostent_r F -GLIBC_2.0 gethostid F -GLIBC_2.0 gethostname F -GLIBC_2.0 getitimer F -GLIBC_2.0 getline F -GLIBC_2.0 getlogin F -GLIBC_2.0 getlogin_r F -GLIBC_2.0 getmntent F -GLIBC_2.0 getmntent_r F -GLIBC_2.0 getnetbyaddr F -GLIBC_2.0 getnetbyaddr_r F -GLIBC_2.0 getnetbyname F -GLIBC_2.0 getnetbyname_r F -GLIBC_2.0 getnetent F -GLIBC_2.0 getnetent_r F -GLIBC_2.0 getnetgrent F -GLIBC_2.0 getnetgrent_r F -GLIBC_2.0 getopt F -GLIBC_2.0 getopt_long F -GLIBC_2.0 getopt_long_only F -GLIBC_2.0 getpagesize F -GLIBC_2.0 getpass F -GLIBC_2.0 getpeername F -GLIBC_2.0 getpgid F -GLIBC_2.0 getpgrp F -GLIBC_2.0 getpid F -GLIBC_2.0 getppid F -GLIBC_2.0 getpriority F -GLIBC_2.0 getprotobyname F -GLIBC_2.0 getprotobyname_r F -GLIBC_2.0 getprotobynumber F -GLIBC_2.0 getprotobynumber_r F -GLIBC_2.0 getprotoent F -GLIBC_2.0 getprotoent_r F -GLIBC_2.0 getpublickey F -GLIBC_2.0 getpw F -GLIBC_2.0 getpwent F -GLIBC_2.0 getpwent_r F -GLIBC_2.0 getpwnam F -GLIBC_2.0 getpwnam_r F -GLIBC_2.0 getpwuid F -GLIBC_2.0 getpwuid_r F -GLIBC_2.0 getresgid F -GLIBC_2.0 getresuid F -GLIBC_2.0 getrlimit F -GLIBC_2.0 getrpcbyname F -GLIBC_2.0 getrpcbyname_r F -GLIBC_2.0 getrpcbynumber F -GLIBC_2.0 getrpcbynumber_r F -GLIBC_2.0 getrpcent F -GLIBC_2.0 getrpcent_r F -GLIBC_2.0 getrpcport F -GLIBC_2.0 getrusage F -GLIBC_2.0 gets F -GLIBC_2.0 getsecretkey F -GLIBC_2.0 getservbyname F -GLIBC_2.0 getservbyname_r F -GLIBC_2.0 getservbyport F -GLIBC_2.0 getservbyport_r F -GLIBC_2.0 getservent F -GLIBC_2.0 getservent_r F -GLIBC_2.0 getsid F -GLIBC_2.0 getsockname F -GLIBC_2.0 getsockopt F -GLIBC_2.0 getspent F -GLIBC_2.0 getspent_r F -GLIBC_2.0 getspnam F -GLIBC_2.0 getspnam_r F -GLIBC_2.0 getsubopt F -GLIBC_2.0 gettext F -GLIBC_2.0 gettimeofday F -GLIBC_2.0 getttyent F -GLIBC_2.0 getttynam F -GLIBC_2.0 getuid F -GLIBC_2.0 getusershell F -GLIBC_2.0 getutent F -GLIBC_2.0 getutent_r F -GLIBC_2.0 getutid F -GLIBC_2.0 getutid_r F -GLIBC_2.0 getutline F -GLIBC_2.0 getutline_r F -GLIBC_2.0 getw F -GLIBC_2.0 getwd F -GLIBC_2.0 glob F -GLIBC_2.0 glob_pattern_p F -GLIBC_2.0 globfree F -GLIBC_2.0 gmtime F -GLIBC_2.0 gmtime_r F -GLIBC_2.0 group_member F -GLIBC_2.0 gsignal F -GLIBC_2.0 gtty F -GLIBC_2.0 h_errlist D 0x14 -GLIBC_2.0 h_nerr D 0x4 -GLIBC_2.0 hasmntopt F -GLIBC_2.0 hcreate F -GLIBC_2.0 hcreate_r F -GLIBC_2.0 hdestroy F -GLIBC_2.0 hdestroy_r F -GLIBC_2.0 herror F -GLIBC_2.0 hsearch F -GLIBC_2.0 hsearch_r F -GLIBC_2.0 hstrerror F -GLIBC_2.0 htonl F -GLIBC_2.0 htons F -GLIBC_2.0 index F -GLIBC_2.0 inet_addr F -GLIBC_2.0 inet_aton F -GLIBC_2.0 inet_lnaof F -GLIBC_2.0 inet_makeaddr F -GLIBC_2.0 inet_netof F -GLIBC_2.0 inet_network F -GLIBC_2.0 inet_nsap_addr F -GLIBC_2.0 inet_nsap_ntoa F -GLIBC_2.0 inet_ntoa F -GLIBC_2.0 inet_ntop F -GLIBC_2.0 inet_pton F -GLIBC_2.0 init_module F -GLIBC_2.0 initgroups F -GLIBC_2.0 initstate F -GLIBC_2.0 initstate_r F -GLIBC_2.0 innetgr F -GLIBC_2.0 insque F -GLIBC_2.0 ioctl F -GLIBC_2.0 iruserok F -GLIBC_2.0 isalnum F -GLIBC_2.0 isalpha F -GLIBC_2.0 isascii F -GLIBC_2.0 isatty F -GLIBC_2.0 isblank F -GLIBC_2.0 iscntrl F -GLIBC_2.0 isdigit F -GLIBC_2.0 isfdtype F -GLIBC_2.0 isgraph F -GLIBC_2.0 isinf F -GLIBC_2.0 isinff F -GLIBC_2.0 isinfl F -GLIBC_2.0 islower F -GLIBC_2.0 isnan F -GLIBC_2.0 isnanf F -GLIBC_2.0 isnanl F -GLIBC_2.0 isprint F -GLIBC_2.0 ispunct F -GLIBC_2.0 isspace F -GLIBC_2.0 isupper F -GLIBC_2.0 iswalnum F -GLIBC_2.0 iswalpha F -GLIBC_2.0 iswcntrl F -GLIBC_2.0 iswctype F -GLIBC_2.0 iswdigit F -GLIBC_2.0 iswgraph F -GLIBC_2.0 iswlower F -GLIBC_2.0 iswprint F -GLIBC_2.0 iswpunct F -GLIBC_2.0 iswspace F -GLIBC_2.0 iswupper F -GLIBC_2.0 iswxdigit F -GLIBC_2.0 isxdigit F -GLIBC_2.0 jrand48 F -GLIBC_2.0 jrand48_r F -GLIBC_2.0 kill F -GLIBC_2.0 killpg F -GLIBC_2.0 klogctl F -GLIBC_2.0 l64a F -GLIBC_2.0 labs F -GLIBC_2.0 lchown F -GLIBC_2.0 lckpwdf F -GLIBC_2.0 lcong48 F -GLIBC_2.0 lcong48_r F -GLIBC_2.0 ldexp F -GLIBC_2.0 ldexpf F -GLIBC_2.0 ldexpl F -GLIBC_2.0 ldiv F -GLIBC_2.0 lfind F -GLIBC_2.0 link F -GLIBC_2.0 listen F -GLIBC_2.0 llabs F -GLIBC_2.0 lldiv F -GLIBC_2.0 llseek F -GLIBC_2.0 loc1 D 0x4 -GLIBC_2.0 loc2 D 0x4 -GLIBC_2.0 localeconv F -GLIBC_2.0 localtime F -GLIBC_2.0 localtime_r F -GLIBC_2.0 lockf F -GLIBC_2.0 locs D 0x4 -GLIBC_2.0 login F -GLIBC_2.0 login_tty F -GLIBC_2.0 logout F -GLIBC_2.0 logwtmp F -GLIBC_2.0 longjmp F -GLIBC_2.0 lrand48 F -GLIBC_2.0 lrand48_r F -GLIBC_2.0 lsearch F -GLIBC_2.0 lseek F -GLIBC_2.0 madvise F -GLIBC_2.0 mallinfo F -GLIBC_2.0 malloc F -GLIBC_2.0 malloc_stats F -GLIBC_2.0 malloc_trim F -GLIBC_2.0 malloc_usable_size F -GLIBC_2.0 mallopt F -GLIBC_2.0 mallwatch D 0x4 -GLIBC_2.0 mblen F -GLIBC_2.0 mbrlen F -GLIBC_2.0 mbrtowc F -GLIBC_2.0 mbsinit F -GLIBC_2.0 mbsnrtowcs F -GLIBC_2.0 mbsrtowcs F -GLIBC_2.0 mbstowcs F -GLIBC_2.0 mbtowc F -GLIBC_2.0 mcheck F -GLIBC_2.0 mcount F -GLIBC_2.0 memalign F -GLIBC_2.0 memccpy F -GLIBC_2.0 memchr F -GLIBC_2.0 memcmp F -GLIBC_2.0 memcpy F -GLIBC_2.0 memfrob F -GLIBC_2.0 memmem F -GLIBC_2.0 memmove F -GLIBC_2.0 memset F -GLIBC_2.0 mkdir F -GLIBC_2.0 mkfifo F -GLIBC_2.0 mkstemp F -GLIBC_2.0 mktemp F -GLIBC_2.0 mktime F -GLIBC_2.0 mlock F -GLIBC_2.0 mlockall F -GLIBC_2.0 mmap F -GLIBC_2.0 modf F -GLIBC_2.0 modff F -GLIBC_2.0 modfl F -GLIBC_2.0 monstartup F -GLIBC_2.0 mount F -GLIBC_2.0 mprobe F -GLIBC_2.0 mprotect F -GLIBC_2.0 mrand48 F -GLIBC_2.0 mrand48_r F -GLIBC_2.0 mremap F -GLIBC_2.0 msgctl F -GLIBC_2.0 msgget F -GLIBC_2.0 msgrcv F -GLIBC_2.0 msgsnd F -GLIBC_2.0 msync F -GLIBC_2.0 mtrace F -GLIBC_2.0 munlock F -GLIBC_2.0 munlockall F -GLIBC_2.0 munmap F -GLIBC_2.0 muntrace F -GLIBC_2.0 nanosleep F -GLIBC_2.0 nfsservctl F -GLIBC_2.0 nice F -GLIBC_2.0 nl_langinfo F -GLIBC_2.0 nrand48 F -GLIBC_2.0 nrand48_r F -GLIBC_2.0 ntohl F -GLIBC_2.0 ntohs F -GLIBC_2.0 obstack_alloc_failed_handler D 0x4 -GLIBC_2.0 obstack_exit_failure D 0x4 -GLIBC_2.0 obstack_free F -GLIBC_2.0 obstack_printf F -GLIBC_2.0 obstack_vprintf F -GLIBC_2.0 on_exit F -GLIBC_2.0 open F -GLIBC_2.0 open_memstream F -GLIBC_2.0 opendir F -GLIBC_2.0 openlog F -GLIBC_2.0 openpty F -GLIBC_2.0 optarg D 0x4 -GLIBC_2.0 opterr D 0x4 -GLIBC_2.0 optind D 0x4 -GLIBC_2.0 optopt D 0x4 -GLIBC_2.0 parse_printf_format F -GLIBC_2.0 pathconf F -GLIBC_2.0 pause F -GLIBC_2.0 pclose F -GLIBC_2.0 perror F -GLIBC_2.0 personality F -GLIBC_2.0 pipe F -GLIBC_2.0 pmap_getmaps F -GLIBC_2.0 pmap_getport F -GLIBC_2.0 pmap_rmtcall F -GLIBC_2.0 pmap_set F -GLIBC_2.0 pmap_unset F -GLIBC_2.0 poll F -GLIBC_2.0 popen F -GLIBC_2.0 prctl F -GLIBC_2.0 printf F -GLIBC_2.0 profil F -GLIBC_2.0 program_invocation_name D 0x4 -GLIBC_2.0 program_invocation_short_name D 0x4 -GLIBC_2.0 pselect F -GLIBC_2.0 psignal F -GLIBC_2.0 pthread_atfork F -GLIBC_2.0 pthread_attr_destroy F -GLIBC_2.0 pthread_attr_getdetachstate F -GLIBC_2.0 pthread_attr_getinheritsched F -GLIBC_2.0 pthread_attr_getschedparam F -GLIBC_2.0 pthread_attr_getschedpolicy F -GLIBC_2.0 pthread_attr_getscope F -GLIBC_2.0 pthread_attr_init F -GLIBC_2.0 pthread_attr_setdetachstate F -GLIBC_2.0 pthread_attr_setinheritsched F -GLIBC_2.0 pthread_attr_setschedparam F -GLIBC_2.0 pthread_attr_setschedpolicy F -GLIBC_2.0 pthread_attr_setscope F -GLIBC_2.0 pthread_cancel F -GLIBC_2.0 pthread_cond_broadcast F -GLIBC_2.0 pthread_cond_destroy F -GLIBC_2.0 pthread_cond_init F -GLIBC_2.0 pthread_cond_signal F -GLIBC_2.0 pthread_cond_timedwait F -GLIBC_2.0 pthread_cond_wait F -GLIBC_2.0 pthread_condattr_destroy F -GLIBC_2.0 pthread_condattr_init F -GLIBC_2.0 pthread_create F -GLIBC_2.0 pthread_detach F -GLIBC_2.0 pthread_equal F -GLIBC_2.0 pthread_exit F -GLIBC_2.0 pthread_getschedparam F -GLIBC_2.0 pthread_getspecific F -GLIBC_2.0 pthread_join F -GLIBC_2.0 pthread_key_create F -GLIBC_2.0 pthread_key_delete F -GLIBC_2.0 pthread_kill F -GLIBC_2.0 pthread_kill_other_threads_np F -GLIBC_2.0 pthread_mutex_destroy F -GLIBC_2.0 pthread_mutex_init F -GLIBC_2.0 pthread_mutex_lock F -GLIBC_2.0 pthread_mutex_trylock F -GLIBC_2.0 pthread_mutex_unlock F -GLIBC_2.0 pthread_mutexattr_destroy F -GLIBC_2.0 pthread_mutexattr_getkind_np F -GLIBC_2.0 pthread_mutexattr_init F -GLIBC_2.0 pthread_mutexattr_setkind_np F -GLIBC_2.0 pthread_once F -GLIBC_2.0 pthread_self F -GLIBC_2.0 pthread_setcancelstate F -GLIBC_2.0 pthread_setcanceltype F -GLIBC_2.0 pthread_setschedparam F -GLIBC_2.0 pthread_setspecific F -GLIBC_2.0 pthread_sigmask F -GLIBC_2.0 pthread_testcancel F -GLIBC_2.0 ptrace F -GLIBC_2.0 putc F -GLIBC_2.0 putc_unlocked F -GLIBC_2.0 putchar F -GLIBC_2.0 putchar_unlocked F -GLIBC_2.0 putenv F -GLIBC_2.0 putpwent F -GLIBC_2.0 puts F -GLIBC_2.0 putspent F -GLIBC_2.0 pututline F -GLIBC_2.0 putw F -GLIBC_2.0 pvalloc F -GLIBC_2.0 qecvt F -GLIBC_2.0 qecvt_r F -GLIBC_2.0 qfcvt F -GLIBC_2.0 qfcvt_r F -GLIBC_2.0 qgcvt F -GLIBC_2.0 qsort F -GLIBC_2.0 query_module F -GLIBC_2.0 quotactl F -GLIBC_2.0 raise F -GLIBC_2.0 rand F -GLIBC_2.0 rand_r F -GLIBC_2.0 random F -GLIBC_2.0 random_r F -GLIBC_2.0 rcmd F -GLIBC_2.0 re_comp F -GLIBC_2.0 re_compile_fastmap F -GLIBC_2.0 re_compile_pattern F -GLIBC_2.0 re_exec F -GLIBC_2.0 re_match F -GLIBC_2.0 re_match_2 F -GLIBC_2.0 re_max_failures D 0x4 -GLIBC_2.0 re_search F -GLIBC_2.0 re_search_2 F -GLIBC_2.0 re_set_registers F -GLIBC_2.0 re_set_syntax F -GLIBC_2.0 re_syntax_options D 0x4 -GLIBC_2.0 read F -GLIBC_2.0 readdir F -GLIBC_2.0 readdir_r F -GLIBC_2.0 readlink F -GLIBC_2.0 readv F -GLIBC_2.0 realloc F -GLIBC_2.0 realpath F -GLIBC_2.0 reboot F -GLIBC_2.0 recv F -GLIBC_2.0 recvfrom F -GLIBC_2.0 recvmsg F -GLIBC_2.0 regcomp F -GLIBC_2.0 regerror F -GLIBC_2.0 regexec F -GLIBC_2.0 regfree F -GLIBC_2.0 register_printf_function F -GLIBC_2.0 registerrpc F -GLIBC_2.0 remove F -GLIBC_2.0 remque F -GLIBC_2.0 rename F -GLIBC_2.0 res_init F -GLIBC_2.0 res_mkquery F -GLIBC_2.0 res_query F -GLIBC_2.0 res_querydomain F -GLIBC_2.0 res_search F -GLIBC_2.0 revoke F -GLIBC_2.0 rewind F -GLIBC_2.0 rewinddir F -GLIBC_2.0 rexec F -GLIBC_2.0 rexecoptions D 0x4 -GLIBC_2.0 rindex F -GLIBC_2.0 rmdir F -GLIBC_2.0 rpc_createerr D 0x10 -GLIBC_2.0 rpmatch F -GLIBC_2.0 rresvport F -GLIBC_2.0 ruserok F -GLIBC_2.0 ruserpass F -GLIBC_2.0 sbrk F -GLIBC_2.0 scalbn F -GLIBC_2.0 scalbnf F -GLIBC_2.0 scalbnl F -GLIBC_2.0 scandir F -GLIBC_2.0 scanf F -GLIBC_2.0 sched_get_priority_max F -GLIBC_2.0 sched_get_priority_min F -GLIBC_2.0 sched_getparam F -GLIBC_2.0 sched_getscheduler F -GLIBC_2.0 sched_rr_get_interval F -GLIBC_2.0 sched_setparam F -GLIBC_2.0 sched_setscheduler F -GLIBC_2.0 sched_yield F -GLIBC_2.0 seed48 F -GLIBC_2.0 seed48_r F -GLIBC_2.0 seekdir F -GLIBC_2.0 select F -GLIBC_2.0 sem_destroy F -GLIBC_2.0 sem_getvalue F -GLIBC_2.0 sem_init F -GLIBC_2.0 sem_post F -GLIBC_2.0 sem_trywait F -GLIBC_2.0 sem_wait F -GLIBC_2.0 semctl F -GLIBC_2.0 semget F -GLIBC_2.0 semop F -GLIBC_2.0 send F -GLIBC_2.0 sendmsg F -GLIBC_2.0 sendto F -GLIBC_2.0 setaliasent F -GLIBC_2.0 setbuf F -GLIBC_2.0 setbuffer F -GLIBC_2.0 setcontext F -GLIBC_2.0 setdomainname F -GLIBC_2.0 setegid F -GLIBC_2.0 setenv F -GLIBC_2.0 seteuid F -GLIBC_2.0 setfsent F -GLIBC_2.0 setfsgid F -GLIBC_2.0 setfsuid F -GLIBC_2.0 setgid F -GLIBC_2.0 setgrent F -GLIBC_2.0 setgroups F -GLIBC_2.0 sethostent F -GLIBC_2.0 sethostid F -GLIBC_2.0 sethostname F -GLIBC_2.0 setitimer F -GLIBC_2.0 setjmp F -GLIBC_2.0 setlinebuf F -GLIBC_2.0 setlocale F -GLIBC_2.0 setlogin F -GLIBC_2.0 setlogmask F -GLIBC_2.0 setmntent F -GLIBC_2.0 setnetent F -GLIBC_2.0 setnetgrent F -GLIBC_2.0 setpgid F -GLIBC_2.0 setpgrp F -GLIBC_2.0 setpriority F -GLIBC_2.0 setprotoent F -GLIBC_2.0 setpwent F -GLIBC_2.0 setregid F -GLIBC_2.0 setresgid F -GLIBC_2.0 setresuid F -GLIBC_2.0 setreuid F -GLIBC_2.0 setrlimit F -GLIBC_2.0 setrpcent F -GLIBC_2.0 setservent F -GLIBC_2.0 setsid F -GLIBC_2.0 setsockopt F -GLIBC_2.0 setspent F -GLIBC_2.0 setstate F -GLIBC_2.0 setstate_r F -GLIBC_2.0 settimeofday F -GLIBC_2.0 setttyent F -GLIBC_2.0 setuid F -GLIBC_2.0 setusershell F -GLIBC_2.0 setutent F -GLIBC_2.0 setvbuf F -GLIBC_2.0 sgetspent F -GLIBC_2.0 sgetspent_r F -GLIBC_2.0 shmat F -GLIBC_2.0 shmctl F -GLIBC_2.0 shmdt F -GLIBC_2.0 shmget F -GLIBC_2.0 shutdown F -GLIBC_2.0 sigaction F -GLIBC_2.0 sigaddset F -GLIBC_2.0 sigaltstack F -GLIBC_2.0 sigandset F -GLIBC_2.0 sigblock F -GLIBC_2.0 sigdelset F -GLIBC_2.0 sigemptyset F -GLIBC_2.0 sigfillset F -GLIBC_2.0 siggetmask F -GLIBC_2.0 siginterrupt F -GLIBC_2.0 sigisemptyset F -GLIBC_2.0 sigismember F -GLIBC_2.0 siglongjmp F -GLIBC_2.0 signal F -GLIBC_2.0 sigorset F -GLIBC_2.0 sigpause F -GLIBC_2.0 sigpending F -GLIBC_2.0 sigprocmask F -GLIBC_2.0 sigreturn F -GLIBC_2.0 sigsetmask F -GLIBC_2.0 sigstack F -GLIBC_2.0 sigsuspend F -GLIBC_2.0 sigvec F -GLIBC_2.0 sigwait F -GLIBC_2.0 sleep F -GLIBC_2.0 snprintf F -GLIBC_2.0 socket F -GLIBC_2.0 socketpair F -GLIBC_2.0 sprintf F -GLIBC_2.0 srand F -GLIBC_2.0 srand48 F -GLIBC_2.0 srand48_r F -GLIBC_2.0 srandom F -GLIBC_2.0 srandom_r F -GLIBC_2.0 sscanf F -GLIBC_2.0 ssignal F -GLIBC_2.0 sstk F -GLIBC_2.0 statfs F -GLIBC_2.0 stderr D 0x4 -GLIBC_2.0 stdin D 0x4 -GLIBC_2.0 stdout D 0x4 -GLIBC_2.0 step F -GLIBC_2.0 stime F -GLIBC_2.0 stpcpy F -GLIBC_2.0 stpncpy F -GLIBC_2.0 strcasecmp F -GLIBC_2.0 strcat F -GLIBC_2.0 strchr F -GLIBC_2.0 strcmp F -GLIBC_2.0 strcoll F -GLIBC_2.0 strcpy F -GLIBC_2.0 strcspn F -GLIBC_2.0 strdup F -GLIBC_2.0 strerror F -GLIBC_2.0 strerror_r F -GLIBC_2.0 strfmon F -GLIBC_2.0 strfry F -GLIBC_2.0 strftime F -GLIBC_2.0 strlen F -GLIBC_2.0 strncasecmp F -GLIBC_2.0 strncat F -GLIBC_2.0 strncmp F -GLIBC_2.0 strncpy F -GLIBC_2.0 strndup F -GLIBC_2.0 strnlen F -GLIBC_2.0 strpbrk F -GLIBC_2.0 strptime F -GLIBC_2.0 strrchr F -GLIBC_2.0 strsep F -GLIBC_2.0 strsignal F -GLIBC_2.0 strspn F -GLIBC_2.0 strstr F -GLIBC_2.0 strtod F -GLIBC_2.0 strtof F -GLIBC_2.0 strtok F -GLIBC_2.0 strtok_r F -GLIBC_2.0 strtol F -GLIBC_2.0 strtold F -GLIBC_2.0 strtoll F -GLIBC_2.0 strtoq F -GLIBC_2.0 strtoul F -GLIBC_2.0 strtoull F -GLIBC_2.0 strtouq F -GLIBC_2.0 strxfrm F -GLIBC_2.0 stty F -GLIBC_2.0 svc_exit F -GLIBC_2.0 svc_fdset D 0x80 -GLIBC_2.0 svc_getreq F -GLIBC_2.0 svc_getreqset F -GLIBC_2.0 svc_register F -GLIBC_2.0 svc_run F -GLIBC_2.0 svc_sendreply F -GLIBC_2.0 svc_unregister F -GLIBC_2.0 svcauthdes_stats D 0xc -GLIBC_2.0 svcerr_auth F -GLIBC_2.0 svcerr_decode F -GLIBC_2.0 svcerr_noproc F -GLIBC_2.0 svcerr_noprog F -GLIBC_2.0 svcerr_progvers F -GLIBC_2.0 svcerr_systemerr F -GLIBC_2.0 svcerr_weakauth F -GLIBC_2.0 svcfd_create F -GLIBC_2.0 svcraw_create F -GLIBC_2.0 svctcp_create F -GLIBC_2.0 svcudp_bufcreate F -GLIBC_2.0 svcudp_create F -GLIBC_2.0 svcudp_enablecache F -GLIBC_2.0 swab F -GLIBC_2.0 swapoff F -GLIBC_2.0 swapon F -GLIBC_2.0 symlink F -GLIBC_2.0 sync F -GLIBC_2.0 sys_errlist D 0x1ec -GLIBC_2.0 sys_nerr D 0x4 -GLIBC_2.0 sys_sigabbrev D 0x80 -GLIBC_2.0 sys_siglist D 0x80 -GLIBC_2.0 syscall F -GLIBC_2.0 sysconf F -GLIBC_2.0 sysctl F -GLIBC_2.0 sysinfo F -GLIBC_2.0 syslog F -GLIBC_2.0 system F -GLIBC_2.0 tcdrain F -GLIBC_2.0 tcflow F -GLIBC_2.0 tcflush F -GLIBC_2.0 tcgetattr F -GLIBC_2.0 tcgetpgrp F -GLIBC_2.0 tcsendbreak F -GLIBC_2.0 tcsetattr F -GLIBC_2.0 tcsetpgrp F -GLIBC_2.0 tdelete F -GLIBC_2.0 telldir F -GLIBC_2.0 tempnam F -GLIBC_2.0 textdomain F -GLIBC_2.0 tfind F -GLIBC_2.0 time F -GLIBC_2.0 timegm F -GLIBC_2.0 timelocal F -GLIBC_2.0 times F -GLIBC_2.0 timezone D 0x4 -GLIBC_2.0 tmpfile F -GLIBC_2.0 tmpnam F -GLIBC_2.0 tmpnam_r F -GLIBC_2.0 toascii F -GLIBC_2.0 tolower F -GLIBC_2.0 toupper F -GLIBC_2.0 towctrans F -GLIBC_2.0 towlower F -GLIBC_2.0 towupper F -GLIBC_2.0 tr_break F -GLIBC_2.0 truncate F -GLIBC_2.0 tsearch F -GLIBC_2.0 ttyname F -GLIBC_2.0 ttyname_r F -GLIBC_2.0 ttyslot F -GLIBC_2.0 twalk F -GLIBC_2.0 tzname D 0x8 -GLIBC_2.0 tzset F -GLIBC_2.0 ualarm F -GLIBC_2.0 ulckpwdf F -GLIBC_2.0 ulimit F -GLIBC_2.0 umask F -GLIBC_2.0 umount F -GLIBC_2.0 uname F -GLIBC_2.0 ungetc F -GLIBC_2.0 unlink F -GLIBC_2.0 unsetenv F -GLIBC_2.0 updwtmp F -GLIBC_2.0 uselib F -GLIBC_2.0 usleep F -GLIBC_2.0 ustat F -GLIBC_2.0 utime F -GLIBC_2.0 utimes F -GLIBC_2.0 utmpname F -GLIBC_2.0 valloc F -GLIBC_2.0 vasprintf F -GLIBC_2.0 vdprintf F -GLIBC_2.0 verr F -GLIBC_2.0 verrx F -GLIBC_2.0 vfork F -GLIBC_2.0 vfprintf F -GLIBC_2.0 vfscanf F -GLIBC_2.0 vhangup F -GLIBC_2.0 vlimit F -GLIBC_2.0 vprintf F -GLIBC_2.0 vscanf F -GLIBC_2.0 vsnprintf F -GLIBC_2.0 vsprintf F -GLIBC_2.0 vsscanf F -GLIBC_2.0 vsyslog F -GLIBC_2.0 vtimes F -GLIBC_2.0 vwarn F -GLIBC_2.0 vwarnx F -GLIBC_2.0 wait F -GLIBC_2.0 wait3 F -GLIBC_2.0 wait4 F -GLIBC_2.0 waitpid F -GLIBC_2.0 warn F -GLIBC_2.0 warnx F -GLIBC_2.0 wcpcpy F -GLIBC_2.0 wcpncpy F -GLIBC_2.0 wcrtomb F -GLIBC_2.0 wcscat F -GLIBC_2.0 wcschr F -GLIBC_2.0 wcscmp F -GLIBC_2.0 wcscoll F -GLIBC_2.0 wcscpy F -GLIBC_2.0 wcscspn F -GLIBC_2.0 wcsdup F -GLIBC_2.0 wcslen F -GLIBC_2.0 wcsncat F -GLIBC_2.0 wcsncmp F -GLIBC_2.0 wcsncpy F -GLIBC_2.0 wcsnrtombs F -GLIBC_2.0 wcspbrk F -GLIBC_2.0 wcsrchr F -GLIBC_2.0 wcsrtombs F -GLIBC_2.0 wcsspn F -GLIBC_2.0 wcsstr F -GLIBC_2.0 wcstod F -GLIBC_2.0 wcstof F -GLIBC_2.0 wcstok F -GLIBC_2.0 wcstol F -GLIBC_2.0 wcstold F -GLIBC_2.0 wcstombs F -GLIBC_2.0 wcstoq F -GLIBC_2.0 wcstoul F -GLIBC_2.0 wcstouq F -GLIBC_2.0 wcswidth F -GLIBC_2.0 wcsxfrm F -GLIBC_2.0 wctob F -GLIBC_2.0 wctomb F -GLIBC_2.0 wctrans F -GLIBC_2.0 wctype F -GLIBC_2.0 wcwidth F -GLIBC_2.0 wmemchr F -GLIBC_2.0 wmemcmp F -GLIBC_2.0 wmemcpy F -GLIBC_2.0 wmemmove F -GLIBC_2.0 wmemset F -GLIBC_2.0 write F -GLIBC_2.0 writev F -GLIBC_2.0 xdr_accepted_reply F -GLIBC_2.0 xdr_array F -GLIBC_2.0 xdr_authunix_parms F -GLIBC_2.0 xdr_bool F -GLIBC_2.0 xdr_bytes F -GLIBC_2.0 xdr_callhdr F -GLIBC_2.0 xdr_callmsg F -GLIBC_2.0 xdr_char F -GLIBC_2.0 xdr_cryptkeyarg F -GLIBC_2.0 xdr_cryptkeyarg2 F -GLIBC_2.0 xdr_cryptkeyres F -GLIBC_2.0 xdr_des_block F -GLIBC_2.0 xdr_double F -GLIBC_2.0 xdr_enum F -GLIBC_2.0 xdr_float F -GLIBC_2.0 xdr_free F -GLIBC_2.0 xdr_int F -GLIBC_2.0 xdr_key_netstarg F -GLIBC_2.0 xdr_key_netstres F -GLIBC_2.0 xdr_keybuf F -GLIBC_2.0 xdr_keystatus F -GLIBC_2.0 xdr_long F -GLIBC_2.0 xdr_netobj F -GLIBC_2.0 xdr_opaque F -GLIBC_2.0 xdr_opaque_auth F -GLIBC_2.0 xdr_pmap F -GLIBC_2.0 xdr_pmaplist F -GLIBC_2.0 xdr_pointer F -GLIBC_2.0 xdr_reference F -GLIBC_2.0 xdr_rejected_reply F -GLIBC_2.0 xdr_replymsg F -GLIBC_2.0 xdr_rmtcall_args F -GLIBC_2.0 xdr_rmtcallres F -GLIBC_2.0 xdr_short F -GLIBC_2.0 xdr_string F -GLIBC_2.0 xdr_u_char F -GLIBC_2.0 xdr_u_int F -GLIBC_2.0 xdr_u_long F -GLIBC_2.0 xdr_u_short F -GLIBC_2.0 xdr_union F -GLIBC_2.0 xdr_vector F -GLIBC_2.0 xdr_void F -GLIBC_2.0 xdr_wrapstring F -GLIBC_2.0 xdrmem_create F -GLIBC_2.0 xdrrec_create F -GLIBC_2.0 xdrrec_endofrecord F -GLIBC_2.0 xdrrec_eof F -GLIBC_2.0 xdrrec_skiprecord F -GLIBC_2.0 xdrstdio_create F -GLIBC_2.0 xencrypt F -GLIBC_2.0 xprt_register F -GLIBC_2.0 xprt_unregister F -GLIBC_2.1 _IO_2_1_stderr_ D 0xa0 -GLIBC_2.1 _IO_2_1_stdin_ D 0xa0 -GLIBC_2.1 _IO_2_1_stdout_ D 0xa0 -GLIBC_2.1 _IO_do_write F -GLIBC_2.1 _IO_fclose F -GLIBC_2.1 _IO_fdopen F -GLIBC_2.1 _IO_fgetpos64 F -GLIBC_2.1 _IO_file_attach F -GLIBC_2.1 _IO_file_close_it F -GLIBC_2.1 _IO_file_finish F -GLIBC_2.1 _IO_file_fopen F -GLIBC_2.1 _IO_file_init F -GLIBC_2.1 _IO_file_overflow F -GLIBC_2.1 _IO_file_seekoff F -GLIBC_2.1 _IO_file_setbuf F -GLIBC_2.1 _IO_file_sync F -GLIBC_2.1 _IO_file_underflow F -GLIBC_2.1 _IO_file_write F -GLIBC_2.1 _IO_file_xsputn F -GLIBC_2.1 _IO_fopen F -GLIBC_2.1 _IO_fsetpos64 F -GLIBC_2.1 _IO_getline_info F -GLIBC_2.1 _IO_popen F -GLIBC_2.1 _IO_proc_close F -GLIBC_2.1 _IO_proc_open F -GLIBC_2.1 __asprintf F -GLIBC_2.1 __backtrace F -GLIBC_2.1 __backtrace_symbols F -GLIBC_2.1 __backtrace_symbols_fd F -GLIBC_2.1 __chown F -GLIBC_2.1 __duplocale F -GLIBC_2.1 __freelocale F -GLIBC_2.1 __fxstat64 F -GLIBC_2.1 __isalnum_l F -GLIBC_2.1 __isalpha_l F -GLIBC_2.1 __isascii_l F -GLIBC_2.1 __isblank_l F -GLIBC_2.1 __iscntrl_l F -GLIBC_2.1 __isdigit_l F -GLIBC_2.1 __isgraph_l F -GLIBC_2.1 __islower_l F -GLIBC_2.1 __isprint_l F -GLIBC_2.1 __ispunct_l F -GLIBC_2.1 __isspace_l F -GLIBC_2.1 __isupper_l F -GLIBC_2.1 __iswalnum_l F -GLIBC_2.1 __iswalpha_l F -GLIBC_2.1 __iswblank_l F -GLIBC_2.1 __iswcntrl_l F -GLIBC_2.1 __iswctype_l F -GLIBC_2.1 __iswdigit_l F -GLIBC_2.1 __iswgraph_l F -GLIBC_2.1 __iswlower_l F -GLIBC_2.1 __iswprint_l F -GLIBC_2.1 __iswpunct_l F -GLIBC_2.1 __iswspace_l F -GLIBC_2.1 __iswupper_l F -GLIBC_2.1 __iswxdigit_l F -GLIBC_2.1 __isxdigit_l F -GLIBC_2.1 __key_decryptsession_pk_LOCAL D 0x4 -GLIBC_2.1 __key_encryptsession_pk_LOCAL D 0x4 -GLIBC_2.1 __key_gendes_LOCAL D 0x4 -GLIBC_2.1 __libc_allocate_rtsig F -GLIBC_2.1 __libc_current_sigrtmax F -GLIBC_2.1 __libc_current_sigrtmin F -GLIBC_2.1 __libc_freeres F -GLIBC_2.1 __libc_sa_len F -GLIBC_2.1 __lxstat64 F -GLIBC_2.1 __newlocale F -GLIBC_2.1 __poll F -GLIBC_2.1 __pread64 F -GLIBC_2.1 __pwrite64 F -GLIBC_2.1 __rawmemchr F -GLIBC_2.1 __signbit F -GLIBC_2.1 __signbitf F -GLIBC_2.1 __strcasecmp_l F -GLIBC_2.1 __strcasestr F -GLIBC_2.1 __strcoll_l F -GLIBC_2.1 __strfmon_l F -GLIBC_2.1 __strncasecmp_l F -GLIBC_2.1 __strtod_l F -GLIBC_2.1 __strtof_l F -GLIBC_2.1 __strtol_l F -GLIBC_2.1 __strtold_l F -GLIBC_2.1 __strtoll_l F -GLIBC_2.1 __strtoul_l F -GLIBC_2.1 __strtoull_l F -GLIBC_2.1 __strxfrm_l F -GLIBC_2.1 __toascii_l F -GLIBC_2.1 __tolower_l F -GLIBC_2.1 __toupper_l F -GLIBC_2.1 __towctrans F -GLIBC_2.1 __towctrans_l F -GLIBC_2.1 __towlower_l F -GLIBC_2.1 __towupper_l F -GLIBC_2.1 __wcscasecmp_l F -GLIBC_2.1 __wcscoll_l F -GLIBC_2.1 __wcsncasecmp_l F -GLIBC_2.1 __wcstod_l F -GLIBC_2.1 __wcstof_l F -GLIBC_2.1 __wcstol_l F -GLIBC_2.1 __wcstold_l F -GLIBC_2.1 __wcstoll_l F -GLIBC_2.1 __wcstoul_l F -GLIBC_2.1 __wcstoull_l F -GLIBC_2.1 __wcsxfrm_l F -GLIBC_2.1 __wctype_l F -GLIBC_2.1 __xstat64 F -GLIBC_2.1 _authenticate F -GLIBC_2.1 _dl_mcount_wrapper F -GLIBC_2.1 _dl_mcount_wrapper_check F -GLIBC_2.1 _sys_errlist D 0x1f4 -GLIBC_2.1 _sys_nerr D 0x4 -GLIBC_2.1 _sys_siglist D 0x100 -GLIBC_2.1 addseverity F -GLIBC_2.1 aio_cancel F -GLIBC_2.1 aio_cancel64 F -GLIBC_2.1 aio_error F -GLIBC_2.1 aio_error64 F -GLIBC_2.1 aio_fsync F -GLIBC_2.1 aio_fsync64 F -GLIBC_2.1 aio_init F -GLIBC_2.1 aio_read F -GLIBC_2.1 aio_read64 F -GLIBC_2.1 aio_return F -GLIBC_2.1 aio_return64 F -GLIBC_2.1 aio_suspend F -GLIBC_2.1 aio_suspend64 F -GLIBC_2.1 aio_write F -GLIBC_2.1 aio_write64 F -GLIBC_2.1 alphasort64 F -GLIBC_2.1 argp_err_exit_status D 0x4 -GLIBC_2.1 argp_error F -GLIBC_2.1 argp_failure F -GLIBC_2.1 argp_help F -GLIBC_2.1 argp_parse F -GLIBC_2.1 argp_program_bug_address D 0x4 -GLIBC_2.1 argp_program_version D 0x4 -GLIBC_2.1 argp_program_version_hook D 0x4 -GLIBC_2.1 argp_state_help F -GLIBC_2.1 argp_usage F -GLIBC_2.1 authdes_create F -GLIBC_2.1 authdes_getucred F -GLIBC_2.1 authdes_pk_create F -GLIBC_2.1 backtrace F -GLIBC_2.1 backtrace_symbols F -GLIBC_2.1 backtrace_symbols_fd F -GLIBC_2.1 capget F -GLIBC_2.1 capset F -GLIBC_2.1 cbc_crypt F -GLIBC_2.1 chown F -GLIBC_2.1 clntunix_create F -GLIBC_2.1 creat64 F -GLIBC_2.1 des_setparity F -GLIBC_2.1 dlopen F -GLIBC_2.1 dlvsym F -GLIBC_2.1 ecb_crypt F -GLIBC_2.1 endutxent F -GLIBC_2.1 fattach F -GLIBC_2.1 fclose F -GLIBC_2.1 fdetach F -GLIBC_2.1 fdopen F -GLIBC_2.1 ffsl F -GLIBC_2.1 ffsll F -GLIBC_2.1 fgetc_unlocked F -GLIBC_2.1 fgetpos64 F -GLIBC_2.1 fgets_unlocked F -GLIBC_2.1 fmtmsg F -GLIBC_2.1 fopen F -GLIBC_2.1 fopen64 F -GLIBC_2.1 fputs_unlocked F -GLIBC_2.1 fread_unlocked F -GLIBC_2.1 freopen64 F -GLIBC_2.1 fseeko F -GLIBC_2.1 fseeko64 F -GLIBC_2.1 fsetpos64 F -GLIBC_2.1 fstatfs64 F -GLIBC_2.1 fstatvfs F -GLIBC_2.1 fstatvfs64 F -GLIBC_2.1 ftello F -GLIBC_2.1 ftello64 F -GLIBC_2.1 ftruncate64 F -GLIBC_2.1 ftw64 F -GLIBC_2.1 fwrite_unlocked F -GLIBC_2.1 gai_strerror F -GLIBC_2.1 getcontext F -GLIBC_2.1 getdate F -GLIBC_2.1 getdate_err D 0x4 -GLIBC_2.1 getdate_r F -GLIBC_2.1 getmsg F -GLIBC_2.1 getnameinfo F -GLIBC_2.1 getnetname F -GLIBC_2.1 getpmsg F -GLIBC_2.1 getpt F -GLIBC_2.1 getrlimit64 F -GLIBC_2.1 getutxent F -GLIBC_2.1 getutxid F -GLIBC_2.1 getutxline F -GLIBC_2.1 glob64 F -GLIBC_2.1 globfree64 F -GLIBC_2.1 gnu_get_libc_release F -GLIBC_2.1 gnu_get_libc_version F -GLIBC_2.1 grantpt F -GLIBC_2.1 host2netname F -GLIBC_2.1 iconv F -GLIBC_2.1 iconv_close F -GLIBC_2.1 iconv_open F -GLIBC_2.1 if_freenameindex F -GLIBC_2.1 if_indextoname F -GLIBC_2.1 if_nameindex F -GLIBC_2.1 if_nametoindex F -GLIBC_2.1 in6addr_any D 0x10 -GLIBC_2.1 in6addr_loopback D 0x10 -GLIBC_2.1 isastream F -GLIBC_2.1 iswblank F -GLIBC_2.1 key_decryptsession F -GLIBC_2.1 key_decryptsession_pk F -GLIBC_2.1 key_encryptsession F -GLIBC_2.1 key_encryptsession_pk F -GLIBC_2.1 key_gendes F -GLIBC_2.1 key_get_conv F -GLIBC_2.1 key_secretkey_is_set F -GLIBC_2.1 key_setnet F -GLIBC_2.1 key_setsecret F -GLIBC_2.1 lio_listio F -GLIBC_2.1 lio_listio64 F -GLIBC_2.1 lockf64 F -GLIBC_2.1 lseek64 F -GLIBC_2.1 makecontext F -GLIBC_2.1 mempcpy F -GLIBC_2.1 mmap64 F -GLIBC_2.1 netname2host F -GLIBC_2.1 netname2user F -GLIBC_2.1 nftw F -GLIBC_2.1 nftw64 F -GLIBC_2.1 ntp_adjtime F -GLIBC_2.1 ntp_gettime F -GLIBC_2.1 open64 F -GLIBC_2.1 passwd2des F -GLIBC_2.1 pclose F -GLIBC_2.1 popen F -GLIBC_2.1 pread F -GLIBC_2.1 pread64 F -GLIBC_2.1 printf_size F -GLIBC_2.1 printf_size_info F -GLIBC_2.1 pthread_attr_getguardsize F -GLIBC_2.1 pthread_attr_getstackaddr F -GLIBC_2.1 pthread_attr_getstacksize F -GLIBC_2.1 pthread_attr_init F -GLIBC_2.1 pthread_attr_setguardsize F -GLIBC_2.1 pthread_attr_setstackaddr F -GLIBC_2.1 pthread_attr_setstacksize F -GLIBC_2.1 pthread_create F -GLIBC_2.1 pthread_getconcurrency F -GLIBC_2.1 pthread_mutexattr_gettype F -GLIBC_2.1 pthread_mutexattr_settype F -GLIBC_2.1 pthread_rwlock_destroy F -GLIBC_2.1 pthread_rwlock_init F -GLIBC_2.1 pthread_rwlock_rdlock F -GLIBC_2.1 pthread_rwlock_tryrdlock F -GLIBC_2.1 pthread_rwlock_trywrlock F -GLIBC_2.1 pthread_rwlock_unlock F -GLIBC_2.1 pthread_rwlock_wrlock F -GLIBC_2.1 pthread_rwlockattr_destroy F -GLIBC_2.1 pthread_rwlockattr_getkind_np F -GLIBC_2.1 pthread_rwlockattr_getpshared F -GLIBC_2.1 pthread_rwlockattr_init F -GLIBC_2.1 pthread_rwlockattr_setkind_np F -GLIBC_2.1 pthread_rwlockattr_setpshared F -GLIBC_2.1 pthread_setconcurrency F -GLIBC_2.1 ptsname F -GLIBC_2.1 ptsname_r F -GLIBC_2.1 putgrent F -GLIBC_2.1 putmsg F -GLIBC_2.1 putpmsg F -GLIBC_2.1 pututxline F -GLIBC_2.1 pwrite F -GLIBC_2.1 pwrite64 F -GLIBC_2.1 rawmemchr F -GLIBC_2.1 readdir64 F -GLIBC_2.1 readdir64_r F -GLIBC_2.1 rtime F -GLIBC_2.1 scandir64 F -GLIBC_2.1 sem_destroy F -GLIBC_2.1 sem_getvalue F -GLIBC_2.1 sem_init F -GLIBC_2.1 sem_post F -GLIBC_2.1 sem_trywait F -GLIBC_2.1 sem_wait F -GLIBC_2.1 sendfile F -GLIBC_2.1 setrlimit64 F -GLIBC_2.1 setutxent F -GLIBC_2.1 sighold F -GLIBC_2.1 sigignore F -GLIBC_2.1 sigqueue F -GLIBC_2.1 sigrelse F -GLIBC_2.1 sigset F -GLIBC_2.1 sigtimedwait F -GLIBC_2.1 sigwaitinfo F -GLIBC_2.1 statfs64 F -GLIBC_2.1 statvfs F -GLIBC_2.1 statvfs64 F -GLIBC_2.1 strcasestr F -GLIBC_2.1 strtoimax F -GLIBC_2.1 strtoumax F -GLIBC_2.1 strverscmp F -GLIBC_2.1 svcunix_create F -GLIBC_2.1 svcunixfd_create F -GLIBC_2.1 swapcontext F -GLIBC_2.1 sys_errlist D 0x1f4 -GLIBC_2.1 sys_nerr D 0x4 -GLIBC_2.1 sys_sigabbrev D 0x100 -GLIBC_2.1 sys_siglist D 0x100 -GLIBC_2.1 sysv_signal F -GLIBC_2.1 tcgetsid F -GLIBC_2.1 tdestroy F -GLIBC_2.1 tmpfile F -GLIBC_2.1 tmpfile64 F -GLIBC_2.1 truncate64 F -GLIBC_2.1 umount2 F -GLIBC_2.1 unlockpt F -GLIBC_2.1 updwtmpx F -GLIBC_2.1 user2netname F -GLIBC_2.1 utmpxname F -GLIBC_2.1 versionsort F -GLIBC_2.1 versionsort64 F -GLIBC_2.1 waitid F -GLIBC_2.1 wcscasecmp F -GLIBC_2.1 wcsncasecmp F -GLIBC_2.1 wcsnlen F -GLIBC_2.1 wcstoimax F -GLIBC_2.1 wcstoll F -GLIBC_2.1 wcstoull F -GLIBC_2.1 wcstoumax F -GLIBC_2.1 wcswcs F -GLIBC_2.1 wordexp F -GLIBC_2.1 wordfree F -GLIBC_2.1 xdecrypt F -GLIBC_2.1 xdr_authdes_cred F -GLIBC_2.1 xdr_authdes_verf F -GLIBC_2.1 xdr_getcredres F -GLIBC_2.1 xdr_int16_t F -GLIBC_2.1 xdr_int32_t F -GLIBC_2.1 xdr_int8_t F -GLIBC_2.1 xdr_netnamestr F -GLIBC_2.1 xdr_sizeof F -GLIBC_2.1 xdr_uint16_t F -GLIBC_2.1 xdr_uint32_t F -GLIBC_2.1 xdr_uint8_t F -GLIBC_2.1 xdr_unixcred F -GLIBC_2.1.1 _Exit F -GLIBC_2.1.1 __mempcpy_small F -GLIBC_2.1.1 __stpcpy_small F -GLIBC_2.1.1 __strcpy_small F -GLIBC_2.1.1 __strcspn_c1 F -GLIBC_2.1.1 __strcspn_c2 F -GLIBC_2.1.1 __strcspn_c3 F -GLIBC_2.1.1 __strpbrk_c2 F -GLIBC_2.1.1 __strpbrk_c3 F -GLIBC_2.1.1 __strsep_1c F -GLIBC_2.1.1 __strsep_2c F -GLIBC_2.1.1 __strsep_3c F -GLIBC_2.1.1 __strsep_g F -GLIBC_2.1.1 __strspn_c1 F -GLIBC_2.1.1 __strspn_c2 F -GLIBC_2.1.1 __strspn_c3 F -GLIBC_2.1.1 __strtok_r_1c F -GLIBC_2.1.1 __strverscmp F -GLIBC_2.1.1 getutmp F -GLIBC_2.1.1 getutmpx F -GLIBC_2.1.1 imaxabs F -GLIBC_2.1.1 imaxdiv F -GLIBC_2.1.1 sem_close F -GLIBC_2.1.1 sem_open F -GLIBC_2.1.1 sem_unlink F -GLIBC_2.1.1 strchrnul F -GLIBC_2.1.1 xdr_hyper F -GLIBC_2.1.1 xdr_int64_t F -GLIBC_2.1.1 xdr_longlong_t F -GLIBC_2.1.1 xdr_u_hyper F -GLIBC_2.1.1 xdr_u_longlong_t F -GLIBC_2.1.1 xdr_uint64_t F -GLIBC_2.1.2 __vfork F -GLIBC_2.1.2 getaliasbyname_r F -GLIBC_2.1.2 getaliasent_r F -GLIBC_2.1.2 getgrent_r F -GLIBC_2.1.2 getgrgid_r F -GLIBC_2.1.2 getgrnam_r F -GLIBC_2.1.2 gethostbyaddr_r F -GLIBC_2.1.2 gethostbyname2_r F -GLIBC_2.1.2 gethostbyname_r F -GLIBC_2.1.2 gethostent_r F -GLIBC_2.1.2 getnetbyaddr_r F -GLIBC_2.1.2 getnetbyname_r F -GLIBC_2.1.2 getnetent_r F -GLIBC_2.1.2 getprotobyname_r F -GLIBC_2.1.2 getprotobynumber_r F -GLIBC_2.1.2 getprotoent_r F -GLIBC_2.1.2 getpwent_r F -GLIBC_2.1.2 getpwnam_r F -GLIBC_2.1.2 getpwuid_r F -GLIBC_2.1.2 getrpcbyname_r F -GLIBC_2.1.2 getrpcbynumber_r F -GLIBC_2.1.2 getrpcent_r F -GLIBC_2.1.2 getservbyname_r F -GLIBC_2.1.2 getservbyport_r F -GLIBC_2.1.2 getservent_r F -GLIBC_2.1.2 getspent_r F -GLIBC_2.1.2 getspnam_r F -GLIBC_2.1.3 __cxa_atexit F -GLIBC_2.1.3 __cxa_finalize F -GLIBC_2.1.3 __sigsuspend F -GLIBC_2.10 __cxa_at_quick_exit F -GLIBC_2.10 __posix_getopt F -GLIBC_2.10 accept4 F -GLIBC_2.10 endsgent F -GLIBC_2.10 fallocate F -GLIBC_2.10 fgetsgent F -GLIBC_2.10 fgetsgent_r F -GLIBC_2.10 getsgent F -GLIBC_2.10 getsgent_r F -GLIBC_2.10 getsgnam F -GLIBC_2.10 getsgnam_r F -GLIBC_2.10 malloc_info F -GLIBC_2.10 preadv F -GLIBC_2.10 preadv64 F -GLIBC_2.10 psiginfo F -GLIBC_2.10 putsgent F -GLIBC_2.10 pwritev F -GLIBC_2.10 pwritev64 F -GLIBC_2.10 quick_exit F -GLIBC_2.10 register_printf_modifier F -GLIBC_2.10 register_printf_specifier F -GLIBC_2.10 register_printf_type F -GLIBC_2.10 setsgent F -GLIBC_2.10 sgetsgent F -GLIBC_2.10 sgetsgent_r F -GLIBC_2.11 __longjmp_chk F -GLIBC_2.11 execvpe F -GLIBC_2.11 fallocate64 F -GLIBC_2.11 mkostemps F -GLIBC_2.11 mkostemps64 F -GLIBC_2.11 mkstemps F -GLIBC_2.11 mkstemps64 F -GLIBC_2.11 pthread_sigqueue F -GLIBC_2.12 _sys_errlist D 0x21c -GLIBC_2.12 _sys_nerr D 0x4 -GLIBC_2.12 ntp_gettimex F -GLIBC_2.12 pthread_getname_np F -GLIBC_2.12 pthread_mutex_consistent F -GLIBC_2.12 pthread_mutexattr_getrobust F -GLIBC_2.12 pthread_mutexattr_setrobust F -GLIBC_2.12 pthread_setname_np F -GLIBC_2.12 recvmmsg F -GLIBC_2.12 sys_errlist D 0x21c -GLIBC_2.12 sys_nerr D 0x4 -GLIBC_2.13 fanotify_init F -GLIBC_2.13 fanotify_mark F -GLIBC_2.13 prlimit F -GLIBC_2.13 prlimit64 F -GLIBC_2.14 clock_adjtime F -GLIBC_2.14 name_to_handle_at F -GLIBC_2.14 open_by_handle_at F -GLIBC_2.14 sendmmsg F -GLIBC_2.14 setns F -GLIBC_2.14 syncfs F -GLIBC_2.15 __fdelt_chk F -GLIBC_2.15 __fdelt_warn F -GLIBC_2.15 posix_spawn F -GLIBC_2.15 posix_spawnp F -GLIBC_2.15 process_vm_readv F -GLIBC_2.15 process_vm_writev F -GLIBC_2.15 scandirat F -GLIBC_2.15 scandirat64 F -GLIBC_2.16 __getauxval F -GLIBC_2.16 __poll_chk F -GLIBC_2.16 __ppoll_chk F -GLIBC_2.16 aligned_alloc F -GLIBC_2.16 c16rtomb F -GLIBC_2.16 c32rtomb F -GLIBC_2.16 getauxval F -GLIBC_2.16 mbrtoc16 F -GLIBC_2.16 mbrtoc32 F -GLIBC_2.16 timespec_get F -GLIBC_2.17 clock_getcpuclockid F -GLIBC_2.17 clock_getres F -GLIBC_2.17 clock_gettime F -GLIBC_2.17 clock_nanosleep F -GLIBC_2.17 clock_settime F -GLIBC_2.17 secure_getenv F -GLIBC_2.18 __cxa_thread_atexit_impl F -GLIBC_2.18 pthread_getattr_default_np F -GLIBC_2.18 pthread_setattr_default_np F -GLIBC_2.19 __longjmp_chk F -GLIBC_2.19 __sigsetjmp F -GLIBC_2.19 _longjmp F -GLIBC_2.19 _setjmp F -GLIBC_2.19 getcontext F -GLIBC_2.19 longjmp F -GLIBC_2.19 setjmp F -GLIBC_2.19 siglongjmp F -GLIBC_2.2 _IO_adjust_wcolumn F -GLIBC_2.2 _IO_fgetpos F -GLIBC_2.2 _IO_fgetpos64 F -GLIBC_2.2 _IO_free_wbackup_area F -GLIBC_2.2 _IO_fsetpos F -GLIBC_2.2 _IO_fsetpos64 F -GLIBC_2.2 _IO_init_wmarker F -GLIBC_2.2 _IO_iter_begin F -GLIBC_2.2 _IO_iter_end F -GLIBC_2.2 _IO_iter_file F -GLIBC_2.2 _IO_iter_next F -GLIBC_2.2 _IO_least_wmarker F -GLIBC_2.2 _IO_list_lock F -GLIBC_2.2 _IO_list_resetlock F -GLIBC_2.2 _IO_list_unlock F -GLIBC_2.2 _IO_seekwmark F -GLIBC_2.2 _IO_sputbackwc F -GLIBC_2.2 _IO_sungetwc F -GLIBC_2.2 _IO_switch_to_main_wget_area F -GLIBC_2.2 _IO_switch_to_wbackup_area F -GLIBC_2.2 _IO_switch_to_wget_mode F -GLIBC_2.2 _IO_unsave_wmarkers F -GLIBC_2.2 _IO_wdefault_doallocate F -GLIBC_2.2 _IO_wdefault_finish F -GLIBC_2.2 _IO_wdefault_pbackfail F -GLIBC_2.2 _IO_wdefault_uflow F -GLIBC_2.2 _IO_wdefault_xsgetn F -GLIBC_2.2 _IO_wdefault_xsputn F -GLIBC_2.2 _IO_wdo_write F -GLIBC_2.2 _IO_wdoallocbuf F -GLIBC_2.2 _IO_wfile_jumps D 0x54 -GLIBC_2.2 _IO_wfile_overflow F -GLIBC_2.2 _IO_wfile_seekoff F -GLIBC_2.2 _IO_wfile_sync F -GLIBC_2.2 _IO_wfile_underflow F -GLIBC_2.2 _IO_wfile_xsputn F -GLIBC_2.2 _IO_wmarker_delta F -GLIBC_2.2 _IO_wsetb F -GLIBC_2.2 __assert F -GLIBC_2.2 __ctype32_tolower D 0x4 -GLIBC_2.2 __ctype32_toupper D 0x4 -GLIBC_2.2 __cyg_profile_func_enter F -GLIBC_2.2 __cyg_profile_func_exit F -GLIBC_2.2 __dn_expand F -GLIBC_2.2 __endmntent F -GLIBC_2.2 __fbufsize F -GLIBC_2.2 __flbf F -GLIBC_2.2 __fpending F -GLIBC_2.2 __fpurge F -GLIBC_2.2 __freadable F -GLIBC_2.2 __freading F -GLIBC_2.2 __fsetlocking F -GLIBC_2.2 __fwritable F -GLIBC_2.2 __fwriting F -GLIBC_2.2 __fxstat64 F -GLIBC_2.2 __getmntent_r F -GLIBC_2.2 __lxstat64 F -GLIBC_2.2 __nl_langinfo_l F -GLIBC_2.2 __open64 F -GLIBC_2.2 __pread64 F -GLIBC_2.2 __pthread_rwlock_destroy F -GLIBC_2.2 __pthread_rwlock_init F -GLIBC_2.2 __pthread_rwlock_rdlock F -GLIBC_2.2 __pthread_rwlock_tryrdlock F -GLIBC_2.2 __pthread_rwlock_trywrlock F -GLIBC_2.2 __pthread_rwlock_unlock F -GLIBC_2.2 __pthread_rwlock_wrlock F -GLIBC_2.2 __pwrite64 F -GLIBC_2.2 __res_init F -GLIBC_2.2 __res_mkquery F -GLIBC_2.2 __res_nclose F -GLIBC_2.2 __res_ninit F -GLIBC_2.2 __res_nmkquery F -GLIBC_2.2 __res_nquery F -GLIBC_2.2 __res_nquerydomain F -GLIBC_2.2 __res_nsearch F -GLIBC_2.2 __res_nsend F -GLIBC_2.2 __res_query F -GLIBC_2.2 __res_querydomain F -GLIBC_2.2 __res_search F -GLIBC_2.2 __res_state F -GLIBC_2.2 __setmntent F -GLIBC_2.2 __statfs F -GLIBC_2.2 __strndup F -GLIBC_2.2 __sysconf F -GLIBC_2.2 __sysctl F -GLIBC_2.2 __wctrans_l F -GLIBC_2.2 __woverflow F -GLIBC_2.2 __wuflow F -GLIBC_2.2 __wunderflow F -GLIBC_2.2 __xpg_sigpause F -GLIBC_2.2 __xstat64 F -GLIBC_2.2 _flushlbf F -GLIBC_2.2 _res_hconf D 0x30 -GLIBC_2.2 alphasort64 F -GLIBC_2.2 bind_textdomain_codeset F -GLIBC_2.2 clock_getcpuclockid F -GLIBC_2.2 clock_getres F -GLIBC_2.2 clock_gettime F -GLIBC_2.2 clock_nanosleep F -GLIBC_2.2 clock_settime F -GLIBC_2.2 dcngettext F -GLIBC_2.2 dngettext F -GLIBC_2.2 fgetpos F -GLIBC_2.2 fgetpos64 F -GLIBC_2.2 fgetwc F -GLIBC_2.2 fgetwc_unlocked F -GLIBC_2.2 fgetws F -GLIBC_2.2 fgetws_unlocked F -GLIBC_2.2 fmemopen F -GLIBC_2.2 fopencookie F -GLIBC_2.2 fputwc F -GLIBC_2.2 fputwc_unlocked F -GLIBC_2.2 fputws F -GLIBC_2.2 fputws_unlocked F -GLIBC_2.2 fsetpos F -GLIBC_2.2 fsetpos64 F -GLIBC_2.2 fwide F -GLIBC_2.2 fwprintf F -GLIBC_2.2 fwscanf F -GLIBC_2.2 getdirentries64 F -GLIBC_2.2 getloadavg F -GLIBC_2.2 getrlimit F -GLIBC_2.2 getrlimit64 F -GLIBC_2.2 getwc F -GLIBC_2.2 getwc_unlocked F -GLIBC_2.2 getwchar F -GLIBC_2.2 getwchar_unlocked F -GLIBC_2.2 iruserok_af F -GLIBC_2.2 localeconv F -GLIBC_2.2 lseek64 F -GLIBC_2.2 mcheck_check_all F -GLIBC_2.2 mcheck_pedantic F -GLIBC_2.2 memrchr F -GLIBC_2.2 mincore F -GLIBC_2.2 mkdtemp F -GLIBC_2.2 mkstemp64 F -GLIBC_2.2 moncontrol F -GLIBC_2.2 msgctl F -GLIBC_2.2 ngettext F -GLIBC_2.2 open64 F -GLIBC_2.2 posix_fadvise F -GLIBC_2.2 posix_fadvise64 F -GLIBC_2.2 posix_fallocate F -GLIBC_2.2 posix_fallocate64 F -GLIBC_2.2 posix_madvise F -GLIBC_2.2 posix_memalign F -GLIBC_2.2 posix_spawn F -GLIBC_2.2 posix_spawn_file_actions_addclose F -GLIBC_2.2 posix_spawn_file_actions_adddup2 F -GLIBC_2.2 posix_spawn_file_actions_addopen F -GLIBC_2.2 posix_spawn_file_actions_destroy F -GLIBC_2.2 posix_spawn_file_actions_init F -GLIBC_2.2 posix_spawnattr_destroy F -GLIBC_2.2 posix_spawnattr_getflags F -GLIBC_2.2 posix_spawnattr_getpgroup F -GLIBC_2.2 posix_spawnattr_getschedparam F -GLIBC_2.2 posix_spawnattr_getschedpolicy F -GLIBC_2.2 posix_spawnattr_getsigdefault F -GLIBC_2.2 posix_spawnattr_getsigmask F -GLIBC_2.2 posix_spawnattr_init F -GLIBC_2.2 posix_spawnattr_setflags F -GLIBC_2.2 posix_spawnattr_setpgroup F -GLIBC_2.2 posix_spawnattr_setschedparam F -GLIBC_2.2 posix_spawnattr_setschedpolicy F -GLIBC_2.2 posix_spawnattr_setsigdefault F -GLIBC_2.2 posix_spawnattr_setsigmask F -GLIBC_2.2 posix_spawnp F -GLIBC_2.2 pread F -GLIBC_2.2 pread64 F -GLIBC_2.2 pthread_attr_getstack F -GLIBC_2.2 pthread_attr_setstack F -GLIBC_2.2 pthread_barrier_destroy F -GLIBC_2.2 pthread_barrier_init F -GLIBC_2.2 pthread_barrier_wait F -GLIBC_2.2 pthread_barrierattr_destroy F -GLIBC_2.2 pthread_barrierattr_init F -GLIBC_2.2 pthread_barrierattr_setpshared F -GLIBC_2.2 pthread_condattr_getpshared F -GLIBC_2.2 pthread_condattr_setpshared F -GLIBC_2.2 pthread_getcpuclockid F -GLIBC_2.2 pthread_mutex_timedlock F -GLIBC_2.2 pthread_mutexattr_getpshared F -GLIBC_2.2 pthread_mutexattr_setpshared F -GLIBC_2.2 pthread_rwlock_timedrdlock F -GLIBC_2.2 pthread_rwlock_timedwrlock F -GLIBC_2.2 pthread_spin_destroy F -GLIBC_2.2 pthread_spin_init F -GLIBC_2.2 pthread_spin_lock F -GLIBC_2.2 pthread_spin_trylock F -GLIBC_2.2 pthread_spin_unlock F -GLIBC_2.2 pthread_yield F -GLIBC_2.2 putwc F -GLIBC_2.2 putwc_unlocked F -GLIBC_2.2 putwchar F -GLIBC_2.2 putwchar_unlocked F -GLIBC_2.2 pwrite F -GLIBC_2.2 pwrite64 F -GLIBC_2.2 rcmd_af F -GLIBC_2.2 readdir64 F -GLIBC_2.2 readdir64_r F -GLIBC_2.2 rexec_af F -GLIBC_2.2 rresvport_af F -GLIBC_2.2 ruserok_af F -GLIBC_2.2 scandir64 F -GLIBC_2.2 sem_timedwait F -GLIBC_2.2 semctl F -GLIBC_2.2 setrlimit F -GLIBC_2.2 shm_open F -GLIBC_2.2 shm_unlink F -GLIBC_2.2 shmctl F -GLIBC_2.2 svc_getreq_common F -GLIBC_2.2 svc_getreq_poll F -GLIBC_2.2 svc_max_pollfd D 0x4 -GLIBC_2.2 svc_pollfd D 0x4 -GLIBC_2.2 swprintf F -GLIBC_2.2 swscanf F -GLIBC_2.2 timer_create F -GLIBC_2.2 timer_delete F -GLIBC_2.2 timer_getoverrun F -GLIBC_2.2 timer_gettime F -GLIBC_2.2 timer_settime F -GLIBC_2.2 ungetwc F -GLIBC_2.2 versionsort64 F -GLIBC_2.2 vfwprintf F -GLIBC_2.2 vfwscanf F -GLIBC_2.2 vswprintf F -GLIBC_2.2 vswscanf F -GLIBC_2.2 vwprintf F -GLIBC_2.2 vwscanf F -GLIBC_2.2 wcschrnul F -GLIBC_2.2 wcsftime F -GLIBC_2.2 wmempcpy F -GLIBC_2.2 wprintf F -GLIBC_2.2 wscanf F -GLIBC_2.2.1 pivot_root F -GLIBC_2.2.1 posix_openpt F -GLIBC_2.2.2 __nss_hostname_digits_dots F -GLIBC_2.2.3 __rpc_thread_createerr F -GLIBC_2.2.3 __rpc_thread_svc_fdset F -GLIBC_2.2.3 __rpc_thread_svc_max_pollfd F -GLIBC_2.2.3 __rpc_thread_svc_pollfd F -GLIBC_2.2.3 fnmatch F -GLIBC_2.2.3 gai_cancel F -GLIBC_2.2.3 gai_error F -GLIBC_2.2.3 gai_suspend F -GLIBC_2.2.3 getaddrinfo_a F -GLIBC_2.2.3 pthread_getattr_np F -GLIBC_2.2.3 sprofil F -GLIBC_2.2.4 dl_iterate_phdr F -GLIBC_2.2.4 getgrouplist F -GLIBC_2.2.4 sockatmark F -GLIBC_2.2.6 __nanosleep F -GLIBC_2.22 fmemopen F -GLIBC_2.23 fts64_children F -GLIBC_2.23 fts64_close F -GLIBC_2.23 fts64_open F -GLIBC_2.23 fts64_read F -GLIBC_2.23 fts64_set F -GLIBC_2.24 quick_exit F -GLIBC_2.25 __explicit_bzero_chk F -GLIBC_2.25 explicit_bzero F -GLIBC_2.25 getentropy F -GLIBC_2.25 getrandom F -GLIBC_2.25 strfromd F -GLIBC_2.25 strfromf F -GLIBC_2.25 strfroml F -GLIBC_2.26 preadv2 F -GLIBC_2.26 preadv64v2 F -GLIBC_2.26 pwritev2 F -GLIBC_2.26 pwritev64v2 F -GLIBC_2.26 reallocarray F -GLIBC_2.27 copy_file_range F -GLIBC_2.27 glob F -GLIBC_2.27 glob64 F -GLIBC_2.27 memfd_create F -GLIBC_2.27 mlock2 F -GLIBC_2.27 pkey_alloc F -GLIBC_2.27 pkey_free F -GLIBC_2.27 pkey_get F -GLIBC_2.27 pkey_mprotect F -GLIBC_2.27 pkey_set F -GLIBC_2.27 strfromf128 F -GLIBC_2.27 strfromf32 F -GLIBC_2.27 strfromf32x F -GLIBC_2.27 strfromf64 F -GLIBC_2.27 strfromf64x F -GLIBC_2.27 strtof128 F -GLIBC_2.27 strtof128_l F -GLIBC_2.27 strtof32 F -GLIBC_2.27 strtof32_l F -GLIBC_2.27 strtof32x F -GLIBC_2.27 strtof32x_l F -GLIBC_2.27 strtof64 F -GLIBC_2.27 strtof64_l F -GLIBC_2.27 strtof64x F -GLIBC_2.27 strtof64x_l F -GLIBC_2.27 wcstof128 F -GLIBC_2.27 wcstof128_l F -GLIBC_2.27 wcstof32 F -GLIBC_2.27 wcstof32_l F -GLIBC_2.27 wcstof32x F -GLIBC_2.27 wcstof32x_l F -GLIBC_2.27 wcstof64 F -GLIBC_2.27 wcstof64_l F -GLIBC_2.27 wcstof64x F -GLIBC_2.27 wcstof64x_l F -GLIBC_2.28 call_once F -GLIBC_2.28 cnd_broadcast F -GLIBC_2.28 cnd_destroy F -GLIBC_2.28 cnd_init F -GLIBC_2.28 cnd_signal F -GLIBC_2.28 cnd_timedwait F -GLIBC_2.28 cnd_wait F -GLIBC_2.28 fcntl F -GLIBC_2.28 fcntl64 F -GLIBC_2.28 mtx_destroy F -GLIBC_2.28 mtx_init F -GLIBC_2.28 mtx_lock F -GLIBC_2.28 mtx_timedlock F -GLIBC_2.28 mtx_trylock F -GLIBC_2.28 mtx_unlock F -GLIBC_2.28 renameat2 F -GLIBC_2.28 statx F -GLIBC_2.28 thrd_create F -GLIBC_2.28 thrd_current F -GLIBC_2.28 thrd_detach F -GLIBC_2.28 thrd_equal F -GLIBC_2.28 thrd_exit F -GLIBC_2.28 thrd_join F -GLIBC_2.28 thrd_sleep F -GLIBC_2.28 thrd_yield F -GLIBC_2.28 tss_create F -GLIBC_2.28 tss_delete F -GLIBC_2.28 tss_get F -GLIBC_2.28 tss_set F -GLIBC_2.29 getcpu F -GLIBC_2.29 posix_spawn_file_actions_addchdir_np F -GLIBC_2.29 posix_spawn_file_actions_addfchdir_np F -GLIBC_2.3 __ctype_b_loc F -GLIBC_2.3 __ctype_tolower_loc F -GLIBC_2.3 __ctype_toupper_loc F -GLIBC_2.3 __isctype F -GLIBC_2.3 __strftime_l F -GLIBC_2.3 __uselocale F -GLIBC_2.3 __wcsftime_l F -GLIBC_2.3 _sys_errlist D 0x1f8 -GLIBC_2.3 _sys_nerr D 0x4 -GLIBC_2.3 duplocale F -GLIBC_2.3 fgetxattr F -GLIBC_2.3 flistxattr F -GLIBC_2.3 freeifaddrs F -GLIBC_2.3 freelocale F -GLIBC_2.3 fremovexattr F -GLIBC_2.3 fsetxattr F -GLIBC_2.3 futimes F -GLIBC_2.3 getifaddrs F -GLIBC_2.3 getxattr F -GLIBC_2.3 isalnum_l F -GLIBC_2.3 isalpha_l F -GLIBC_2.3 isblank_l F -GLIBC_2.3 iscntrl_l F -GLIBC_2.3 isctype F -GLIBC_2.3 isdigit_l F -GLIBC_2.3 isgraph_l F -GLIBC_2.3 islower_l F -GLIBC_2.3 isprint_l F -GLIBC_2.3 ispunct_l F -GLIBC_2.3 isspace_l F -GLIBC_2.3 isupper_l F -GLIBC_2.3 iswalnum_l F -GLIBC_2.3 iswalpha_l F -GLIBC_2.3 iswblank_l F -GLIBC_2.3 iswcntrl_l F -GLIBC_2.3 iswctype_l F -GLIBC_2.3 iswdigit_l F -GLIBC_2.3 iswgraph_l F -GLIBC_2.3 iswlower_l F -GLIBC_2.3 iswprint_l F -GLIBC_2.3 iswpunct_l F -GLIBC_2.3 iswspace_l F -GLIBC_2.3 iswupper_l F -GLIBC_2.3 iswxdigit_l F -GLIBC_2.3 isxdigit_l F -GLIBC_2.3 lgetxattr F -GLIBC_2.3 listxattr F -GLIBC_2.3 llistxattr F -GLIBC_2.3 lremovexattr F -GLIBC_2.3 lsetxattr F -GLIBC_2.3 lutimes F -GLIBC_2.3 newlocale F -GLIBC_2.3 nl_langinfo_l F -GLIBC_2.3 readahead F -GLIBC_2.3 realpath F -GLIBC_2.3 removexattr F -GLIBC_2.3 sendfile64 F -GLIBC_2.3 setxattr F -GLIBC_2.3 strcasecmp_l F -GLIBC_2.3 strcoll_l F -GLIBC_2.3 strfmon_l F -GLIBC_2.3 strftime_l F -GLIBC_2.3 strncasecmp_l F -GLIBC_2.3 strtod_l F -GLIBC_2.3 strtof_l F -GLIBC_2.3 strtol_l F -GLIBC_2.3 strtold_l F -GLIBC_2.3 strtoll_l F -GLIBC_2.3 strtoul_l F -GLIBC_2.3 strtoull_l F -GLIBC_2.3 strxfrm_l F -GLIBC_2.3 sys_errlist D 0x1f8 -GLIBC_2.3 sys_nerr D 0x4 -GLIBC_2.3 tolower_l F -GLIBC_2.3 toupper_l F -GLIBC_2.3 towctrans_l F -GLIBC_2.3 towlower_l F -GLIBC_2.3 towupper_l F -GLIBC_2.3 uselocale F -GLIBC_2.3 wcscasecmp_l F -GLIBC_2.3 wcscoll_l F -GLIBC_2.3 wcsftime_l F -GLIBC_2.3 wcsncasecmp_l F -GLIBC_2.3 wcstod_l F -GLIBC_2.3 wcstof_l F -GLIBC_2.3 wcstol_l F -GLIBC_2.3 wcstold_l F -GLIBC_2.3 wcstoll_l F -GLIBC_2.3 wcstoul_l F -GLIBC_2.3 wcstoull_l F -GLIBC_2.3 wcsxfrm_l F -GLIBC_2.3 wctrans_l F -GLIBC_2.3 wctype_l F -GLIBC_2.3.2 __register_atfork F -GLIBC_2.3.2 epoll_create F -GLIBC_2.3.2 epoll_ctl F -GLIBC_2.3.2 epoll_wait F -GLIBC_2.3.2 lchmod F -GLIBC_2.3.2 pthread_cond_broadcast F -GLIBC_2.3.2 pthread_cond_destroy F -GLIBC_2.3.2 pthread_cond_init F -GLIBC_2.3.2 pthread_cond_signal F -GLIBC_2.3.2 pthread_cond_timedwait F -GLIBC_2.3.2 pthread_cond_wait F -GLIBC_2.3.2 strptime_l F -GLIBC_2.3.3 __pthread_cleanup_routine F -GLIBC_2.3.3 __pthread_register_cancel F -GLIBC_2.3.3 __pthread_register_cancel_defer F -GLIBC_2.3.3 __pthread_unregister_cancel F -GLIBC_2.3.3 __pthread_unregister_cancel_restore F -GLIBC_2.3.3 __pthread_unwind_next F -GLIBC_2.3.3 _sys_siglist D 0x104 -GLIBC_2.3.3 dladdr1 F -GLIBC_2.3.3 dlinfo F -GLIBC_2.3.3 gnu_dev_major F -GLIBC_2.3.3 gnu_dev_makedev F -GLIBC_2.3.3 gnu_dev_minor F -GLIBC_2.3.3 inet6_option_alloc F -GLIBC_2.3.3 inet6_option_append F -GLIBC_2.3.3 inet6_option_find F -GLIBC_2.3.3 inet6_option_init F -GLIBC_2.3.3 inet6_option_next F -GLIBC_2.3.3 inet6_option_space F -GLIBC_2.3.3 nftw F -GLIBC_2.3.3 nftw64 F -GLIBC_2.3.3 posix_fadvise64 F -GLIBC_2.3.3 posix_fallocate64 F -GLIBC_2.3.3 pthread_attr_getaffinity_np F -GLIBC_2.3.3 pthread_attr_setaffinity_np F -GLIBC_2.3.3 pthread_barrierattr_getpshared F -GLIBC_2.3.3 pthread_condattr_getclock F -GLIBC_2.3.3 pthread_condattr_setclock F -GLIBC_2.3.3 pthread_getaffinity_np F -GLIBC_2.3.3 pthread_setaffinity_np F -GLIBC_2.3.3 pthread_timedjoin_np F -GLIBC_2.3.3 pthread_tryjoin_np F -GLIBC_2.3.3 remap_file_pages F -GLIBC_2.3.3 sched_getaffinity F -GLIBC_2.3.3 sched_setaffinity F -GLIBC_2.3.3 semtimedop F -GLIBC_2.3.3 sys_sigabbrev D 0x104 -GLIBC_2.3.3 sys_siglist D 0x104 -GLIBC_2.3.4 __chk_fail F -GLIBC_2.3.4 __fprintf_chk F -GLIBC_2.3.4 __gets_chk F -GLIBC_2.3.4 __memcpy_chk F -GLIBC_2.3.4 __memmove_chk F -GLIBC_2.3.4 __mempcpy_chk F -GLIBC_2.3.4 __memset_chk F -GLIBC_2.3.4 __printf_chk F -GLIBC_2.3.4 __snprintf_chk F -GLIBC_2.3.4 __sprintf_chk F -GLIBC_2.3.4 __stpcpy_chk F -GLIBC_2.3.4 __strcat_chk F -GLIBC_2.3.4 __strcpy_chk F -GLIBC_2.3.4 __strncat_chk F -GLIBC_2.3.4 __strncpy_chk F -GLIBC_2.3.4 __vfprintf_chk F -GLIBC_2.3.4 __vprintf_chk F -GLIBC_2.3.4 __vsnprintf_chk F -GLIBC_2.3.4 __vsprintf_chk F -GLIBC_2.3.4 __xpg_strerror_r F -GLIBC_2.3.4 dlmopen F -GLIBC_2.3.4 getipv4sourcefilter F -GLIBC_2.3.4 getsourcefilter F -GLIBC_2.3.4 mq_close F -GLIBC_2.3.4 mq_getattr F -GLIBC_2.3.4 mq_notify F -GLIBC_2.3.4 mq_open F -GLIBC_2.3.4 mq_receive F -GLIBC_2.3.4 mq_send F -GLIBC_2.3.4 mq_setattr F -GLIBC_2.3.4 mq_timedreceive F -GLIBC_2.3.4 mq_timedsend F -GLIBC_2.3.4 mq_unlink F -GLIBC_2.3.4 pthread_attr_getaffinity_np F -GLIBC_2.3.4 pthread_attr_setaffinity_np F -GLIBC_2.3.4 pthread_getaffinity_np F -GLIBC_2.3.4 pthread_setaffinity_np F -GLIBC_2.3.4 pthread_setschedprio F -GLIBC_2.3.4 regexec F -GLIBC_2.3.4 sched_getaffinity F -GLIBC_2.3.4 sched_setaffinity F -GLIBC_2.3.4 setipv4sourcefilter F -GLIBC_2.3.4 setsourcefilter F -GLIBC_2.3.4 xdr_quad_t F -GLIBC_2.3.4 xdr_u_quad_t F -GLIBC_2.30 __nldbl_argp_error F -GLIBC_2.30 __nldbl_argp_failure F -GLIBC_2.30 __nldbl_err F -GLIBC_2.30 __nldbl_error F -GLIBC_2.30 __nldbl_error_at_line F -GLIBC_2.30 __nldbl_errx F -GLIBC_2.30 __nldbl_verr F -GLIBC_2.30 __nldbl_verrx F -GLIBC_2.30 __nldbl_vwarn F -GLIBC_2.30 __nldbl_vwarnx F -GLIBC_2.30 __nldbl_warn F -GLIBC_2.30 __nldbl_warnx F -GLIBC_2.30 getdents64 F -GLIBC_2.30 gettid F -GLIBC_2.30 pthread_cond_clockwait F -GLIBC_2.30 pthread_mutex_clocklock F -GLIBC_2.30 pthread_rwlock_clockrdlock F -GLIBC_2.30 pthread_rwlock_clockwrlock F -GLIBC_2.30 sem_clockwait F -GLIBC_2.30 tgkill F -GLIBC_2.30 twalk_r F -GLIBC_2.31 msgctl F -GLIBC_2.31 pthread_clockjoin_np F -GLIBC_2.31 semctl F -GLIBC_2.31 shmctl F -GLIBC_2.32 __libc_single_threaded D 0x1 -GLIBC_2.32 pthread_attr_getsigmask_np F -GLIBC_2.32 pthread_attr_setaffinity_np F -GLIBC_2.32 pthread_attr_setsigmask_np F -GLIBC_2.32 pthread_getaffinity_np F -GLIBC_2.32 pthread_getattr_np F -GLIBC_2.32 pthread_sigmask F -GLIBC_2.32 sigabbrev_np F -GLIBC_2.32 sigdescr_np F -GLIBC_2.32 strerrordesc_np F -GLIBC_2.32 strerrorname_np F -GLIBC_2.33 fstat F -GLIBC_2.33 fstat64 F -GLIBC_2.33 fstatat F -GLIBC_2.33 fstatat64 F -GLIBC_2.33 lstat F -GLIBC_2.33 lstat64 F -GLIBC_2.33 mallinfo2 F -GLIBC_2.33 mknod F -GLIBC_2.33 mknodat F -GLIBC_2.33 stat F -GLIBC_2.33 stat64 F -GLIBC_2.34 _Fork F -GLIBC_2.34 ___adjtimex64 F -GLIBC_2.34 __adjtime64 F -GLIBC_2.34 __aio_suspend_time64 F -GLIBC_2.34 __clock_adjtime64 F -GLIBC_2.34 __clock_getres64 F -GLIBC_2.34 __clock_gettime64 F -GLIBC_2.34 __clock_nanosleep_time64 F -GLIBC_2.34 __clock_settime64 F -GLIBC_2.34 __cnd_timedwait64 F -GLIBC_2.34 __ctime64 F -GLIBC_2.34 __ctime64_r F -GLIBC_2.34 __difftime64 F -GLIBC_2.34 __fcntl_time64 F -GLIBC_2.34 __fstat64_time64 F -GLIBC_2.34 __fstatat64_time64 F -GLIBC_2.34 __fts64_children_time64 F -GLIBC_2.34 __fts64_close_time64 F -GLIBC_2.34 __fts64_open_time64 F -GLIBC_2.34 __fts64_read_time64 F -GLIBC_2.34 __fts64_set_time64 F -GLIBC_2.34 __ftw64_time64 F -GLIBC_2.34 __futimens64 F -GLIBC_2.34 __futimes64 F -GLIBC_2.34 __futimesat64 F -GLIBC_2.34 __gai_suspend_time64 F -GLIBC_2.34 __getitimer64 F -GLIBC_2.34 __getrusage64 F -GLIBC_2.34 __getsockopt64 F -GLIBC_2.34 __gettimeofday64 F -GLIBC_2.34 __glob64_time64 F -GLIBC_2.34 __globfree64_time64 F -GLIBC_2.34 __gmtime64 F -GLIBC_2.34 __gmtime64_r F -GLIBC_2.34 __ioctl_time64 F -GLIBC_2.34 __libc_start_main F -GLIBC_2.34 __localtime64 F -GLIBC_2.34 __localtime64_r F -GLIBC_2.34 __lstat64_time64 F -GLIBC_2.34 __lutimes64 F -GLIBC_2.34 __mktime64 F -GLIBC_2.34 __mq_open_2 F -GLIBC_2.34 __mq_timedreceive_time64 F -GLIBC_2.34 __mq_timedsend_time64 F -GLIBC_2.34 __msgctl64 F -GLIBC_2.34 __mtx_timedlock64 F -GLIBC_2.34 __nanosleep64 F -GLIBC_2.34 __nftw64_time64 F -GLIBC_2.34 __ntp_gettime64 F -GLIBC_2.34 __ntp_gettimex64 F -GLIBC_2.34 __ppoll64 F -GLIBC_2.34 __prctl_time64 F -GLIBC_2.34 __pselect64 F -GLIBC_2.34 __pthread_cleanup_routine F -GLIBC_2.34 __pthread_clockjoin_np64 F -GLIBC_2.34 __pthread_cond_clockwait64 F -GLIBC_2.34 __pthread_cond_timedwait64 F -GLIBC_2.34 __pthread_key_create F -GLIBC_2.34 __pthread_mutex_clocklock64 F -GLIBC_2.34 __pthread_mutex_timedlock64 F -GLIBC_2.34 __pthread_register_cancel F -GLIBC_2.34 __pthread_register_cancel_defer F -GLIBC_2.34 __pthread_rwlock_clockrdlock64 F -GLIBC_2.34 __pthread_rwlock_clockwrlock64 F -GLIBC_2.34 __pthread_rwlock_timedrdlock64 F -GLIBC_2.34 __pthread_rwlock_timedwrlock64 F -GLIBC_2.34 __pthread_timedjoin_np64 F -GLIBC_2.34 __pthread_unregister_cancel F -GLIBC_2.34 __pthread_unregister_cancel_restore F -GLIBC_2.34 __pthread_unwind_next F -GLIBC_2.34 __recvmmsg64 F -GLIBC_2.34 __recvmsg64 F -GLIBC_2.34 __sched_rr_get_interval64 F -GLIBC_2.34 __select64 F -GLIBC_2.34 __sem_clockwait64 F -GLIBC_2.34 __sem_timedwait64 F -GLIBC_2.34 __semctl64 F -GLIBC_2.34 __semtimedop64 F -GLIBC_2.34 __sendmmsg64 F -GLIBC_2.34 __sendmsg64 F -GLIBC_2.34 __setitimer64 F -GLIBC_2.34 __setsockopt64 F -GLIBC_2.34 __settimeofday64 F -GLIBC_2.34 __shmctl64 F -GLIBC_2.34 __sigtimedwait64 F -GLIBC_2.34 __stat64_time64 F -GLIBC_2.34 __thrd_sleep64 F -GLIBC_2.34 __time64 F -GLIBC_2.34 __timegm64 F -GLIBC_2.34 __timer_gettime64 F -GLIBC_2.34 __timer_settime64 F -GLIBC_2.34 __timerfd_gettime64 F -GLIBC_2.34 __timerfd_settime64 F -GLIBC_2.34 __timespec_get64 F -GLIBC_2.34 __timespec_getres64 F -GLIBC_2.34 __utime64 F -GLIBC_2.34 __utimensat64 F -GLIBC_2.34 __utimes64 F -GLIBC_2.34 __wait3_time64 F -GLIBC_2.34 __wait4_time64 F -GLIBC_2.34 _pthread_cleanup_pop F -GLIBC_2.34 _pthread_cleanup_push F -GLIBC_2.34 aio_cancel F -GLIBC_2.34 aio_cancel64 F -GLIBC_2.34 aio_error F -GLIBC_2.34 aio_error64 F -GLIBC_2.34 aio_fsync F -GLIBC_2.34 aio_fsync64 F -GLIBC_2.34 aio_init F -GLIBC_2.34 aio_read F -GLIBC_2.34 aio_read64 F -GLIBC_2.34 aio_return F -GLIBC_2.34 aio_return64 F -GLIBC_2.34 aio_suspend F -GLIBC_2.34 aio_suspend64 F -GLIBC_2.34 aio_write F -GLIBC_2.34 aio_write64 F -GLIBC_2.34 call_once F -GLIBC_2.34 close_range F -GLIBC_2.34 closefrom F -GLIBC_2.34 cnd_broadcast F -GLIBC_2.34 cnd_destroy F -GLIBC_2.34 cnd_init F -GLIBC_2.34 cnd_signal F -GLIBC_2.34 cnd_timedwait F -GLIBC_2.34 cnd_wait F -GLIBC_2.34 dladdr F -GLIBC_2.34 dladdr1 F -GLIBC_2.34 dlclose F -GLIBC_2.34 dlerror F -GLIBC_2.34 dlinfo F -GLIBC_2.34 dlmopen F -GLIBC_2.34 dlopen F -GLIBC_2.34 dlsym F -GLIBC_2.34 dlvsym F -GLIBC_2.34 dn_comp F -GLIBC_2.34 dn_expand F -GLIBC_2.34 dn_skipname F -GLIBC_2.34 execveat F -GLIBC_2.34 forkpty F -GLIBC_2.34 gai_cancel F -GLIBC_2.34 gai_error F -GLIBC_2.34 gai_suspend F -GLIBC_2.34 getaddrinfo_a F -GLIBC_2.34 lio_listio F -GLIBC_2.34 lio_listio64 F -GLIBC_2.34 login F -GLIBC_2.34 login_tty F -GLIBC_2.34 logout F -GLIBC_2.34 logwtmp F -GLIBC_2.34 mq_close F -GLIBC_2.34 mq_getattr F -GLIBC_2.34 mq_notify F -GLIBC_2.34 mq_open F -GLIBC_2.34 mq_receive F -GLIBC_2.34 mq_send F -GLIBC_2.34 mq_setattr F -GLIBC_2.34 mq_timedreceive F -GLIBC_2.34 mq_timedsend F -GLIBC_2.34 mq_unlink F -GLIBC_2.34 mtx_destroy F -GLIBC_2.34 mtx_init F -GLIBC_2.34 mtx_lock F -GLIBC_2.34 mtx_timedlock F -GLIBC_2.34 mtx_trylock F -GLIBC_2.34 mtx_unlock F -GLIBC_2.34 ns_name_compress F -GLIBC_2.34 ns_name_ntop F -GLIBC_2.34 ns_name_pack F -GLIBC_2.34 ns_name_pton F -GLIBC_2.34 ns_name_skip F -GLIBC_2.34 ns_name_uncompress F -GLIBC_2.34 ns_name_unpack F -GLIBC_2.34 openpty F -GLIBC_2.34 posix_spawn_file_actions_addclosefrom_np F -GLIBC_2.34 pthread_attr_getaffinity_np F -GLIBC_2.34 pthread_attr_getguardsize F -GLIBC_2.34 pthread_attr_getstack F -GLIBC_2.34 pthread_attr_getstackaddr F -GLIBC_2.34 pthread_attr_getstacksize F -GLIBC_2.34 pthread_attr_setguardsize F -GLIBC_2.34 pthread_attr_setstack F -GLIBC_2.34 pthread_attr_setstackaddr F -GLIBC_2.34 pthread_attr_setstacksize F -GLIBC_2.34 pthread_barrier_destroy F -GLIBC_2.34 pthread_barrier_init F -GLIBC_2.34 pthread_barrier_wait F -GLIBC_2.34 pthread_barrierattr_destroy F -GLIBC_2.34 pthread_barrierattr_getpshared F -GLIBC_2.34 pthread_barrierattr_init F -GLIBC_2.34 pthread_barrierattr_setpshared F -GLIBC_2.34 pthread_cancel F -GLIBC_2.34 pthread_clockjoin_np F -GLIBC_2.34 pthread_cond_clockwait F -GLIBC_2.34 pthread_condattr_getclock F -GLIBC_2.34 pthread_condattr_getpshared F -GLIBC_2.34 pthread_condattr_setclock F -GLIBC_2.34 pthread_condattr_setpshared F -GLIBC_2.34 pthread_create F -GLIBC_2.34 pthread_detach F -GLIBC_2.34 pthread_getattr_default_np F -GLIBC_2.34 pthread_getconcurrency F -GLIBC_2.34 pthread_getcpuclockid F -GLIBC_2.34 pthread_getname_np F -GLIBC_2.34 pthread_getspecific F -GLIBC_2.34 pthread_join F -GLIBC_2.34 pthread_key_create F -GLIBC_2.34 pthread_key_delete F -GLIBC_2.34 pthread_kill F -GLIBC_2.34 pthread_mutex_clocklock F -GLIBC_2.34 pthread_mutex_consistent F -GLIBC_2.34 pthread_mutex_getprioceiling F -GLIBC_2.34 pthread_mutex_setprioceiling F -GLIBC_2.34 pthread_mutex_timedlock F -GLIBC_2.34 pthread_mutex_trylock F -GLIBC_2.34 pthread_mutexattr_destroy F -GLIBC_2.34 pthread_mutexattr_getprioceiling F -GLIBC_2.34 pthread_mutexattr_getprotocol F -GLIBC_2.34 pthread_mutexattr_getpshared F -GLIBC_2.34 pthread_mutexattr_getrobust F -GLIBC_2.34 pthread_mutexattr_gettype F -GLIBC_2.34 pthread_mutexattr_init F -GLIBC_2.34 pthread_mutexattr_setprioceiling F -GLIBC_2.34 pthread_mutexattr_setprotocol F -GLIBC_2.34 pthread_mutexattr_setpshared F -GLIBC_2.34 pthread_mutexattr_setrobust F -GLIBC_2.34 pthread_mutexattr_settype F -GLIBC_2.34 pthread_once F -GLIBC_2.34 pthread_rwlock_clockrdlock F -GLIBC_2.34 pthread_rwlock_clockwrlock F -GLIBC_2.34 pthread_rwlock_destroy F -GLIBC_2.34 pthread_rwlock_init F -GLIBC_2.34 pthread_rwlock_rdlock F -GLIBC_2.34 pthread_rwlock_timedrdlock F -GLIBC_2.34 pthread_rwlock_timedwrlock F -GLIBC_2.34 pthread_rwlock_tryrdlock F -GLIBC_2.34 pthread_rwlock_trywrlock F -GLIBC_2.34 pthread_rwlock_unlock F -GLIBC_2.34 pthread_rwlock_wrlock F -GLIBC_2.34 pthread_rwlockattr_destroy F -GLIBC_2.34 pthread_rwlockattr_getkind_np F -GLIBC_2.34 pthread_rwlockattr_getpshared F -GLIBC_2.34 pthread_rwlockattr_init F -GLIBC_2.34 pthread_rwlockattr_setkind_np F -GLIBC_2.34 pthread_rwlockattr_setpshared F -GLIBC_2.34 pthread_setaffinity_np F -GLIBC_2.34 pthread_setattr_default_np F -GLIBC_2.34 pthread_setconcurrency F -GLIBC_2.34 pthread_setname_np F -GLIBC_2.34 pthread_setschedprio F -GLIBC_2.34 pthread_setspecific F -GLIBC_2.34 pthread_sigqueue F -GLIBC_2.34 pthread_spin_destroy F -GLIBC_2.34 pthread_spin_init F -GLIBC_2.34 pthread_spin_lock F -GLIBC_2.34 pthread_spin_trylock F -GLIBC_2.34 pthread_spin_unlock F -GLIBC_2.34 pthread_testcancel F -GLIBC_2.34 pthread_timedjoin_np F -GLIBC_2.34 pthread_tryjoin_np F -GLIBC_2.34 res_dnok F -GLIBC_2.34 res_hnok F -GLIBC_2.34 res_mailok F -GLIBC_2.34 res_mkquery F -GLIBC_2.34 res_nmkquery F -GLIBC_2.34 res_nquery F -GLIBC_2.34 res_nquerydomain F -GLIBC_2.34 res_nsearch F -GLIBC_2.34 res_nsend F -GLIBC_2.34 res_ownok F -GLIBC_2.34 res_query F -GLIBC_2.34 res_querydomain F -GLIBC_2.34 res_search F -GLIBC_2.34 res_send F -GLIBC_2.34 sem_clockwait F -GLIBC_2.34 sem_close F -GLIBC_2.34 sem_destroy F -GLIBC_2.34 sem_getvalue F -GLIBC_2.34 sem_init F -GLIBC_2.34 sem_open F -GLIBC_2.34 sem_post F -GLIBC_2.34 sem_timedwait F -GLIBC_2.34 sem_trywait F -GLIBC_2.34 sem_unlink F -GLIBC_2.34 sem_wait F -GLIBC_2.34 shm_open F -GLIBC_2.34 shm_unlink F -GLIBC_2.34 thrd_create F -GLIBC_2.34 thrd_detach F -GLIBC_2.34 thrd_exit F -GLIBC_2.34 thrd_join F -GLIBC_2.34 timer_create F -GLIBC_2.34 timer_delete F -GLIBC_2.34 timer_getoverrun F -GLIBC_2.34 timer_gettime F -GLIBC_2.34 timer_settime F -GLIBC_2.34 timespec_getres F -GLIBC_2.34 tss_create F -GLIBC_2.34 tss_delete F -GLIBC_2.34 tss_get F -GLIBC_2.34 tss_set F -GLIBC_2.35 __epoll_pwait2_time64 F -GLIBC_2.35 __memcmpeq F -GLIBC_2.35 _dl_find_object F -GLIBC_2.35 epoll_pwait2 F -GLIBC_2.35 posix_spawn_file_actions_addtcsetpgrp_np F -GLIBC_2.36 arc4random F -GLIBC_2.36 arc4random_buf F -GLIBC_2.36 arc4random_uniform F -GLIBC_2.36 c8rtomb F -GLIBC_2.36 fsconfig F -GLIBC_2.36 fsmount F -GLIBC_2.36 fsopen F -GLIBC_2.36 fspick F -GLIBC_2.36 mbrtoc8 F -GLIBC_2.36 mount_setattr F -GLIBC_2.36 move_mount F -GLIBC_2.36 open_tree F -GLIBC_2.36 pidfd_getfd F -GLIBC_2.36 pidfd_open F -GLIBC_2.36 pidfd_send_signal F -GLIBC_2.36 process_madvise F -GLIBC_2.36 process_mrelease F -GLIBC_2.37 __ppoll64_chk F -GLIBC_2.38 __isoc23_fscanf F -GLIBC_2.38 __isoc23_fwscanf F -GLIBC_2.38 __isoc23_scanf F -GLIBC_2.38 __isoc23_sscanf F -GLIBC_2.38 __isoc23_strtoimax F -GLIBC_2.38 __isoc23_strtol F -GLIBC_2.38 __isoc23_strtol_l F -GLIBC_2.38 __isoc23_strtoll F -GLIBC_2.38 __isoc23_strtoll_l F -GLIBC_2.38 __isoc23_strtoul F -GLIBC_2.38 __isoc23_strtoul_l F -GLIBC_2.38 __isoc23_strtoull F -GLIBC_2.38 __isoc23_strtoull_l F -GLIBC_2.38 __isoc23_strtoumax F -GLIBC_2.38 __isoc23_swscanf F -GLIBC_2.38 __isoc23_vfscanf F -GLIBC_2.38 __isoc23_vfwscanf F -GLIBC_2.38 __isoc23_vscanf F -GLIBC_2.38 __isoc23_vsscanf F -GLIBC_2.38 __isoc23_vswscanf F -GLIBC_2.38 __isoc23_vwscanf F -GLIBC_2.38 __isoc23_wcstoimax F -GLIBC_2.38 __isoc23_wcstol F -GLIBC_2.38 __isoc23_wcstol_l F -GLIBC_2.38 __isoc23_wcstoll F -GLIBC_2.38 __isoc23_wcstoll_l F -GLIBC_2.38 __isoc23_wcstoul F -GLIBC_2.38 __isoc23_wcstoul_l F -GLIBC_2.38 __isoc23_wcstoull F -GLIBC_2.38 __isoc23_wcstoull_l F -GLIBC_2.38 __isoc23_wcstoumax F -GLIBC_2.38 __isoc23_wscanf F -GLIBC_2.38 __nldbl___isoc23_fscanf F -GLIBC_2.38 __nldbl___isoc23_fwscanf F -GLIBC_2.38 __nldbl___isoc23_scanf F -GLIBC_2.38 __nldbl___isoc23_sscanf F -GLIBC_2.38 __nldbl___isoc23_swscanf F -GLIBC_2.38 __nldbl___isoc23_vfscanf F -GLIBC_2.38 __nldbl___isoc23_vfwscanf F -GLIBC_2.38 __nldbl___isoc23_vscanf F -GLIBC_2.38 __nldbl___isoc23_vsscanf F -GLIBC_2.38 __nldbl___isoc23_vswscanf F -GLIBC_2.38 __nldbl___isoc23_vwscanf F -GLIBC_2.38 __nldbl___isoc23_wscanf F -GLIBC_2.38 __strlcat_chk F -GLIBC_2.38 __strlcpy_chk F -GLIBC_2.38 __wcslcat_chk F -GLIBC_2.38 __wcslcpy_chk F -GLIBC_2.38 strlcat F -GLIBC_2.38 strlcpy F -GLIBC_2.38 wcslcat F -GLIBC_2.38 wcslcpy F -GLIBC_2.39 pidfd_getpid F -GLIBC_2.39 pidfd_spawn F -GLIBC_2.39 pidfd_spawnp F -GLIBC_2.39 posix_spawnattr_getcgroup_np F -GLIBC_2.39 posix_spawnattr_setcgroup_np F -GLIBC_2.39 stdc_bit_ceil_uc F -GLIBC_2.39 stdc_bit_ceil_ui F -GLIBC_2.39 stdc_bit_ceil_ul F -GLIBC_2.39 stdc_bit_ceil_ull F -GLIBC_2.39 stdc_bit_ceil_us F -GLIBC_2.39 stdc_bit_floor_uc F -GLIBC_2.39 stdc_bit_floor_ui F -GLIBC_2.39 stdc_bit_floor_ul F -GLIBC_2.39 stdc_bit_floor_ull F -GLIBC_2.39 stdc_bit_floor_us F -GLIBC_2.39 stdc_bit_width_uc F -GLIBC_2.39 stdc_bit_width_ui F -GLIBC_2.39 stdc_bit_width_ul F -GLIBC_2.39 stdc_bit_width_ull F -GLIBC_2.39 stdc_bit_width_us F -GLIBC_2.39 stdc_count_ones_uc F -GLIBC_2.39 stdc_count_ones_ui F -GLIBC_2.39 stdc_count_ones_ul F -GLIBC_2.39 stdc_count_ones_ull F -GLIBC_2.39 stdc_count_ones_us F -GLIBC_2.39 stdc_count_zeros_uc F -GLIBC_2.39 stdc_count_zeros_ui F -GLIBC_2.39 stdc_count_zeros_ul F -GLIBC_2.39 stdc_count_zeros_ull F -GLIBC_2.39 stdc_count_zeros_us F -GLIBC_2.39 stdc_first_leading_one_uc F -GLIBC_2.39 stdc_first_leading_one_ui F -GLIBC_2.39 stdc_first_leading_one_ul F -GLIBC_2.39 stdc_first_leading_one_ull F -GLIBC_2.39 stdc_first_leading_one_us F -GLIBC_2.39 stdc_first_leading_zero_uc F -GLIBC_2.39 stdc_first_leading_zero_ui F -GLIBC_2.39 stdc_first_leading_zero_ul F -GLIBC_2.39 stdc_first_leading_zero_ull F -GLIBC_2.39 stdc_first_leading_zero_us F -GLIBC_2.39 stdc_first_trailing_one_uc F -GLIBC_2.39 stdc_first_trailing_one_ui F -GLIBC_2.39 stdc_first_trailing_one_ul F -GLIBC_2.39 stdc_first_trailing_one_ull F -GLIBC_2.39 stdc_first_trailing_one_us F -GLIBC_2.39 stdc_first_trailing_zero_uc F -GLIBC_2.39 stdc_first_trailing_zero_ui F -GLIBC_2.39 stdc_first_trailing_zero_ul F -GLIBC_2.39 stdc_first_trailing_zero_ull F -GLIBC_2.39 stdc_first_trailing_zero_us F -GLIBC_2.39 stdc_has_single_bit_uc F -GLIBC_2.39 stdc_has_single_bit_ui F -GLIBC_2.39 stdc_has_single_bit_ul F -GLIBC_2.39 stdc_has_single_bit_ull F -GLIBC_2.39 stdc_has_single_bit_us F -GLIBC_2.39 stdc_leading_ones_uc F -GLIBC_2.39 stdc_leading_ones_ui F -GLIBC_2.39 stdc_leading_ones_ul F -GLIBC_2.39 stdc_leading_ones_ull F -GLIBC_2.39 stdc_leading_ones_us F -GLIBC_2.39 stdc_leading_zeros_uc F -GLIBC_2.39 stdc_leading_zeros_ui F -GLIBC_2.39 stdc_leading_zeros_ul F -GLIBC_2.39 stdc_leading_zeros_ull F -GLIBC_2.39 stdc_leading_zeros_us F -GLIBC_2.39 stdc_trailing_ones_uc F -GLIBC_2.39 stdc_trailing_ones_ui F -GLIBC_2.39 stdc_trailing_ones_ul F -GLIBC_2.39 stdc_trailing_ones_ull F -GLIBC_2.39 stdc_trailing_ones_us F -GLIBC_2.39 stdc_trailing_zeros_uc F -GLIBC_2.39 stdc_trailing_zeros_ui F -GLIBC_2.39 stdc_trailing_zeros_ul F -GLIBC_2.39 stdc_trailing_zeros_ull F -GLIBC_2.39 stdc_trailing_zeros_us F -GLIBC_2.4 _IO_fprintf F -GLIBC_2.4 _IO_printf F -GLIBC_2.4 _IO_sprintf F -GLIBC_2.4 _IO_sscanf F -GLIBC_2.4 _IO_vfprintf F -GLIBC_2.4 _IO_vfscanf F -GLIBC_2.4 _IO_vsprintf F -GLIBC_2.4 __asprintf F -GLIBC_2.4 __confstr_chk F -GLIBC_2.4 __fgets_chk F -GLIBC_2.4 __fgets_unlocked_chk F -GLIBC_2.4 __fgetws_chk F -GLIBC_2.4 __fgetws_unlocked_chk F -GLIBC_2.4 __finitel F -GLIBC_2.4 __fprintf_chk F -GLIBC_2.4 __fwprintf_chk F -GLIBC_2.4 __fxstatat F -GLIBC_2.4 __fxstatat64 F -GLIBC_2.4 __getcwd_chk F -GLIBC_2.4 __getdomainname_chk F -GLIBC_2.4 __getgroups_chk F -GLIBC_2.4 __gethostname_chk F -GLIBC_2.4 __getlogin_r_chk F -GLIBC_2.4 __getwd_chk F -GLIBC_2.4 __isinfl F -GLIBC_2.4 __isnanl F -GLIBC_2.4 __mbsnrtowcs_chk F -GLIBC_2.4 __mbsrtowcs_chk F -GLIBC_2.4 __mbstowcs_chk F -GLIBC_2.4 __nldbl__IO_fprintf F -GLIBC_2.4 __nldbl__IO_printf F -GLIBC_2.4 __nldbl__IO_sprintf F -GLIBC_2.4 __nldbl__IO_sscanf F -GLIBC_2.4 __nldbl__IO_vfprintf F -GLIBC_2.4 __nldbl__IO_vfscanf F -GLIBC_2.4 __nldbl__IO_vsprintf F -GLIBC_2.4 __nldbl___asprintf F -GLIBC_2.4 __nldbl___fprintf_chk F -GLIBC_2.4 __nldbl___fwprintf_chk F -GLIBC_2.4 __nldbl___printf_chk F -GLIBC_2.4 __nldbl___printf_fp F -GLIBC_2.4 __nldbl___snprintf_chk F -GLIBC_2.4 __nldbl___sprintf_chk F -GLIBC_2.4 __nldbl___strfmon_l F -GLIBC_2.4 __nldbl___swprintf_chk F -GLIBC_2.4 __nldbl___syslog_chk F -GLIBC_2.4 __nldbl___vfprintf_chk F -GLIBC_2.4 __nldbl___vfscanf F -GLIBC_2.4 __nldbl___vfwprintf_chk F -GLIBC_2.4 __nldbl___vprintf_chk F -GLIBC_2.4 __nldbl___vsnprintf F -GLIBC_2.4 __nldbl___vsnprintf_chk F -GLIBC_2.4 __nldbl___vsprintf_chk F -GLIBC_2.4 __nldbl___vsscanf F -GLIBC_2.4 __nldbl___vstrfmon F -GLIBC_2.4 __nldbl___vstrfmon_l F -GLIBC_2.4 __nldbl___vswprintf_chk F -GLIBC_2.4 __nldbl___vsyslog_chk F -GLIBC_2.4 __nldbl___vwprintf_chk F -GLIBC_2.4 __nldbl___wprintf_chk F -GLIBC_2.4 __nldbl_asprintf F -GLIBC_2.4 __nldbl_dprintf F -GLIBC_2.4 __nldbl_fprintf F -GLIBC_2.4 __nldbl_fscanf F -GLIBC_2.4 __nldbl_fwprintf F -GLIBC_2.4 __nldbl_fwscanf F -GLIBC_2.4 __nldbl_obstack_printf F -GLIBC_2.4 __nldbl_obstack_vprintf F -GLIBC_2.4 __nldbl_printf F -GLIBC_2.4 __nldbl_printf_size F -GLIBC_2.4 __nldbl_scanf F -GLIBC_2.4 __nldbl_snprintf F -GLIBC_2.4 __nldbl_sprintf F -GLIBC_2.4 __nldbl_sscanf F -GLIBC_2.4 __nldbl_strfmon F -GLIBC_2.4 __nldbl_strfmon_l F -GLIBC_2.4 __nldbl_swprintf F -GLIBC_2.4 __nldbl_swscanf F -GLIBC_2.4 __nldbl_syslog F -GLIBC_2.4 __nldbl_vasprintf F -GLIBC_2.4 __nldbl_vdprintf F -GLIBC_2.4 __nldbl_vfprintf F -GLIBC_2.4 __nldbl_vfscanf F -GLIBC_2.4 __nldbl_vfwprintf F -GLIBC_2.4 __nldbl_vfwscanf F -GLIBC_2.4 __nldbl_vprintf F -GLIBC_2.4 __nldbl_vscanf F -GLIBC_2.4 __nldbl_vsnprintf F -GLIBC_2.4 __nldbl_vsprintf F -GLIBC_2.4 __nldbl_vsscanf F -GLIBC_2.4 __nldbl_vswprintf F -GLIBC_2.4 __nldbl_vswscanf F -GLIBC_2.4 __nldbl_vsyslog F -GLIBC_2.4 __nldbl_vwprintf F -GLIBC_2.4 __nldbl_vwscanf F -GLIBC_2.4 __nldbl_wprintf F -GLIBC_2.4 __nldbl_wscanf F -GLIBC_2.4 __pread64_chk F -GLIBC_2.4 __pread_chk F -GLIBC_2.4 __printf_chk F -GLIBC_2.4 __printf_fp F -GLIBC_2.4 __ptsname_r_chk F -GLIBC_2.4 __read_chk F -GLIBC_2.4 __readlink_chk F -GLIBC_2.4 __realpath_chk F -GLIBC_2.4 __recv_chk F -GLIBC_2.4 __recvfrom_chk F -GLIBC_2.4 __signbitl F -GLIBC_2.4 __snprintf_chk F -GLIBC_2.4 __sprintf_chk F -GLIBC_2.4 __stack_chk_fail F -GLIBC_2.4 __stpncpy_chk F -GLIBC_2.4 __strfmon_l F -GLIBC_2.4 __strtold_internal F -GLIBC_2.4 __strtold_l F -GLIBC_2.4 __swprintf_chk F -GLIBC_2.4 __syslog_chk F -GLIBC_2.4 __ttyname_r_chk F -GLIBC_2.4 __vfprintf_chk F -GLIBC_2.4 __vfscanf F -GLIBC_2.4 __vfwprintf_chk F -GLIBC_2.4 __vprintf_chk F -GLIBC_2.4 __vsnprintf F -GLIBC_2.4 __vsnprintf_chk F -GLIBC_2.4 __vsprintf_chk F -GLIBC_2.4 __vsscanf F -GLIBC_2.4 __vswprintf_chk F -GLIBC_2.4 __vsyslog_chk F -GLIBC_2.4 __vwprintf_chk F -GLIBC_2.4 __wcpcpy_chk F -GLIBC_2.4 __wcpncpy_chk F -GLIBC_2.4 __wcrtomb_chk F -GLIBC_2.4 __wcscat_chk F -GLIBC_2.4 __wcscpy_chk F -GLIBC_2.4 __wcsncat_chk F -GLIBC_2.4 __wcsncpy_chk F -GLIBC_2.4 __wcsnrtombs_chk F -GLIBC_2.4 __wcsrtombs_chk F -GLIBC_2.4 __wcstold_internal F -GLIBC_2.4 __wcstold_l F -GLIBC_2.4 __wcstombs_chk F -GLIBC_2.4 __wctomb_chk F -GLIBC_2.4 __wmemcpy_chk F -GLIBC_2.4 __wmemmove_chk F -GLIBC_2.4 __wmempcpy_chk F -GLIBC_2.4 __wmemset_chk F -GLIBC_2.4 __wprintf_chk F -GLIBC_2.4 __xmknodat F -GLIBC_2.4 _sys_errlist D 0x210 -GLIBC_2.4 _sys_nerr D 0x4 -GLIBC_2.4 asprintf F -GLIBC_2.4 copysignl F -GLIBC_2.4 dprintf F -GLIBC_2.4 eaccess F -GLIBC_2.4 faccessat F -GLIBC_2.4 fchmodat F -GLIBC_2.4 fchownat F -GLIBC_2.4 fdopendir F -GLIBC_2.4 finitel F -GLIBC_2.4 fprintf F -GLIBC_2.4 frexpl F -GLIBC_2.4 fscanf F -GLIBC_2.4 futimesat F -GLIBC_2.4 fwprintf F -GLIBC_2.4 fwscanf F -GLIBC_2.4 inotify_add_watch F -GLIBC_2.4 inotify_init F -GLIBC_2.4 inotify_rm_watch F -GLIBC_2.4 isinfl F -GLIBC_2.4 isnanl F -GLIBC_2.4 ldexpl F -GLIBC_2.4 linkat F -GLIBC_2.4 lio_listio F -GLIBC_2.4 lio_listio64 F -GLIBC_2.4 mkdirat F -GLIBC_2.4 mkfifoat F -GLIBC_2.4 modfl F -GLIBC_2.4 obstack_printf F -GLIBC_2.4 obstack_vprintf F -GLIBC_2.4 open_wmemstream F -GLIBC_2.4 openat F -GLIBC_2.4 openat64 F -GLIBC_2.4 ppoll F -GLIBC_2.4 printf F -GLIBC_2.4 printf_size F -GLIBC_2.4 pthread_mutex_consistent_np F -GLIBC_2.4 pthread_mutex_getprioceiling F -GLIBC_2.4 pthread_mutex_setprioceiling F -GLIBC_2.4 pthread_mutexattr_getprioceiling F -GLIBC_2.4 pthread_mutexattr_getprotocol F -GLIBC_2.4 pthread_mutexattr_getrobust_np F -GLIBC_2.4 pthread_mutexattr_setprioceiling F -GLIBC_2.4 pthread_mutexattr_setprotocol F -GLIBC_2.4 pthread_mutexattr_setrobust_np F -GLIBC_2.4 qecvt F -GLIBC_2.4 qecvt_r F -GLIBC_2.4 qfcvt F -GLIBC_2.4 qfcvt_r F -GLIBC_2.4 qgcvt F -GLIBC_2.4 readlinkat F -GLIBC_2.4 renameat F -GLIBC_2.4 scalbnl F -GLIBC_2.4 scanf F -GLIBC_2.4 snprintf F -GLIBC_2.4 sprintf F -GLIBC_2.4 sscanf F -GLIBC_2.4 strfmon F -GLIBC_2.4 strfmon_l F -GLIBC_2.4 strtold F -GLIBC_2.4 strtold_l F -GLIBC_2.4 swprintf F -GLIBC_2.4 swscanf F -GLIBC_2.4 symlinkat F -GLIBC_2.4 sys_errlist D 0x210 -GLIBC_2.4 sys_nerr D 0x4 -GLIBC_2.4 syslog F -GLIBC_2.4 unlinkat F -GLIBC_2.4 unshare F -GLIBC_2.4 vasprintf F -GLIBC_2.4 vdprintf F -GLIBC_2.4 vfprintf F -GLIBC_2.4 vfscanf F -GLIBC_2.4 vfwprintf F -GLIBC_2.4 vfwscanf F -GLIBC_2.4 vprintf F -GLIBC_2.4 vscanf F -GLIBC_2.4 vsnprintf F -GLIBC_2.4 vsprintf F -GLIBC_2.4 vsscanf F -GLIBC_2.4 vswprintf F -GLIBC_2.4 vswscanf F -GLIBC_2.4 vsyslog F -GLIBC_2.4 vwprintf F -GLIBC_2.4 vwscanf F -GLIBC_2.4 wcstold F -GLIBC_2.4 wcstold_l F -GLIBC_2.4 wprintf F -GLIBC_2.4 wscanf F -GLIBC_2.41 sched_getattr F -GLIBC_2.41 sched_setattr F -GLIBC_2.42 __inet_ntop_chk F -GLIBC_2.42 __inet_pton_chk F -GLIBC_2.42 cfgetibaud F -GLIBC_2.42 cfgetispeed F -GLIBC_2.42 cfgetobaud F -GLIBC_2.42 cfgetospeed F -GLIBC_2.42 cfsetbaud F -GLIBC_2.42 cfsetibaud F -GLIBC_2.42 cfsetispeed F -GLIBC_2.42 cfsetobaud F -GLIBC_2.42 cfsetospeed F -GLIBC_2.42 cfsetspeed F -GLIBC_2.42 pthread_gettid_np F -GLIBC_2.42 uabs F -GLIBC_2.42 uimaxabs F -GLIBC_2.42 ulabs F -GLIBC_2.42 ullabs F -GLIBC_2.43 __memset_explicit_chk F -GLIBC_2.43 free_aligned_sized F -GLIBC_2.43 free_sized F -GLIBC_2.43 memalignment F -GLIBC_2.43 memset_explicit F -GLIBC_2.43 mseal F -GLIBC_2.43 openat2 F -GLIBC_2.43 umaxabs F -GLIBC_2.5 __readlinkat_chk F -GLIBC_2.5 inet6_opt_append F -GLIBC_2.5 inet6_opt_find F -GLIBC_2.5 inet6_opt_finish F -GLIBC_2.5 inet6_opt_get_val F -GLIBC_2.5 inet6_opt_init F -GLIBC_2.5 inet6_opt_next F -GLIBC_2.5 inet6_opt_set_val F -GLIBC_2.5 inet6_rth_add F -GLIBC_2.5 inet6_rth_getaddr F -GLIBC_2.5 inet6_rth_init F -GLIBC_2.5 inet6_rth_reverse F -GLIBC_2.5 inet6_rth_segments F -GLIBC_2.5 inet6_rth_space F -GLIBC_2.5 splice F -GLIBC_2.5 tee F -GLIBC_2.5 vmsplice F -GLIBC_2.6 __sched_cpucount F -GLIBC_2.6 epoll_pwait F -GLIBC_2.6 futimens F -GLIBC_2.6 sched_getcpu F -GLIBC_2.6 strerror_l F -GLIBC_2.6 sync_file_range F -GLIBC_2.6 utimensat F -GLIBC_2.7 __fread_chk F -GLIBC_2.7 __fread_unlocked_chk F -GLIBC_2.7 __isoc99_fscanf F -GLIBC_2.7 __isoc99_fwscanf F -GLIBC_2.7 __isoc99_scanf F -GLIBC_2.7 __isoc99_sscanf F -GLIBC_2.7 __isoc99_swscanf F -GLIBC_2.7 __isoc99_vfscanf F -GLIBC_2.7 __isoc99_vfwscanf F -GLIBC_2.7 __isoc99_vscanf F -GLIBC_2.7 __isoc99_vsscanf F -GLIBC_2.7 __isoc99_vswscanf F -GLIBC_2.7 __isoc99_vwscanf F -GLIBC_2.7 __isoc99_wscanf F -GLIBC_2.7 __mq_open_2 F -GLIBC_2.7 __nldbl___isoc99_fscanf F -GLIBC_2.7 __nldbl___isoc99_fwscanf F -GLIBC_2.7 __nldbl___isoc99_scanf F -GLIBC_2.7 __nldbl___isoc99_sscanf F -GLIBC_2.7 __nldbl___isoc99_swscanf F -GLIBC_2.7 __nldbl___isoc99_vfscanf F -GLIBC_2.7 __nldbl___isoc99_vfwscanf F -GLIBC_2.7 __nldbl___isoc99_vscanf F -GLIBC_2.7 __nldbl___isoc99_vsscanf F -GLIBC_2.7 __nldbl___isoc99_vswscanf F -GLIBC_2.7 __nldbl___isoc99_vwscanf F -GLIBC_2.7 __nldbl___isoc99_wscanf F -GLIBC_2.7 __open64_2 F -GLIBC_2.7 __open_2 F -GLIBC_2.7 __openat64_2 F -GLIBC_2.7 __openat_2 F -GLIBC_2.7 __sched_cpualloc F -GLIBC_2.7 __sched_cpufree F -GLIBC_2.7 eventfd F -GLIBC_2.7 eventfd_read F -GLIBC_2.7 eventfd_write F -GLIBC_2.7 mkostemp F -GLIBC_2.7 mkostemp64 F -GLIBC_2.7 signalfd F -GLIBC_2.8 __asprintf_chk F -GLIBC_2.8 __dprintf_chk F -GLIBC_2.8 __nldbl___asprintf_chk F -GLIBC_2.8 __nldbl___dprintf_chk F -GLIBC_2.8 __nldbl___obstack_printf_chk F -GLIBC_2.8 __nldbl___obstack_vprintf_chk F -GLIBC_2.8 __nldbl___vasprintf_chk F -GLIBC_2.8 __nldbl___vdprintf_chk F -GLIBC_2.8 __obstack_printf_chk F -GLIBC_2.8 __obstack_vprintf_chk F -GLIBC_2.8 __vasprintf_chk F -GLIBC_2.8 __vdprintf_chk F -GLIBC_2.8 qsort_r F -GLIBC_2.8 timerfd_create F -GLIBC_2.8 timerfd_gettime F -GLIBC_2.8 timerfd_settime F -GLIBC_2.9 dup3 F -GLIBC_2.9 epoll_create1 F -GLIBC_2.9 getutent F -GLIBC_2.9 getutent_r F -GLIBC_2.9 getutid F -GLIBC_2.9 getutid_r F -GLIBC_2.9 getutline F -GLIBC_2.9 getutline_r F -GLIBC_2.9 getutmp F -GLIBC_2.9 getutmpx F -GLIBC_2.9 getutxent F -GLIBC_2.9 getutxid F -GLIBC_2.9 getutxline F -GLIBC_2.9 inotify_init1 F -GLIBC_2.9 login F -GLIBC_2.9 ns_name_compress F -GLIBC_2.9 ns_name_ntop F -GLIBC_2.9 ns_name_pack F -GLIBC_2.9 ns_name_pton F -GLIBC_2.9 ns_name_skip F -GLIBC_2.9 ns_name_uncompress F -GLIBC_2.9 ns_name_unpack F -GLIBC_2.9 pipe2 F -GLIBC_2.9 pututline F -GLIBC_2.9 pututxline F -GLIBC_2.9 updwtmp F -GLIBC_2.9 updwtmpx F diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libc_malloc_debug.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libc_malloc_debug.abilist deleted file mode 100644 index b74f43e4e0..0000000000 --- a/sysdeps/unix/sysv/linux/s390/s390-32/libc_malloc_debug.abilist +++ /dev/null @@ -1,30 +0,0 @@ -GLIBC_2.0 __free_hook D 0x4 -GLIBC_2.0 __malloc_hook D 0x4 -GLIBC_2.0 __memalign_hook D 0x4 -GLIBC_2.0 __realloc_hook D 0x4 -GLIBC_2.0 calloc F -GLIBC_2.0 free F -GLIBC_2.0 mallinfo F -GLIBC_2.0 malloc F -GLIBC_2.0 malloc_get_state F -GLIBC_2.0 malloc_set_state F -GLIBC_2.0 malloc_stats F -GLIBC_2.0 malloc_trim F -GLIBC_2.0 malloc_usable_size F -GLIBC_2.0 mallopt F -GLIBC_2.0 mcheck F -GLIBC_2.0 memalign F -GLIBC_2.0 mprobe F -GLIBC_2.0 mtrace F -GLIBC_2.0 muntrace F -GLIBC_2.0 pvalloc F -GLIBC_2.0 realloc F -GLIBC_2.0 valloc F -GLIBC_2.10 malloc_info F -GLIBC_2.16 aligned_alloc F -GLIBC_2.2 mcheck_check_all F -GLIBC_2.2 mcheck_pedantic F -GLIBC_2.2 posix_memalign F -GLIBC_2.33 mallinfo2 F -GLIBC_2.43 free_aligned_sized F -GLIBC_2.43 free_sized F diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libdl.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libdl.abilist deleted file mode 100644 index a455934421..0000000000 --- a/sysdeps/unix/sysv/linux/s390/s390-32/libdl.abilist +++ /dev/null @@ -1,4 +0,0 @@ -GLIBC_2.0 __libdl_version_placeholder F -GLIBC_2.1 __libdl_version_placeholder F -GLIBC_2.3.3 __libdl_version_placeholder F -GLIBC_2.3.4 __libdl_version_placeholder F diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist deleted file mode 100644 index 8b15878ee1..0000000000 --- a/sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist +++ /dev/null @@ -1,1444 +0,0 @@ -GLIBC_2.0 _LIB_VERSION D 0x4 -GLIBC_2.0 acos F -GLIBC_2.0 acosf F -GLIBC_2.0 acosh F -GLIBC_2.0 acoshf F -GLIBC_2.0 acoshl F -GLIBC_2.0 acosl F -GLIBC_2.0 asin F -GLIBC_2.0 asinf F -GLIBC_2.0 asinh F -GLIBC_2.0 asinhf F -GLIBC_2.0 asinhl F -GLIBC_2.0 asinl F -GLIBC_2.0 atan F -GLIBC_2.0 atan2 F -GLIBC_2.0 atan2f F -GLIBC_2.0 atan2l F -GLIBC_2.0 atanf F -GLIBC_2.0 atanh F -GLIBC_2.0 atanhf F -GLIBC_2.0 atanhl F -GLIBC_2.0 atanl F -GLIBC_2.0 cbrt F -GLIBC_2.0 cbrtf F -GLIBC_2.0 cbrtl F -GLIBC_2.0 ceil F -GLIBC_2.0 ceilf F -GLIBC_2.0 ceill F -GLIBC_2.0 copysign F -GLIBC_2.0 copysignf F -GLIBC_2.0 copysignl F -GLIBC_2.0 cos F -GLIBC_2.0 cosf F -GLIBC_2.0 cosh F -GLIBC_2.0 coshf F -GLIBC_2.0 coshl F -GLIBC_2.0 cosl F -GLIBC_2.0 drem F -GLIBC_2.0 dremf F -GLIBC_2.0 dreml F -GLIBC_2.0 erf F -GLIBC_2.0 erfc F -GLIBC_2.0 erfcf F -GLIBC_2.0 erfcl F -GLIBC_2.0 erff F -GLIBC_2.0 erfl F -GLIBC_2.0 exp F -GLIBC_2.0 expf F -GLIBC_2.0 expl F -GLIBC_2.0 expm1 F -GLIBC_2.0 expm1f F -GLIBC_2.0 expm1l F -GLIBC_2.0 fabs F -GLIBC_2.0 fabsf F -GLIBC_2.0 fabsl F -GLIBC_2.0 finite F -GLIBC_2.0 finitef F -GLIBC_2.0 finitel F -GLIBC_2.0 floor F -GLIBC_2.0 floorf F -GLIBC_2.0 floorl F -GLIBC_2.0 fmod F -GLIBC_2.0 fmodf F -GLIBC_2.0 fmodl F -GLIBC_2.0 frexp F -GLIBC_2.0 frexpf F -GLIBC_2.0 frexpl F -GLIBC_2.0 gamma F -GLIBC_2.0 gammaf F -GLIBC_2.0 gammal F -GLIBC_2.0 hypot F -GLIBC_2.0 hypotf F -GLIBC_2.0 hypotl F -GLIBC_2.0 ilogb F -GLIBC_2.0 ilogbf F -GLIBC_2.0 ilogbl F -GLIBC_2.0 j0 F -GLIBC_2.0 j0f F -GLIBC_2.0 j0l F -GLIBC_2.0 j1 F -GLIBC_2.0 j1f F -GLIBC_2.0 j1l F -GLIBC_2.0 jn F -GLIBC_2.0 jnf F -GLIBC_2.0 jnl F -GLIBC_2.0 ldexp F -GLIBC_2.0 ldexpf F -GLIBC_2.0 ldexpl F -GLIBC_2.0 lgamma F -GLIBC_2.0 lgamma_r F -GLIBC_2.0 lgammaf F -GLIBC_2.0 lgammaf_r F -GLIBC_2.0 lgammal F -GLIBC_2.0 lgammal_r F -GLIBC_2.0 log F -GLIBC_2.0 log10 F -GLIBC_2.0 log10f F -GLIBC_2.0 log10l F -GLIBC_2.0 log1p F -GLIBC_2.0 log1pf F -GLIBC_2.0 log1pl F -GLIBC_2.0 logb F -GLIBC_2.0 logbf F -GLIBC_2.0 logbl F -GLIBC_2.0 logf F -GLIBC_2.0 logl F -GLIBC_2.0 matherr F -GLIBC_2.0 modf F -GLIBC_2.0 modff F -GLIBC_2.0 modfl F -GLIBC_2.0 nextafter F -GLIBC_2.0 nextafterf F -GLIBC_2.0 nextafterl F -GLIBC_2.0 pow F -GLIBC_2.0 powf F -GLIBC_2.0 powl F -GLIBC_2.0 remainder F -GLIBC_2.0 remainderf F -GLIBC_2.0 remainderl F -GLIBC_2.0 rint F -GLIBC_2.0 rintf F -GLIBC_2.0 rintl F -GLIBC_2.0 scalb F -GLIBC_2.0 scalbf F -GLIBC_2.0 scalbl F -GLIBC_2.0 scalbn F -GLIBC_2.0 scalbnf F -GLIBC_2.0 scalbnl F -GLIBC_2.0 signgam D 0x4 -GLIBC_2.0 significand F -GLIBC_2.0 significandf F -GLIBC_2.0 significandl F -GLIBC_2.0 sin F -GLIBC_2.0 sinf F -GLIBC_2.0 sinh F -GLIBC_2.0 sinhf F -GLIBC_2.0 sinhl F -GLIBC_2.0 sinl F -GLIBC_2.0 sqrt F -GLIBC_2.0 sqrtf F -GLIBC_2.0 sqrtl F -GLIBC_2.0 tan F -GLIBC_2.0 tanf F -GLIBC_2.0 tanh F -GLIBC_2.0 tanhf F -GLIBC_2.0 tanhl F -GLIBC_2.0 tanl F -GLIBC_2.0 y0 F -GLIBC_2.0 y0f F -GLIBC_2.0 y0l F -GLIBC_2.0 y1 F -GLIBC_2.0 y1f F -GLIBC_2.0 y1l F -GLIBC_2.0 yn F -GLIBC_2.0 ynf F -GLIBC_2.0 ynl F -GLIBC_2.1 __clog10 F -GLIBC_2.1 __clog10f F -GLIBC_2.1 __clog10l F -GLIBC_2.1 __finite F -GLIBC_2.1 __finitef F -GLIBC_2.1 __finitel F -GLIBC_2.1 __fpclassify F -GLIBC_2.1 __fpclassifyf F -GLIBC_2.1 __signbit F -GLIBC_2.1 __signbitf F -GLIBC_2.1 cabs F -GLIBC_2.1 cabsf F -GLIBC_2.1 cabsl F -GLIBC_2.1 cacos F -GLIBC_2.1 cacosf F -GLIBC_2.1 cacosh F -GLIBC_2.1 cacoshf F -GLIBC_2.1 cacoshl F -GLIBC_2.1 cacosl F -GLIBC_2.1 carg F -GLIBC_2.1 cargf F -GLIBC_2.1 cargl F -GLIBC_2.1 casin F -GLIBC_2.1 casinf F -GLIBC_2.1 casinh F -GLIBC_2.1 casinhf F -GLIBC_2.1 casinhl F -GLIBC_2.1 casinl F -GLIBC_2.1 catan F -GLIBC_2.1 catanf F -GLIBC_2.1 catanh F -GLIBC_2.1 catanhf F -GLIBC_2.1 catanhl F -GLIBC_2.1 catanl F -GLIBC_2.1 ccos F -GLIBC_2.1 ccosf F -GLIBC_2.1 ccosh F -GLIBC_2.1 ccoshf F -GLIBC_2.1 ccoshl F -GLIBC_2.1 ccosl F -GLIBC_2.1 cexp F -GLIBC_2.1 cexpf F -GLIBC_2.1 cexpl F -GLIBC_2.1 cimag F -GLIBC_2.1 cimagf F -GLIBC_2.1 cimagl F -GLIBC_2.1 clog F -GLIBC_2.1 clog10 F -GLIBC_2.1 clog10f F -GLIBC_2.1 clog10l F -GLIBC_2.1 clogf F -GLIBC_2.1 clogl F -GLIBC_2.1 conj F -GLIBC_2.1 conjf F -GLIBC_2.1 conjl F -GLIBC_2.1 cpow F -GLIBC_2.1 cpowf F -GLIBC_2.1 cpowl F -GLIBC_2.1 cproj F -GLIBC_2.1 cprojf F -GLIBC_2.1 cprojl F -GLIBC_2.1 creal F -GLIBC_2.1 crealf F -GLIBC_2.1 creall F -GLIBC_2.1 csin F -GLIBC_2.1 csinf F -GLIBC_2.1 csinh F -GLIBC_2.1 csinhf F -GLIBC_2.1 csinhl F -GLIBC_2.1 csinl F -GLIBC_2.1 csqrt F -GLIBC_2.1 csqrtf F -GLIBC_2.1 csqrtl F -GLIBC_2.1 ctan F -GLIBC_2.1 ctanf F -GLIBC_2.1 ctanh F -GLIBC_2.1 ctanhf F -GLIBC_2.1 ctanhl F -GLIBC_2.1 ctanl F -GLIBC_2.1 exp10 F -GLIBC_2.1 exp10f F -GLIBC_2.1 exp10l F -GLIBC_2.1 exp2 F -GLIBC_2.1 exp2f F -GLIBC_2.1 fdim F -GLIBC_2.1 fdimf F -GLIBC_2.1 fdiml F -GLIBC_2.1 feclearexcept F -GLIBC_2.1 fegetenv F -GLIBC_2.1 fegetexceptflag F -GLIBC_2.1 fegetround F -GLIBC_2.1 feholdexcept F -GLIBC_2.1 feraiseexcept F -GLIBC_2.1 fesetenv F -GLIBC_2.1 fesetexceptflag F -GLIBC_2.1 fesetround F -GLIBC_2.1 fetestexcept F -GLIBC_2.1 feupdateenv F -GLIBC_2.1 fma F -GLIBC_2.1 fmaf F -GLIBC_2.1 fmal F -GLIBC_2.1 fmax F -GLIBC_2.1 fmaxf F -GLIBC_2.1 fmaxl F -GLIBC_2.1 fmin F -GLIBC_2.1 fminf F -GLIBC_2.1 fminl F -GLIBC_2.1 llrint F -GLIBC_2.1 llrintf F -GLIBC_2.1 llrintl F -GLIBC_2.1 llround F -GLIBC_2.1 llroundf F -GLIBC_2.1 llroundl F -GLIBC_2.1 log2 F -GLIBC_2.1 log2f F -GLIBC_2.1 log2l F -GLIBC_2.1 lrint F -GLIBC_2.1 lrintf F -GLIBC_2.1 lrintl F -GLIBC_2.1 lround F -GLIBC_2.1 lroundf F -GLIBC_2.1 lroundl F -GLIBC_2.1 nan F -GLIBC_2.1 nanf F -GLIBC_2.1 nanl F -GLIBC_2.1 nearbyint F -GLIBC_2.1 nearbyintf F -GLIBC_2.1 nearbyintl F -GLIBC_2.1 nexttoward F -GLIBC_2.1 nexttowardf F -GLIBC_2.1 nexttowardl F -GLIBC_2.1 pow10 F -GLIBC_2.1 pow10f F -GLIBC_2.1 pow10l F -GLIBC_2.1 remquo F -GLIBC_2.1 remquof F -GLIBC_2.1 remquol F -GLIBC_2.1 round F -GLIBC_2.1 roundf F -GLIBC_2.1 roundl F -GLIBC_2.1 scalbln F -GLIBC_2.1 scalblnf F -GLIBC_2.1 scalblnl F -GLIBC_2.1 sincos F -GLIBC_2.1 sincosf F -GLIBC_2.1 sincosl F -GLIBC_2.1 tgamma F -GLIBC_2.1 tgammaf F -GLIBC_2.1 tgammal F -GLIBC_2.1 trunc F -GLIBC_2.1 truncf F -GLIBC_2.1 truncl F -GLIBC_2.15 __acos_finite F -GLIBC_2.15 __acosf_finite F -GLIBC_2.15 __acosh_finite F -GLIBC_2.15 __acoshf_finite F -GLIBC_2.15 __acoshl_finite F -GLIBC_2.15 __acosl_finite F -GLIBC_2.15 __asin_finite F -GLIBC_2.15 __asinf_finite F -GLIBC_2.15 __asinl_finite F -GLIBC_2.15 __atan2_finite F -GLIBC_2.15 __atan2f_finite F -GLIBC_2.15 __atan2l_finite F -GLIBC_2.15 __atanh_finite F -GLIBC_2.15 __atanhf_finite F -GLIBC_2.15 __atanhl_finite F -GLIBC_2.15 __cosh_finite F -GLIBC_2.15 __coshf_finite F -GLIBC_2.15 __coshl_finite F -GLIBC_2.15 __exp10_finite F -GLIBC_2.15 __exp10f_finite F -GLIBC_2.15 __exp10l_finite F -GLIBC_2.15 __exp2_finite F -GLIBC_2.15 __exp2f_finite F -GLIBC_2.15 __exp2l_finite F -GLIBC_2.15 __exp_finite F -GLIBC_2.15 __expf_finite F -GLIBC_2.15 __expl_finite F -GLIBC_2.15 __fmod_finite F -GLIBC_2.15 __fmodf_finite F -GLIBC_2.15 __fmodl_finite F -GLIBC_2.15 __gamma_r_finite F -GLIBC_2.15 __gammaf_r_finite F -GLIBC_2.15 __gammal_r_finite F -GLIBC_2.15 __hypot_finite F -GLIBC_2.15 __hypotf_finite F -GLIBC_2.15 __hypotl_finite F -GLIBC_2.15 __j0_finite F -GLIBC_2.15 __j0f_finite F -GLIBC_2.15 __j0l_finite F -GLIBC_2.15 __j1_finite F -GLIBC_2.15 __j1f_finite F -GLIBC_2.15 __j1l_finite F -GLIBC_2.15 __jn_finite F -GLIBC_2.15 __jnf_finite F -GLIBC_2.15 __jnl_finite F -GLIBC_2.15 __lgamma_r_finite F -GLIBC_2.15 __lgammaf_r_finite F -GLIBC_2.15 __lgammal_r_finite F -GLIBC_2.15 __log10_finite F -GLIBC_2.15 __log10f_finite F -GLIBC_2.15 __log10l_finite F -GLIBC_2.15 __log2_finite F -GLIBC_2.15 __log2f_finite F -GLIBC_2.15 __log2l_finite F -GLIBC_2.15 __log_finite F -GLIBC_2.15 __logf_finite F -GLIBC_2.15 __logl_finite F -GLIBC_2.15 __pow_finite F -GLIBC_2.15 __powf_finite F -GLIBC_2.15 __powl_finite F -GLIBC_2.15 __remainder_finite F -GLIBC_2.15 __remainderf_finite F -GLIBC_2.15 __remainderl_finite F -GLIBC_2.15 __scalb_finite F -GLIBC_2.15 __scalbf_finite F -GLIBC_2.15 __scalbl_finite F -GLIBC_2.15 __sinh_finite F -GLIBC_2.15 __sinhf_finite F -GLIBC_2.15 __sinhl_finite F -GLIBC_2.15 __sqrt_finite F -GLIBC_2.15 __sqrtf_finite F -GLIBC_2.15 __sqrtl_finite F -GLIBC_2.15 __y0_finite F -GLIBC_2.15 __y0f_finite F -GLIBC_2.15 __y0l_finite F -GLIBC_2.15 __y1_finite F -GLIBC_2.15 __y1f_finite F -GLIBC_2.15 __y1l_finite F -GLIBC_2.15 __yn_finite F -GLIBC_2.15 __ynf_finite F -GLIBC_2.15 __ynl_finite F -GLIBC_2.18 __issignaling F -GLIBC_2.18 __issignalingf F -GLIBC_2.18 __issignalingl F -GLIBC_2.2 fedisableexcept F -GLIBC_2.2 feenableexcept F -GLIBC_2.2 fegetexcept F -GLIBC_2.23 __signgam D 0x4 -GLIBC_2.23 lgamma F -GLIBC_2.23 lgammaf F -GLIBC_2.23 lgammal F -GLIBC_2.24 nextdown F -GLIBC_2.24 nextdownf F -GLIBC_2.24 nextdownl F -GLIBC_2.24 nextup F -GLIBC_2.24 nextupf F -GLIBC_2.24 nextupl F -GLIBC_2.25 __iseqsig F -GLIBC_2.25 __iseqsigf F -GLIBC_2.25 __iseqsigl F -GLIBC_2.25 canonicalize F -GLIBC_2.25 canonicalizef F -GLIBC_2.25 canonicalizel F -GLIBC_2.25 fegetmode F -GLIBC_2.25 fesetexcept F -GLIBC_2.25 fesetmode F -GLIBC_2.25 fetestexceptflag F -GLIBC_2.25 fmaxmag F -GLIBC_2.25 fmaxmagf F -GLIBC_2.25 fmaxmagl F -GLIBC_2.25 fminmag F -GLIBC_2.25 fminmagf F -GLIBC_2.25 fminmagl F -GLIBC_2.25 fromfp F -GLIBC_2.25 fromfpf F -GLIBC_2.25 fromfpl F -GLIBC_2.25 fromfpx F -GLIBC_2.25 fromfpxf F -GLIBC_2.25 fromfpxl F -GLIBC_2.25 getpayload F -GLIBC_2.25 getpayloadf F -GLIBC_2.25 getpayloadl F -GLIBC_2.25 llogb F -GLIBC_2.25 llogbf F -GLIBC_2.25 llogbl F -GLIBC_2.25 roundeven F -GLIBC_2.25 roundevenf F -GLIBC_2.25 roundevenl F -GLIBC_2.25 setpayload F -GLIBC_2.25 setpayloadf F -GLIBC_2.25 setpayloadl F -GLIBC_2.25 setpayloadsig F -GLIBC_2.25 setpayloadsigf F -GLIBC_2.25 setpayloadsigl F -GLIBC_2.25 totalorder F -GLIBC_2.25 totalorderf F -GLIBC_2.25 totalorderl F -GLIBC_2.25 totalordermag F -GLIBC_2.25 totalordermagf F -GLIBC_2.25 totalordermagl F -GLIBC_2.25 ufromfp F -GLIBC_2.25 ufromfpf F -GLIBC_2.25 ufromfpl F -GLIBC_2.25 ufromfpx F -GLIBC_2.25 ufromfpxf F -GLIBC_2.25 ufromfpxl F -GLIBC_2.27 acosf128 F -GLIBC_2.27 acosf32 F -GLIBC_2.27 acosf32x F -GLIBC_2.27 acosf64 F -GLIBC_2.27 acosf64x F -GLIBC_2.27 acoshf128 F -GLIBC_2.27 acoshf32 F -GLIBC_2.27 acoshf32x F -GLIBC_2.27 acoshf64 F -GLIBC_2.27 acoshf64x F -GLIBC_2.27 asinf128 F -GLIBC_2.27 asinf32 F -GLIBC_2.27 asinf32x F -GLIBC_2.27 asinf64 F -GLIBC_2.27 asinf64x F -GLIBC_2.27 asinhf128 F -GLIBC_2.27 asinhf32 F -GLIBC_2.27 asinhf32x F -GLIBC_2.27 asinhf64 F -GLIBC_2.27 asinhf64x F -GLIBC_2.27 atan2f128 F -GLIBC_2.27 atan2f32 F -GLIBC_2.27 atan2f32x F -GLIBC_2.27 atan2f64 F -GLIBC_2.27 atan2f64x F -GLIBC_2.27 atanf128 F -GLIBC_2.27 atanf32 F -GLIBC_2.27 atanf32x F -GLIBC_2.27 atanf64 F -GLIBC_2.27 atanf64x F -GLIBC_2.27 atanhf128 F -GLIBC_2.27 atanhf32 F -GLIBC_2.27 atanhf32x F -GLIBC_2.27 atanhf64 F -GLIBC_2.27 atanhf64x F -GLIBC_2.27 cabsf128 F -GLIBC_2.27 cabsf32 F -GLIBC_2.27 cabsf32x F -GLIBC_2.27 cabsf64 F -GLIBC_2.27 cabsf64x F -GLIBC_2.27 cacosf128 F -GLIBC_2.27 cacosf32 F -GLIBC_2.27 cacosf32x F -GLIBC_2.27 cacosf64 F -GLIBC_2.27 cacosf64x F -GLIBC_2.27 cacoshf128 F -GLIBC_2.27 cacoshf32 F -GLIBC_2.27 cacoshf32x F -GLIBC_2.27 cacoshf64 F -GLIBC_2.27 cacoshf64x F -GLIBC_2.27 canonicalizef128 F -GLIBC_2.27 canonicalizef32 F -GLIBC_2.27 canonicalizef32x F -GLIBC_2.27 canonicalizef64 F -GLIBC_2.27 canonicalizef64x F -GLIBC_2.27 cargf128 F -GLIBC_2.27 cargf32 F -GLIBC_2.27 cargf32x F -GLIBC_2.27 cargf64 F -GLIBC_2.27 cargf64x F -GLIBC_2.27 casinf128 F -GLIBC_2.27 casinf32 F -GLIBC_2.27 casinf32x F -GLIBC_2.27 casinf64 F -GLIBC_2.27 casinf64x F -GLIBC_2.27 casinhf128 F -GLIBC_2.27 casinhf32 F -GLIBC_2.27 casinhf32x F -GLIBC_2.27 casinhf64 F -GLIBC_2.27 casinhf64x F -GLIBC_2.27 catanf128 F -GLIBC_2.27 catanf32 F -GLIBC_2.27 catanf32x F -GLIBC_2.27 catanf64 F -GLIBC_2.27 catanf64x F -GLIBC_2.27 catanhf128 F -GLIBC_2.27 catanhf32 F -GLIBC_2.27 catanhf32x F -GLIBC_2.27 catanhf64 F -GLIBC_2.27 catanhf64x F -GLIBC_2.27 cbrtf128 F -GLIBC_2.27 cbrtf32 F -GLIBC_2.27 cbrtf32x F -GLIBC_2.27 cbrtf64 F -GLIBC_2.27 cbrtf64x F -GLIBC_2.27 ccosf128 F -GLIBC_2.27 ccosf32 F -GLIBC_2.27 ccosf32x F -GLIBC_2.27 ccosf64 F -GLIBC_2.27 ccosf64x F -GLIBC_2.27 ccoshf128 F -GLIBC_2.27 ccoshf32 F -GLIBC_2.27 ccoshf32x F -GLIBC_2.27 ccoshf64 F -GLIBC_2.27 ccoshf64x F -GLIBC_2.27 ceilf128 F -GLIBC_2.27 ceilf32 F -GLIBC_2.27 ceilf32x F -GLIBC_2.27 ceilf64 F -GLIBC_2.27 ceilf64x F -GLIBC_2.27 cexpf128 F -GLIBC_2.27 cexpf32 F -GLIBC_2.27 cexpf32x F -GLIBC_2.27 cexpf64 F -GLIBC_2.27 cexpf64x F -GLIBC_2.27 cimagf128 F -GLIBC_2.27 cimagf32 F -GLIBC_2.27 cimagf32x F -GLIBC_2.27 cimagf64 F -GLIBC_2.27 cimagf64x F -GLIBC_2.27 clog10f128 F -GLIBC_2.27 clog10f32 F -GLIBC_2.27 clog10f32x F -GLIBC_2.27 clog10f64 F -GLIBC_2.27 clog10f64x F -GLIBC_2.27 clogf128 F -GLIBC_2.27 clogf32 F -GLIBC_2.27 clogf32x F -GLIBC_2.27 clogf64 F -GLIBC_2.27 clogf64x F -GLIBC_2.27 conjf128 F -GLIBC_2.27 conjf32 F -GLIBC_2.27 conjf32x F -GLIBC_2.27 conjf64 F -GLIBC_2.27 conjf64x F -GLIBC_2.27 copysignf128 F -GLIBC_2.27 copysignf32 F -GLIBC_2.27 copysignf32x F -GLIBC_2.27 copysignf64 F -GLIBC_2.27 copysignf64x F -GLIBC_2.27 cosf128 F -GLIBC_2.27 cosf32 F -GLIBC_2.27 cosf32x F -GLIBC_2.27 cosf64 F -GLIBC_2.27 cosf64x F -GLIBC_2.27 coshf128 F -GLIBC_2.27 coshf32 F -GLIBC_2.27 coshf32x F -GLIBC_2.27 coshf64 F -GLIBC_2.27 coshf64x F -GLIBC_2.27 cpowf128 F -GLIBC_2.27 cpowf32 F -GLIBC_2.27 cpowf32x F -GLIBC_2.27 cpowf64 F -GLIBC_2.27 cpowf64x F -GLIBC_2.27 cprojf128 F -GLIBC_2.27 cprojf32 F -GLIBC_2.27 cprojf32x F -GLIBC_2.27 cprojf64 F -GLIBC_2.27 cprojf64x F -GLIBC_2.27 crealf128 F -GLIBC_2.27 crealf32 F -GLIBC_2.27 crealf32x F -GLIBC_2.27 crealf64 F -GLIBC_2.27 crealf64x F -GLIBC_2.27 csinf128 F -GLIBC_2.27 csinf32 F -GLIBC_2.27 csinf32x F -GLIBC_2.27 csinf64 F -GLIBC_2.27 csinf64x F -GLIBC_2.27 csinhf128 F -GLIBC_2.27 csinhf32 F -GLIBC_2.27 csinhf32x F -GLIBC_2.27 csinhf64 F -GLIBC_2.27 csinhf64x F -GLIBC_2.27 csqrtf128 F -GLIBC_2.27 csqrtf32 F -GLIBC_2.27 csqrtf32x F -GLIBC_2.27 csqrtf64 F -GLIBC_2.27 csqrtf64x F -GLIBC_2.27 ctanf128 F -GLIBC_2.27 ctanf32 F -GLIBC_2.27 ctanf32x F -GLIBC_2.27 ctanf64 F -GLIBC_2.27 ctanf64x F -GLIBC_2.27 ctanhf128 F -GLIBC_2.27 ctanhf32 F -GLIBC_2.27 ctanhf32x F -GLIBC_2.27 ctanhf64 F -GLIBC_2.27 ctanhf64x F -GLIBC_2.27 erfcf128 F -GLIBC_2.27 erfcf32 F -GLIBC_2.27 erfcf32x F -GLIBC_2.27 erfcf64 F -GLIBC_2.27 erfcf64x F -GLIBC_2.27 erff128 F -GLIBC_2.27 erff32 F -GLIBC_2.27 erff32x F -GLIBC_2.27 erff64 F -GLIBC_2.27 erff64x F -GLIBC_2.27 exp10f128 F -GLIBC_2.27 exp10f32 F -GLIBC_2.27 exp10f32x F -GLIBC_2.27 exp10f64 F -GLIBC_2.27 exp10f64x F -GLIBC_2.27 exp2f F -GLIBC_2.27 exp2f128 F -GLIBC_2.27 exp2f32 F -GLIBC_2.27 exp2f32x F -GLIBC_2.27 exp2f64 F -GLIBC_2.27 exp2f64x F -GLIBC_2.27 expf F -GLIBC_2.27 expf128 F -GLIBC_2.27 expf32 F -GLIBC_2.27 expf32x F -GLIBC_2.27 expf64 F -GLIBC_2.27 expf64x F -GLIBC_2.27 expm1f128 F -GLIBC_2.27 expm1f32 F -GLIBC_2.27 expm1f32x F -GLIBC_2.27 expm1f64 F -GLIBC_2.27 expm1f64x F -GLIBC_2.27 fabsf128 F -GLIBC_2.27 fabsf32 F -GLIBC_2.27 fabsf32x F -GLIBC_2.27 fabsf64 F -GLIBC_2.27 fabsf64x F -GLIBC_2.27 fdimf128 F -GLIBC_2.27 fdimf32 F -GLIBC_2.27 fdimf32x F -GLIBC_2.27 fdimf64 F -GLIBC_2.27 fdimf64x F -GLIBC_2.27 floorf128 F -GLIBC_2.27 floorf32 F -GLIBC_2.27 floorf32x F -GLIBC_2.27 floorf64 F -GLIBC_2.27 floorf64x F -GLIBC_2.27 fmaf128 F -GLIBC_2.27 fmaf32 F -GLIBC_2.27 fmaf32x F -GLIBC_2.27 fmaf64 F -GLIBC_2.27 fmaf64x F -GLIBC_2.27 fmaxf128 F -GLIBC_2.27 fmaxf32 F -GLIBC_2.27 fmaxf32x F -GLIBC_2.27 fmaxf64 F -GLIBC_2.27 fmaxf64x F -GLIBC_2.27 fmaxmagf128 F -GLIBC_2.27 fmaxmagf32 F -GLIBC_2.27 fmaxmagf32x F -GLIBC_2.27 fmaxmagf64 F -GLIBC_2.27 fmaxmagf64x F -GLIBC_2.27 fminf128 F -GLIBC_2.27 fminf32 F -GLIBC_2.27 fminf32x F -GLIBC_2.27 fminf64 F -GLIBC_2.27 fminf64x F -GLIBC_2.27 fminmagf128 F -GLIBC_2.27 fminmagf32 F -GLIBC_2.27 fminmagf32x F -GLIBC_2.27 fminmagf64 F -GLIBC_2.27 fminmagf64x F -GLIBC_2.27 fmodf128 F -GLIBC_2.27 fmodf32 F -GLIBC_2.27 fmodf32x F -GLIBC_2.27 fmodf64 F -GLIBC_2.27 fmodf64x F -GLIBC_2.27 frexpf128 F -GLIBC_2.27 frexpf32 F -GLIBC_2.27 frexpf32x F -GLIBC_2.27 frexpf64 F -GLIBC_2.27 frexpf64x F -GLIBC_2.27 fromfpf128 F -GLIBC_2.27 fromfpf32 F -GLIBC_2.27 fromfpf32x F -GLIBC_2.27 fromfpf64 F -GLIBC_2.27 fromfpf64x F -GLIBC_2.27 fromfpxf128 F -GLIBC_2.27 fromfpxf32 F -GLIBC_2.27 fromfpxf32x F -GLIBC_2.27 fromfpxf64 F -GLIBC_2.27 fromfpxf64x F -GLIBC_2.27 getpayloadf128 F -GLIBC_2.27 getpayloadf32 F -GLIBC_2.27 getpayloadf32x F -GLIBC_2.27 getpayloadf64 F -GLIBC_2.27 getpayloadf64x F -GLIBC_2.27 hypotf128 F -GLIBC_2.27 hypotf32 F -GLIBC_2.27 hypotf32x F -GLIBC_2.27 hypotf64 F -GLIBC_2.27 hypotf64x F -GLIBC_2.27 ilogbf128 F -GLIBC_2.27 ilogbf32 F -GLIBC_2.27 ilogbf32x F -GLIBC_2.27 ilogbf64 F -GLIBC_2.27 ilogbf64x F -GLIBC_2.27 j0f128 F -GLIBC_2.27 j0f32 F -GLIBC_2.27 j0f32x F -GLIBC_2.27 j0f64 F -GLIBC_2.27 j0f64x F -GLIBC_2.27 j1f128 F -GLIBC_2.27 j1f32 F -GLIBC_2.27 j1f32x F -GLIBC_2.27 j1f64 F -GLIBC_2.27 j1f64x F -GLIBC_2.27 jnf128 F -GLIBC_2.27 jnf32 F -GLIBC_2.27 jnf32x F -GLIBC_2.27 jnf64 F -GLIBC_2.27 jnf64x F -GLIBC_2.27 ldexpf128 F -GLIBC_2.27 ldexpf32 F -GLIBC_2.27 ldexpf32x F -GLIBC_2.27 ldexpf64 F -GLIBC_2.27 ldexpf64x F -GLIBC_2.27 lgammaf128 F -GLIBC_2.27 lgammaf128_r F -GLIBC_2.27 lgammaf32 F -GLIBC_2.27 lgammaf32_r F -GLIBC_2.27 lgammaf32x F -GLIBC_2.27 lgammaf32x_r F -GLIBC_2.27 lgammaf64 F -GLIBC_2.27 lgammaf64_r F -GLIBC_2.27 lgammaf64x F -GLIBC_2.27 lgammaf64x_r F -GLIBC_2.27 llogbf128 F -GLIBC_2.27 llogbf32 F -GLIBC_2.27 llogbf32x F -GLIBC_2.27 llogbf64 F -GLIBC_2.27 llogbf64x F -GLIBC_2.27 llrintf128 F -GLIBC_2.27 llrintf32 F -GLIBC_2.27 llrintf32x F -GLIBC_2.27 llrintf64 F -GLIBC_2.27 llrintf64x F -GLIBC_2.27 llroundf128 F -GLIBC_2.27 llroundf32 F -GLIBC_2.27 llroundf32x F -GLIBC_2.27 llroundf64 F -GLIBC_2.27 llroundf64x F -GLIBC_2.27 log10f128 F -GLIBC_2.27 log10f32 F -GLIBC_2.27 log10f32x F -GLIBC_2.27 log10f64 F -GLIBC_2.27 log10f64x F -GLIBC_2.27 log1pf128 F -GLIBC_2.27 log1pf32 F -GLIBC_2.27 log1pf32x F -GLIBC_2.27 log1pf64 F -GLIBC_2.27 log1pf64x F -GLIBC_2.27 log2f F -GLIBC_2.27 log2f128 F -GLIBC_2.27 log2f32 F -GLIBC_2.27 log2f32x F -GLIBC_2.27 log2f64 F -GLIBC_2.27 log2f64x F -GLIBC_2.27 logbf128 F -GLIBC_2.27 logbf32 F -GLIBC_2.27 logbf32x F -GLIBC_2.27 logbf64 F -GLIBC_2.27 logbf64x F -GLIBC_2.27 logf F -GLIBC_2.27 logf128 F -GLIBC_2.27 logf32 F -GLIBC_2.27 logf32x F -GLIBC_2.27 logf64 F -GLIBC_2.27 logf64x F -GLIBC_2.27 lrintf128 F -GLIBC_2.27 lrintf32 F -GLIBC_2.27 lrintf32x F -GLIBC_2.27 lrintf64 F -GLIBC_2.27 lrintf64x F -GLIBC_2.27 lroundf128 F -GLIBC_2.27 lroundf32 F -GLIBC_2.27 lroundf32x F -GLIBC_2.27 lroundf64 F -GLIBC_2.27 lroundf64x F -GLIBC_2.27 modff128 F -GLIBC_2.27 modff32 F -GLIBC_2.27 modff32x F -GLIBC_2.27 modff64 F -GLIBC_2.27 modff64x F -GLIBC_2.27 nanf128 F -GLIBC_2.27 nanf32 F -GLIBC_2.27 nanf32x F -GLIBC_2.27 nanf64 F -GLIBC_2.27 nanf64x F -GLIBC_2.27 nearbyintf128 F -GLIBC_2.27 nearbyintf32 F -GLIBC_2.27 nearbyintf32x F -GLIBC_2.27 nearbyintf64 F -GLIBC_2.27 nearbyintf64x F -GLIBC_2.27 nextafterf128 F -GLIBC_2.27 nextafterf32 F -GLIBC_2.27 nextafterf32x F -GLIBC_2.27 nextafterf64 F -GLIBC_2.27 nextafterf64x F -GLIBC_2.27 nextdownf128 F -GLIBC_2.27 nextdownf32 F -GLIBC_2.27 nextdownf32x F -GLIBC_2.27 nextdownf64 F -GLIBC_2.27 nextdownf64x F -GLIBC_2.27 nextupf128 F -GLIBC_2.27 nextupf32 F -GLIBC_2.27 nextupf32x F -GLIBC_2.27 nextupf64 F -GLIBC_2.27 nextupf64x F -GLIBC_2.27 powf F -GLIBC_2.27 powf128 F -GLIBC_2.27 powf32 F -GLIBC_2.27 powf32x F -GLIBC_2.27 powf64 F -GLIBC_2.27 powf64x F -GLIBC_2.27 remainderf128 F -GLIBC_2.27 remainderf32 F -GLIBC_2.27 remainderf32x F -GLIBC_2.27 remainderf64 F -GLIBC_2.27 remainderf64x F -GLIBC_2.27 remquof128 F -GLIBC_2.27 remquof32 F -GLIBC_2.27 remquof32x F -GLIBC_2.27 remquof64 F -GLIBC_2.27 remquof64x F -GLIBC_2.27 rintf128 F -GLIBC_2.27 rintf32 F -GLIBC_2.27 rintf32x F -GLIBC_2.27 rintf64 F -GLIBC_2.27 rintf64x F -GLIBC_2.27 roundevenf128 F -GLIBC_2.27 roundevenf32 F -GLIBC_2.27 roundevenf32x F -GLIBC_2.27 roundevenf64 F -GLIBC_2.27 roundevenf64x F -GLIBC_2.27 roundf128 F -GLIBC_2.27 roundf32 F -GLIBC_2.27 roundf32x F -GLIBC_2.27 roundf64 F -GLIBC_2.27 roundf64x F -GLIBC_2.27 scalblnf128 F -GLIBC_2.27 scalblnf32 F -GLIBC_2.27 scalblnf32x F -GLIBC_2.27 scalblnf64 F -GLIBC_2.27 scalblnf64x F -GLIBC_2.27 scalbnf128 F -GLIBC_2.27 scalbnf32 F -GLIBC_2.27 scalbnf32x F -GLIBC_2.27 scalbnf64 F -GLIBC_2.27 scalbnf64x F -GLIBC_2.27 setpayloadf128 F -GLIBC_2.27 setpayloadf32 F -GLIBC_2.27 setpayloadf32x F -GLIBC_2.27 setpayloadf64 F -GLIBC_2.27 setpayloadf64x F -GLIBC_2.27 setpayloadsigf128 F -GLIBC_2.27 setpayloadsigf32 F -GLIBC_2.27 setpayloadsigf32x F -GLIBC_2.27 setpayloadsigf64 F -GLIBC_2.27 setpayloadsigf64x F -GLIBC_2.27 sincosf128 F -GLIBC_2.27 sincosf32 F -GLIBC_2.27 sincosf32x F -GLIBC_2.27 sincosf64 F -GLIBC_2.27 sincosf64x F -GLIBC_2.27 sinf128 F -GLIBC_2.27 sinf32 F -GLIBC_2.27 sinf32x F -GLIBC_2.27 sinf64 F -GLIBC_2.27 sinf64x F -GLIBC_2.27 sinhf128 F -GLIBC_2.27 sinhf32 F -GLIBC_2.27 sinhf32x F -GLIBC_2.27 sinhf64 F -GLIBC_2.27 sinhf64x F -GLIBC_2.27 sqrtf128 F -GLIBC_2.27 sqrtf32 F -GLIBC_2.27 sqrtf32x F -GLIBC_2.27 sqrtf64 F -GLIBC_2.27 sqrtf64x F -GLIBC_2.27 tanf128 F -GLIBC_2.27 tanf32 F -GLIBC_2.27 tanf32x F -GLIBC_2.27 tanf64 F -GLIBC_2.27 tanf64x F -GLIBC_2.27 tanhf128 F -GLIBC_2.27 tanhf32 F -GLIBC_2.27 tanhf32x F -GLIBC_2.27 tanhf64 F -GLIBC_2.27 tanhf64x F -GLIBC_2.27 tgammaf128 F -GLIBC_2.27 tgammaf32 F -GLIBC_2.27 tgammaf32x F -GLIBC_2.27 tgammaf64 F -GLIBC_2.27 tgammaf64x F -GLIBC_2.27 totalorderf128 F -GLIBC_2.27 totalorderf32 F -GLIBC_2.27 totalorderf32x F -GLIBC_2.27 totalorderf64 F -GLIBC_2.27 totalorderf64x F -GLIBC_2.27 totalordermagf128 F -GLIBC_2.27 totalordermagf32 F -GLIBC_2.27 totalordermagf32x F -GLIBC_2.27 totalordermagf64 F -GLIBC_2.27 totalordermagf64x F -GLIBC_2.27 truncf128 F -GLIBC_2.27 truncf32 F -GLIBC_2.27 truncf32x F -GLIBC_2.27 truncf64 F -GLIBC_2.27 truncf64x F -GLIBC_2.27 ufromfpf128 F -GLIBC_2.27 ufromfpf32 F -GLIBC_2.27 ufromfpf32x F -GLIBC_2.27 ufromfpf64 F -GLIBC_2.27 ufromfpf64x F -GLIBC_2.27 ufromfpxf128 F -GLIBC_2.27 ufromfpxf32 F -GLIBC_2.27 ufromfpxf32x F -GLIBC_2.27 ufromfpxf64 F -GLIBC_2.27 ufromfpxf64x F -GLIBC_2.27 y0f128 F -GLIBC_2.27 y0f32 F -GLIBC_2.27 y0f32x F -GLIBC_2.27 y0f64 F -GLIBC_2.27 y0f64x F -GLIBC_2.27 y1f128 F -GLIBC_2.27 y1f32 F -GLIBC_2.27 y1f32x F -GLIBC_2.27 y1f64 F -GLIBC_2.27 y1f64x F -GLIBC_2.27 ynf128 F -GLIBC_2.27 ynf32 F -GLIBC_2.27 ynf32x F -GLIBC_2.27 ynf64 F -GLIBC_2.27 ynf64x F -GLIBC_2.28 __nldbl_daddl F -GLIBC_2.28 __nldbl_ddivl F -GLIBC_2.28 __nldbl_dmull F -GLIBC_2.28 __nldbl_dsubl F -GLIBC_2.28 daddl F -GLIBC_2.28 ddivl F -GLIBC_2.28 dmull F -GLIBC_2.28 dsubl F -GLIBC_2.28 f32addf128 F -GLIBC_2.28 f32addf32x F -GLIBC_2.28 f32addf64 F -GLIBC_2.28 f32addf64x F -GLIBC_2.28 f32divf128 F -GLIBC_2.28 f32divf32x F -GLIBC_2.28 f32divf64 F -GLIBC_2.28 f32divf64x F -GLIBC_2.28 f32mulf128 F -GLIBC_2.28 f32mulf32x F -GLIBC_2.28 f32mulf64 F -GLIBC_2.28 f32mulf64x F -GLIBC_2.28 f32subf128 F -GLIBC_2.28 f32subf32x F -GLIBC_2.28 f32subf64 F -GLIBC_2.28 f32subf64x F -GLIBC_2.28 f32xaddf128 F -GLIBC_2.28 f32xaddf64 F -GLIBC_2.28 f32xaddf64x F -GLIBC_2.28 f32xdivf128 F -GLIBC_2.28 f32xdivf64 F -GLIBC_2.28 f32xdivf64x F -GLIBC_2.28 f32xmulf128 F -GLIBC_2.28 f32xmulf64 F -GLIBC_2.28 f32xmulf64x F -GLIBC_2.28 f32xsubf128 F -GLIBC_2.28 f32xsubf64 F -GLIBC_2.28 f32xsubf64x F -GLIBC_2.28 f64addf128 F -GLIBC_2.28 f64addf64x F -GLIBC_2.28 f64divf128 F -GLIBC_2.28 f64divf64x F -GLIBC_2.28 f64mulf128 F -GLIBC_2.28 f64mulf64x F -GLIBC_2.28 f64subf128 F -GLIBC_2.28 f64subf64x F -GLIBC_2.28 f64xaddf128 F -GLIBC_2.28 f64xdivf128 F -GLIBC_2.28 f64xmulf128 F -GLIBC_2.28 f64xsubf128 F -GLIBC_2.28 fadd F -GLIBC_2.28 faddl F -GLIBC_2.28 fdiv F -GLIBC_2.28 fdivl F -GLIBC_2.28 fmul F -GLIBC_2.28 fmull F -GLIBC_2.28 fsub F -GLIBC_2.28 fsubl F -GLIBC_2.29 exp F -GLIBC_2.29 exp2 F -GLIBC_2.29 log F -GLIBC_2.29 log2 F -GLIBC_2.29 pow F -GLIBC_2.31 totalorder F -GLIBC_2.31 totalorderf F -GLIBC_2.31 totalorderf128 F -GLIBC_2.31 totalorderf32 F -GLIBC_2.31 totalorderf32x F -GLIBC_2.31 totalorderf64 F -GLIBC_2.31 totalorderf64x F -GLIBC_2.31 totalorderl F -GLIBC_2.31 totalordermag F -GLIBC_2.31 totalordermagf F -GLIBC_2.31 totalordermagf128 F -GLIBC_2.31 totalordermagf32 F -GLIBC_2.31 totalordermagf32x F -GLIBC_2.31 totalordermagf64 F -GLIBC_2.31 totalordermagf64x F -GLIBC_2.31 totalordermagl F -GLIBC_2.32 exp10f F -GLIBC_2.35 dfmal F -GLIBC_2.35 dsqrtl F -GLIBC_2.35 f32fmaf128 F -GLIBC_2.35 f32fmaf32x F -GLIBC_2.35 f32fmaf64 F -GLIBC_2.35 f32fmaf64x F -GLIBC_2.35 f32sqrtf128 F -GLIBC_2.35 f32sqrtf32x F -GLIBC_2.35 f32sqrtf64 F -GLIBC_2.35 f32sqrtf64x F -GLIBC_2.35 f32xfmaf128 F -GLIBC_2.35 f32xfmaf64 F -GLIBC_2.35 f32xfmaf64x F -GLIBC_2.35 f32xsqrtf128 F -GLIBC_2.35 f32xsqrtf64 F -GLIBC_2.35 f32xsqrtf64x F -GLIBC_2.35 f64fmaf128 F -GLIBC_2.35 f64fmaf64x F -GLIBC_2.35 f64sqrtf128 F -GLIBC_2.35 f64sqrtf64x F -GLIBC_2.35 f64xfmaf128 F -GLIBC_2.35 f64xsqrtf128 F -GLIBC_2.35 ffma F -GLIBC_2.35 ffmal F -GLIBC_2.35 fmaximum F -GLIBC_2.35 fmaximum_mag F -GLIBC_2.35 fmaximum_mag_num F -GLIBC_2.35 fmaximum_mag_numf F -GLIBC_2.35 fmaximum_mag_numf128 F -GLIBC_2.35 fmaximum_mag_numf32 F -GLIBC_2.35 fmaximum_mag_numf32x F -GLIBC_2.35 fmaximum_mag_numf64 F -GLIBC_2.35 fmaximum_mag_numf64x F -GLIBC_2.35 fmaximum_mag_numl F -GLIBC_2.35 fmaximum_magf F -GLIBC_2.35 fmaximum_magf128 F -GLIBC_2.35 fmaximum_magf32 F -GLIBC_2.35 fmaximum_magf32x F -GLIBC_2.35 fmaximum_magf64 F -GLIBC_2.35 fmaximum_magf64x F -GLIBC_2.35 fmaximum_magl F -GLIBC_2.35 fmaximum_num F -GLIBC_2.35 fmaximum_numf F -GLIBC_2.35 fmaximum_numf128 F -GLIBC_2.35 fmaximum_numf32 F -GLIBC_2.35 fmaximum_numf32x F -GLIBC_2.35 fmaximum_numf64 F -GLIBC_2.35 fmaximum_numf64x F -GLIBC_2.35 fmaximum_numl F -GLIBC_2.35 fmaximumf F -GLIBC_2.35 fmaximumf128 F -GLIBC_2.35 fmaximumf32 F -GLIBC_2.35 fmaximumf32x F -GLIBC_2.35 fmaximumf64 F -GLIBC_2.35 fmaximumf64x F -GLIBC_2.35 fmaximuml F -GLIBC_2.35 fminimum F -GLIBC_2.35 fminimum_mag F -GLIBC_2.35 fminimum_mag_num F -GLIBC_2.35 fminimum_mag_numf F -GLIBC_2.35 fminimum_mag_numf128 F -GLIBC_2.35 fminimum_mag_numf32 F -GLIBC_2.35 fminimum_mag_numf32x F -GLIBC_2.35 fminimum_mag_numf64 F -GLIBC_2.35 fminimum_mag_numf64x F -GLIBC_2.35 fminimum_mag_numl F -GLIBC_2.35 fminimum_magf F -GLIBC_2.35 fminimum_magf128 F -GLIBC_2.35 fminimum_magf32 F -GLIBC_2.35 fminimum_magf32x F -GLIBC_2.35 fminimum_magf64 F -GLIBC_2.35 fminimum_magf64x F -GLIBC_2.35 fminimum_magl F -GLIBC_2.35 fminimum_num F -GLIBC_2.35 fminimum_numf F -GLIBC_2.35 fminimum_numf128 F -GLIBC_2.35 fminimum_numf32 F -GLIBC_2.35 fminimum_numf32x F -GLIBC_2.35 fminimum_numf64 F -GLIBC_2.35 fminimum_numf64x F -GLIBC_2.35 fminimum_numl F -GLIBC_2.35 fminimumf F -GLIBC_2.35 fminimumf128 F -GLIBC_2.35 fminimumf32 F -GLIBC_2.35 fminimumf32x F -GLIBC_2.35 fminimumf64 F -GLIBC_2.35 fminimumf64x F -GLIBC_2.35 fminimuml F -GLIBC_2.35 fsqrt F -GLIBC_2.35 fsqrtl F -GLIBC_2.35 hypot F -GLIBC_2.35 hypotf F -GLIBC_2.38 fmod F -GLIBC_2.38 fmodf F -GLIBC_2.39 exp10 F -GLIBC_2.4 __clog10l F -GLIBC_2.4 __finitel F -GLIBC_2.4 __fpclassifyl F -GLIBC_2.4 __nldbl_nexttowardf F -GLIBC_2.4 __signbitl F -GLIBC_2.4 acoshl F -GLIBC_2.4 acosl F -GLIBC_2.4 asinhl F -GLIBC_2.4 asinl F -GLIBC_2.4 atan2l F -GLIBC_2.4 atanhl F -GLIBC_2.4 atanl F -GLIBC_2.4 cabsl F -GLIBC_2.4 cacoshl F -GLIBC_2.4 cacosl F -GLIBC_2.4 cargl F -GLIBC_2.4 casinhl F -GLIBC_2.4 casinl F -GLIBC_2.4 catanhl F -GLIBC_2.4 catanl F -GLIBC_2.4 cbrtl F -GLIBC_2.4 ccoshl F -GLIBC_2.4 ccosl F -GLIBC_2.4 ceill F -GLIBC_2.4 cexpl F -GLIBC_2.4 cimagl F -GLIBC_2.4 clog10l F -GLIBC_2.4 clogl F -GLIBC_2.4 conjl F -GLIBC_2.4 copysignl F -GLIBC_2.4 coshl F -GLIBC_2.4 cosl F -GLIBC_2.4 cpowl F -GLIBC_2.4 cprojl F -GLIBC_2.4 creall F -GLIBC_2.4 csinhl F -GLIBC_2.4 csinl F -GLIBC_2.4 csqrtl F -GLIBC_2.4 ctanhl F -GLIBC_2.4 ctanl F -GLIBC_2.4 dreml F -GLIBC_2.4 erfcl F -GLIBC_2.4 erfl F -GLIBC_2.4 exp10l F -GLIBC_2.4 exp2l F -GLIBC_2.4 expl F -GLIBC_2.4 expm1l F -GLIBC_2.4 fabsl F -GLIBC_2.4 fdiml F -GLIBC_2.4 finitel F -GLIBC_2.4 floorl F -GLIBC_2.4 fmal F -GLIBC_2.4 fmaxl F -GLIBC_2.4 fminl F -GLIBC_2.4 fmodl F -GLIBC_2.4 frexpl F -GLIBC_2.4 gammal F -GLIBC_2.4 hypotl F -GLIBC_2.4 ilogbl F -GLIBC_2.4 j0l F -GLIBC_2.4 j1l F -GLIBC_2.4 jnl F -GLIBC_2.4 ldexpl F -GLIBC_2.4 lgammal F -GLIBC_2.4 lgammal_r F -GLIBC_2.4 llrintl F -GLIBC_2.4 llroundl F -GLIBC_2.4 log10l F -GLIBC_2.4 log1pl F -GLIBC_2.4 log2l F -GLIBC_2.4 logbl F -GLIBC_2.4 logl F -GLIBC_2.4 lrintl F -GLIBC_2.4 lroundl F -GLIBC_2.4 modfl F -GLIBC_2.4 nanl F -GLIBC_2.4 nearbyintl F -GLIBC_2.4 nextafterl F -GLIBC_2.4 nexttoward F -GLIBC_2.4 nexttowardf F -GLIBC_2.4 nexttowardl F -GLIBC_2.4 pow10l F -GLIBC_2.4 powl F -GLIBC_2.4 remainderl F -GLIBC_2.4 remquol F -GLIBC_2.4 rintl F -GLIBC_2.4 roundl F -GLIBC_2.4 scalbl F -GLIBC_2.4 scalblnl F -GLIBC_2.4 scalbnl F -GLIBC_2.4 significandl F -GLIBC_2.4 sincosl F -GLIBC_2.4 sinhl F -GLIBC_2.4 sinl F -GLIBC_2.4 sqrtl F -GLIBC_2.4 tanhl F -GLIBC_2.4 tanl F -GLIBC_2.4 tgammal F -GLIBC_2.4 truncl F -GLIBC_2.4 y0l F -GLIBC_2.4 y1l F -GLIBC_2.4 ynl F -GLIBC_2.40 exp10m1 F -GLIBC_2.40 exp10m1f F -GLIBC_2.40 exp10m1f128 F -GLIBC_2.40 exp10m1f32 F -GLIBC_2.40 exp10m1f32x F -GLIBC_2.40 exp10m1f64 F -GLIBC_2.40 exp10m1f64x F -GLIBC_2.40 exp10m1l F -GLIBC_2.40 exp2m1 F -GLIBC_2.40 exp2m1f F -GLIBC_2.40 exp2m1f128 F -GLIBC_2.40 exp2m1f32 F -GLIBC_2.40 exp2m1f32x F -GLIBC_2.40 exp2m1f64 F -GLIBC_2.40 exp2m1f64x F -GLIBC_2.40 exp2m1l F -GLIBC_2.40 log10p1 F -GLIBC_2.40 log10p1f F -GLIBC_2.40 log10p1f128 F -GLIBC_2.40 log10p1f32 F -GLIBC_2.40 log10p1f32x F -GLIBC_2.40 log10p1f64 F -GLIBC_2.40 log10p1f64x F -GLIBC_2.40 log10p1l F -GLIBC_2.40 log2p1 F -GLIBC_2.40 log2p1f F -GLIBC_2.40 log2p1f128 F -GLIBC_2.40 log2p1f32 F -GLIBC_2.40 log2p1f32x F -GLIBC_2.40 log2p1f64 F -GLIBC_2.40 log2p1f64x F -GLIBC_2.40 log2p1l F -GLIBC_2.40 logp1 F -GLIBC_2.40 logp1f F -GLIBC_2.40 logp1f128 F -GLIBC_2.40 logp1f32 F -GLIBC_2.40 logp1f32x F -GLIBC_2.40 logp1f64 F -GLIBC_2.40 logp1f64x F -GLIBC_2.40 logp1l F -GLIBC_2.41 acospi F -GLIBC_2.41 acospif F -GLIBC_2.41 acospif128 F -GLIBC_2.41 acospif32 F -GLIBC_2.41 acospif32x F -GLIBC_2.41 acospif64 F -GLIBC_2.41 acospif64x F -GLIBC_2.41 acospil F -GLIBC_2.41 asinpi F -GLIBC_2.41 asinpif F -GLIBC_2.41 asinpif128 F -GLIBC_2.41 asinpif32 F -GLIBC_2.41 asinpif32x F -GLIBC_2.41 asinpif64 F -GLIBC_2.41 asinpif64x F -GLIBC_2.41 asinpil F -GLIBC_2.41 atan2pi F -GLIBC_2.41 atan2pif F -GLIBC_2.41 atan2pif128 F -GLIBC_2.41 atan2pif32 F -GLIBC_2.41 atan2pif32x F -GLIBC_2.41 atan2pif64 F -GLIBC_2.41 atan2pif64x F -GLIBC_2.41 atan2pil F -GLIBC_2.41 atanpi F -GLIBC_2.41 atanpif F -GLIBC_2.41 atanpif128 F -GLIBC_2.41 atanpif32 F -GLIBC_2.41 atanpif32x F -GLIBC_2.41 atanpif64 F -GLIBC_2.41 atanpif64x F -GLIBC_2.41 atanpil F -GLIBC_2.41 cospi F -GLIBC_2.41 cospif F -GLIBC_2.41 cospif128 F -GLIBC_2.41 cospif32 F -GLIBC_2.41 cospif32x F -GLIBC_2.41 cospif64 F -GLIBC_2.41 cospif64x F -GLIBC_2.41 cospil F -GLIBC_2.41 sinpi F -GLIBC_2.41 sinpif F -GLIBC_2.41 sinpif128 F -GLIBC_2.41 sinpif32 F -GLIBC_2.41 sinpif32x F -GLIBC_2.41 sinpif64 F -GLIBC_2.41 sinpif64x F -GLIBC_2.41 sinpil F -GLIBC_2.41 tanpi F -GLIBC_2.41 tanpif F -GLIBC_2.41 tanpif128 F -GLIBC_2.41 tanpif32 F -GLIBC_2.41 tanpif32x F -GLIBC_2.41 tanpif64 F -GLIBC_2.41 tanpif64x F -GLIBC_2.41 tanpil F -GLIBC_2.42 compoundn F -GLIBC_2.42 compoundnf F -GLIBC_2.42 compoundnf128 F -GLIBC_2.42 compoundnf32 F -GLIBC_2.42 compoundnf32x F -GLIBC_2.42 compoundnf64 F -GLIBC_2.42 compoundnf64x F -GLIBC_2.42 compoundnl F -GLIBC_2.42 pown F -GLIBC_2.42 pownf F -GLIBC_2.42 pownf128 F -GLIBC_2.42 pownf32 F -GLIBC_2.42 pownf32x F -GLIBC_2.42 pownf64 F -GLIBC_2.42 pownf64x F -GLIBC_2.42 pownl F -GLIBC_2.42 powr F -GLIBC_2.42 powrf F -GLIBC_2.42 powrf128 F -GLIBC_2.42 powrf32 F -GLIBC_2.42 powrf32x F -GLIBC_2.42 powrf64 F -GLIBC_2.42 powrf64x F -GLIBC_2.42 powrl F -GLIBC_2.42 rootn F -GLIBC_2.42 rootnf F -GLIBC_2.42 rootnf128 F -GLIBC_2.42 rootnf32 F -GLIBC_2.42 rootnf32x F -GLIBC_2.42 rootnf64 F -GLIBC_2.42 rootnf64x F -GLIBC_2.42 rootnl F -GLIBC_2.42 rsqrt F -GLIBC_2.42 rsqrtf F -GLIBC_2.42 rsqrtf128 F -GLIBC_2.42 rsqrtf32 F -GLIBC_2.42 rsqrtf32x F -GLIBC_2.42 rsqrtf64 F -GLIBC_2.42 rsqrtf64x F -GLIBC_2.42 rsqrtl F -GLIBC_2.43 acosf F -GLIBC_2.43 acoshf F -GLIBC_2.43 asinf F -GLIBC_2.43 atan2f F -GLIBC_2.43 atanhf F -GLIBC_2.43 coshf F -GLIBC_2.43 fromfp F -GLIBC_2.43 fromfpf F -GLIBC_2.43 fromfpf128 F -GLIBC_2.43 fromfpf32 F -GLIBC_2.43 fromfpf32x F -GLIBC_2.43 fromfpf64 F -GLIBC_2.43 fromfpf64x F -GLIBC_2.43 fromfpl F -GLIBC_2.43 fromfpx F -GLIBC_2.43 fromfpxf F -GLIBC_2.43 fromfpxf128 F -GLIBC_2.43 fromfpxf32 F -GLIBC_2.43 fromfpxf32x F -GLIBC_2.43 fromfpxf64 F -GLIBC_2.43 fromfpxf64x F -GLIBC_2.43 fromfpxl F -GLIBC_2.43 j0f F -GLIBC_2.43 j1f F -GLIBC_2.43 jnf F -GLIBC_2.43 lgammaf F -GLIBC_2.43 lgammaf_r F -GLIBC_2.43 log10f F -GLIBC_2.43 remainder F -GLIBC_2.43 remainderf F -GLIBC_2.43 sinhf F -GLIBC_2.43 sqrtf F -GLIBC_2.43 tgammaf F -GLIBC_2.43 ufromfp F -GLIBC_2.43 ufromfpf F -GLIBC_2.43 ufromfpf128 F -GLIBC_2.43 ufromfpf32 F -GLIBC_2.43 ufromfpf32x F -GLIBC_2.43 ufromfpf64 F -GLIBC_2.43 ufromfpf64x F -GLIBC_2.43 ufromfpl F -GLIBC_2.43 ufromfpx F -GLIBC_2.43 ufromfpxf F -GLIBC_2.43 ufromfpxf128 F -GLIBC_2.43 ufromfpxf32 F -GLIBC_2.43 ufromfpxf32x F -GLIBC_2.43 ufromfpxf64 F -GLIBC_2.43 ufromfpxf64x F -GLIBC_2.43 ufromfpxl F -GLIBC_2.43 y0f F -GLIBC_2.43 y1f F -GLIBC_2.43 ynf F -GLIBC_2.44 cosh F -GLIBC_2.44 sinh F diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libnsl.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libnsl.abilist deleted file mode 100644 index add3d66a7a..0000000000 --- a/sysdeps/unix/sysv/linux/s390/s390-32/libnsl.abilist +++ /dev/null @@ -1,121 +0,0 @@ -GLIBC_2.0 __yp_check F -GLIBC_2.0 xdr_domainname F -GLIBC_2.0 xdr_keydat F -GLIBC_2.0 xdr_mapname F -GLIBC_2.0 xdr_peername F -GLIBC_2.0 xdr_valdat F -GLIBC_2.0 xdr_yp_buf F -GLIBC_2.0 xdr_ypbind_binding F -GLIBC_2.0 xdr_ypbind_resp F -GLIBC_2.0 xdr_ypbind_resptype F -GLIBC_2.0 xdr_ypbind_setdom F -GLIBC_2.0 xdr_ypdelete_args F -GLIBC_2.0 xdr_ypmap_parms F -GLIBC_2.0 xdr_ypmaplist F -GLIBC_2.0 xdr_yppush_status F -GLIBC_2.0 xdr_yppushresp_xfr F -GLIBC_2.0 xdr_ypreq_key F -GLIBC_2.0 xdr_ypreq_nokey F -GLIBC_2.0 xdr_ypreq_xfr F -GLIBC_2.0 xdr_ypresp_all F -GLIBC_2.0 xdr_ypresp_key_val F -GLIBC_2.0 xdr_ypresp_maplist F -GLIBC_2.0 xdr_ypresp_master F -GLIBC_2.0 xdr_ypresp_order F -GLIBC_2.0 xdr_ypresp_val F -GLIBC_2.0 xdr_ypresp_xfr F -GLIBC_2.0 xdr_ypstat F -GLIBC_2.0 xdr_ypupdate_args F -GLIBC_2.0 xdr_ypxfrstat F -GLIBC_2.0 yp_all F -GLIBC_2.0 yp_bind F -GLIBC_2.0 yp_first F -GLIBC_2.0 yp_get_default_domain F -GLIBC_2.0 yp_maplist F -GLIBC_2.0 yp_master F -GLIBC_2.0 yp_match F -GLIBC_2.0 yp_next F -GLIBC_2.0 yp_order F -GLIBC_2.0 yp_unbind F -GLIBC_2.0 yp_update F -GLIBC_2.0 ypbinderr_string F -GLIBC_2.0 yperr_string F -GLIBC_2.0 ypprot_err F -GLIBC_2.1 __free_fdresult F -GLIBC_2.1 __nis_default_access F -GLIBC_2.1 __nis_default_group F -GLIBC_2.1 __nis_default_owner F -GLIBC_2.1 __nis_default_ttl F -GLIBC_2.1 __nis_finddirectory F -GLIBC_2.1 __nis_hash F -GLIBC_2.1 __nisbind_connect F -GLIBC_2.1 __nisbind_create F -GLIBC_2.1 __nisbind_destroy F -GLIBC_2.1 __nisbind_next F -GLIBC_2.1 nis_add F -GLIBC_2.1 nis_add_entry F -GLIBC_2.1 nis_addmember F -GLIBC_2.1 nis_checkpoint F -GLIBC_2.1 nis_clone_directory F -GLIBC_2.1 nis_clone_object F -GLIBC_2.1 nis_clone_result F -GLIBC_2.1 nis_creategroup F -GLIBC_2.1 nis_destroy_object F -GLIBC_2.1 nis_destroygroup F -GLIBC_2.1 nis_dir_cmp F -GLIBC_2.1 nis_domain_of F -GLIBC_2.1 nis_domain_of_r F -GLIBC_2.1 nis_first_entry F -GLIBC_2.1 nis_free_directory F -GLIBC_2.1 nis_free_object F -GLIBC_2.1 nis_free_request F -GLIBC_2.1 nis_freenames F -GLIBC_2.1 nis_freeresult F -GLIBC_2.1 nis_freeservlist F -GLIBC_2.1 nis_freetags F -GLIBC_2.1 nis_getnames F -GLIBC_2.1 nis_getservlist F -GLIBC_2.1 nis_ismember F -GLIBC_2.1 nis_leaf_of F -GLIBC_2.1 nis_leaf_of_r F -GLIBC_2.1 nis_lerror F -GLIBC_2.1 nis_list F -GLIBC_2.1 nis_local_directory F -GLIBC_2.1 nis_local_group F -GLIBC_2.1 nis_local_host F -GLIBC_2.1 nis_local_principal F -GLIBC_2.1 nis_lookup F -GLIBC_2.1 nis_mkdir F -GLIBC_2.1 nis_modify F -GLIBC_2.1 nis_modify_entry F -GLIBC_2.1 nis_name_of F -GLIBC_2.1 nis_name_of_r F -GLIBC_2.1 nis_next_entry F -GLIBC_2.1 nis_perror F -GLIBC_2.1 nis_ping F -GLIBC_2.1 nis_print_directory F -GLIBC_2.1 nis_print_entry F -GLIBC_2.1 nis_print_group F -GLIBC_2.1 nis_print_group_entry F -GLIBC_2.1 nis_print_link F -GLIBC_2.1 nis_print_object F -GLIBC_2.1 nis_print_result F -GLIBC_2.1 nis_print_rights F -GLIBC_2.1 nis_print_table F -GLIBC_2.1 nis_read_obj F -GLIBC_2.1 nis_remove F -GLIBC_2.1 nis_remove_entry F -GLIBC_2.1 nis_removemember F -GLIBC_2.1 nis_rmdir F -GLIBC_2.1 nis_servstate F -GLIBC_2.1 nis_sperrno F -GLIBC_2.1 nis_sperror F -GLIBC_2.1 nis_sperror_r F -GLIBC_2.1 nis_stats F -GLIBC_2.1 nis_verifygroup F -GLIBC_2.1 nis_write_obj F -GLIBC_2.1 readColdStartFile F -GLIBC_2.1 writeColdStartFile F -GLIBC_2.1 xdr_cback_data F -GLIBC_2.1 xdr_obj_p F -GLIBC_2.2 xdr_ypall F diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist deleted file mode 100644 index 40ce2f1fbd..0000000000 --- a/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist +++ /dev/null @@ -1,18 +0,0 @@ -GLIBC_2.0 __libpthread_version_placeholder F -GLIBC_2.1 __libpthread_version_placeholder F -GLIBC_2.1.1 __libpthread_version_placeholder F -GLIBC_2.1.2 __libpthread_version_placeholder F -GLIBC_2.11 __libpthread_version_placeholder F -GLIBC_2.12 __libpthread_version_placeholder F -GLIBC_2.18 __libpthread_version_placeholder F -GLIBC_2.19 __libpthread_version_placeholder F -GLIBC_2.2 __libpthread_version_placeholder F -GLIBC_2.2.3 __libpthread_version_placeholder F -GLIBC_2.2.6 __libpthread_version_placeholder F -GLIBC_2.28 __libpthread_version_placeholder F -GLIBC_2.3.2 __libpthread_version_placeholder F -GLIBC_2.3.3 __libpthread_version_placeholder F -GLIBC_2.3.4 __libpthread_version_placeholder F -GLIBC_2.30 __libpthread_version_placeholder F -GLIBC_2.31 __libpthread_version_placeholder F -GLIBC_2.4 __libpthread_version_placeholder F diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libresolv.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libresolv.abilist deleted file mode 100644 index 56dcd57b6c..0000000000 --- a/sysdeps/unix/sysv/linux/s390/s390-32/libresolv.abilist +++ /dev/null @@ -1,67 +0,0 @@ -GLIBC_2.0 __b64_ntop F -GLIBC_2.0 __b64_pton F -GLIBC_2.0 __dn_count_labels F -GLIBC_2.0 __fp_nquery F -GLIBC_2.0 __fp_query F -GLIBC_2.0 __fp_resstat F -GLIBC_2.0 __hostalias F -GLIBC_2.0 __loc_aton F -GLIBC_2.0 __loc_ntoa F -GLIBC_2.0 __p_cdname F -GLIBC_2.0 __p_cdnname F -GLIBC_2.0 __p_class F -GLIBC_2.0 __p_class_syms D 0x54 -GLIBC_2.0 __p_fqname F -GLIBC_2.0 __p_fqnname F -GLIBC_2.0 __p_option F -GLIBC_2.0 __p_query F -GLIBC_2.0 __p_secstodate F -GLIBC_2.0 __p_time F -GLIBC_2.0 __p_type F -GLIBC_2.0 __p_type_syms D 0x228 -GLIBC_2.0 __putlong F -GLIBC_2.0 __putshort F -GLIBC_2.0 __res_close F -GLIBC_2.0 __res_isourserver F -GLIBC_2.0 __res_nameinquery F -GLIBC_2.0 __res_queriesmatch F -GLIBC_2.0 __sym_ntop F -GLIBC_2.0 __sym_ntos F -GLIBC_2.0 __sym_ston F -GLIBC_2.0 _gethtbyaddr F -GLIBC_2.0 _gethtbyname F -GLIBC_2.0 _gethtbyname2 F -GLIBC_2.0 _gethtent F -GLIBC_2.0 _getlong F -GLIBC_2.0 _getshort F -GLIBC_2.0 _res_opcodes D 0x40 -GLIBC_2.0 _sethtent F -GLIBC_2.0 inet_net_ntop F -GLIBC_2.0 inet_net_pton F -GLIBC_2.0 inet_neta F -GLIBC_2.0 res_gethostbyaddr F -GLIBC_2.0 res_gethostbyname F -GLIBC_2.0 res_gethostbyname2 F -GLIBC_2.0 res_send_setqhook F -GLIBC_2.0 res_send_setrhook F -GLIBC_2.2 __res_hostalias F -GLIBC_2.3.2 __p_rcode F -GLIBC_2.9 ns_datetosecs F -GLIBC_2.9 ns_format_ttl F -GLIBC_2.9 ns_get16 F -GLIBC_2.9 ns_get32 F -GLIBC_2.9 ns_initparse F -GLIBC_2.9 ns_makecanon F -GLIBC_2.9 ns_msg_getflag F -GLIBC_2.9 ns_name_ntol F -GLIBC_2.9 ns_name_rollback F -GLIBC_2.9 ns_parse_ttl F -GLIBC_2.9 ns_parserr F -GLIBC_2.9 ns_put16 F -GLIBC_2.9 ns_put32 F -GLIBC_2.9 ns_samedomain F -GLIBC_2.9 ns_samename F -GLIBC_2.9 ns_skiprr F -GLIBC_2.9 ns_sprintrr F -GLIBC_2.9 ns_sprintrrf F -GLIBC_2.9 ns_subdomain F diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist deleted file mode 100644 index 6d24ce527d..0000000000 --- a/sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist +++ /dev/null @@ -1,5 +0,0 @@ -GLIBC_2.1 __librt_version_placeholder F -GLIBC_2.2 __librt_version_placeholder F -GLIBC_2.3.4 __librt_version_placeholder F -GLIBC_2.4 __librt_version_placeholder F -GLIBC_2.7 __librt_version_placeholder F diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libthread_db.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libthread_db.abilist deleted file mode 100644 index 2db0992737..0000000000 --- a/sysdeps/unix/sysv/linux/s390/s390-32/libthread_db.abilist +++ /dev/null @@ -1,40 +0,0 @@ -GLIBC_2.1.3 td_init F -GLIBC_2.1.3 td_log F -GLIBC_2.1.3 td_ta_clear_event F -GLIBC_2.1.3 td_ta_delete F -GLIBC_2.1.3 td_ta_enable_stats F -GLIBC_2.1.3 td_ta_event_addr F -GLIBC_2.1.3 td_ta_event_getmsg F -GLIBC_2.1.3 td_ta_get_nthreads F -GLIBC_2.1.3 td_ta_get_ph F -GLIBC_2.1.3 td_ta_get_stats F -GLIBC_2.1.3 td_ta_map_id2thr F -GLIBC_2.1.3 td_ta_map_lwp2thr F -GLIBC_2.1.3 td_ta_new F -GLIBC_2.1.3 td_ta_reset_stats F -GLIBC_2.1.3 td_ta_set_event F -GLIBC_2.1.3 td_ta_setconcurrency F -GLIBC_2.1.3 td_ta_thr_iter F -GLIBC_2.1.3 td_ta_tsd_iter F -GLIBC_2.1.3 td_thr_clear_event F -GLIBC_2.1.3 td_thr_dbresume F -GLIBC_2.1.3 td_thr_dbsuspend F -GLIBC_2.1.3 td_thr_event_enable F -GLIBC_2.1.3 td_thr_event_getmsg F -GLIBC_2.1.3 td_thr_get_info F -GLIBC_2.1.3 td_thr_getfpregs F -GLIBC_2.1.3 td_thr_getgregs F -GLIBC_2.1.3 td_thr_getxregs F -GLIBC_2.1.3 td_thr_getxregsize F -GLIBC_2.1.3 td_thr_set_event F -GLIBC_2.1.3 td_thr_setfpregs F -GLIBC_2.1.3 td_thr_setgregs F -GLIBC_2.1.3 td_thr_setprio F -GLIBC_2.1.3 td_thr_setsigpending F -GLIBC_2.1.3 td_thr_setxregs F -GLIBC_2.1.3 td_thr_sigsetmask F -GLIBC_2.1.3 td_thr_tsd F -GLIBC_2.1.3 td_thr_validate F -GLIBC_2.2.3 td_symbol_list F -GLIBC_2.3 td_thr_tls_get_addr F -GLIBC_2.3.3 td_thr_tlsbase F diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libutil-compat.c b/sysdeps/unix/sysv/linux/s390/s390-32/libutil-compat.c deleted file mode 100644 index 251d038aa8..0000000000 --- a/sysdeps/unix/sysv/linux/s390/s390-32/libutil-compat.c +++ /dev/null @@ -1,23 +0,0 @@ -/* Placeholder compatibility symbols for libutil. s390 version. - Copyright (C) 2021-2026 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, see - . */ - -#include "utmp-compat.h" -#include - -symbol_version (__libutil_version_placeholder_1, - __libutil_version_placeholder, UTMP_COMPAT_BASE); diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libutil.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libutil.abilist deleted file mode 100644 index 5c9c8a5b00..0000000000 --- a/sysdeps/unix/sysv/linux/s390/s390-32/libutil.abilist +++ /dev/null @@ -1,2 +0,0 @@ -GLIBC_2.0 __libutil_version_placeholder F -GLIBC_2.9 __libutil_version_placeholder F diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/login.c b/sysdeps/unix/sysv/linux/s390/s390-32/login.c deleted file mode 100644 index 43ad237014..0000000000 --- a/sysdeps/unix/sysv/linux/s390/s390-32/login.c +++ /dev/null @@ -1,35 +0,0 @@ -/* Copyright (C) 2008-2026 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, see - . */ - -#include -#include -#include -#include -#include -#include -#include -#include - -#include "utmp-compat.h" - -#undef compat_symbol -#define compat_symbol(...) -#include "login/login.c" - -/* Compatibility symbol as formerly found in libutil. login@GLIBC_2.0 - is supplied by login32.c. */ -symbol_version (__login, login, UTMP_COMPAT_BASE); diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/login32.c b/sysdeps/unix/sysv/linux/s390/s390-32/login32.c deleted file mode 100644 index 03d66eb835..0000000000 --- a/sysdeps/unix/sysv/linux/s390/s390-32/login32.c +++ /dev/null @@ -1,37 +0,0 @@ -/* Copyright (C) 2008-2026 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, see - . */ - -#ifdef SHARED -# include -# include -# include - -# include "utmp32.h" -# include "utmp-convert.h" - -/* Write the given entry into utmp and wtmp. */ -void -login32 (const struct utmp32 *entry) -{ - struct utmp in64; - - utmp_convert32to64 (entry, &in64); - login (&in64); -} - -symbol_version (login32, login, GLIBC_2.0); -#endif diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/makecontext.c b/sysdeps/unix/sysv/linux/s390/s390-32/makecontext.c deleted file mode 100644 index 13b3195f17..0000000000 --- a/sysdeps/unix/sysv/linux/s390/s390-32/makecontext.c +++ /dev/null @@ -1,100 +0,0 @@ -/* Copyright (C) 2001-2026 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, see - . */ - -#include -#include -#include -#include -#include - -/* This implementation can handle any ARGC value but only - normal integer type parameters. Parameters of type float, - double, complex and structure with sizes 0, 2, 4 or 8 - won't work. - makecontext sets up a stack and the registers for the - user context. The stack looks like this: - size offset - %r15 -> +-----------------------+ - 4 | back chain (zero) | 0 - 4 | reserved | 4 - 88 | save area for (*func) | 8 - +-----------------------+ - n | overflow parameters | 96 - +-----------------------+ - The registers are set up like this: - %r2-%r6: parameters 1 to 5 - %r7 : (*func) pointer - %r8 : uc_link from ucontext structure - %r9 : address of setcontext - %r14 : return address to uc_link trampoline - %r15 : stack pointer. - - The trampoline looks like this: - basr %r14,%r7 - lr %r2,%r8 - br %r9. */ - -void -__makecontext (ucontext_t *ucp, void (*func) (void), int argc, ...) -{ - extern void __makecontext_ret (void); - unsigned long int *sp; - va_list ap; - - sp = (unsigned long int *) (((unsigned long int) ucp->uc_stack.ss_sp - + ucp->uc_stack.ss_size) & -8L); - - /* Set the return address to trampoline. */ - ucp->uc_mcontext.gregs[14] = (long int) __makecontext_ret; - /* Store psw mask to 0x0 and addr to trampoline. Then the address - can be retrieved from the ucontext structure in the same way as if it - is created by kernel and passed to a signal-handler. */ - ucp->uc_mcontext.psw.addr = (long int) __makecontext_ret; - ucp->uc_mcontext.psw.mask = 0; - - /* Set register parameters. */ - va_start (ap, argc); - for (int i = 0; i < argc && i < 5; ++i) - ucp->uc_mcontext.gregs[2 + i] = va_arg (ap, long int); - - /* The remaining arguments go to the overflow area. */ - if (argc > 5) - { - sp -= argc - 5; - for (int i = 5; i < argc; ++i) - sp[i - 5] = va_arg (ap, long int); - } - va_end (ap); - - /* Make room for the save area and set the backchain. */ - sp -= 24; - *sp = 0; - - /* Pass (*func) to __makecontext_ret in %r7. */ - ucp->uc_mcontext.gregs[7] = (long int) func; - - /* Pass ucp->uc_link to __makecontext_ret in %r8. */ - ucp->uc_mcontext.gregs[8] = (long int) ucp->uc_link; - - /* Pass address of setcontext in %r9. */ - ucp->uc_mcontext.gregs[9] = (long int) &setcontext; - - /* Set stack pointer. */ - ucp->uc_mcontext.gregs[15] = (long int) sp; -} - -weak_alias (__makecontext, makecontext) diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/oldglob.c b/sysdeps/unix/sysv/linux/s390/s390-32/oldglob.c deleted file mode 100644 index 56d7d12ea6..0000000000 --- a/sysdeps/unix/sysv/linux/s390/s390-32/oldglob.c +++ /dev/null @@ -1,2 +0,0 @@ -#define GLOB_NO_OLD_VERSION -#include diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/pointer_guard.h b/sysdeps/unix/sysv/linux/s390/s390-32/pointer_guard.h deleted file mode 100644 index 016574bf20..0000000000 --- a/sysdeps/unix/sysv/linux/s390/s390-32/pointer_guard.h +++ /dev/null @@ -1,45 +0,0 @@ -/* Pointer obfuscation implenentation. s390 version. - Copyright (C) 2005-2026 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, see - . */ - -#ifndef POINTER_GUARD_H -#define POINTER_GUARD_H - -#if IS_IN (rtld) -/* We cannot use the thread descriptor because in ld.so we use setjmp - earlier than the descriptor is initialized. */ -# include -#else -/* For the time being just use stack_guard rather than a separate - pointer_guard. */ -# ifdef __ASSEMBLER__ -# define PTR_MANGLE(reg, tmpreg) \ - ear tmpreg,%a0; \ - x reg,STACK_GUARD(tmpreg) -# define PTR_MANGLE2(reg, tmpreg) \ - x reg,STACK_GUARD(tmpreg) -# define PTR_DEMANGLE(reg, tmpreg) PTR_MANGLE (reg, tmpreg) -# else -# include -# include -# define PTR_MANGLE(var) \ - (var) = (void *) ((uintptr_t) (var) ^ THREAD_GET_POINTER_GUARD ()) -# define PTR_DEMANGLE(var) PTR_MANGLE (var) -# endif -#endif - -#endif /* POINTER_GUARD_H */ diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/posix_fadvise64.c b/sysdeps/unix/sysv/linux/s390/s390-32/posix_fadvise64.c deleted file mode 100644 index 0a5ee8c99b..0000000000 --- a/sysdeps/unix/sysv/linux/s390/s390-32/posix_fadvise64.c +++ /dev/null @@ -1,66 +0,0 @@ -/* Copyright (C) 2003-2026 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, see - . */ - -#include -#include -#include - -int __posix_fadvise64_l64 (int fd, off64_t offset, off64_t len, int advise); -int __posix_fadvise64_l32 (int fd, off64_t offset, size_t len, int advise); - -/* Advice the system about the expected behaviour of the application with - respect to the file associated with FD. */ - -struct fadvise64_64_layout -{ - int fd; - off64_t offset; - off64_t len; - int advise; -}; - -int -__posix_fadvise64_l64 (int fd, off64_t offset, off64_t len, int advise) -{ - struct fadvise64_64_layout parameters; - - parameters.fd = fd; - parameters.offset = offset; - parameters.len = len; - parameters.advise = advise; - int ret = INTERNAL_SYSCALL_CALL (fadvise64_64, ¶meters); - if (!INTERNAL_SYSCALL_ERROR_P (ret)) - return 0; - return INTERNAL_SYSCALL_ERRNO (ret); -} - -#include - -#if SHLIB_COMPAT(libc, GLIBC_2_2, GLIBC_2_3_3) - -int -attribute_compat_text_section -__posix_fadvise64_l32 (int fd, off64_t offset, size_t len, int advise) -{ - return __posix_fadvise64_l64 (fd, offset, len, advise); -} - -versioned_symbol (libc, __posix_fadvise64_l64, posix_fadvise64, GLIBC_2_3_3); -compat_symbol (libc, __posix_fadvise64_l32, posix_fadvise64, GLIBC_2_2); -#else -strong_alias (__posix_fadvise64_l64, posix_fadvise64); -#endif diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/pututxline.c b/sysdeps/unix/sysv/linux/s390/s390-32/pututxline.c deleted file mode 100644 index 80b396bfaf..0000000000 --- a/sysdeps/unix/sysv/linux/s390/s390-32/pututxline.c +++ /dev/null @@ -1,29 +0,0 @@ -/* Copyright (C) 2008-2026 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, see - . */ - -#include -#include - -#include "utmp-compat.h" - -#undef weak_alias -#define weak_alias(n,a) -#define pututxline __pututxline -#include "login/pututxline.c" -#undef pututxline - -default_symbol_version (__pututxline, pututxline, UTMP_COMPAT_BASE); diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/setcontext.S b/sysdeps/unix/sysv/linux/s390/s390-32/setcontext.S deleted file mode 100644 index 374175d25e..0000000000 --- a/sysdeps/unix/sysv/linux/s390/s390-32/setcontext.S +++ /dev/null @@ -1,73 +0,0 @@ -/* Copyright (C) 2001-2026 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, see - . */ - -#include -#include - -#include "ucontext_i.h" - -/* __setcontext (const ucontext_t *ucp) - - Restores the machine context in UCP and thereby resumes execution - in that context. - - This implementation is intended to be used for *synchronous* context - switches only. Therefore, it does not have to restore anything - other than the PRESERVED state. */ - -ENTRY(__setcontext) - lr %r0,%r2 - - /* rt_sigprocmask (SIG_SETMASK, &sc->sc_mask, NULL, sigsetsize). */ - la %r3,SC_MASK(%r2) - la %r2,SIG_SETMASK - slr %r4,%r4 - lhi %r5,_NSIG8 - lhi %r1,SYS_ify(rt_sigprocmask) - svc 0 - - /* Load fpu context. */ - lr %r1,%r0 - lfpc SC_FPC(%r1) - ld %f0,SC_FPRS(%r1) - ld %f1,SC_FPRS+8(%r1) - ld %f2,SC_FPRS+16(%r1) - ld %f3,SC_FPRS+24(%r1) - ld %f4,SC_FPRS+32(%r1) - ld %f5,SC_FPRS+40(%r1) - ld %f6,SC_FPRS+48(%r1) - ld %f7,SC_FPRS+56(%r1) - ld %f8,SC_FPRS+64(%r1) - ld %f9,SC_FPRS+72(%r1) - ld %f10,SC_FPRS+80(%r1) - ld %f11,SC_FPRS+88(%r1) - ld %f12,SC_FPRS+96(%r1) - ld %f13,SC_FPRS+104(%r1) - ld %f14,SC_FPRS+112(%r1) - ld %f15,SC_FPRS+120(%r1) - - /* Don't touch %a0, used for thread purposes. */ - lam %a1,%a15,SC_ACRS+4(%r1) - - /* Load general purpose registers. */ - lm %r0,%r15,SC_GPRS(%r1) - - /* Return. */ - br %r14 -END(__setcontext) - -weak_alias (__setcontext, setcontext) diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/swapcontext.S b/sysdeps/unix/sysv/linux/s390/s390-32/swapcontext.S deleted file mode 100644 index c7c321b9f6..0000000000 --- a/sysdeps/unix/sysv/linux/s390/s390-32/swapcontext.S +++ /dev/null @@ -1,114 +0,0 @@ -/* Copyright (C) 2002-2026 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, see - . */ - -#include -#include - -#include "ucontext_i.h" - -/* __swapcontext (ucontext_t *oucp, const ucontext_t *ucp) - - Saves the machine context in oucp such that when it is activated, - it appears as if __swapcontext() returned again, restores the - machine context in ucp and thereby resumes execution in that - context. - - This implementation is intended to be used for *synchronous* context - switches only. Therefore, it does not have to save anything - other than the PRESERVED state. */ - -ENTRY(__swapcontext) - /* While not part of the ABI a system call never clobbers r0 - or r1. So keeping the values here while calling - rt_sigprocmask is ok. */ - lr %r1,%r2 - lr %r0,%r3 - - /* Store fpu context. */ - stfpc SC_FPC(%r1) - std %f0,SC_FPRS(%r1) - std %f1,SC_FPRS+8(%r1) - std %f2,SC_FPRS+16(%r1) - std %f3,SC_FPRS+24(%r1) - std %f4,SC_FPRS+32(%r1) - std %f5,SC_FPRS+40(%r1) - std %f6,SC_FPRS+48(%r1) - std %f7,SC_FPRS+56(%r1) - std %f8,SC_FPRS+64(%r1) - std %f9,SC_FPRS+72(%r1) - std %f10,SC_FPRS+80(%r1) - std %f11,SC_FPRS+88(%r1) - std %f12,SC_FPRS+96(%r1) - std %f13,SC_FPRS+104(%r1) - std %f14,SC_FPRS+112(%r1) - std %f15,SC_FPRS+120(%r1) - - /* Set __swapcontext return value to 0. */ - slr %r2,%r2 - - /* Store access registers. */ - stam %a0,%a15,SC_ACRS(%r1) - - /* Store general purpose registers. */ - stm %r0,%r15,SC_GPRS(%r1) - - /* Store psw mask to 0x0 and addr to return address. Then the address - can be retrieved from the ucontext structure in the same way as if it - is created by kernel and passed to a signal-handler. */ - st %r2,SC_PSW+0(%r1) - st %r14,SC_PSW+4(%r1) - - /* rt_sigprocmask (SIG_SETMASK, &ucp->uc_sigmask, &oucp->uc_sigmask, - sigsetsize). */ - la %r2,SIG_SETMASK - lr %r5,%r0 - la %r3,SC_MASK(%r5) - la %r4,SC_MASK(%r1) - lhi %r5,_NSIG8 - lhi %r1,SYS_ify(rt_sigprocmask) - svc 0 - - /* Load fpu context. */ - lr %r5,%r0 - lfpc SC_FPC(%r5) - ld %f0,SC_FPRS(%r5) - ld %f1,SC_FPRS+8(%r5) - ld %f2,SC_FPRS+16(%r5) - ld %f3,SC_FPRS+24(%r5) - ld %f4,SC_FPRS+32(%r5) - ld %f5,SC_FPRS+40(%r5) - ld %f6,SC_FPRS+48(%r5) - ld %f7,SC_FPRS+56(%r5) - ld %f8,SC_FPRS+64(%r5) - ld %f9,SC_FPRS+72(%r5) - ld %f10,SC_FPRS+80(%r5) - ld %f11,SC_FPRS+88(%r5) - ld %f12,SC_FPRS+96(%r5) - ld %f13,SC_FPRS+104(%r5) - ld %f14,SC_FPRS+112(%r5) - ld %f15,SC_FPRS+120(%r5) - - /* Don't touch %a0, used for thread purposes. */ - lam %a1,%a15,SC_ACRS+4(%r5) - - /* Load general purpose registers. */ - lm %r0,%r15,SC_GPRS(%r5) - - /* Return. */ - br %r14 -END(__swapcontext) -weak_alias (__swapcontext, swapcontext) diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/syscall.S b/sysdeps/unix/sysv/linux/s390/s390-32/syscall.S deleted file mode 100644 index 0e84727ee2..0000000000 --- a/sysdeps/unix/sysv/linux/s390/s390-32/syscall.S +++ /dev/null @@ -1,42 +0,0 @@ -/* Copyright (C) 2000-2026 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, see - . */ - -#include - -/* Please consult the file sysdeps/unix/sysv/linux/s390/sysdep.h for - more information about the value -4095 used below.*/ - -ENTRY (syscall) - stm %r6,%r7,24(%r15) /* save registers */ - cfi_offset (%r7, -68) - cfi_offset (%r6, -72) - - lr %r1,%r2 /* move syscall number */ - lr %r2,%r3 /* first parameter */ - lr %r3,%r4 /* second parameter */ - lr %r4,%r5 /* third parameter */ - lr %r5,%r6 /* fourth parameter */ - lm %r6,%r7,96(%r15) /* fifth / sixth parameter */ - svc 0 - - lm %r6,%r7,24(%r15) /* load registers. */ - - lhi %r0,-4095 - clr %r2,%r0 /* check R2 for error */ - jnl SYSCALL_ERROR_LABEL - br %r14 /* return to caller */ -PSEUDO_END (syscall) diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/syscall_cancel.S b/sysdeps/unix/sysv/linux/s390/s390-32/syscall_cancel.S deleted file mode 100644 index 2f97881e8c..0000000000 --- a/sysdeps/unix/sysv/linux/s390/s390-32/syscall_cancel.S +++ /dev/null @@ -1,62 +0,0 @@ -/* Cancellable syscall wrapper. Linux/s390 version. - Copyright (C) 2023-2026 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, see - . */ - -#include -#include - -/* long int __syscall_cancel_arch (int *cancelhandling, - __syscall_arg_t nr, - __syscall_arg_t arg1, - __syscall_arg_t arg2, - __syscall_arg_t arg3, - __syscall_arg_t arg4, - __syscall_arg_t arg5, - __syscall_arg_t arg6) */ - -ENTRY (__syscall_cancel_arch) - stm %r6,%r7,24(%r15) - cfi_offset (%r6, -72) - cfi_offset (%r7, -68) - - .globl __syscall_cancel_arch_start -__syscall_cancel_arch_start: - /* if (*cancelhandling & CANCELED_BITMASK) - __syscall_do_cancel() */ - tm 3(%r2),TCB_CANCELED_BITMASK - jne 1f - - /* Issue a 6 argument syscall, the nr [%r1] being the syscall - number. */ - lr %r1,%r3 - lr %r2,%r4 - lr %r3,%r5 - lr %r4,%r6 - lm %r5,%r7,96(%r15) - svc 0 - - .globl __syscall_cancel_arch_end -__syscall_cancel_arch_end: - lm %r6,%r7,24(%r15) - cfi_remember_state - cfi_restore (%r7) - cfi_restore (%r6) - br %r14 -1: - cfi_restore_state - jg __syscall_do_cancel -END (__syscall_cancel_arch) diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/syscalls.list b/sysdeps/unix/sysv/linux/s390/s390-32/syscalls.list deleted file mode 100644 index 91d78d91ef..0000000000 --- a/sysdeps/unix/sysv/linux/s390/s390-32/syscalls.list +++ /dev/null @@ -1,18 +0,0 @@ -# File name Caller Syscall name Args Strong name Weak names - -chown - chown32 i:sii __chown chown@@GLIBC_2.1 -lchown - lchown32 i:sii __lchown lchown@@GLIBC_2.0 chown@GLIBC_2.0 -fchown - fchown32 i:iii __fchown fchown - -getegid - getegid32 Ei: __getegid getegid -geteuid - geteuid32 Ei: __geteuid geteuid -getgid - getgid32 Ei: __getgid getgid -getuid - getuid32 Ei: __getuid getuid -getresgid - getresgid32 i:ppp __getresgid getresgid -getresuid - getresuid32 i:ppp __getresuid getresuid -getgroups - getgroups32 i:ip __getgroups getgroups - -setfsgid - setfsgid32 Ei:i setfsgid -setfsuid - setfsuid32 Ei:i setfsuid - -personality EXTRA personality Ei:i __personality personality diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/sysdep.S b/sysdeps/unix/sysv/linux/s390/s390-32/sysdep.S deleted file mode 100644 index 70692ed798..0000000000 --- a/sysdeps/unix/sysv/linux/s390/s390-32/sysdep.S +++ /dev/null @@ -1,73 +0,0 @@ -/* Copyright (C) 2000-2026 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, see - . */ - -#include -#include - -/* The following code is only used in the shared library when we - compile the reentrant version. Otherwise each system call defines - each own version. */ - -/* The syscall stubs jump here when they detect an error. */ - -#undef CALL_MCOUNT -#define CALL_MCOUNT - - .text -ENTRY(__syscall_error) -#ifndef PIC -# if IS_IN (libc) -# define SYSCALL_ERROR_ERRNO __libc_errno -# else -# define SYSCALL_ERROR_ERRNO errno -# endif - basr %r1,0 -0: l %r1,1f-0b(%r1) - ear %r3,%a0 - lcr %r2,%r2 - st %r2,0(%r1,%r3) - lhi %r2,-1 - br %r14 -1: .long SYSCALL_ERROR_ERRNO@ntpoff -#else -# if RTLD_PRIVATE_ERRNO - basr %r1,0 -0: al %r1,1f-0b(%r1) - lcr %r2,%r2 - st %r2,0(%r1) - lhi %r2,-1 - br %r14 -1: .long rtld_errno - 0b -# else -# if IS_IN (libc) -# define SYSCALL_ERROR_ERRNO __libc_errno -# else -# define SYSCALL_ERROR_ERRNO errno -# endif - basr %r1,0 -0: al %r1,1f-0b(%r1) - ear %r3,%a0 - l %r1,SYSCALL_ERROR_ERRNO@gotntpoff(%r1) - lcr %r2,%r2 - st %r2,0(%r1,%r3) - lhi %r2,-1 - br %r14 -1: .long _GLOBAL_OFFSET_TABLE_-0b -# endif -#endif - -END (__syscall_error) diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/sysdep.h b/sysdeps/unix/sysv/linux/s390/s390-32/sysdep.h deleted file mode 100644 index 6f582cc5b6..0000000000 --- a/sysdeps/unix/sysv/linux/s390/s390-32/sysdep.h +++ /dev/null @@ -1,180 +0,0 @@ -/* Copyright (C) 2000-2026 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, see - . */ - -#ifndef _LINUX_S390_SYSDEP_H -#define _LINUX_S390_SYSDEP_H - -#include -#include -#include -#include -#include /* For RTLD_PRIVATE_ERRNO. */ -#include - -/* For Linux we can use the system call table in the header file - /usr/include/asm/unistd.h - of the kernel. But these symbols do not follow the SYS_* syntax - so we have to redefine the `SYS_ify' macro here. */ -/* in newer 2.1 kernels __NR_syscall is missing so we define it here */ -#define __NR_syscall 0 - -#ifdef __ASSEMBLER__ - -/* Linux uses a negative return value to indicate syscall errors, unlike - most Unices, which use the condition codes' carry flag. - - Since version 2.1 the return value of a system call might be negative - even if the call succeeded. E.g., the `lseek' system call might return - a large offset. Therefore we must not anymore test for < 0, but test - for a real error by making sure the value in gpr2 is a real error - number. Linus said he will make sure that no syscall returns a value - in -1 .. -4095 as a valid result so we can safely test with -4095. */ - -#undef PSEUDO -#define PSEUDO(name, syscall_name, args) \ - .text; \ - ENTRY (name) \ - DO_CALL (syscall_name, args); \ - lhi %r4,-4095 ; \ - clr %r2,%r4 ; \ - jnl SYSCALL_ERROR_LABEL - -#undef PSEUDO_END -#define PSEUDO_END(name) \ - SYSCALL_ERROR_HANDLER; \ - END (name) - -#undef PSEUDO_NOERRNO -#define PSEUDO_NOERRNO(name, syscall_name, args) \ - .text; \ - ENTRY (name) \ - DO_CALL (syscall_name, args) - -#undef PSEUDO_END_NOERRNO -#define PSEUDO_END_NOERRNO(name) \ - END (name) - -#undef PSEUDO_ERRVAL -#define PSEUDO_ERRVAL(name, syscall_name, args) \ - .text; \ - ENTRY (name) \ - DO_CALL (syscall_name, args); \ - lcr %r2,%r2 - -#undef PSEUDO_END_ERRVAL -#define PSEUDO_END_ERRVAL(name) \ - END (name) - -#undef SYSCALL_ERROR_LABEL -#ifndef PIC -# undef SYSCALL_ERROR_LABEL -# define SYSCALL_ERROR_LABEL 0f -# define SYSCALL_ERROR_HANDLER \ -0: basr %r1,0; \ -1: l %r1,2f-1b(%r1); \ - br %r1; \ -2: .long syscall_error -#else -# if RTLD_PRIVATE_ERRNO -# undef SYSCALL_ERROR_LABEL -# define SYSCALL_ERROR_LABEL 0f -# define SYSCALL_ERROR_HANDLER \ -0: basr %r1,0; \ -1: al %r1,2f-1b(%r1); \ - lcr %r2,%r2; \ - st %r2,0(%r1); \ - lhi %r2,-1; \ - br %r14; \ -2: .long rtld_errno-1b -# elif defined _LIBC_REENTRANT -# if IS_IN (libc) -# define SYSCALL_ERROR_ERRNO __libc_errno -# else -# define SYSCALL_ERROR_ERRNO errno -# endif -# undef SYSCALL_ERROR_LABEL -# define SYSCALL_ERROR_LABEL 0f -# define SYSCALL_ERROR_HANDLER \ -0: lcr %r0,%r2; \ - basr %r1,0; \ -1: al %r1,2f-1b(%r1); \ - l %r1,SYSCALL_ERROR_ERRNO@gotntpoff(%r1); \ - ear %r2,%a0; \ - st %r0,0(%r1,%r2); \ - lhi %r2,-1; \ - br %r14; \ -2: .long _GLOBAL_OFFSET_TABLE_-1b -# else -# undef SYSCALL_ERROR_LABEL -# define SYSCALL_ERROR_LABEL 0f -# define SYSCALL_ERROR_HANDLER \ -0: basr %r1,0; \ -1: al %r1,2f-1b(%r1); \ - l %r1,errno@GOT(%r1); \ - lcr %r2,%r2; \ - st %r2,0(%r1); \ - lhi %r2,-1; \ - br %r14; \ -2: .long _GLOBAL_OFFSET_TABLE_-1b -# endif /* _LIBC_REENTRANT */ -#endif /* PIC */ - -/* Linux takes system call arguments in registers: - - syscall number 1 call-clobbered - arg 1 2 call-clobbered - arg 2 3 call-clobbered - arg 3 4 call-clobbered - arg 4 5 call-clobbered - arg 5 6 call-saved - arg 6 7 call-saved - - (Of course a function with say 3 arguments does not have entries for - arguments 4 and 5.) - For system calls with 6 parameters a stack operation is required - to load the 6th parameter to register 7. Call saved register 7 is - moved to register 0 and back to avoid an additional stack frame. - */ - -#define DO_CALL(syscall, args) \ - .if args > 5; \ - lr %r0,%r7; \ - l %r7,96(%r15); \ - .endif; \ - lhi %r1,SYS_ify (syscall); \ - svc 0; \ - .if args > 5; \ - lr %r7,%r0; \ - .endif - -#define ret \ - br 14 - -#define ret_NOERRNO \ - br 14 - -#define ret_ERRVAL \ - br 14 - -#else - -# undef HAVE_INTERNAL_BRK_ADDR_SYMBOL -# define HAVE_INTERNAL_BRK_ADDR_SYMBOL 1 - -#endif /* __ASSEMBLER__ */ - -#endif /* _LINUX_S390_SYSDEP_H */ diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/time64-compat.h b/sysdeps/unix/sysv/linux/s390/s390-32/time64-compat.h deleted file mode 100644 index 700f854597..0000000000 --- a/sysdeps/unix/sysv/linux/s390/s390-32/time64-compat.h +++ /dev/null @@ -1,2 +0,0 @@ -/* ABI support 64-bit in non-default mode. */ -#define TIME64_NON_DEFAULT diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/updwtmp.c b/sysdeps/unix/sysv/linux/s390/s390-32/updwtmp.c deleted file mode 100644 index bb9907e688..0000000000 --- a/sysdeps/unix/sysv/linux/s390/s390-32/updwtmp.c +++ /dev/null @@ -1,31 +0,0 @@ -/* Copyright (C) 2008-2026 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, see - . */ - -#include - -#include "utmp-compat.h" -#include "utmp-private.h" - -#if defined SHARED -# undef weak_alias -# define weak_alias(n,a) -#endif -#include "sysdeps/gnu/updwtmp.c" - -#if defined SHARED -default_symbol_version (__updwtmp, updwtmp, UTMP_COMPAT_BASE); -#endif diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/updwtmpx.c b/sysdeps/unix/sysv/linux/s390/s390-32/updwtmpx.c deleted file mode 100644 index 199d04b28b..0000000000 --- a/sysdeps/unix/sysv/linux/s390/s390-32/updwtmpx.c +++ /dev/null @@ -1,29 +0,0 @@ -/* Copyright (C) 2008-2026 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, see - . */ - -#include -#include - -#include "utmp-compat.h" - -#undef weak_alias -#define weak_alias(n,a) -#define updwtmpx __updwtmpx -#include "login/updwtmpx.c" -#undef updwtmpx - -default_symbol_version (__updwtmpx, updwtmpx, UTMP_COMPAT_BASE); diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/utmp-compat.h b/sysdeps/unix/sysv/linux/s390/s390-32/utmp-compat.h deleted file mode 100644 index b8ceefa608..0000000000 --- a/sysdeps/unix/sysv/linux/s390/s390-32/utmp-compat.h +++ /dev/null @@ -1,20 +0,0 @@ -/* Copyright (C) 2008-2026 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, see - . */ - -/* This macro defines the glibc version tag at which the 64 bit struct - utmp functions have been added to the 32 bit glibc. */ -#define UTMP_COMPAT_BASE GLIBC_2.9 diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/utmp-convert.h b/sysdeps/unix/sysv/linux/s390/s390-32/utmp-convert.h deleted file mode 100644 index de253fc95c..0000000000 --- a/sysdeps/unix/sysv/linux/s390/s390-32/utmp-convert.h +++ /dev/null @@ -1,85 +0,0 @@ -/* Copyright (C) 2008-2026 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, see - . */ - - -/* This file provides functions converting between the 32 and 64 bit - struct utmp variants. */ - -#ifndef _UTMP_CONVERT_H -#define _UTMP_CONVERT_H 1 - -#include - -#include "utmp32.h" - -/* Convert the 64 bit struct utmp value in FROM to the 32 bit version - returned in TO. */ -static inline void -utmp_convert64to32 (const struct utmp *from, struct utmp32 *to) -{ -#if _HAVE_UT_TYPE - 0 - to->ut_type = from->ut_type; -#endif -#if _HAVE_UT_PID - 0 - to->ut_pid = from->ut_pid; -#endif - memcpy (to->ut_line, from->ut_line, UT_LINESIZE); - memcpy (to->ut_user, from->ut_user, UT_NAMESIZE); -#if _HAVE_UT_ID - 0 - memcpy (to->ut_id, from->ut_id, 4); -#endif -#if _HAVE_UT_HOST - 0 - memcpy (to->ut_host, from->ut_host, UT_HOSTSIZE); -#endif - to->ut_exit = from->ut_exit; - to->ut_session = (int32_t) from->ut_session; -#if _HAVE_UT_TV - 0 - to->ut_tv.tv_sec = (int32_t) from->ut_tv.tv_sec; - to->ut_tv.tv_usec = (int32_t) from->ut_tv.tv_usec; -#endif - memcpy (to->ut_addr_v6, from->ut_addr_v6, 4 * 4); -} - -/* Convert the 32 bit struct utmp value in FROM to the 64 bit version - returned in TO. */ -static inline void -utmp_convert32to64 (const struct utmp32 *from, struct utmp *to) -{ -#if _HAVE_UT_TYPE - 0 - to->ut_type = from->ut_type; -#endif -#if _HAVE_UT_PID - 0 - to->ut_pid = from->ut_pid; -#endif - memcpy (to->ut_line, from->ut_line, UT_LINESIZE); - memcpy (to->ut_user, from->ut_user, UT_NAMESIZE); -#if _HAVE_UT_ID - 0 - memcpy (to->ut_id, from->ut_id, 4); -#endif -#if _HAVE_UT_HOST - 0 - memcpy (to->ut_host, from->ut_host, UT_HOSTSIZE); -#endif - to->ut_exit = from->ut_exit; - to->ut_session = (int64_t) from->ut_session; -#if _HAVE_UT_TV - 0 - to->ut_tv.tv_sec = (int64_t) from->ut_tv.tv_sec; - to->ut_tv.tv_usec = (int64_t) from->ut_tv.tv_usec; -#endif - memcpy (to->ut_addr_v6, from->ut_addr_v6, 4 * 4); -} - -#endif /* utmp-convert.h */ diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/utmp32.c b/sysdeps/unix/sysv/linux/s390/s390-32/utmp32.c deleted file mode 100644 index 54d5666bd1..0000000000 --- a/sysdeps/unix/sysv/linux/s390/s390-32/utmp32.c +++ /dev/null @@ -1,183 +0,0 @@ -/* Copyright (C) 2008-2026 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, see - . */ - -#include -#include -#include -#include - -#include "utmp32.h" -#include "utmp-convert.h" - -/* Allocate a static buffer to be returned to the caller. As well as - with the existing version of these functions the caller has to be - aware that the contents of this buffer will change with subsequent - calls. */ -#define ALLOCATE_UTMP32_OUT(OUT) \ - static struct utmp32 *OUT = NULL; \ - \ - if (OUT == NULL) \ - { \ - OUT = malloc (sizeof (struct utmp32)); \ - if (OUT == NULL) \ - return NULL; \ - } - -/* Perform a lookup for a utmp entry matching FIELD using function - FUNC. FIELD is converted to a 64 bit utmp and the result is - converted back to 32 bit utmp. */ -#define ACCESS_UTMP_ENTRY(FUNC, FIELD) \ - struct utmp in64; \ - struct utmp *out64; \ - ALLOCATE_UTMP32_OUT (out32); \ - \ - utmp_convert32to64 (FIELD, &in64); \ - out64 = FUNC (&in64); \ - \ - if (out64 == NULL) \ - return NULL; \ - \ - utmp_convert64to32 (out64, out32); \ - \ - return out32; - -/* Search forward from the current point in the utmp file until the - next entry with a ut_type matching ID->ut_type. */ -struct utmp32 * -getutid32 (const struct utmp32 *id) -{ - ACCESS_UTMP_ENTRY (__getutid, id) -} -symbol_version (getutid32, getutid, GLIBC_2.0); - -/* Search forward from the current point in the utmp file until the - next entry with a ut_line matching LINE->ut_line. */ -struct utmp32 * -getutline32 (const struct utmp32 *line) -{ - ACCESS_UTMP_ENTRY (__getutline, line) -} -symbol_version (getutline32, getutline, GLIBC_2.0); - -/* Write out entry pointed to by UTMP_PTR into the utmp file. */ -struct utmp32 * -pututline32 (const struct utmp32 *utmp_ptr) -{ - ACCESS_UTMP_ENTRY (__pututline, utmp_ptr) -} -symbol_version (pututline32, pututline, GLIBC_2.0); - -/* Read next entry from a utmp-like file. */ -struct utmp32 * -getutent32 (void) -{ - struct utmp *out64; - ALLOCATE_UTMP32_OUT (out32); - - out64 = __getutent (); - if (!out64) - return NULL; - - utmp_convert64to32 (out64, out32); - return out32; -} -symbol_version (getutent32, getutent, GLIBC_2.0); - -/* Reentrant versions of the file for handling utmp files. */ - -int -getutent32_r (struct utmp32 *buffer, struct utmp32 **result) -{ - struct utmp out64; - struct utmp *out64p; - int ret; - - ret = __getutent_r (&out64, &out64p); - if (ret == -1) - { - *result = NULL; - return -1; - } - - utmp_convert64to32 (out64p, buffer); - *result = buffer; - - return 0; -} -symbol_version (getutent32_r, getutent_r, GLIBC_2.0); - -int -getutid32_r (const struct utmp32 *id, struct utmp32 *buffer, - struct utmp32 **result) -{ - struct utmp in64; - struct utmp out64; - struct utmp *out64p; - int ret; - - utmp_convert32to64 (id, &in64); - - ret = __getutid_r (&in64, &out64, &out64p); - if (ret == -1) - { - *result = NULL; - return -1; - } - - utmp_convert64to32 (out64p, buffer); - *result = buffer; - - return 0; -} -symbol_version (getutid32_r, getutid_r, GLIBC_2.0); - -int -getutline32_r (const struct utmp32 *line, - struct utmp32 *buffer, struct utmp32 **result) -{ - struct utmp in64; - struct utmp out64; - struct utmp *out64p; - int ret; - - utmp_convert32to64 (line, &in64); - - ret = __getutline_r (&in64, &out64, &out64p); - if (ret == -1) - { - *result = NULL; - return -1; - } - - utmp_convert64to32 (out64p, buffer); - *result = buffer; - - return 0; - -} -symbol_version (getutline32_r, getutline_r, GLIBC_2.0); - -/* Append entry UTMP to the wtmp-like file WTMP_FILE. */ -void -updwtmp32 (const char *wtmp_file, const struct utmp32 *utmp) -{ - struct utmp in32; - - utmp_convert32to64 (utmp, &in32); - __updwtmp (wtmp_file, &in32); -} -symbol_version (updwtmp32, updwtmp, GLIBC_2.0); diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/utmp32.h b/sysdeps/unix/sysv/linux/s390/s390-32/utmp32.h deleted file mode 100644 index 0e0167cbff..0000000000 --- a/sysdeps/unix/sysv/linux/s390/s390-32/utmp32.h +++ /dev/null @@ -1,51 +0,0 @@ -/* The `struct utmp' type, describing entries in the utmp file. GNU version. - Copyright (C) 1993-2026 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, see - . */ - -#ifndef _UTMP32_H -#define _UTMP32_H 1 - -#include -#include -#include -#include -#include - -/* The structure describing an entry in the user accounting database. */ -struct utmp32 -{ - short int ut_type; /* Type of login. */ - pid_t ut_pid; /* Process ID of login process. */ - char ut_line[UT_LINESIZE]; /* Devicename. */ - char ut_id[4]; /* Inittab ID. */ - char ut_user[UT_NAMESIZE]; /* Username. */ - char ut_host[UT_HOSTSIZE]; /* Hostname for remote login. */ - struct exit_status ut_exit; /* Exit status of a process marked - as DEAD_PROCESS. */ - int32_t ut_session; /* Session ID, used for windowing. */ - struct - { - int32_t tv_sec; /* Seconds. */ - int32_t tv_usec; /* Microseconds. */ - } ut_tv; /* Time entry was made. */ - - int32_t ut_addr_v6[4]; /* Internet address of remote host. */ - char __glibc_reserved[20]; /* Reserved for future use. */ -}; - - -#endif /* utmp32.h */ diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/utmpx-convert.h b/sysdeps/unix/sysv/linux/s390/s390-32/utmpx-convert.h deleted file mode 100644 index 3cb8088908..0000000000 --- a/sysdeps/unix/sysv/linux/s390/s390-32/utmpx-convert.h +++ /dev/null @@ -1,84 +0,0 @@ -/* Copyright (C) 2008-2026 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, see - . */ - - -/* This file provides functions converting between the 32 and 64 bit - struct utmp variants. */ - -#ifndef _UTMPX_CONVERT_H -#define _UTMPX_CONVERT_H 1 - -#include -#include "utmpx32.h" - -/* Convert the 64 bit struct utmpx value in FROM to the 32 bit version - returned in TO. */ -static inline void -utmpx_convert64to32 (const struct utmpx *from, struct utmpx32 *to) -{ -#if _HAVE_UT_TYPE - 0 - to->ut_type = from->ut_type; -#endif -#if _HAVE_UT_PID - 0 - to->ut_pid = from->ut_pid; -#endif - memcpy (to->ut_line, from->ut_line, __UT_LINESIZE); - memcpy (to->ut_user, from->ut_user, __UT_NAMESIZE); -#if _HAVE_UT_ID - 0 - memcpy (to->ut_id, from->ut_id, 4); -#endif -#if _HAVE_UT_HOST - 0 - memcpy (to->ut_host, from->ut_host, __UT_HOSTSIZE); -#endif - to->ut_exit = from->ut_exit; - to->ut_session = (int32_t) from->ut_session; -#if _HAVE_UT_TV - 0 - to->ut_tv.tv_sec = (int32_t) from->ut_tv.tv_sec; - to->ut_tv.tv_usec = (int32_t) from->ut_tv.tv_usec; -#endif - memcpy (to->ut_addr_v6, from->ut_addr_v6, 4 * 4); -} - -/* Convert the 32 bit struct utmpx value in FROM to the 64 bit version - returned in TO. */ -static inline void -utmpx_convert32to64 (const struct utmpx32 *from, struct utmpx *to) -{ -#if _HAVE_UT_TYPE - 0 - to->ut_type = from->ut_type; -#endif -#if _HAVE_UT_PID - 0 - to->ut_pid = from->ut_pid; -#endif - memcpy (to->ut_line, from->ut_line, __UT_LINESIZE); - memcpy (to->ut_user, from->ut_user, __UT_NAMESIZE); -#if _HAVE_UT_ID - 0 - memcpy (to->ut_id, from->ut_id, 4); -#endif -#if _HAVE_UT_HOST - 0 - memcpy (to->ut_host, from->ut_host, __UT_HOSTSIZE); -#endif - to->ut_exit = from->ut_exit; - to->ut_session = (int64_t) from->ut_session; -#if _HAVE_UT_TV - 0 - to->ut_tv.tv_sec = (int64_t) from->ut_tv.tv_sec; - to->ut_tv.tv_usec = (int64_t) from->ut_tv.tv_usec; -#endif - memcpy (to->ut_addr_v6, from->ut_addr_v6, 4 * 4); -} - -#endif /* utmpx-convert.h */ diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/utmpx32.c b/sysdeps/unix/sysv/linux/s390/s390-32/utmpx32.c deleted file mode 100644 index dc7f98e20a..0000000000 --- a/sysdeps/unix/sysv/linux/s390/s390-32/utmpx32.c +++ /dev/null @@ -1,138 +0,0 @@ -/* Copyright (C) 2008-2026 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, see - . */ - -#include -#include -#include -#include - -#include "utmp32.h" -#include "utmp-convert.h" - -#include "utmpx32.h" -#include "utmpx-convert.h" - -/* Allocate a static buffer to be returned to the caller. As well as - with the existing version of these functions the caller has to be - aware that the contents of this buffer will change with subsequent - calls. */ -#define ALLOCATE_UTMPX32_OUT(OUT) \ - static struct utmpx32 *OUT = NULL; \ - \ - if (OUT == NULL) \ - { \ - OUT = malloc (sizeof (struct utmpx32)); \ - if (OUT == NULL) \ - return NULL; \ - } - -/* Perform a lookup for a utmpx entry matching FIELD using function - FUNC. FIELD is converted to a 64 bit utmpx and the result is - converted back to 32 bit utmpx. */ -#define ACCESS_UTMPX_ENTRY(FUNC, FIELD) \ - struct utmpx in64; \ - struct utmpx *out64; \ - ALLOCATE_UTMPX32_OUT (out32); \ - \ - utmpx_convert32to64 (FIELD, &in64); \ - out64 = FUNC (&in64); \ - \ - if (out64 == NULL) \ - return NULL; \ - \ - utmpx_convert64to32 (out64, out32); \ - \ - return out32; - - -/* Get the next entry from the user accounting database. */ -struct utmpx32 * -getutxent32 (void) -{ - struct utmpx *out64; - ALLOCATE_UTMPX32_OUT (out32); - - out64 = __getutxent (); - if (!out64) - return NULL; - - utmpx_convert64to32 (out64, out32); - return out32; - -} -symbol_version (getutxent32, getutxent, GLIBC_2.1); - -/* Get the user accounting database entry corresponding to ID. */ -struct utmpx32 * -getutxid32 (const struct utmpx32 *id) -{ - ACCESS_UTMPX_ENTRY (__getutxid, id); -} -symbol_version (getutxid32, getutxid, GLIBC_2.1); - -/* Get the user accounting database entry corresponding to LINE. */ -struct utmpx32 * -getutxline32 (const struct utmpx32 *line) -{ - ACCESS_UTMPX_ENTRY (__getutxline, line); -} -symbol_version (getutxline32, getutxline, GLIBC_2.1); - -/* Write the entry UTMPX into the user accounting database. */ -struct utmpx32 * -pututxline32 (const struct utmpx32 *utmpx) -{ - ACCESS_UTMPX_ENTRY (__pututxline, utmpx); -} -symbol_version (pututxline32, pututxline, GLIBC_2.1); - -/* Append entry UTMP to the wtmpx-like file WTMPX_FILE. */ -void -updwtmpx32 (const char *wtmpx_file, const struct utmpx32 *utmpx) -{ - struct utmpx in64; - - utmpx_convert32to64 (utmpx, &in64); - __updwtmpx (wtmpx_file, &in64); -} -symbol_version (updwtmpx32, updwtmpx, GLIBC_2.1); - -/* Copy the information in UTMPX to UTMP. */ -void -getutmp32 (const struct utmpx32 *utmpx, struct utmp32 *utmp) -{ - struct utmpx in64; - struct utmp out64; - - utmpx_convert32to64 (utmpx, &in64); - __getutmp (&in64, &out64); - utmp_convert64to32 (&out64, utmp); -} -symbol_version (getutmp32, getutmp, GLIBC_2.1.1); - -/* Copy the information in UTMP to UTMPX. */ -void -getutmpx32 (const struct utmp32 *utmp, struct utmpx32 *utmpx) -{ - struct utmp in64; - struct utmpx out64; - - utmp_convert32to64 (utmp, &in64); - __getutmpx (&in64, &out64); - utmpx_convert64to32 (&out64, utmpx); -} -symbol_version (getutmpx32, getutmpx, GLIBC_2.1.1); diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/utmpx32.h b/sysdeps/unix/sysv/linux/s390/s390-32/utmpx32.h deleted file mode 100644 index 60d236decc..0000000000 --- a/sysdeps/unix/sysv/linux/s390/s390-32/utmpx32.h +++ /dev/null @@ -1,59 +0,0 @@ -/* The `struct utmp' type, describing entries in the utmp file. GNU version. - Copyright (C) 1993-2026 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, see - . */ - -#ifndef _UTMPX32_H -#define _UTMPX32_H 1 - -#include -#include -#include -#include -#include - -/* The structure describing an entry in the user accounting database. */ -struct utmpx32 -{ - short int ut_type; /* Type of login. */ - __pid_t ut_pid; /* Process ID of login process. */ - char ut_line[__UT_LINESIZE]; /* Devicename. */ - char ut_id[4]; /* Inittab ID. */ - char ut_user[__UT_NAMESIZE]; /* Username. */ - char ut_host[__UT_HOSTSIZE]; /* Hostname for remote login. */ - struct __exit_status ut_exit; /* Exit status of a process marked - as DEAD_PROCESS. */ - __int64_t ut_session; /* Session ID, used for windowing. */ - struct - { - __int64_t tv_sec; /* Seconds. */ - __int64_t tv_usec; /* Microseconds. */ - } ut_tv; /* Time entry was made. */ - - __int32_t ut_addr_v6[4]; /* Internet address of remote host. */ - char __glibc_reserved[20]; /* Reserved for future use. */ -}; - -/* The internal interface needed by the compat wrapper functions. */ -extern struct utmpx *__getutxent (void); -extern struct utmpx *__getutxid (const struct utmpx *__id); -extern struct utmpx *__getutxline (const struct utmpx *__line); -extern struct utmpx *__pututxline (const struct utmpx *__utmpx); -extern void __updwtmpx (const char *__wtmpx_file, const struct utmpx *__utmpx); -extern void __getutmp (const struct utmpx *__utmpx, struct utmp *__utmp); -extern void __getutmpx (const struct utmp *__utmp, struct utmpx *__utmpx); - -#endif /* utmpx32.h */ diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/vfork.S b/sysdeps/unix/sysv/linux/s390/s390-32/vfork.S deleted file mode 100644 index 46e4b35dad..0000000000 --- a/sysdeps/unix/sysv/linux/s390/s390-32/vfork.S +++ /dev/null @@ -1,47 +0,0 @@ -/* Copyright (C) 2004-2026 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, see - . */ - -#include -#define _ERRNO_H 1 -#include -#include -#include - -/* Clone the calling process, but without copying the whole address space. - The calling process is suspended until the new process exits or is - replaced by a call to `execve'. Return -1 for errors, 0 to the new process, - and the process ID of the new process to the old process. */ - -ENTRY (__libc_vfork) - /* Do vfork system call. */ - lhi %r1,SYS_ify (vfork) - svc 0 - - /* Check for error. */ - lhi %r4,-4095 - clr %r2,%r4 - jnl SYSCALL_ERROR_LABEL - - /* Normal return. */ - br %r14 -PSEUDO_END (__libc_vfork) - -#if IS_IN (libc) -weak_alias (__libc_vfork, vfork) -strong_alias (__libc_vfork, __vfork) -libc_hidden_def (__vfork) -#endif From patchwork Thu Apr 9 08:47:07 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Stefan Liebler X-Patchwork-Id: 132844 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from vm01.sourceware.org (localhost [127.0.0.1]) by sourceware.org (Postfix) with ESMTP id EF4324BA23C0 for ; Thu, 9 Apr 2026 08:54:53 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org EF4324BA23C0 Authentication-Results: sourceware.org; dkim=pass (2048-bit key, unprotected) header.d=ibm.com header.i=@ibm.com header.a=rsa-sha256 header.s=pp1 header.b=ob2nPGVp X-Original-To: libc-alpha@sourceware.org Delivered-To: libc-alpha@sourceware.org Received: from mx0a-001b2d01.pphosted.com (mx0a-001b2d01.pphosted.com [148.163.156.1]) by sourceware.org (Postfix) with ESMTPS id 205234BA2E0C for ; Thu, 9 Apr 2026 08:51:19 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 205234BA2E0C Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=linux.ibm.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=linux.ibm.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 205234BA2E0C Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=148.163.156.1 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1775724679; cv=none; b=LMzusAo62ioqpRIOsbCTsDQazuVAQ3mNpK3t4vhohjwDSGe873xVc+GSisz+mUI6Y0hTdgAzmRzxaJQsby/GJzjZx8nbNOirrM8Q9PlLlH6NTuG345a33AAJHDwZspHVGZuEwuqoABd7ENuW9Duarftp7p0JJAcOvGoHLTrZycA= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1775724679; c=relaxed/simple; bh=04IsIZm8AySYrOEdEgi5za6KGcNyLDQ+E3h1T25B0Y0=; h=DKIM-Signature:From:To:Subject:Date:Message-ID:MIME-Version; b=J3rpBlu4BFkaYRl7puHUNQt/s4zjMeOX4SVvVqVOMi4lV/eJ+HGsF+/dQKoMd+7QcWWEWdFbiQsaxswUkXa4f7kmphGcewI0YBs+oYIn+wBWPDFH8UEdBFogglkJHjtN/T+i6zSNtn3M4y3Rs5Avw+J8+tkafEojtTUIWfuKlIE= ARC-Authentication-Results: i=1; server2.sourceware.org DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 205234BA2E0C Received: from pps.filterd (m0356517.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 638KLUTA2302533 for ; Thu, 9 Apr 2026 08:51:18 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h=cc :content-transfer-encoding:date:from:in-reply-to:message-id :mime-version:references:subject:to; s=pp1; bh=W9hmQuacyHCRkQYvg +aqpEThzVvqNDzbrtv87G3qi+w=; b=ob2nPGVpnYIy2REH+Li++S2js3CmqGXKy AuCpa6kAXDyh/c/xUe4ILp6okdimUojUkzSYUL/urPiGGLQDoqQiiT7MywLg+5g8 1Or4XVflBSyobR0Ry4Y4HkedemitQn3A8RIOikvBk8ul2oGvOFt/S5gslMgMcnUk 4eZdD6S3gt5dPLjt5QnT4QFB06DNrnRlSV64ZenVEWErz2JsrnGLtLU16fvOBdiI lYkQ5EUqkXxsl3nZWfjCbQWSqJq8tKFXd1eiQaHuHx7ntuKUtlYcs7LGxK+Tzfrv K2s2qnD/EcoCs1ealWZxNZHorEmb9t+GJePQhhWQJ5D5r2aK9tIsQ== Received: from ppma13.dal12v.mail.ibm.com (dd.9e.1632.ip4.static.sl-reverse.com [50.22.158.221]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 4dcn2fm3gj-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for ; Thu, 09 Apr 2026 08:51:17 +0000 (GMT) Received: from pps.filterd (ppma13.dal12v.mail.ibm.com [127.0.0.1]) by ppma13.dal12v.mail.ibm.com (8.18.1.2/8.18.1.2) with ESMTP id 6397vbUU019113 for ; Thu, 9 Apr 2026 08:51:16 GMT Received: from smtprelay06.fra02v.mail.ibm.com ([9.218.2.230]) by ppma13.dal12v.mail.ibm.com (PPS) with ESMTPS id 4dcme9jvrb-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for ; Thu, 09 Apr 2026 08:51:16 +0000 Received: from smtpav03.fra02v.mail.ibm.com (smtpav03.fra02v.mail.ibm.com [10.20.54.102]) by smtprelay06.fra02v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 6398pBBQ27459866 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 9 Apr 2026 08:51:12 GMT Received: from smtpav03.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id CDC3320040; Thu, 9 Apr 2026 08:51:11 +0000 (GMT) Received: from smtpav03.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 9D62A2004B; Thu, 9 Apr 2026 08:51:11 +0000 (GMT) Received: from a35lp68.lnxne.boe (unknown [9.87.84.240]) by smtpav03.fra02v.mail.ibm.com (Postfix) with ESMTP; Thu, 9 Apr 2026 08:51:11 +0000 (GMT) From: Stefan Liebler To: libc-alpha@sourceware.org Cc: Stefan Liebler Subject: [PATCH 2/5] s390: Remove s390-32 specific code in non s390-32 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 X-TM-AS-GCONF: 00 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNDA5MDA3NyBTYWx0ZWRfX169ZCzlh9LPe kkLxEr6X5MDdRG++Z/oHJ9PZIdsGMlZuhpVsP9vM2ejbp/TOi63V01n+feMWtxW2M8L31ZUH+IF vS7TFvahWdV64X1YPlZUUz5l5xqUqZT42DisroWyPcf5KA76nKa60hYYaBeDR20eC33WDd8L5BD teMeYj2WepZXU9qyJm23FXDiGeNl5V6L/qPcTQeRhrKEGyn1USKfGgOTUG83eng9MpRqqgPbSq3 OGWIqXVy1P4vBKPf2z9Wr1nAqqyE3GrgOGPz94wQrbYieDqTGkRtSUo3pF7fdqxrp9Z7loiqlGt FU8hcDUXbzoJi/YnJWRTcnIuzapgpSowqlGgpUpWxj1RIEeZYuyt79YQxZR3QHogZgLj/t9TqOj hBtB/05dfxdNX5PUPKPcD0ZkoBkNMZs8CfRFebKa2RBQCdYoHobm8LQYD2Q5dNJ+guPSNIc42bJ ztdrXaXC4nC2ZucKNGw== X-Authority-Analysis: v=2.4 cv=FsY1OWrq c=1 sm=1 tr=0 ts=69d76885 cx=c_pps a=AfN7/Ok6k8XGzOShvHwTGQ==:117 a=AfN7/Ok6k8XGzOShvHwTGQ==:17 a=A5OVakUREuEA:10 a=VkNPw1HP01LnGYTKEx00:22 a=RnoormkPH1_aCDwRdu11:22 a=U7nrCbtTmkRpXpFmAIza:22 a=mDV3o1hIAAAA:8 a=CCpqsmhAAAAA:8 a=fLD8ysehDElyyCm0bscA:9 a=GyliLiXVM1JnBtnf:21 a=ul9cdbp4aOFLsgKbc677:22 X-Proofpoint-ORIG-GUID: lAV83nc9x4VexCWe08tbJ7Ct9n6AxzUz X-Proofpoint-GUID: lAV83nc9x4VexCWe08tbJ7Ct9n6AxzUz X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-04-09_02,2026-04-08_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 bulkscore=0 priorityscore=1501 impostorscore=0 spamscore=0 phishscore=0 lowpriorityscore=0 clxscore=1015 adultscore=0 malwarescore=0 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2604010000 definitions=main-2604090077 X-Spam-Status: No, score=-10.8 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_EF, GIT_PATCH_0, KAM_SHORT, RCVD_IN_DNSWL_LOW, RCVD_IN_MSPIKE_H4, RCVD_IN_MSPIKE_WL, RCVD_IN_VALIDITY_RPBL_BLOCKED, RCVD_IN_VALIDITY_SAFE_BLOCKED, SPF_HELO_NONE, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on sourceware.org X-BeenThere: libc-alpha@sourceware.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Libc-alpha mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: libc-alpha-bounces~patchwork=sourceware.org@sourceware.org This patch removes s390-32 specific code in either common-code files or shared files between s390-64 and s390-32. Such code was guarded with preprocessor guards which check the size of __WORDSIZE or __ELF_NATIVE_CLASS and of course the existance of __s390x__ and __s390__ macros. Note, that if __s390x__ is defined then __s390__ is also defined. This patch also adjust guards for __s390__ only to __s390x__ to make clear that those are still needed. Futhermore the macro names for ifunc variants were adjusted from XYZ_Z900_G5 to XYZ_Z900 as G5 is a pre 64bit machine. On s390-32 we've used the special assembler directive to enable zarch instructions: .machinemode "zarch_nohighgprs" As this is not needed on s390-64 anymore as zarch is enabled by default, just drop those lines. Furthermore we do not check for HWCAP_S390_ZARCH and HWCAP_S390_HIGH_GPRS anymore. Just simplify those checks for e.g. stfle- or cuXY-instructions. The 32/64 abi-variants and the corresponding abi-conditions are now also removed from the s390 Makefiles and thus we now only generate a single gnu/stubs.h and gnu/lib-names.h file instead of also having the different ones for both abi-variants. After removing process_elf32_file in s390 readelflib.c, ldconfig is only recognizing 64bit ELF files for ld.so.cache. Various comments mentioning s390 (with meaning s390-32) were removed/adjusted. --- README | 1 - elf/elf.h | 7 +- intl/dcigettext.c | 2 +- manual/math.texi | 2 +- stdlib/test-bz22786.c | 4 +- string/string-inlines.c | 2 +- support/support_readdir.c | 4 +- sysdeps/s390/bits/link.h | 60 --------- sysdeps/s390/bits/setjmp.h | 6 - sysdeps/s390/configure | 2 - sysdeps/s390/configure.ac | 2 - sysdeps/s390/cpu-features.c | 5 +- sysdeps/s390/dl-tls.h | 15 --- sysdeps/s390/fpu/fenv_private.h | 2 +- sysdeps/s390/fpu/s_llrint.c | 6 +- sysdeps/s390/fpu/s_llrintf.c | 6 +- sysdeps/s390/fpu/s_llrintl.c | 6 +- sysdeps/s390/fpu/s_llround.c | 6 +- sysdeps/s390/fpu/s_llroundf.c | 6 +- sysdeps/s390/fpu/s_llroundl.c | 6 +- sysdeps/s390/fpu/s_lrint.c | 13 +- sysdeps/s390/fpu/s_lrintf.c | 13 +- sysdeps/s390/fpu/s_lrintl.c | 13 +- sysdeps/s390/fpu/s_lround.c | 11 +- sysdeps/s390/fpu/s_lroundf.c | 11 +- sysdeps/s390/fpu/s_lroundl.c | 11 +- sysdeps/s390/ifunc-memchr.h | 12 +- sysdeps/s390/ifunc-memcmp.h | 14 +- sysdeps/s390/ifunc-memcpy.h | 20 +-- sysdeps/s390/ifunc-memset.h | 14 +- sysdeps/s390/ifunc-strcmp.h | 12 +- sysdeps/s390/ifunc-strcpy.h | 12 +- sysdeps/s390/ifunc-strncpy.h | 12 +- sysdeps/s390/iso-8859-1_cp037_z900.c | 8 +- sysdeps/s390/jmpbuf-unwind.h | 3 +- sysdeps/s390/ldsodefs.h | 13 -- sysdeps/s390/linkmap.h | 16 +-- sysdeps/s390/memccpy-vx.S | 7 +- sysdeps/s390/memchr-vx.S | 10 +- sysdeps/s390/memchr-z900.S | 45 ++----- sysdeps/s390/memchr.c | 4 +- sysdeps/s390/memcmp-z900.S | 76 +++-------- sysdeps/s390/memcmp.c | 4 +- sysdeps/s390/memcopy.h | 2 +- sysdeps/s390/memcpy-z900.S | 122 +++++------------- sysdeps/s390/memcpy.c | 4 +- sysdeps/s390/memmem-arch13.S | 9 +- sysdeps/s390/mempcpy.c | 4 +- sysdeps/s390/memrchr-vx.S | 6 +- sysdeps/s390/memset-z900.S | 84 ++++-------- sysdeps/s390/memset.c | 4 +- sysdeps/s390/multiarch/8bit-generic.c | 3 - sysdeps/s390/multiarch/gconv_simple.c | 23 ---- sysdeps/s390/multiarch/ifunc-impl-list.c | 34 ++--- sysdeps/s390/multiarch/ifunc-resolve.h | 2 +- sysdeps/s390/multiarch/utf8-utf16-z9.c | 4 +- sysdeps/s390/multiarch/utf8-utf32-z9.c | 4 +- sysdeps/s390/nptl/bits/struct_mutex.h | 24 +--- sysdeps/s390/nptl/bits/struct_rwlock.h | 17 +-- sysdeps/s390/nptl/pthread-offsets.h | 15 +-- sysdeps/s390/nptl/tls.h | 4 - sysdeps/s390/rawmemchr-vx.S | 3 +- sysdeps/s390/s390-64/bits/wordsize.h | 11 +- sysdeps/s390/s390-64/stackguard-macros.h | 2 +- sysdeps/s390/s390-64/strncpy-z900.S | 10 +- sysdeps/s390/sotruss-lib.c | 33 ++--- sysdeps/s390/stpcpy-vx.S | 3 +- sysdeps/s390/stpncpy-vx.S | 7 +- sysdeps/s390/strcat-vx.S | 3 +- sysdeps/s390/strchr-vx.S | 3 +- sysdeps/s390/strchrnul-vx.S | 3 +- sysdeps/s390/strcmp-vx.S | 5 +- sysdeps/s390/strcmp-z900.S | 26 ++-- sysdeps/s390/strcmp.c | 4 +- sysdeps/s390/strcpy-vx.S | 5 +- sysdeps/s390/strcpy-z900.S | 29 ++--- sysdeps/s390/strcpy.c | 4 +- sysdeps/s390/strcspn-vx.S | 3 +- sysdeps/s390/strlen-vx.S | 3 +- sysdeps/s390/strncat-vx.S | 7 +- sysdeps/s390/strncmp-vx.S | 7 +- sysdeps/s390/strncpy-vx.S | 9 +- sysdeps/s390/strncpy.c | 4 +- sysdeps/s390/strnlen-vx.S | 7 +- sysdeps/s390/strpbrk-vx.S | 3 +- sysdeps/s390/strrchr-vx.S | 3 +- sysdeps/s390/strspn-vx.S | 3 +- sysdeps/s390/strstr-arch13.S | 3 +- sysdeps/s390/tst-dl-runtime-mod.S | 4 - sysdeps/s390/tst-dl-runtime.c | 27 ---- sysdeps/s390/utf16-utf32-z9.c | 18 --- sysdeps/s390/utf8-utf16-z9.c | 16 --- sysdeps/s390/utf8-utf32-z9.c | 16 --- sysdeps/s390/wcpcpy-vx.S | 3 +- sysdeps/s390/wcpncpy-vx.S | 12 +- sysdeps/s390/wcscat-vx.S | 3 +- sysdeps/s390/wcschr-vx.S | 3 +- sysdeps/s390/wcschrnul-vx.S | 3 +- sysdeps/s390/wcscmp-vx.S | 3 +- sysdeps/s390/wcscpy-vx.S | 3 +- sysdeps/s390/wcscspn-vx.S | 3 +- sysdeps/s390/wcslen-vx.S | 3 +- sysdeps/s390/wcsncat-vx.S | 12 +- sysdeps/s390/wcsncmp-vx.S | 12 +- sysdeps/s390/wcsncpy-vx.S | 12 +- sysdeps/s390/wcsnlen-vx.S | 12 +- sysdeps/s390/wcspbrk-vx.S | 3 +- sysdeps/s390/wcsrchr-vx.S | 3 +- sysdeps/s390/wcsspn-vx.S | 3 +- sysdeps/s390/wmemchr-vx.S | 12 +- sysdeps/s390/wmemcmp-vx.S | 12 +- sysdeps/s390/wmemset-vx.S | 12 +- sysdeps/unix/sysv/linux/fxstat.c | 2 +- sysdeps/unix/sysv/linux/fxstatat.c | 2 +- sysdeps/unix/sysv/linux/ipc_priv.h | 4 +- sysdeps/unix/sysv/linux/kernel-features.h | 2 +- sysdeps/unix/sysv/linux/lxstat.c | 2 +- sysdeps/unix/sysv/linux/lxstat64.c | 2 +- sysdeps/unix/sysv/linux/posix_fadvise.c | 6 +- sysdeps/unix/sysv/linux/posix_fadvise64.c | 6 +- sysdeps/unix/sysv/linux/s390/Makefile | 4 - sysdeps/unix/sysv/linux/s390/bits/elfclass.h | 5 - sysdeps/unix/sysv/linux/s390/bits/fcntl.h | 26 +--- sysdeps/unix/sysv/linux/s390/bits/sigaction.h | 35 +---- .../unix/sysv/linux/s390/bits/struct_stat.h | 120 +---------------- sysdeps/unix/sysv/linux/s390/bits/typesizes.h | 36 ++---- .../unix/sysv/linux/s390/kernel-features.h | 3 - sysdeps/unix/sysv/linux/s390/readelflib.c | 31 +---- sysdeps/unix/sysv/linux/s390/s390-64/Makefile | 3 - sysdeps/unix/sysv/linux/s390/sigcontextinfo.h | 4 - sysdeps/unix/sysv/linux/s390/sys/ucontext.h | 6 +- sysdeps/unix/sysv/linux/s390/sysconf.c | 13 +- sysdeps/unix/sysv/linux/s390/sysdep.h | 5 - sysdeps/unix/sysv/linux/s390/xstatver.h | 21 +-- sysdeps/unix/sysv/linux/tst-ofdlocks-compat.c | 6 +- sysdeps/unix/sysv/linux/xstat.c | 2 +- sysdeps/unix/sysv/linux/xstat64.c | 2 +- 137 files changed, 343 insertions(+), 1287 deletions(-) diff --git a/README b/README index 2e360eb70a..570b259de5 100644 --- a/README +++ b/README @@ -38,7 +38,6 @@ The GNU C Library supports these configurations for using Linux kernels: or1k-*-linux-gnu powerpc-*-linux-gnu Hardware or software floating point, BE only. powerpc64*-*-linux-gnu Big-endian and little-endian. - s390-*-linux-gnu s390x-*-linux-gnu riscv32-*-linux-gnu riscv64-*-linux-gnu diff --git a/elf/elf.h b/elf/elf.h index 46a01281cb..3a60ef36b5 100644 --- a/elf/elf.h +++ b/elf/elf.h @@ -798,7 +798,8 @@ typedef struct #define NT_X86_XSTATE 0x202 /* x86 extended state using xsave */ #define NT_X86_SHSTK 0x204 /* x86 SHSTK state */ #define NT_X86_XSAVE_LAYOUT 0x205 /* XSAVE layout description. */ -#define NT_S390_HIGH_GPRS 0x300 /* s390 upper register halves */ +#define NT_S390_HIGH_GPRS 0x300 /* s390 upper register halves. This was + used in now removed s390-32 arch. */ #define NT_S390_TIMER 0x301 /* s390 timer register */ #define NT_S390_TODCMP 0x302 /* s390 TOD clock comparator register */ #define NT_S390_TODPREG 0x303 /* s390 TOD programmable register */ @@ -3470,7 +3471,9 @@ enum /* Valid values for the e_flags field. */ -#define EF_S390_HIGH_GPRS 0x00000001 /* High GPRs kernel facility needed. */ +#define EF_S390_HIGH_GPRS 0x00000001 /* High GPRs kernel facility needed. + This was used in now removed s390-32 + arch. */ /* Additional s390 relocs */ diff --git a/intl/dcigettext.c b/intl/dcigettext.c index e70c938566..9ebc54eeec 100644 --- a/intl/dcigettext.c +++ b/intl/dcigettext.c @@ -72,7 +72,7 @@ extern int errno; /* Guess whether integer division by zero raises signal SIGFPE. Set to 1 only if you know for sure. In case of doubt, set to 0. */ # if defined __alpha__ || defined __arm__ || defined __i386__ \ - || defined __m68k__ || defined __s390__ + || defined __m68k__ || defined __s390x__ # define INTDIV0_RAISES_SIGFPE 1 # else # define INTDIV0_RAISES_SIGFPE 0 diff --git a/manual/math.texi b/manual/math.texi index fd7284953d..cf57937943 100644 --- a/manual/math.texi +++ b/manual/math.texi @@ -70,7 +70,7 @@ provided for @code{_Float32}, @code{_Float64} and @code{_Float32x} on all platforms. It is also provided for @code{_Float128} and @code{_Float64x} on powerpc64le (PowerPC 64-bits little-endian), x86_64, x86, -aarch64, alpha, loongarch, mips64, riscv, s390 and sparc. +aarch64, alpha, loongarch, mips64, riscv, s390x and sparc. @menu * Mathematical Constants:: Precise numeric values for often-used diff --git a/stdlib/test-bz22786.c b/stdlib/test-bz22786.c index 242a3044db..6e2636d896 100644 --- a/stdlib/test-bz22786.c +++ b/stdlib/test-bz22786.c @@ -46,9 +46,7 @@ do_test (void) if (path == NULL) { printf ("Repeated allocation (%zu bytes): %m\n", path_len); - /* On 31-bit s390 the malloc will always fail as we do not have - so much memory, and we want to mark the test unsupported. - Likewise on systems with little physical memory the test will + /* On systems with little physical memory the test will fail and should be unsupported. */ return EXIT_UNSUPPORTED; } diff --git a/string/string-inlines.c b/string/string-inlines.c index 7de9ff6aa4..bab58c91a2 100644 --- a/string/string-inlines.c +++ b/string/string-inlines.c @@ -208,7 +208,7 @@ __old_strpbrk_c3 (const char *__s, int __accept1, int __accept2, int __accept3) } compat_symbol (libc, __old_strpbrk_c3, __strpbrk_c3, GLIBC_2_1_1); -# if defined __mc68020__ || defined __s390__ || defined __i386__ +# if defined __mc68020__ || defined __s390x__ || defined __i386__ # define _STRING_INLINE_unaligned 1 # else # define _STRING_INLINE_unaligned 0 diff --git a/support/support_readdir.c b/support/support_readdir.c index 6cb6b6bfcd..793b7bc87e 100644 --- a/support/support_readdir.c +++ b/support/support_readdir.c @@ -42,8 +42,8 @@ static int (*readdir64_r_compat) (DIR *, struct __old_dirent64 *, static void __attribute__ ((constructor)) init (void) { - /* These compat symbols exists on alpha, i386, m67k , powerpc, s390, - sparc. at the same GLIBC_2.1 version. */ + /* These compat symbols exists on alpha, i386, m67k , powerpc, sparc + at the same GLIBC_2.1 version. */ readdir64_compat = dlvsym (RTLD_DEFAULT, "readdir64", "GLIBC_2.1"); readdir64_r_compat = dlvsym (RTLD_DEFAULT, "readdir64_r", "GLIBC_2.1"); } diff --git a/sysdeps/s390/bits/link.h b/sysdeps/s390/bits/link.h index c9f6aab63c..794d6ca286 100644 --- a/sysdeps/s390/bits/link.h +++ b/sysdeps/s390/bits/link.h @@ -23,64 +23,6 @@ typedef char La_s390_vr[16]; #endif -#if __ELF_NATIVE_CLASS == 32 - -/* Registers for entry into PLT on s390-32. */ -typedef struct La_s390_32_regs -{ - uint32_t lr_r2; - uint32_t lr_r3; - uint32_t lr_r4; - uint32_t lr_r5; - uint32_t lr_r6; - double lr_fp0; - double lr_fp2; -# if defined HAVE_S390_VX_ASM_SUPPORT - La_s390_vr lr_v24; - La_s390_vr lr_v25; - La_s390_vr lr_v26; - La_s390_vr lr_v27; - La_s390_vr lr_v28; - La_s390_vr lr_v29; - La_s390_vr lr_v30; - La_s390_vr lr_v31; -# endif -} La_s390_32_regs; - -/* Return values for calls from PLT on s390-32. */ -typedef struct La_s390_32_retval -{ - uint32_t lrv_r2; - uint32_t lrv_r3; - double lrv_fp0; -# if defined HAVE_S390_VX_ASM_SUPPORT - La_s390_vr lrv_v24; -# endif -} La_s390_32_retval; - - -__BEGIN_DECLS - -extern Elf32_Addr la_s390_32_gnu_pltenter (Elf32_Sym *__sym, - unsigned int __ndx, - uintptr_t *__refcook, - uintptr_t *__defcook, - La_s390_32_regs *__regs, - unsigned int *__flags, - const char *__symname, - long int *__framesizep); -extern unsigned int la_s390_32_gnu_pltexit (Elf32_Sym *__sym, - unsigned int __ndx, - uintptr_t *__refcook, - uintptr_t *__defcook, - const La_s390_32_regs *__inregs, - La_s390_32_retval *__outregs, - const char *symname); - -__END_DECLS - -#else - /* Registers for entry into PLT on s390-64. */ typedef struct La_s390_64_regs { @@ -135,5 +77,3 @@ extern unsigned int la_s390_64_gnu_pltexit (Elf64_Sym *__sym, const char *__symname); __END_DECLS - -#endif diff --git a/sysdeps/s390/bits/setjmp.h b/sysdeps/s390/bits/setjmp.h index 4b87fe55a1..3afa770bf7 100644 --- a/sysdeps/s390/bits/setjmp.h +++ b/sysdeps/s390/bits/setjmp.h @@ -33,13 +33,7 @@ typedef struct __s390_jmp_buf /* We save registers 6-15. */ long int __gregs[10]; -# if __WORDSIZE == 64 - /* We save fpu registers f8 - f15. */ long __fpregs[8]; -# else - /* We save fpu registers 4 and 6. */ - long __fpregs[4]; -# endif } __jmp_buf[1]; #endif diff --git a/sysdeps/s390/configure b/sysdeps/s390/configure index e3766aa801..f4ec662610 100644 --- a/sysdeps/s390/configure +++ b/sysdeps/s390/configure @@ -15,7 +15,6 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext void testvecinsn () { __asm__ (".machine \"z13\" \n\t" - ".machinemode \"zarch_nohighgprs\" \n\t" "vistrbs %%v16,%%v17 \n\t" "locghie %%r1,0" : :); } @@ -91,7 +90,6 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext void testinsn (char *buf) { __asm__ (".machine \"arch13\" \n\t" - ".machinemode \"zarch_nohighgprs\" \n\t" "lghi %%r0,16 \n\t" "mvcrl 0(%0),32(%0) \n\t" "vstrs %%v20,%%v20,%%v20,%%v20,0,2" diff --git a/sysdeps/s390/configure.ac b/sysdeps/s390/configure.ac index 4265bfd9f4..82e1a4445f 100644 --- a/sysdeps/s390/configure.ac +++ b/sysdeps/s390/configure.ac @@ -6,7 +6,6 @@ AC_COMPILE_IFELSE([AC_LANG_SOURCE([[ void testvecinsn () { __asm__ (".machine \"z13\" \n\t" - ".machinemode \"zarch_nohighgprs\" \n\t" "vistrbs %%v16,%%v17 \n\t" "locghie %%r1,0" : :); } @@ -43,7 +42,6 @@ AC_COMPILE_IFELSE([AC_LANG_SOURCE([[ void testinsn (char *buf) { __asm__ (".machine \"arch13\" \n\t" - ".machinemode \"zarch_nohighgprs\" \n\t" "lghi %%r0,16 \n\t" "mvcrl 0(%0),32(%0) \n\t" "vstrs %%v20,%%v20,%%v20,%%v20,0,2" diff --git a/sysdeps/s390/cpu-features.c b/sysdeps/s390/cpu-features.c index 76e9079bd4..fd6f2357d5 100644 --- a/sysdeps/s390/cpu-features.c +++ b/sysdeps/s390/cpu-features.c @@ -170,15 +170,12 @@ init_cpu_features_no_tunables (struct cpu_features *cpu_features) cpu_features->hwcap = GLRO(dl_hwcap); /* We want just 1 double word to be returned. */ - if (__glibc_likely ((cpu_features->hwcap & HWCAP_S390_STFLE) - && (cpu_features->hwcap & HWCAP_S390_ZARCH) - && (cpu_features->hwcap & HWCAP_S390_HIGH_GPRS))) + if (__glibc_likely ((cpu_features->hwcap & HWCAP_S390_STFLE))) { unsigned long long stfle_bits[4] = { 0 }; register unsigned long reg0 __asm__("0") = 3; __asm__ __volatile__(".machine push" "\n\t" ".machine \"z9-109\"" "\n\t" - ".machinemode \"zarch_nohighgprs\"\n\t" "stfle %0" "\n\t" ".machine pop" "\n" : "=QS" (stfle_bits[0]), diff --git a/sysdeps/s390/dl-tls.h b/sysdeps/s390/dl-tls.h index eff8cb61b3..4c4f8e7b44 100644 --- a/sysdeps/s390/dl-tls.h +++ b/sysdeps/s390/dl-tls.h @@ -69,7 +69,6 @@ versioned_symbol (ld, __tls_get_addr_internal_tmp, 2) __tls_get_offset returns the offset of the requested variable to the thread descriptor instead of a pointer to the variable. */ -# ifdef __s390x__ __asm__("\n\ .text\n\ .globl __tls_get_offset\n\ @@ -79,20 +78,6 @@ __tls_get_offset:\n\ la %r2,0(%r2,%r12)\n\ jg __tls_get_addr\n\ "); -# elif defined __s390__ -__asm__("\n\ - .text\n\ - .globl __tls_get_offset\n\ - .type __tls_get_offset, @function\n\ - .align 4\n\ -__tls_get_offset:\n\ - basr %r3,0\n\ -0: la %r2,0(%r2,%r12)\n\ - l %r4,1f-0b(%r3)\n\ - b 0(%r4,%r3)\n\ -1: .long __tls_get_addr - 0b\n\ -"); -# endif # else /* IS_IN (rtld) */ extern void *__tls_get_addr_internal (tls_index *ti); # endif /* !IS_IN (rtld) */ diff --git a/sysdeps/s390/fpu/fenv_private.h b/sysdeps/s390/fpu/fenv_private.h index fbefc7889c..42eb94cd15 100644 --- a/sysdeps/s390/fpu/fenv_private.h +++ b/sysdeps/s390/fpu/fenv_private.h @@ -1,4 +1,4 @@ -/* Private floating point rounding and exceptions handling. 390/s390x version. +/* Private floating point rounding and exceptions handling. s390x version. Copyright (C) 2019-2026 Free Software Foundation, Inc. This file is part of the GNU C Library. diff --git a/sysdeps/s390/fpu/s_llrint.c b/sysdeps/s390/fpu/s_llrint.c index ae628b3025..03937b79a9 100644 --- a/sysdeps/s390/fpu/s_llrint.c +++ b/sysdeps/s390/fpu/s_llrint.c @@ -17,11 +17,7 @@ License along with the GNU C Library; if not, see . */ -#if defined __s390x__ && defined HAVE_S390_MIN_Z196_ZARCH_ASM_SUPPORT -/* We only support s390x as on s390 a long long int refers to a register pair - of two 4byte registers instead of a 8byte register which is produced by the - instruction. - Note: On s390 this instruction would only be used if build with -mzarch. */ +#ifdef HAVE_S390_MIN_Z196_ZARCH_ASM_SUPPORT # include # include diff --git a/sysdeps/s390/fpu/s_llrintf.c b/sysdeps/s390/fpu/s_llrintf.c index b94705da42..c3a8638c7c 100644 --- a/sysdeps/s390/fpu/s_llrintf.c +++ b/sysdeps/s390/fpu/s_llrintf.c @@ -17,11 +17,7 @@ License along with the GNU C Library; if not, see . */ -#if defined __s390x__ && defined HAVE_S390_MIN_Z196_ZARCH_ASM_SUPPORT -/* We only support s390x as on s390 a long long int refers to a register pair - of two 4byte registers instead of a 8byte register which is produced by the - instruction. - Note: On s390 this instruction would only be used if build with -mzarch. */ +#ifdef HAVE_S390_MIN_Z196_ZARCH_ASM_SUPPORT # include # include diff --git a/sysdeps/s390/fpu/s_llrintl.c b/sysdeps/s390/fpu/s_llrintl.c index 61938b67ee..5c3c0536b0 100644 --- a/sysdeps/s390/fpu/s_llrintl.c +++ b/sysdeps/s390/fpu/s_llrintl.c @@ -17,11 +17,7 @@ License along with the GNU C Library; if not, see . */ -#if defined __s390x__ && defined HAVE_S390_MIN_Z196_ZARCH_ASM_SUPPORT -/* We only support s390x as on s390 a long long int refers to a register pair - of two 4byte registers instead of a 8byte register which is produced by the - instruction. - Note: On s390 this instruction would only be used if build with -mzarch. */ +#ifdef HAVE_S390_MIN_Z196_ZARCH_ASM_SUPPORT # include # include # include diff --git a/sysdeps/s390/fpu/s_llround.c b/sysdeps/s390/fpu/s_llround.c index 0d598c4bd5..c625322384 100644 --- a/sysdeps/s390/fpu/s_llround.c +++ b/sysdeps/s390/fpu/s_llround.c @@ -17,11 +17,7 @@ License along with the GNU C Library; if not, see . */ -#if defined __s390x__ && defined HAVE_S390_MIN_Z196_ZARCH_ASM_SUPPORT -/* We only support s390x as on s390 a long long int refers to a register pair - of two 4byte registers instead of a 8byte register which is produced by the - instruction. - Note: On s390 this instruction would only be used if build with -mzarch. */ +#ifdef HAVE_S390_MIN_Z196_ZARCH_ASM_SUPPORT # include # include diff --git a/sysdeps/s390/fpu/s_llroundf.c b/sysdeps/s390/fpu/s_llroundf.c index 5b77705f1a..cdea8fc4f3 100644 --- a/sysdeps/s390/fpu/s_llroundf.c +++ b/sysdeps/s390/fpu/s_llroundf.c @@ -17,11 +17,7 @@ License along with the GNU C Library; if not, see . */ -#if defined __s390x__ && defined HAVE_S390_MIN_Z196_ZARCH_ASM_SUPPORT -/* We only support s390x as on s390 a long long int refers to a register pair - of two 4byte registers instead of a 8byte register which is produced by the - instruction. - Note: On s390 this instruction would only be used if build with -mzarch. */ +#ifdef HAVE_S390_MIN_Z196_ZARCH_ASM_SUPPORT # include # include diff --git a/sysdeps/s390/fpu/s_llroundl.c b/sysdeps/s390/fpu/s_llroundl.c index fff507979f..39d533b36c 100644 --- a/sysdeps/s390/fpu/s_llroundl.c +++ b/sysdeps/s390/fpu/s_llroundl.c @@ -17,11 +17,7 @@ License along with the GNU C Library; if not, see . */ -#if defined __s390x__ && defined HAVE_S390_MIN_Z196_ZARCH_ASM_SUPPORT -/* We only support s390x as on s390 a long long int refers to a register pair - of two 4byte registers instead of a 8byte register which is produced by the - instruction. - Note: On s390 this instruction would only be used if build with -mzarch. */ +#ifdef HAVE_S390_MIN_Z196_ZARCH_ASM_SUPPORT # include # include # include diff --git a/sysdeps/s390/fpu/s_lrint.c b/sysdeps/s390/fpu/s_lrint.c index e6c0117dca..6c99bab4b6 100644 --- a/sysdeps/s390/fpu/s_lrint.c +++ b/sysdeps/s390/fpu/s_lrint.c @@ -21,15 +21,6 @@ # include # include -/* The sizeof (long int) differs between s390x (8byte) and s390 (4byte). - Thus we need different instructions as the target size is encoded there. - Note: On s390 this instruction is only used if build with -mzarch. */ -# ifdef __s390x__ -# define INSN "cgdbra" -# else -# define INSN "cfdbra" -# endif - long int __lrint (double x) { @@ -41,9 +32,9 @@ __lrint (double x) Note: a nan is also indicated by cc=3). If the resulting value is within the target limits, redo without suppressing the inexact exception. */ - __asm__ (INSN " %0,0,%1,4 \n\t" + __asm__ ("cgdbra %0,0,%1,4 \n\t" "jo 1f \n\t" - INSN " %0,0,%1,0 \n\t" + "cgdbra %0,0,%1,0 \n\t" "1:" : "=&d" (y) : "f" (x) : "cc"); return y; diff --git a/sysdeps/s390/fpu/s_lrintf.c b/sysdeps/s390/fpu/s_lrintf.c index 9e489e9d63..382836c4fb 100644 --- a/sysdeps/s390/fpu/s_lrintf.c +++ b/sysdeps/s390/fpu/s_lrintf.c @@ -21,15 +21,6 @@ # include # include -/* The sizeof (long int) differs between s390x (8byte) and s390 (4byte). - Thus we need different instructions as the target size is encoded there. - Note: On s390 this instruction is only used if build with -mzarch. */ -# ifdef __s390x__ -# define INSN "cgebra" -# else -# define INSN "cfebra" -# endif - long int __lrintf (float x) { @@ -41,9 +32,9 @@ __lrintf (float x) Note: a nan is also indicated by cc=3). If the resulting value is within the target limits, redo without suppressing the inexact exception. */ - __asm__ (INSN " %0,0,%1,4 \n\t" + __asm__ ("cgebra %0,0,%1,4 \n\t" "jo 1f \n\t" - INSN " %0,0,%1,0 \n\t" + "cgebra %0,0,%1,0 \n\t" "1:" : "=&d" (y) : "f" (x) : "cc"); return y; diff --git a/sysdeps/s390/fpu/s_lrintl.c b/sysdeps/s390/fpu/s_lrintl.c index 417e7bd4dc..bf200a53c9 100644 --- a/sysdeps/s390/fpu/s_lrintl.c +++ b/sysdeps/s390/fpu/s_lrintl.c @@ -22,15 +22,6 @@ # include # include -/* The sizeof (long int) differs between s390x (8byte) and s390 (4byte). - Thus we need different instructions as the target size is encoded there. - Note: On s390 this instruction is only used if build with -mzarch. */ -# ifdef __s390x__ -# define INSN "cgxbra" -# else -# define INSN "cfxbra" -# endif - long int __lrintl (_Float128 x) { @@ -42,9 +33,9 @@ __lrintl (_Float128 x) Note: a nan is also indicated by cc=3). If the resulting value is within the target limits, redo without suppressing the inexact exception. */ - __asm__ (INSN " %0,0,%1,4 \n\t" + __asm__ ("cgxbra %0,0,%1,4 \n\t" "jo 1f \n\t" - INSN " %0,0,%1,0 \n\t" + "cgxbra %0,0,%1,0 \n\t" "1:" : "=&d" (y) : "f" (x) : "cc"); return y; diff --git a/sysdeps/s390/fpu/s_lround.c b/sysdeps/s390/fpu/s_lround.c index db079c4aeb..09d203e0c3 100644 --- a/sysdeps/s390/fpu/s_lround.c +++ b/sysdeps/s390/fpu/s_lround.c @@ -21,15 +21,6 @@ # include # include -/* The sizeof (long int) differs between s390x (8byte) and s390 (4byte). - Thus we need different instructions as the target size is encoded there. - Note: On s390 this instruction is only used if build with -mzarch. */ -# ifdef __s390x__ -# define INSN "cgdbra" -# else -# define INSN "cfdbra" -# endif - long int __lround (double x) { @@ -37,7 +28,7 @@ __lround (double x) /* The z196 zarch "convert to fixed" (cgdbra) instruction is rounding x to the nearest integer with "ties away from 0" rounding mode (M3-field: 1) where inexact exceptions are suppressed (M4-field: 4). */ - __asm__ (INSN " %0,1,%1,4" : "=d" (y) : "f" (x) : "cc"); + __asm__ ("cgdbra %0,1,%1,4" : "=d" (y) : "f" (x) : "cc"); return y; } libm_alias_double (__lround, lround) diff --git a/sysdeps/s390/fpu/s_lroundf.c b/sysdeps/s390/fpu/s_lroundf.c index 4be5a1e1a7..80061d1ac8 100644 --- a/sysdeps/s390/fpu/s_lroundf.c +++ b/sysdeps/s390/fpu/s_lroundf.c @@ -21,15 +21,6 @@ # include # include -/* The sizeof (long int) differs between s390x (8byte) and s390 (4byte). - Thus we need different instructions as the target size is encoded there. - Note: On s390 this instruction is only used if build with -mzarch. */ -# ifdef __s390x__ -# define INSN "cgebra" -# else -# define INSN "cfebra" -# endif - long int __lroundf (float x) { @@ -37,7 +28,7 @@ __lroundf (float x) /* The z196 zarch "convert to fixed" (cgebra) instruction is rounding x to the nearest integer with "ties away from 0" rounding mode (M3-field: 1) where inexact exceptions are suppressed (M4-field: 4). */ - __asm__ (INSN " %0,1,%1,4" : "=d" (y) : "f" (x) : "cc"); + __asm__ ("cgebra %0,1,%1,4" : "=d" (y) : "f" (x) : "cc"); return y; } libm_alias_float (__lround, lround) diff --git a/sysdeps/s390/fpu/s_lroundl.c b/sysdeps/s390/fpu/s_lroundl.c index 046a71f60a..0f8f486ed9 100644 --- a/sysdeps/s390/fpu/s_lroundl.c +++ b/sysdeps/s390/fpu/s_lroundl.c @@ -22,15 +22,6 @@ # include # include -/* The sizeof (long int) differs between s390x (8byte) and s390 (4byte). - Thus we need different instructions as the target size is encoded there. - Note: On s390 this instruction is only used if build with -mzarch. */ -# ifdef __s390x__ -# define INSN "cgxbra" -# else -# define INSN "cfxbra" -# endif - long int __lroundl (_Float128 x) { @@ -38,7 +29,7 @@ __lroundl (_Float128 x) /* The z196 zarch "convert to fixed" (cgxbra) instruction is rounding x to the nearest integer with "ties away from 0" rounding mode (M3-field: 1) where inexact exceptions are suppressed (M4-field: 4). */ - __asm__ (INSN " %0,1,%1,4" : "=d" (y) : "f" (x) : "cc"); + __asm__ ("cgxbra %0,1,%1,4" : "=d" (y) : "f" (x) : "cc"); return y; } libm_alias_ldouble (__lround, lround) diff --git a/sysdeps/s390/ifunc-memchr.h b/sysdeps/s390/ifunc-memchr.h index a0ed7c5444..5dcf2850a6 100644 --- a/sysdeps/s390/ifunc-memchr.h +++ b/sysdeps/s390/ifunc-memchr.h @@ -31,18 +31,18 @@ #if defined HAVE_S390_MIN_Z13_ZARCH_ASM_SUPPORT # define MEMCHR_DEFAULT MEMCHR_Z13 -# define HAVE_MEMCHR_Z900_G5 0 +# define HAVE_MEMCHR_Z900 0 # define HAVE_MEMCHR_Z13 1 #else -# define MEMCHR_DEFAULT MEMCHR_Z900_G5 -# define HAVE_MEMCHR_Z900_G5 1 +# define MEMCHR_DEFAULT MEMCHR_Z900 +# define HAVE_MEMCHR_Z900 1 # define HAVE_MEMCHR_Z13 HAVE_MEMCHR_IFUNC_AND_VX_SUPPORT #endif -#if HAVE_MEMCHR_Z900_G5 -# define MEMCHR_Z900_G5 __memchr_default +#if HAVE_MEMCHR_Z900 +# define MEMCHR_Z900 __memchr_default #else -# define MEMCHR_Z900_G5 NULL +# define MEMCHR_Z900 NULL #endif #if HAVE_MEMCHR_Z13 diff --git a/sysdeps/s390/ifunc-memcmp.h b/sysdeps/s390/ifunc-memcmp.h index 8a21278a0f..cb427978cd 100644 --- a/sysdeps/s390/ifunc-memcmp.h +++ b/sysdeps/s390/ifunc-memcmp.h @@ -25,25 +25,25 @@ #if defined HAVE_S390_MIN_Z196_ZARCH_ASM_SUPPORT # define MEMCMP_DEFAULT MEMCMP_Z196 -# define HAVE_MEMCMP_Z900_G5 0 +# define HAVE_MEMCMP_Z900 0 # define HAVE_MEMCMP_Z10 0 # define HAVE_MEMCMP_Z196 1 #elif defined HAVE_S390_MIN_Z10_ZARCH_ASM_SUPPORT # define MEMCMP_DEFAULT MEMCMP_Z10 -# define HAVE_MEMCMP_Z900_G5 0 +# define HAVE_MEMCMP_Z900 0 # define HAVE_MEMCMP_Z10 1 # define HAVE_MEMCMP_Z196 HAVE_MEMCMP_IFUNC #else -# define MEMCMP_DEFAULT MEMCMP_Z900_G5 -# define HAVE_MEMCMP_Z900_G5 1 +# define MEMCMP_DEFAULT MEMCMP_Z900 +# define HAVE_MEMCMP_Z900 1 # define HAVE_MEMCMP_Z10 HAVE_MEMCMP_IFUNC # define HAVE_MEMCMP_Z196 HAVE_MEMCMP_IFUNC #endif -#if HAVE_MEMCMP_Z900_G5 -# define MEMCMP_Z900_G5 __memcmp_default +#if HAVE_MEMCMP_Z900 +# define MEMCMP_Z900 __memcmp_default #else -# define MEMCMP_Z900_G5 NULL +# define MEMCMP_Z900 NULL #endif #if HAVE_MEMCMP_Z10 diff --git a/sysdeps/s390/ifunc-memcpy.h b/sysdeps/s390/ifunc-memcpy.h index 91efab3428..48afc2c23a 100644 --- a/sysdeps/s390/ifunc-memcpy.h +++ b/sysdeps/s390/ifunc-memcpy.h @@ -26,19 +26,19 @@ #if defined HAVE_S390_MIN_Z196_ZARCH_ASM_SUPPORT # define MEMCPY_DEFAULT MEMCPY_Z196 # define MEMPCPY_DEFAULT MEMPCPY_Z196 -# define HAVE_MEMCPY_Z900_G5 0 +# define HAVE_MEMCPY_Z900 0 # define HAVE_MEMCPY_Z10 0 # define HAVE_MEMCPY_Z196 1 #elif defined HAVE_S390_MIN_Z10_ZARCH_ASM_SUPPORT # define MEMCPY_DEFAULT MEMCPY_Z10 # define MEMPCPY_DEFAULT MEMPCPY_Z10 -# define HAVE_MEMCPY_Z900_G5 0 +# define HAVE_MEMCPY_Z900 0 # define HAVE_MEMCPY_Z10 1 # define HAVE_MEMCPY_Z196 HAVE_MEMCPY_IFUNC #else -# define MEMCPY_DEFAULT MEMCPY_Z900_G5 -# define MEMPCPY_DEFAULT MEMPCPY_Z900_G5 -# define HAVE_MEMCPY_Z900_G5 1 +# define MEMCPY_DEFAULT MEMCPY_Z900 +# define MEMPCPY_DEFAULT MEMPCPY_Z900 +# define HAVE_MEMCPY_Z900 1 # define HAVE_MEMCPY_Z10 HAVE_MEMCPY_IFUNC # define HAVE_MEMCPY_Z196 HAVE_MEMCPY_IFUNC #endif @@ -79,12 +79,12 @@ # define HAVE_MEMMOVE_ARCH13 HAVE_MEMMOVE_IFUNC_AND_ARCH13_SUPPORT #endif -#if HAVE_MEMCPY_Z900_G5 -# define MEMCPY_Z900_G5 __memcpy_default -# define MEMPCPY_Z900_G5 __mempcpy_default +#if HAVE_MEMCPY_Z900 +# define MEMCPY_Z900 __memcpy_default +# define MEMPCPY_Z900 __mempcpy_default #else -# define MEMCPY_Z900_G5 NULL -# define MEMPCPY_Z900_G5 NULL +# define MEMCPY_Z900 NULL +# define MEMPCPY_Z900 NULL #endif #if HAVE_MEMCPY_Z10 diff --git a/sysdeps/s390/ifunc-memset.h b/sysdeps/s390/ifunc-memset.h index b0041d1a58..569591c9cc 100644 --- a/sysdeps/s390/ifunc-memset.h +++ b/sysdeps/s390/ifunc-memset.h @@ -25,17 +25,17 @@ #if defined HAVE_S390_MIN_Z196_ZARCH_ASM_SUPPORT # define MEMSET_DEFAULT MEMSET_Z196 -# define HAVE_MEMSET_Z900_G5 0 +# define HAVE_MEMSET_Z900 0 # define HAVE_MEMSET_Z10 0 # define HAVE_MEMSET_Z196 1 #elif defined HAVE_S390_MIN_Z10_ZARCH_ASM_SUPPORT # define MEMSET_DEFAULT MEMSET_Z10 -# define HAVE_MEMSET_Z900_G5 0 +# define HAVE_MEMSET_Z900 0 # define HAVE_MEMSET_Z10 1 # define HAVE_MEMSET_Z196 HAVE_MEMSET_IFUNC #else -# define MEMSET_DEFAULT MEMSET_Z900_G5 -# define HAVE_MEMSET_Z900_G5 1 +# define MEMSET_DEFAULT MEMSET_Z900 +# define HAVE_MEMSET_Z900 1 # define HAVE_MEMSET_Z10 HAVE_MEMSET_IFUNC # define HAVE_MEMSET_Z196 HAVE_MEMSET_IFUNC #endif @@ -46,10 +46,10 @@ # define HAVE_MEMSET_MVCLE 0 #endif -#if HAVE_MEMSET_Z900_G5 -# define MEMSET_Z900_G5 __memset_default +#if HAVE_MEMSET_Z900 +# define MEMSET_Z900 __memset_default #else -# define MEMSET_Z900_G5 NULL +# define MEMSET_Z900 NULL #endif #if HAVE_MEMSET_Z10 diff --git a/sysdeps/s390/ifunc-strcmp.h b/sysdeps/s390/ifunc-strcmp.h index 7d32d72b60..069827c460 100644 --- a/sysdeps/s390/ifunc-strcmp.h +++ b/sysdeps/s390/ifunc-strcmp.h @@ -31,18 +31,18 @@ #if defined HAVE_S390_MIN_Z13_ZARCH_ASM_SUPPORT # define STRCMP_DEFAULT STRCMP_Z13 -# define HAVE_STRCMP_Z900_G5 0 +# define HAVE_STRCMP_Z900 0 # define HAVE_STRCMP_Z13 1 #else -# define STRCMP_DEFAULT STRCMP_Z900_G5 -# define HAVE_STRCMP_Z900_G5 1 +# define STRCMP_DEFAULT STRCMP_Z900 +# define HAVE_STRCMP_Z900 1 # define HAVE_STRCMP_Z13 HAVE_STRCMP_IFUNC_AND_VX_SUPPORT #endif -#if HAVE_STRCMP_Z900_G5 -# define STRCMP_Z900_G5 __strcmp_default +#if HAVE_STRCMP_Z900 +# define STRCMP_Z900 __strcmp_default #else -# define STRCMP_Z900_G5 NULL +# define STRCMP_Z900 NULL #endif #if HAVE_STRCMP_Z13 diff --git a/sysdeps/s390/ifunc-strcpy.h b/sysdeps/s390/ifunc-strcpy.h index 919bd74923..9cd26f2f76 100644 --- a/sysdeps/s390/ifunc-strcpy.h +++ b/sysdeps/s390/ifunc-strcpy.h @@ -31,18 +31,18 @@ #if defined HAVE_S390_MIN_Z13_ZARCH_ASM_SUPPORT # define STRCPY_DEFAULT STRCPY_Z13 -# define HAVE_STRCPY_Z900_G5 0 +# define HAVE_STRCPY_Z900 0 # define HAVE_STRCPY_Z13 1 #else -# define STRCPY_DEFAULT STRCPY_Z900_G5 -# define HAVE_STRCPY_Z900_G5 1 +# define STRCPY_DEFAULT STRCPY_Z900 +# define HAVE_STRCPY_Z900 1 # define HAVE_STRCPY_Z13 HAVE_STRCPY_IFUNC_AND_VX_SUPPORT #endif -#if HAVE_STRCPY_Z900_G5 -# define STRCPY_Z900_G5 __strcpy_default +#if HAVE_STRCPY_Z900 +# define STRCPY_Z900 __strcpy_default #else -# define STRCPY_Z900_G5 NULL +# define STRCPY_Z900 NULL #endif #if HAVE_STRCPY_Z13 diff --git a/sysdeps/s390/ifunc-strncpy.h b/sysdeps/s390/ifunc-strncpy.h index de426e611e..625b52a3ab 100644 --- a/sysdeps/s390/ifunc-strncpy.h +++ b/sysdeps/s390/ifunc-strncpy.h @@ -31,18 +31,18 @@ #if defined HAVE_S390_MIN_Z13_ZARCH_ASM_SUPPORT # define STRNCPY_DEFAULT STRNCPY_Z13 -# define HAVE_STRNCPY_Z900_G5 0 +# define HAVE_STRNCPY_Z900 0 # define HAVE_STRNCPY_Z13 1 #else -# define STRNCPY_DEFAULT STRNCPY_Z900_G5 -# define HAVE_STRNCPY_Z900_G5 1 +# define STRNCPY_DEFAULT STRNCPY_Z900 +# define HAVE_STRNCPY_Z900 1 # define HAVE_STRNCPY_Z13 HAVE_STRNCPY_IFUNC_AND_VX_SUPPORT #endif -#if HAVE_STRNCPY_Z900_G5 -# define STRNCPY_Z900_G5 __strncpy_default +#if HAVE_STRNCPY_Z900 +# define STRNCPY_Z900 __strncpy_default #else -# define STRNCPY_Z900_G5 NULL +# define STRNCPY_Z900 NULL #endif #if HAVE_STRNCPY_Z13 diff --git a/sysdeps/s390/iso-8859-1_cp037_z900.c b/sysdeps/s390/iso-8859-1_cp037_z900.c index 3e7f131f15..b38e9e6b40 100644 --- a/sysdeps/s390/iso-8859-1_cp037_z900.c +++ b/sysdeps/s390/iso-8859-1_cp037_z900.c @@ -169,12 +169,6 @@ __attribute__ ((aligned (8))) = #define MIN_NEEDED_FROM 1 #define MIN_NEEDED_TO 1 -# if defined __s390x__ -# define BRANCH_ON_COUNT(REG,LBL) "brctg %" #REG "," #LBL "\n\t" -# else -# define BRANCH_ON_COUNT(REG,LBL) "brct %" #REG "," #LBL "\n\t" -# endif - #define TR_LOOP(TABLE) \ { \ size_t length = (inend - inptr < outend - outptr \ @@ -188,7 +182,7 @@ __attribute__ ((aligned (8))) = " tr 0(256,%[R_OUT]),0(%[R_TBL])\n\t" \ " la %[R_IN],256(%[R_IN])\n\t" \ " la %[R_OUT],256(%[R_OUT])\n\t" \ - BRANCH_ON_COUNT ([R_LI], 0b) \ + " brctg %[R_LI],0b\n\t" \ : /* outputs */ [R_IN] "+a" (inptr) \ , [R_OUT] "+a" (outptr), [R_LI] "+d" (blocks) \ : /* inputs */ [R_TBL] "a" (TABLE) \ diff --git a/sysdeps/s390/jmpbuf-unwind.h b/sysdeps/s390/jmpbuf-unwind.h index 97dbb40078..3812c126a5 100644 --- a/sysdeps/s390/jmpbuf-unwind.h +++ b/sysdeps/s390/jmpbuf-unwind.h @@ -30,8 +30,7 @@ ((void *) (address) < (void *) demangle ((jmpbuf)->__gregs[__JB_GPR15])) -/* On s390{,x}, CFA is always 96 (resp. 160) bytes above actual - %r15. */ +/* On s390x, CFA is always 160 bytes above actual %r15. */ #define _JMPBUF_CFA_UNWINDS_ADJ(_jmpbuf, _context, _adj) \ _JMPBUF_UNWINDS_ADJ (_jmpbuf, \ (void *) (_Unwind_GetCFA (_context) \ diff --git a/sysdeps/s390/ldsodefs.h b/sysdeps/s390/ldsodefs.h index 0313b50774..6c4a999e33 100644 --- a/sysdeps/s390/ldsodefs.h +++ b/sysdeps/s390/ldsodefs.h @@ -22,18 +22,10 @@ #include #include -struct La_s390_32_regs; -struct La_s390_32_retval; struct La_s390_64_regs; struct La_s390_64_retval; #define ARCH_PLTENTER_MEMBERS \ - Elf32_Addr (*s390_32_gnu_pltenter) (Elf32_Sym *, unsigned int, \ - uintptr_t *, \ - uintptr_t *, \ - struct La_s390_32_regs *, \ - unsigned int *, const char *name, \ - long int *framesizep); \ Elf64_Addr (*s390_64_gnu_pltenter) (Elf64_Sym *, unsigned int, \ uintptr_t *, \ uintptr_t *, \ @@ -42,11 +34,6 @@ struct La_s390_64_retval; long int *framesizep) #define ARCH_PLTEXIT_MEMBERS \ - unsigned int (*s390_32_gnu_pltexit) (Elf32_Sym *, unsigned int, \ - uintptr_t *, uintptr_t *, \ - const struct La_s390_32_regs *, \ - struct La_s390_32_retval *, \ - const char *); \ unsigned int (*s390_64_gnu_pltexit) (Elf64_Sym *, unsigned int, \ uintptr_t *, uintptr_t *, \ const struct La_s390_64_regs *, \ diff --git a/sysdeps/s390/linkmap.h b/sysdeps/s390/linkmap.h index 283615b99a..faf0b96d3e 100644 --- a/sysdeps/s390/linkmap.h +++ b/sysdeps/s390/linkmap.h @@ -1,13 +1,5 @@ -#if __WORDSIZE == 64 struct link_map_machine - { - Elf64_Addr plt; /* Address of .plt + 0x2e */ - const Elf64_Rela *jmprel; /* Address of first JMP_SLOT reloc */ - }; -#else -struct link_map_machine - { - Elf32_Addr plt; /* Address of .plt + 0x2c */ - const Elf32_Rela *jmprel; /* Address of first JMP_SLOT reloc */ - }; -#endif +{ + Elf64_Addr plt; /* Address of .plt + 0x2e */ + const Elf64_Rela *jmprel; /* Address of first JMP_SLOT reloc */ +}; diff --git a/sysdeps/s390/memccpy-vx.S b/sysdeps/s390/memccpy-vx.S index 8008e374ce..648039d867 100644 --- a/sysdeps/s390/memccpy-vx.S +++ b/sysdeps/s390/memccpy-vx.S @@ -1,4 +1,4 @@ -/* Vector optimized 32/64 bit S/390 version of memccpy. +/* Vector optimized 64 bit S/390 version of memccpy. Copyright (C) 2015-2026 Free Software Foundation, Inc. This file is part of the GNU C Library. @@ -46,11 +46,6 @@ */ ENTRY(MEMCCPY_Z13) .machine "z13" - .machinemode "zarch_nohighgprs" - -# if !defined __s390x__ - llgfr %r5,%r5 -# endif /* !defined __s390x__ */ vlvgp %v31,%r6,%r7 /* Save registers. */ clgije %r5,0,.Lnf_end /* If len == 0 then exit. */ diff --git a/sysdeps/s390/memchr-vx.S b/sysdeps/s390/memchr-vx.S index e6c3ac4181..86cd0291f7 100644 --- a/sysdeps/s390/memchr-vx.S +++ b/sysdeps/s390/memchr-vx.S @@ -1,4 +1,4 @@ -/* Vector optimized 32/64 bit S/390 version of memchr. +/* Vector optimized 64 bit S/390 version of memchr. Copyright (C) 2015-2026 Free Software Foundation, Inc. This file is part of the GNU C Library. @@ -40,13 +40,7 @@ -v18=c replicated */ ENTRY(MEMCHR_Z13) - .machine "z13" - .machinemode "zarch_nohighgprs" - -# if !defined __s390x__ - llgfr %r4,%r4 -# endif /* !defined __s390x__ */ clgije %r4,0,.Lnf_end /* If len == 0 then exit. */ @@ -157,7 +151,7 @@ strong_alias (MEMCHR_Z13, __memchr) weak_alias (__memchr, memchr) # endif -# if ! HAVE_MEMCHR_Z900_G5 && defined SHARED && IS_IN (libc) +# if ! HAVE_MEMCHR_Z900 && defined SHARED && IS_IN (libc) strong_alias (MEMCHR_Z13, __GI_memchr) # endif #endif diff --git a/sysdeps/s390/memchr-z900.S b/sysdeps/s390/memchr-z900.S index 16b9c19429..c0ffd864f7 100644 --- a/sysdeps/s390/memchr-z900.S +++ b/sysdeps/s390/memchr-z900.S @@ -1,4 +1,4 @@ -/* Search a character in a block of memory. 31/64 bit S/390 version. +/* Search a character in a block of memory. 64 bit S/390 version. Copyright (C) 2001-2026 Free Software Foundation, Inc. This file is part of the GNU C Library. @@ -25,51 +25,26 @@ #include "sysdep.h" #include "asm-syntax.h" -#if HAVE_MEMCHR_Z900_G5 -# if defined __s390x__ -# define SLGR slgr -# define LGHI lghi -# define NGR ngr -# define LGR lgr -# else -# define SLGR slr -# define LGHI lhi -# define NGR nr -# define LGR lr -# endif /* ! defined __s390x__ */ - +#if HAVE_MEMCHR_Z900 .text -ENTRY(MEMCHR_Z900_G5) - LGHI %r0,0xff - NGR %r0,%r3 - LGR %r1,%r2 -# if ! defined __s390x__ - tmlh %r4,32768 - jo 3f /* Jump away if n >= 0x80000000 */ -# endif +ENTRY(MEMCHR_Z900) + lghi %r0,0xff + ngr %r0,%r3 + lgr %r1,%r2 la %r2,0(%r4,%r1) 0: srst %r2,%r1 jo 0b brc 13,1f - SLGR %r2,%r2 + slgr %r2,%r2 1: br %r14 -# if ! defined __s390x__ - /* On s390 (31bit), the pointer to the first byte after s (stored in - r2) always wraps around with n >= 0x80000000 and can lead to stop - searching before end of s. Thus just use r2=0 in this case. - If r2 < r1, the srst instruction stops searching with cc=2 "not - found" when wrapping around from top address to zero. */ -3: SLGR %r2,%r2 - j 0b -# endif -END(MEMCHR_Z900_G5) +END(MEMCHR_Z900) # if ! HAVE_MEMCHR_IFUNC -strong_alias (MEMCHR_Z900_G5, __memchr) +strong_alias (MEMCHR_Z900, __memchr) weak_alias (__memchr, memchr) # endif # if defined SHARED && IS_IN (libc) -strong_alias (MEMCHR_Z900_G5, __GI_memchr) +strong_alias (MEMCHR_Z900, __GI_memchr) # endif #endif diff --git a/sysdeps/s390/memchr.c b/sysdeps/s390/memchr.c index 764a10a839..8ddfaa03d4 100644 --- a/sysdeps/s390/memchr.c +++ b/sysdeps/s390/memchr.c @@ -24,8 +24,8 @@ # undef memchr # include -# if HAVE_MEMCHR_Z900_G5 -extern __typeof (__redirect_memchr) MEMCHR_Z900_G5 attribute_hidden; +# if HAVE_MEMCHR_Z900 +extern __typeof (__redirect_memchr) MEMCHR_Z900 attribute_hidden; # endif # if HAVE_MEMCHR_Z13 diff --git a/sysdeps/s390/memcmp-z900.S b/sysdeps/s390/memcmp-z900.S index 00ec2bba52..abdbcaa35e 100644 --- a/sysdeps/s390/memcmp-z900.S +++ b/sysdeps/s390/memcmp-z900.S @@ -1,4 +1,4 @@ -/* memcmp - compare two memory blocks. 31/64 bit S/390 version. +/* memcmp - compare two memory blocks. 64 bit S/390 version. Copyright (C) 2012-2026 Free Software Foundation, Inc. This file is part of the GNU C Library. @@ -28,72 +28,38 @@ .text -#if HAVE_MEMCMP_Z900_G5 -# if defined __s390x__ -# define LTGR ltgr -# define AGHI aghi -# define BRCTG brctg -# else -# define LTGR ltr -# define AGHI ahi -# define BRCTG brct -# endif /* ! defined __s390x__ */ -ENTRY(MEMCMP_Z900_G5) -# if defined __s390x__ +#if HAVE_MEMCMP_Z900 +ENTRY(MEMCMP_Z900) .machine "z900" -# else - .machine "g5" - basr %r5,0 -.L_Z900_G5_16: -# define Z900_G5_EX_D .L_Z900_G5_15-.L_Z900_G5_16 -# endif /* ! defined __s390x__ */ - LTGR %r4,%r4 - je .L_Z900_G5_4 - AGHI %r4,-1 -# if defined __s390x__ + ltgr %r4,%r4 + je .L_Z900_4 + aghi %r4,-1 srlg %r1,%r4,8 - larl %r5,.L_Z900_G5_15 -# define Z900_G5_EX_D 0 -# else - lr %r1,%r4 - srl %r1,8 -# endif /* ! defined __s390x__ */ - LTGR %r1,%r1 - jne .L_Z900_G5_12 -.L_Z900_G5_3: - ex %r4,Z900_G5_EX_D(%r5) -.L_Z900_G5_4: + larl %r5,.L_Z900_15 + ltgr %r1,%r1 + jne .L_Z900_12 +.L_Z900_3: + ex %r4,0(%r5) +.L_Z900_4: ipm %r2 -# if defined __s390x__ sllg %r2,%r2,34 srag %r2,%r2,62 -# else - sll %r2,2 - sra %r2,30 -# endif /* ! defined __s390x__ */ br %r14 -.L_Z900_G5_12: +.L_Z900_12: clc 0(256,%r3),0(%r2) - jne .L_Z900_G5_4 + jne .L_Z900_4 la %r3,256(%r3) la %r2,256(%r2) - BRCTG %r1,.L_Z900_G5_12 - j .L_Z900_G5_3 -.L_Z900_G5_15: + brctg %r1,.L_Z900_12 + j .L_Z900_3 +.L_Z900_15: clc 0(1,%r3),0(%r2) -END(MEMCMP_Z900_G5) -# undef LTGR -# undef AGHI -# undef BRCTG -#endif /* HAVE_MEMCMP_Z900_G5 */ +END(MEMCMP_Z900) +#endif /* HAVE_MEMCMP_Z900 */ #if HAVE_MEMCMP_Z10 ENTRY(MEMCMP_Z10) .machine "z10" - .machinemode "zarch_nohighgprs" -# if !defined __s390x__ - llgfr %r4,%r4 -# endif /* !defined __s390x__ */ ltgr %r4,%r4 je .L_Z10_4 aghi %r4,-1 @@ -123,10 +89,6 @@ END(MEMCMP_Z10) #if HAVE_MEMCMP_Z196 ENTRY(MEMCMP_Z196) .machine "z196" - .machinemode "zarch_nohighgprs" -# if !defined __s390x__ - llgfr %r4,%r4 -# endif /* !defined __s390x__ */ ltgr %r4,%r4 je .L_Z196_4 aghi %r4,-1 diff --git a/sysdeps/s390/memcmp.c b/sysdeps/s390/memcmp.c index b6f6faa224..5ff55c8091 100644 --- a/sysdeps/s390/memcmp.c +++ b/sysdeps/s390/memcmp.c @@ -23,8 +23,8 @@ # undef memcmp # include -# if HAVE_MEMCMP_Z900_G5 -extern __typeof (__redirect_memcmp) MEMCMP_Z900_G5 attribute_hidden; +# if HAVE_MEMCMP_Z900 +extern __typeof (__redirect_memcmp) MEMCMP_Z900 attribute_hidden; # endif # if HAVE_MEMCMP_Z10 diff --git a/sysdeps/s390/memcopy.h b/sysdeps/s390/memcopy.h index 6ec81298d8..1eb8dc4057 100644 --- a/sysdeps/s390/memcopy.h +++ b/sysdeps/s390/memcopy.h @@ -18,6 +18,6 @@ #include -/* The s390/s390x memcpy implementations are safe to be used by memmove. */ +/* The s390x memcpy implementations are safe to be used by memmove. */ #undef MEMCPY_OK_FOR_FWD_MEMMOVE #define MEMCPY_OK_FOR_FWD_MEMMOVE 1 diff --git a/sysdeps/s390/memcpy-z900.S b/sysdeps/s390/memcpy-z900.S index 037d245816..3966585e83 100644 --- a/sysdeps/s390/memcpy-z900.S +++ b/sysdeps/s390/memcpy-z900.S @@ -1,4 +1,4 @@ -/* memcpy - copy a block from source to destination. 31/64 bit S/390 version. +/* memcpy - copy a block from source to destination. 64 bit S/390 version. Copyright (C) 2012-2026 Free Software Foundation, Inc. This file is part of the GNU C Library. @@ -28,83 +28,49 @@ .text -#if defined __s390x__ -# define LTGR ltgr -# define CGHI cghi -# define LGR lgr -# define AGHI aghi -# define BRCTG brctg -#else -# define LTGR ltr -# define CGHI chi -# define LGR lr -# define AGHI ahi -# define BRCTG brct -#endif /* ! defined __s390x__ */ - -#if HAVE_MEMCPY_Z900_G5 -ENTRY(MEMPCPY_Z900_G5) -# if defined __s390x__ +#if HAVE_MEMCPY_Z900 +ENTRY(MEMPCPY_Z900) .machine "z900" -# else - .machine "g5" -# endif /* ! defined __s390x__ */ - LGR %r1,%r2 # Use as dest + lgr %r1,%r2 # Use as dest la %r2,0(%r4,%r2) # Return dest + n - j .L_Z900_G5_start -END(MEMPCPY_Z900_G5) + j .L_Z900_start +END(MEMPCPY_Z900) -ENTRY(MEMCPY_Z900_G5) -# if defined __s390x__ +ENTRY(MEMCPY_Z900) .machine "z900" -# else - .machine "g5" -# endif /* ! defined __s390x__ */ - LGR %r1,%r2 # r1: Use as dest ; r2: Return dest -.L_Z900_G5_start: - LTGR %r4,%r4 - je .L_Z900_G5_4 - AGHI %r4,-1 -# if defined __s390x__ + lgr %r1,%r2 # r1: Use as dest ; r2: Return dest +.L_Z900_start: + ltgr %r4,%r4 + je .L_Z900_4 + aghi %r4,-1 srlg %r5,%r4,8 -# else - lr %r5,%r4 - srl %r5,8 -# endif /* ! defined __s390x__ */ - LTGR %r5,%r5 - jne .L_Z900_G5_13 -.L_Z900_G5_3: -# if defined __s390x__ - larl %r5,.L_Z900_G5_15 -# define Z900_G5_EX_D 0 -# else - basr %r5,0 -.L_Z900_G5_14: -# define Z900_G5_EX_D .L_Z900_G5_15-.L_Z900_G5_14 -# endif /* ! defined __s390x__ */ - ex %r4,Z900_G5_EX_D(%r5) -.L_Z900_G5_4: + ltgr %r5,%r5 + jne .L_Z900_13 +.L_Z900_3: + larl %r5,.L_Z900_15 + ex %r4,0(%r5) +.L_Z900_4: br %r14 -.L_Z900_G5_13: - CGHI %r5,4096 # Switch to mvcle for copies >1MB +.L_Z900_13: + cghi %r5,4096 # Switch to mvcle for copies >1MB jh __memcpy_mvcle -.L_Z900_G5_12: +.L_Z900_12: mvc 0(256,%r1),0(%r3) la %r1,256(%r1) la %r3,256(%r3) - BRCTG %r5,.L_Z900_G5_12 - j .L_Z900_G5_3 -.L_Z900_G5_15: + brctg %r5,.L_Z900_12 + j .L_Z900_3 +.L_Z900_15: mvc 0(1,%r1),0(%r3) -END(MEMCPY_Z900_G5) -#endif /* HAVE_MEMCPY_Z900_G5 */ +END(MEMCPY_Z900) +#endif /* HAVE_MEMCPY_Z900 */ ENTRY(__memcpy_mvcle) # Using as standalone function will result in unexpected # results since the length field is incremented by 1 in order to # compensate the changes already done in the functions above. - LGR %r0,%r2 # backup return dest [ + n ] - AGHI %r4,1 # length + 1 + lgr %r0,%r2 # backup return dest [ + n ] + aghi %r4,1 # length + 1 LGR %r5,%r4 # source length LGR %r4,%r3 # source address LGR %r2,%r1 # destination address @@ -112,20 +78,13 @@ ENTRY(__memcpy_mvcle) .L_MVCLE_1: mvcle %r2,%r4,0 # that's it, MVCLE is your friend jo .L_MVCLE_1 - LGR %r2,%r0 # return destination address + lgr %r2,%r0 # return destination address br %r14 END(__memcpy_mvcle) -#undef LTGR -#undef CGHI -#undef LGR -#undef AGHI -#undef BRCTG - #if HAVE_MEMCPY_Z10 ENTRY(MEMPCPY_Z10) .machine "z10" - .machinemode "zarch_nohighgprs" lgr %r1,%r2 # Use as dest la %r2,0(%r4,%r2) # Return dest + n j .L_Z10_start @@ -133,12 +92,8 @@ END(MEMPCPY_Z10) ENTRY(MEMCPY_Z10) .machine "z10" - .machinemode "zarch_nohighgprs" lgr %r1,%r2 # r1: Use as dest ; r2: Return dest .L_Z10_start: -# if !defined __s390x__ - llgfr %r4,%r4 -# endif /* !defined __s390x__ */ cgije %r4,0,.L_Z10_4 aghi %r4,-1 srlg %r5,%r4,8 @@ -166,7 +121,6 @@ END(MEMCPY_Z10) #if HAVE_MEMCPY_Z196 ENTRY(MEMPCPY_Z196) .machine "z196" - .machinemode "zarch_nohighgprs" lgr %r1,%r2 # Use as dest la %r2,0(%r4,%r2) # Return dest + n j .L_Z196_start @@ -174,12 +128,8 @@ END(MEMPCPY_Z196) ENTRY(MEMCPY_Z196) .machine "z196" - .machinemode "zarch_nohighgprs" lgr %r1,%r2 # r1: Use as dest ; r2: Return dest .L_Z196_start: -# if !defined __s390x__ - llgfr %r4,%r4 -# endif /* !defined __s390x__ */ ltgr %r4,%r4 je .L_Z196_4 .L_Z196_start2: @@ -220,13 +170,6 @@ END(MEMCPY_Z196) #if HAVE_MEMMOVE_Z13 ENTRY(MEMMOVE_Z13) .machine "z13" - .machinemode "zarch_nohighgprs" -# if !defined __s390x__ - /* Note: The 31bit dst and src pointers are prefixed with zeroes. */ - llgfr %r4,%r4 - llgfr %r3,%r3 - llgfr %r2,%r2 -# endif /* !defined __s390x__ */ sgrk %r0,%r2,%r3 clgijh %r4,16,.L_MEMMOVE_Z13_LARGE aghik %r5,%r4,-1 @@ -289,13 +232,6 @@ END(MEMMOVE_Z13) #if HAVE_MEMMOVE_ARCH13 ENTRY(MEMMOVE_ARCH13) .machine "arch13" - .machinemode "zarch_nohighgprs" -# if ! defined __s390x__ - /* Note: The 31bit dst and src pointers are prefixed with zeroes. */ - llgfr %r4,%r4 - llgfr %r3,%r3 - llgfr %r2,%r2 -# endif /* ! defined __s390x__ */ sgrk %r5,%r2,%r3 aghik %r0,%r4,-1 /* Both vstl and mvcrl needs highest index. */ clgijh %r4,16,.L_MEMMOVE_ARCH13_LARGE diff --git a/sysdeps/s390/memcpy.c b/sysdeps/s390/memcpy.c index 243f3a3046..cfad6cdcb4 100644 --- a/sysdeps/s390/memcpy.c +++ b/sysdeps/s390/memcpy.c @@ -24,8 +24,8 @@ # undef memcpy # include -# if HAVE_MEMCPY_Z900_G5 -extern __typeof (__redirect_memcpy) MEMCPY_Z900_G5 attribute_hidden; +# if HAVE_MEMCPY_Z900 +extern __typeof (__redirect_memcpy) MEMCPY_Z900 attribute_hidden; # endif # if HAVE_MEMCPY_Z10 diff --git a/sysdeps/s390/memmem-arch13.S b/sysdeps/s390/memmem-arch13.S index 227c6fecfb..e864471391 100644 --- a/sysdeps/s390/memmem-arch13.S +++ b/sysdeps/s390/memmem-arch13.S @@ -1,4 +1,4 @@ -/* Vector optimized 32/64 bit S/390 version of memmem. +/* Vector optimized 64 bit S/390 version of memmem. Copyright (C) 2019-2026 Free Software Foundation, Inc. This file is part of the GNU C Library. @@ -27,13 +27,6 @@ Locate a substring. */ ENTRY(MEMMEM_ARCH13) .machine "arch13" - .machinemode "zarch_nohighgprs" -# if ! defined __s390x__ - llgfr %r3,%r3 - llgfr %r5,%r5 - llgfr %r4,%r4 - llgfr %r2,%r2 -# endif /* ! defined __s390x__ */ clgrjl %r3,%r5,.Lend_no_match /* Haystack < needle? */ /* Jump to fallback if needle > 9. See also strstr-arch13.S. */ diff --git a/sysdeps/s390/mempcpy.c b/sysdeps/s390/mempcpy.c index 43604948e7..49f01b0575 100644 --- a/sysdeps/s390/mempcpy.c +++ b/sysdeps/s390/mempcpy.c @@ -28,8 +28,8 @@ # undef __mempcpy # include -# if HAVE_MEMCPY_Z900_G5 -extern __typeof (__redirect___mempcpy) MEMPCPY_Z900_G5 attribute_hidden; +# if HAVE_MEMCPY_Z900 +extern __typeof (__redirect___mempcpy) MEMPCPY_Z900 attribute_hidden; # endif # if HAVE_MEMCPY_Z10 diff --git a/sysdeps/s390/memrchr-vx.S b/sysdeps/s390/memrchr-vx.S index 53ca78ae24..7b65479777 100644 --- a/sysdeps/s390/memrchr-vx.S +++ b/sysdeps/s390/memrchr-vx.S @@ -1,4 +1,4 @@ -/* Vector optimized 32/64 bit S/390 version of memrchr. +/* Vector optimized 64 bit S/390 version of memrchr. Copyright (C) 2015-2026 Free Software Foundation, Inc. This file is part of the GNU C Library. @@ -44,11 +44,7 @@ */ ENTRY(MEMRCHR_Z13) .machine "z13" - .machinemode "zarch_nohighgprs" -# if !defined __s390x__ - llgfr %r4,%r4 -# endif /* !defined __s390x__ */ clgije %r4,0,.Lnot_found vlvgb %v18,%r3,0 /* Generate vector which elements are all c. diff --git a/sysdeps/s390/memset-z900.S b/sysdeps/s390/memset-z900.S index 987589988b..646ea9b33d 100644 --- a/sysdeps/s390/memset-z900.S +++ b/sysdeps/s390/memset-z900.S @@ -1,4 +1,4 @@ -/* Set a block of memory to some byte value. 31/64 bit S/390 version. +/* Set a block of memory to some byte value. 64 bit S/390 version. Copyright (C) 2001-2026 Free Software Foundation, Inc. This file is part of the GNU C Library. @@ -28,75 +28,39 @@ .text -#if HAVE_MEMSET_Z900_G5 -# if defined __s390x__ -# define LTGR ltgr -# define CGHI cghi -# define LGR lgr -# define AGHI aghi -# define BRCTG brctg -# else -# define LTGR ltr -# define CGHI chi -# define LGR lr -# define AGHI ahi -# define BRCTG brct -# endif /* ! defined __s390x__ */ - -ENTRY(MEMSET_Z900_G5) -.L_Z900_G5_start: -#if defined __s390x__ +#if HAVE_MEMSET_Z900 +ENTRY(MEMSET_Z900) +.L_Z900_start: .machine "z900" -#else - .machine "g5" -#endif /* ! defined __s390x__ */ - LTGR %r4,%r4 - je .L_Z900_G5_4 + ltgr %r4,%r4 + je .L_Z900_4 stc %r3,0(%r2) - CGHI %r4,1 - LGR %r1,%r2 - je .L_Z900_G5_4 - AGHI %r4,-2 -#if defined __s390x__ - larl %r5,.L_Z900_G5_18 + cghi %r4,1 + lgr %r1,%r2 + je .L_Z900_4 + aghi %r4,-2 + larl %r5,.L_Z900_18 srlg %r3,%r4,8 -# define Z900_G5_EX_D 0 -#else - basr %r5,0 -.L_Z900_G5_19: -# define Z900_G5_EX_D .L_Z900_G5_18-.L_Z900_G5_19 - lr %r3,%r4 - srl %r3,8 -#endif /* ! defined __s390x__ */ - LTGR %r3,%r3 - jne .L_Z900_G5_14 -.L_Z900_G5_3: - ex %r4,Z900_G5_EX_D(%r5) -.L_Z900_G5_4: + ltgr %r3,%r3 + jne .L_Z900_14 +.L_Z900_3: + ex %r4,0(%r5) +.L_Z900_4: br %r14 -.L_Z900_G5_14: +.L_Z900_14: mvc 1(256,%r1),0(%r1) la %r1,256(%r1) - BRCTG %r3,.L_Z900_G5_14 - j .L_Z900_G5_3 -.L_Z900_G5_18: + brctg %r3,.L_Z900_14 + j .L_Z900_3 +.L_Z900_18: mvc 1(1,%r1),0(%r1) -END(MEMSET_Z900_G5) -# undef LTGR -# undef CGHI -# undef LGR -# undef AGHI -# undef BRCTG -#endif /* HAVE_MEMSET_Z900_G5 */ +END(MEMSET_Z900) +#endif /* HAVE_MEMSET_Z900 */ #if HAVE_MEMSET_Z10 ENTRY(MEMSET_Z10) .L_Z10_start: .machine "z10" - .machinemode "zarch_nohighgprs" -# if !defined __s390x__ - llgfr %r4,%r4 -# endif /* !defined __s390x__ */ cgije %r4,0,.L_Z10_4 stc %r3,0(%r2) lgr %r1,%r2 @@ -126,10 +90,6 @@ END(MEMSET_Z10) ENTRY(MEMSET_Z196) .L_Z196_start: .machine "z196" - .machinemode "zarch_nohighgprs" -# if !defined __s390x__ - llgfr %r4,%r4 -# endif /* !defined __s390x__ */ clgfi %r4,1 jl .L_Z196_4 # n == 0 stc %r3,0(%r2) diff --git a/sysdeps/s390/memset.c b/sysdeps/s390/memset.c index 1eb6dcb007..25ed9af660 100644 --- a/sysdeps/s390/memset.c +++ b/sysdeps/s390/memset.c @@ -23,8 +23,8 @@ # undef memset # include -# if HAVE_MEMSET_Z900_G5 -extern __typeof (__redirect_memset) MEMSET_Z900_G5 attribute_hidden; +# if HAVE_MEMSET_Z900 +extern __typeof (__redirect_memset) MEMSET_Z900 attribute_hidden; # endif # if HAVE_MEMSET_Z10 diff --git a/sysdeps/s390/multiarch/8bit-generic.c b/sysdeps/s390/multiarch/8bit-generic.c index 10edde6641..8224cec557 100644 --- a/sysdeps/s390/multiarch/8bit-generic.c +++ b/sysdeps/s390/multiarch/8bit-generic.c @@ -88,7 +88,6 @@ loop_count = 16; \ __asm__ volatile (".machine push\n\t" \ ".machine \"z13\"\n\t" \ - ".machinemode \"zarch_nohighgprs\"\n\t" \ " sllk %[R_I],%[R_LI],4\n\t" \ " ahi %[R_I],-1\n\t" \ /* Execute mvc and tr with correct len. */ \ @@ -226,7 +225,6 @@ (ch == 0 is no error, but is handled differently) */ \ __asm__ volatile (".machine push\n\t" \ ".machine \"z13\"\n\t" \ - ".machinemode \"zarch_nohighgprs\"\n\t" \ /* Setup to check for ch >= max. */ \ " vzero %%v21\n\t" \ " vleih %%v21,-24576,0\n\t" /* element 0: > */ \ @@ -288,7 +286,6 @@ check for errors (from_ucs4[ch] == 0). */ \ __asm__ volatile (".machine push\n\t" \ ".machine \"z13\"\n\t" \ - ".machinemode \"zarch_nohighgprs\"\n\t" \ " sllk %[R_I],%[R_LI],4\n\t" \ " ahi %[R_I],-1\n\t" \ /* Execute tr with correct len. */ \ diff --git a/sysdeps/s390/multiarch/gconv_simple.c b/sysdeps/s390/multiarch/gconv_simple.c index a6548d6d41..35a5699404 100644 --- a/sysdeps/s390/multiarch/gconv_simple.c +++ b/sysdeps/s390/multiarch/gconv_simple.c @@ -77,11 +77,6 @@ # undef __gconv_transform_internal_ucs2reverse /* Now define the functions with vector support. */ -# if defined __s390x__ -# define CONVERT_32BIT_SIZE_T(REG) -# else -# define CONVERT_32BIT_SIZE_T(REG) "llgfr %" #REG ",%" #REG "\n\t" -# endif /* Convert from ISO 646-IRV to the internal (UCS4-like) format. */ # define DEFINE_INIT 0 @@ -125,8 +120,6 @@ size_t loop_count, tmp; \ __asm__ volatile (".machine push\n\t" \ ".machine \"z13\"\n\t" \ - ".machinemode \"zarch_nohighgprs\"\n\t" \ - CONVERT_32BIT_SIZE_T ([R_LEN]) \ " vrepib %%v30,0x7f\n\t" /* For compare > 0x7f. */ \ " srlg %[R_LI],%[R_LEN],4\n\t" \ " vrepib %%v31,0x20\n\t" \ @@ -257,8 +250,6 @@ ICONV_VX_IFUNC (__gconv_transform_ascii_internal) size_t loop_count, tmp, tmp2; \ __asm__ volatile (".machine push\n\t" \ ".machine \"z13\"\n\t" \ - ".machinemode \"zarch_nohighgprs\"\n\t" \ - CONVERT_32BIT_SIZE_T ([R_LEN]) \ /* Setup to check for ch > 0x7f. */ \ " vzero %%v21\n\t" \ " srlg %[R_LI],%[R_LEN],4\n\t" \ @@ -414,8 +405,6 @@ ICONV_VX_NAME (internal_ucs4le_loop) (struct __gconv_step *step, size_t loop_count; __asm__ volatile (".machine push\n\t" ".machine \"z13\"\n\t" - ".machinemode \"zarch_nohighgprs\"\n\t" - CONVERT_32BIT_SIZE_T ([R_LEN]) " bras %[R_LI],1f\n\t" /* Vector permute mask: */ " .long 0x03020100,0x7060504,0x0B0A0908,0x0F0E0D0C\n\t" @@ -517,8 +506,6 @@ ICONV_VX_NAME (ucs4_internal_loop) (struct __gconv_step *step, len = MIN (inend - inptr, outend - outptr) / 4; __asm__ volatile (".machine push\n\t" ".machine \"z13\"\n\t" - ".machinemode \"zarch_nohighgprs\"\n\t" - CONVERT_32BIT_SIZE_T ([R_LEN]) /* Setup to check for ch > 0x7fffffff. */ " larl %[R_LI],9f\n\t" " vlm %%v20,%%v21,0(%[R_LI])\n\t" @@ -644,8 +631,6 @@ ICONV_VX_NAME (ucs4le_internal_loop) (struct __gconv_step *step, len = MIN (inend - inptr, outend - outptr) / 4; __asm__ volatile (".machine push\n\t" ".machine \"z13\"\n\t" - ".machinemode \"zarch_nohighgprs\"\n\t" - CONVERT_32BIT_SIZE_T ([R_LEN]) /* Setup to check for ch > 0x7fffffff. */ " larl %[R_LI],9f\n\t" " vlm %%v20,%%v22,0(%[R_LI])\n\t" @@ -783,8 +768,6 @@ ICONV_VX_IFUNC (__gconv_transform_ucs4le_internal) len = MIN ((inend - inptr) / 2, (outend - outptr) / 4); \ __asm__ volatile (".machine push\n\t" \ ".machine \"z13\"\n\t" \ - ".machinemode \"zarch_nohighgprs\"\n\t" \ - CONVERT_32BIT_SIZE_T ([R_LEN]) \ /* Setup to check for ch >= 0xd800 && ch < 0xe000. */ \ " larl %[R_TMP],9f\n\t" \ " vlm %%v20,%%v21,0(%[R_TMP])\n\t" \ @@ -907,8 +890,6 @@ ICONV_VX_IFUNC (__gconv_transform_ucs2_internal) len = MIN ((inend - inptr) / 2, (outend - outptr) / 4); \ __asm__ volatile (".machine push\n\t" \ ".machine \"z13\"\n\t" \ - ".machinemode \"zarch_nohighgprs\"\n\t" \ - CONVERT_32BIT_SIZE_T ([R_LEN]) \ /* Setup to check for ch >= 0xd800 && ch < 0xe000. */ \ " larl %[R_TMP],9f\n\t" \ " vlm %%v20,%%v22,0(%[R_TMP])\n\t" \ @@ -1051,8 +1032,6 @@ ICONV_VX_IFUNC (__gconv_transform_ucs2reverse_internal) loop_count = (outend - outptr) / 16; \ __asm__ volatile (".machine push\n\t" \ ".machine \"z13\"\n\t" \ - ".machinemode \"zarch_nohighgprs\"\n\t" \ - CONVERT_32BIT_SIZE_T ([R_LI]) \ " larl %[R_I],3f\n\t" \ " vlm %%v20,%%v23,0(%[R_I])\n\t" \ "0: \n\t" \ @@ -1183,8 +1162,6 @@ ICONV_VX_IFUNC (__gconv_transform_internal_ucs2) loop_count = (outend - outptr) / 16; \ __asm__ volatile (".machine push\n\t" \ ".machine \"z13\"\n\t" \ - ".machinemode \"zarch_nohighgprs\"\n\t" \ - CONVERT_32BIT_SIZE_T ([R_LI]) \ " larl %[R_I],3f\n\t" \ " vlm %%v20,%%v24,0(%[R_I])\n\t" \ "0: \n\t" \ diff --git a/sysdeps/s390/multiarch/ifunc-impl-list.c b/sysdeps/s390/multiarch/ifunc-impl-list.c index e948b97530..6e9799891a 100644 --- a/sysdeps/s390/multiarch/ifunc-impl-list.c +++ b/sysdeps/s390/multiarch/ifunc-impl-list.c @@ -1,4 +1,4 @@ -/* Enumerate available IFUNC implementations of a function. s390/s390x version. +/* Enumerate available IFUNC implementations of a function. s390x version. Copyright (C) 2015-2026 Free Software Foundation, Inc. This file is part of the GNU C Library. @@ -94,8 +94,8 @@ __libc_ifunc_impl_list (const char *name, struct libc_ifunc_impl *array, IFUNC_IMPL_ADD (array, i, memset, S390_IS_Z10 (stfle_bits), MEMSET_Z10) # endif -# if HAVE_MEMSET_Z900_G5 - IFUNC_IMPL_ADD (array, i, memset, 1, MEMSET_Z900_G5) +# if HAVE_MEMSET_Z900 + IFUNC_IMPL_ADD (array, i, memset, 1, MEMSET_Z900) # endif ) #endif /* HAVE_MEMSET_IFUNC */ @@ -110,8 +110,8 @@ __libc_ifunc_impl_list (const char *name, struct libc_ifunc_impl *array, IFUNC_IMPL_ADD (array, i, memcmp, S390_IS_Z10 (stfle_bits), MEMCMP_Z10) # endif -# if HAVE_MEMCMP_Z900_G5 - IFUNC_IMPL_ADD (array, i, memcmp, 1, MEMCMP_Z900_G5) +# if HAVE_MEMCMP_Z900 + IFUNC_IMPL_ADD (array, i, memcmp, 1, MEMCMP_Z900) # endif ) #endif /* HAVE_MEMCMP_IFUNC */ @@ -126,8 +126,8 @@ __libc_ifunc_impl_list (const char *name, struct libc_ifunc_impl *array, IFUNC_IMPL_ADD (array, i, memcpy, S390_IS_Z10 (stfle_bits), MEMCPY_Z10) # endif -# if HAVE_MEMCPY_Z900_G5 - IFUNC_IMPL_ADD (array, i, memcpy, 1, MEMCPY_Z900_G5) +# if HAVE_MEMCPY_Z900 + IFUNC_IMPL_ADD (array, i, memcpy, 1, MEMCPY_Z900) # endif ) @@ -140,8 +140,8 @@ __libc_ifunc_impl_list (const char *name, struct libc_ifunc_impl *array, IFUNC_IMPL_ADD (array, i, mempcpy, S390_IS_Z10 (stfle_bits), MEMPCPY_Z10) # endif -# if HAVE_MEMCPY_Z900_G5 - IFUNC_IMPL_ADD (array, i, mempcpy, 1, MEMPCPY_Z900_G5) +# if HAVE_MEMCPY_Z900 + IFUNC_IMPL_ADD (array, i, mempcpy, 1, MEMPCPY_Z900) # endif ) #endif /* HAVE_MEMCPY_IFUNC */ @@ -226,8 +226,8 @@ __libc_ifunc_impl_list (const char *name, struct libc_ifunc_impl *array, IFUNC_IMPL_ADD (array, i, strcpy, dl_hwcap & HWCAP_S390_VX, STRCPY_Z13) # endif -# if HAVE_STRCPY_Z900_G5 - IFUNC_IMPL_ADD (array, i, strcpy, 1, STRCPY_Z900_G5) +# if HAVE_STRCPY_Z900 + IFUNC_IMPL_ADD (array, i, strcpy, 1, STRCPY_Z900) # endif ) #endif /* HAVE_STRCPY_IFUNC */ @@ -250,8 +250,8 @@ __libc_ifunc_impl_list (const char *name, struct libc_ifunc_impl *array, IFUNC_IMPL_ADD (array, i, strncpy, dl_hwcap & HWCAP_S390_VX, STRNCPY_Z13) # endif -# if HAVE_STRNCPY_Z900_G5 - IFUNC_IMPL_ADD (array, i, strncpy, 1, STRNCPY_Z900_G5) +# if HAVE_STRNCPY_Z900 + IFUNC_IMPL_ADD (array, i, strncpy, 1, STRNCPY_Z900) # endif ) #endif /* HAVE_STRNCPY_IFUNC */ @@ -298,8 +298,8 @@ __libc_ifunc_impl_list (const char *name, struct libc_ifunc_impl *array, IFUNC_IMPL_ADD (array, i, strcmp, dl_hwcap & HWCAP_S390_VX, STRCMP_Z13) # endif -# if HAVE_STRCMP_Z900_G5 - IFUNC_IMPL_ADD (array, i, strcmp, 1, STRCMP_Z900_G5) +# if HAVE_STRCMP_Z900 + IFUNC_IMPL_ADD (array, i, strcmp, 1, STRCMP_Z900) # endif ) #endif /* HAVE_STRCMP_IFUNC */ @@ -394,8 +394,8 @@ __libc_ifunc_impl_list (const char *name, struct libc_ifunc_impl *array, IFUNC_IMPL_ADD (array, i, memchr, dl_hwcap & HWCAP_S390_VX, MEMCHR_Z13) # endif -# if HAVE_MEMCHR_Z900_G5 - IFUNC_IMPL_ADD (array, i, memchr, 1, MEMCHR_Z900_G5) +# if HAVE_MEMCHR_Z900 + IFUNC_IMPL_ADD (array, i, memchr, 1, MEMCHR_Z900) # endif ) #endif /* HAVE_MEMCHR_IFUNC */ diff --git a/sysdeps/s390/multiarch/ifunc-resolve.h b/sysdeps/s390/multiarch/ifunc-resolve.h index c6cb8fa97c..a66669e1d7 100644 --- a/sysdeps/s390/multiarch/ifunc-resolve.h +++ b/sysdeps/s390/multiarch/ifunc-resolve.h @@ -1,5 +1,5 @@ /* IFUNC resolver function for CPU specific functions. - 32/64 bit S/390 version. + 64 bit S/390 version. Copyright (C) 2015-2026 Free Software Foundation, Inc. This file is part of the GNU C Library. diff --git a/sysdeps/s390/multiarch/utf8-utf16-z9.c b/sysdeps/s390/multiarch/utf8-utf16-z9.c index dbc2b5b976..2153813957 100644 --- a/sysdeps/s390/multiarch/utf8-utf16-z9.c +++ b/sysdeps/s390/multiarch/utf8-utf16-z9.c @@ -34,9 +34,7 @@ strong_alias (SINGLE_NAME (TO_LOOP_DEFAULT), SINGLE_NAME (TO_LOOP)) s390_libc_ifunc_expr (FROM_LOOP_DEFAULT, FROM_LOOP, (HAVE_FROM_VX && (hwcap & HWCAP_S390_VX)) ? FROM_LOOP_VX - : (HAVE_FROM_CU && (hwcap & HWCAP_S390_ZARCH - && hwcap & HWCAP_S390_HIGH_GPRS - && hwcap & HWCAP_S390_ETF3EH)) + : (HAVE_FROM_CU && (hwcap & HWCAP_S390_ETF3EH)) ? FROM_LOOP_CU : FROM_LOOP_DEFAULT); diff --git a/sysdeps/s390/multiarch/utf8-utf32-z9.c b/sysdeps/s390/multiarch/utf8-utf32-z9.c index 06d7e66f9e..94f0767832 100644 --- a/sysdeps/s390/multiarch/utf8-utf32-z9.c +++ b/sysdeps/s390/multiarch/utf8-utf32-z9.c @@ -34,9 +34,7 @@ strong_alias (SINGLE_NAME (TO_LOOP_DEFAULT), SINGLE_NAME (TO_LOOP)) s390_libc_ifunc_expr (FROM_LOOP_DEFAULT, FROM_LOOP, (HAVE_FROM_VX && (hwcap & HWCAP_S390_VX)) ? FROM_LOOP_VX - : (HAVE_FROM_CU && (hwcap & HWCAP_S390_ZARCH - && hwcap & HWCAP_S390_HIGH_GPRS - && hwcap & HWCAP_S390_ETF3EH)) + : (HAVE_FROM_CU && (hwcap & HWCAP_S390_ETF3EH)) ? FROM_LOOP_CU : FROM_LOOP_DEFAULT); diff --git a/sysdeps/s390/nptl/bits/struct_mutex.h b/sysdeps/s390/nptl/bits/struct_mutex.h index 571265267c..ff2d251986 100644 --- a/sysdeps/s390/nptl/bits/struct_mutex.h +++ b/sysdeps/s390/nptl/bits/struct_mutex.h @@ -24,39 +24,17 @@ struct __pthread_mutex_s int __lock; unsigned int __count; int __owner; -#if __WORDSIZE == 64 unsigned int __nusers; -#endif /* KIND must stay at this position in the structure to maintain binary compatibility with static initializers. */ int __kind; -#if __WORDSIZE == 64 short __spins; short __glibc_reserved; __pthread_list_t __list; # define __PTHREAD_MUTEX_HAVE_PREV 1 -#else - unsigned int __nusers; - __extension__ union - { - struct - { - short __data_spins; - short __data_unused; - } __data; -# define __spins __data.__data_spins - __pthread_slist_t __list; - }; -# define __PTHREAD_MUTEX_HAVE_PREV 0 -#endif }; -#if __WORDSIZE == 64 -# define __PTHREAD_MUTEX_INITIALIZER(__kind) \ +#define __PTHREAD_MUTEX_INITIALIZER(__kind) \ 0, 0, 0, 0, __kind, 0, 0, { 0, 0 } -#else -# define __PTHREAD_MUTEX_INITIALIZER(__kind) \ - 0, 0, 0, __kind, 0, { { 0, 0 } } -#endif #endif diff --git a/sysdeps/s390/nptl/bits/struct_rwlock.h b/sysdeps/s390/nptl/bits/struct_rwlock.h index ee49a9632d..ed1235b061 100644 --- a/sysdeps/s390/nptl/bits/struct_rwlock.h +++ b/sysdeps/s390/nptl/bits/struct_rwlock.h @@ -28,7 +28,6 @@ struct __pthread_rwlock_arch_t unsigned int __writers_futex; unsigned int __pad3; unsigned int __pad4; -#if __WORDSIZE == 64 int __cur_writer; int __shared; unsigned long int __pad1; @@ -36,23 +35,9 @@ struct __pthread_rwlock_arch_t /* FLAGS must stay at this position in the structure to maintain binary compatibility. */ unsigned int __flags; -# else - unsigned char __pad1; - unsigned char __pad2; - unsigned char __shared; - /* FLAGS must stay at this position in the structure to maintain - binary compatibility. */ - unsigned char __flags; - int __cur_writer; -#endif }; -#if __WORDSIZE == 64 -# define __PTHREAD_RWLOCK_INITIALIZER(__flags) \ +#define __PTHREAD_RWLOCK_INITIALIZER(__flags) \ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, __flags -#else -# define __PTHREAD_RWLOCK_INITIALIZER(__flags) \ - 0, 0, 0, 0, 0, 0, 0, 0, 0, __flags, 0 -#endif #endif diff --git a/sysdeps/s390/nptl/pthread-offsets.h b/sysdeps/s390/nptl/pthread-offsets.h index 9e2112120b..f8e4469f7e 100644 --- a/sysdeps/s390/nptl/pthread-offsets.h +++ b/sysdeps/s390/nptl/pthread-offsets.h @@ -1,13 +1,2 @@ -#include - -#if __WORDSIZE == 64 -# define __PTHREAD_MUTEX_KIND_OFFSET 16 -#else -# define __PTHREAD_MUTEX_KIND_OFFSET 12 -#endif - -#if __WORDSIZE == 64 -# define __PTHREAD_RWLOCK_FLAGS_OFFSET 48 -#else -# define __PTHREAD_RWLOCK_FLAGS_OFFSET 27 -#endif +#define __PTHREAD_MUTEX_KIND_OFFSET 16 +#define __PTHREAD_RWLOCK_FLAGS_OFFSET 48 diff --git a/sysdeps/s390/nptl/tls.h b/sysdeps/s390/nptl/tls.h index 9870e54327..de7e9c6482 100644 --- a/sysdeps/s390/nptl/tls.h +++ b/sysdeps/s390/nptl/tls.h @@ -44,10 +44,6 @@ typedef struct void *__private_ss; } tcbhead_t; -# ifndef __s390x__ -# define TLS_MULTIPLE_THREADS_IN_TCB 1 -# endif - #else /* __ASSEMBLER__ */ # include #endif diff --git a/sysdeps/s390/rawmemchr-vx.S b/sysdeps/s390/rawmemchr-vx.S index e74c63f6e4..4bf4e4bdda 100644 --- a/sysdeps/s390/rawmemchr-vx.S +++ b/sysdeps/s390/rawmemchr-vx.S @@ -1,4 +1,4 @@ -/* Vector optimized 32/64 bit S/390 version of rawmemchr. +/* Vector optimized 64 bit S/390 version of rawmemchr. Copyright (C) 2015-2026 Free Software Foundation, Inc. This file is part of the GNU C Library. @@ -41,7 +41,6 @@ */ ENTRY(RAWMEMCHR_Z13) .machine "z13" - .machinemode "zarch_nohighgprs" vlbb %v16,0(%r2),6 /* Load s until next 4k-byte boundary. */ lcbb %r1,0(%r2),6 /* Get bytes to 4k-byte boundary or 16. */ diff --git a/sysdeps/s390/s390-64/bits/wordsize.h b/sysdeps/s390/s390-64/bits/wordsize.h index 00e88b0628..b263c3141b 100644 --- a/sysdeps/s390/s390-64/bits/wordsize.h +++ b/sysdeps/s390/s390-64/bits/wordsize.h @@ -1,11 +1,4 @@ /* Determine the wordsize from the preprocessor defines. */ -#if defined __s390x__ -# define __WORDSIZE 64 -#else -# define __WORDSIZE 32 -# define __WORDSIZE32_SIZE_ULONG 1 -# define __WORDSIZE32_PTRDIFF_LONG 0 -#endif - -#define __WORDSIZE_TIME64_COMPAT32 0 +#define __WORDSIZE 64 +#define __WORDSIZE_TIME64_COMPAT32 0 diff --git a/sysdeps/s390/s390-64/stackguard-macros.h b/sysdeps/s390/s390-64/stackguard-macros.h index 2c97d3824f..3671c7cd7a 100644 --- a/sysdeps/s390/s390-64/stackguard-macros.h +++ b/sysdeps/s390/s390-64/stackguard-macros.h @@ -3,7 +3,7 @@ #define STACK_CHK_GUARD \ ({ uintptr_t x; __asm__ ("ear %0,%%a0; sllg %0,%0,32; ear %0,%%a1; lg %0,0x28(%0)" : "=a" (x)); x; }) -/* On s390/s390x there is no unique pointer guard, instead we use the +/* On s390x there is no unique pointer guard, instead we use the same value as the stack guard. */ #define POINTER_CHK_GUARD \ ({ \ diff --git a/sysdeps/s390/s390-64/strncpy-z900.S b/sysdeps/s390/s390-64/strncpy-z900.S index 579e121731..6d954cf402 100644 --- a/sysdeps/s390/s390-64/strncpy-z900.S +++ b/sysdeps/s390/s390-64/strncpy-z900.S @@ -26,8 +26,8 @@ #include "sysdep.h" #include "asm-syntax.h" -#if HAVE_STRNCPY_Z900_G5 -ENTRY(STRNCPY_Z900_G5) +#if HAVE_STRNCPY_Z900 +ENTRY(STRNCPY_Z900) .text stg %r2,48(%r15) # save dst pointer slgr %r2,%r3 # %r3 points to src, %r2+%r3 to dst @@ -87,13 +87,13 @@ ENTRY(STRNCPY_Z900_G5) jo .L13 .Lexit: lg %r2,48(%r15) # return dst pointer br %r14 -END(STRNCPY_Z900_G5) +END(STRNCPY_Z900) # if ! HAVE_STRNCPY_IFUNC -strong_alias (STRNCPY_Z900_G5, strncpy) +strong_alias (STRNCPY_Z900, strncpy) # endif # if defined SHARED && IS_IN (libc) -strong_alias (STRNCPY_Z900_G5, __GI_strncpy) +strong_alias (STRNCPY_Z900, __GI_strncpy) # endif #endif diff --git a/sysdeps/s390/sotruss-lib.c b/sysdeps/s390/sotruss-lib.c index 4b0194ab0a..ff6ebf7a43 100644 --- a/sysdeps/s390/sotruss-lib.c +++ b/sysdeps/s390/sotruss-lib.c @@ -22,24 +22,12 @@ #include -#if __ELF_NATIVE_CLASS == 32 -# define la_s390_gnu_pltenter la_s390_32_gnu_pltenter -# define la_s390_gnu_pltexit la_s390_32_gnu_pltexit -# define La_s390_regs La_s390_32_regs -# define La_s390_retval La_s390_32_retval -#else -# define la_s390_gnu_pltenter la_s390_64_gnu_pltenter -# define la_s390_gnu_pltexit la_s390_64_gnu_pltexit -# define La_s390_regs La_s390_64_regs -# define La_s390_retval La_s390_64_retval -#endif - -ElfW(Addr) -la_s390_gnu_pltenter (ElfW(Sym) *sym, - unsigned int ndx __attribute__ ((unused)), - uintptr_t *refcook, uintptr_t *defcook, - La_s390_regs *regs, unsigned int *flags, - const char *symname, long int *framesizep) +Elf64_Addr +la_s390_64_gnu_pltenter (Elf64_Sym *sym, + unsigned int ndx __attribute__ ((unused)), + uintptr_t *refcook, uintptr_t *defcook, + La_s390_64_regs *regs, unsigned int *flags, + const char *symname, long int *framesizep) { print_enter (refcook, defcook, symname, regs->lr_r2, regs->lr_r3, regs->lr_r4, *flags); @@ -51,10 +39,11 @@ la_s390_gnu_pltenter (ElfW(Sym) *sym, } unsigned int -la_s390_gnu_pltexit (ElfW(Sym) *sym, unsigned int ndx, uintptr_t *refcook, - uintptr_t *defcook, - const struct La_s390_regs *inregs, - struct La_s390_retval *outregs, const char *symname) +la_s390_64_gnu_pltexit (Elf64_Sym *sym, unsigned int ndx, uintptr_t *refcook, + uintptr_t *defcook, + const struct La_s390_64_regs *inregs, + struct La_s390_64_retval *outregs, + const char *symname) { print_exit (refcook, defcook, symname, outregs->lrv_r2); diff --git a/sysdeps/s390/stpcpy-vx.S b/sysdeps/s390/stpcpy-vx.S index 02c8e45617..8184fd3bc4 100644 --- a/sysdeps/s390/stpcpy-vx.S +++ b/sysdeps/s390/stpcpy-vx.S @@ -1,4 +1,4 @@ -/* Vector optimized 32/64 bit S/390 version of stpcpy. +/* Vector optimized 64 bit S/390 version of stpcpy. Copyright (C) 2015-2026 Free Software Foundation, Inc. This file is part of the GNU C Library. @@ -40,7 +40,6 @@ */ ENTRY(STPCPY_Z13) .machine "z13" - .machinemode "zarch_nohighgprs" vlbb %v16,0(%r3),6 /* Load s until next 4k-byte boundary. */ lcbb %r1,0(%r3),6 /* Get bytes to 4k-byte boundary or 16. */ diff --git a/sysdeps/s390/stpncpy-vx.S b/sysdeps/s390/stpncpy-vx.S index 739bf7ebce..46a82e71b0 100644 --- a/sysdeps/s390/stpncpy-vx.S +++ b/sysdeps/s390/stpncpy-vx.S @@ -1,4 +1,4 @@ -/* Vector optimized 32/64 bit S/390 version of stpncpy. +/* Vector optimized 64 bit S/390 version of stpncpy. Copyright (C) 2015-2026 Free Software Foundation, Inc. This file is part of the GNU C Library. @@ -42,11 +42,6 @@ */ ENTRY(STPNCPY_Z13) .machine "z13" - .machinemode "zarch_nohighgprs" - -# if !defined __s390x__ - llgfr %r4,%r4 -# endif /* !defined __s390x__ */ clgfi %r4,0 ber %r14 /* Nothing to do, if n == 0. */ diff --git a/sysdeps/s390/strcat-vx.S b/sysdeps/s390/strcat-vx.S index 434c78ca4a..0f36c8de8a 100644 --- a/sysdeps/s390/strcat-vx.S +++ b/sysdeps/s390/strcat-vx.S @@ -1,4 +1,4 @@ -/* Vector optimized 32/64 bit S/390 version of strcat. +/* Vector optimized 64 bit S/390 version of strcat. Copyright (C) 2015-2026 Free Software Foundation, Inc. This file is part of the GNU C Library. @@ -40,7 +40,6 @@ */ ENTRY(STRCAT_Z13) .machine "z13" - .machinemode "zarch_nohighgprs" lgr %r0,%r2 /* Save destination pointer for return. */ diff --git a/sysdeps/s390/strchr-vx.S b/sysdeps/s390/strchr-vx.S index f263f51bb7..4544c85592 100644 --- a/sysdeps/s390/strchr-vx.S +++ b/sysdeps/s390/strchr-vx.S @@ -1,4 +1,4 @@ -/* Vector optimized 32/64 bit S/390 version of strchr. +/* Vector optimized 64 bit S/390 version of strchr. Copyright (C) 2015-2026 Free Software Foundation, Inc. This file is part of the GNU C Library. @@ -40,7 +40,6 @@ */ ENTRY(STRCHR_Z13) .machine "z13" - .machinemode "zarch_nohighgprs" vlbb %v16,0(%r2),6 /* Load s until next 4k-byte boundary. */ lcbb %r1,0(%r2),6 /* Get bytes to 4k-byte boundary or 16. */ diff --git a/sysdeps/s390/strchrnul-vx.S b/sysdeps/s390/strchrnul-vx.S index 4a648190a5..485be32b04 100644 --- a/sysdeps/s390/strchrnul-vx.S +++ b/sysdeps/s390/strchrnul-vx.S @@ -1,4 +1,4 @@ -/* Vector optimized 32/64 bit S/390 version of strchrnul. +/* Vector optimized 64 bit S/390 version of strchrnul. Copyright (C) 2015-2026 Free Software Foundation, Inc. This file is part of the GNU C Library. @@ -39,7 +39,6 @@ */ ENTRY(STRCHRNUL_Z13) .machine "z13" - .machinemode "zarch_nohighgprs" vlbb %v16,0(%r2),6 /* Load s until next 4k-byte boundary. */ lcbb %r1,0(%r2),6 /* Get bytes to 4k-byte boundary or 16. */ diff --git a/sysdeps/s390/strcmp-vx.S b/sysdeps/s390/strcmp-vx.S index fda693002d..2fe013cb82 100644 --- a/sysdeps/s390/strcmp-vx.S +++ b/sysdeps/s390/strcmp-vx.S @@ -1,4 +1,4 @@ -/* Vector optimized 32/64 bit S/390 version of strcmp. +/* Vector optimized 64 bit S/390 version of strcmp. Copyright (C) 2015-2026 Free Software Foundation, Inc. This file is part of the GNU C Library. @@ -39,7 +39,6 @@ */ ENTRY(STRCMP_Z13) .machine "z13" - .machinemode "zarch_nohighgprs" lghi %r5,0 /* current_len = 0. */ @@ -113,7 +112,7 @@ END(STRCMP_Z13) strong_alias (STRCMP_Z13, strcmp) # endif -# if ! HAVE_STRCMP_Z900_G5 && defined SHARED && IS_IN (libc) +# if ! HAVE_STRCMP_Z900 && defined SHARED && IS_IN (libc) strong_alias (STRCMP_Z13, __GI_strcmp) # endif #endif diff --git a/sysdeps/s390/strcmp-z900.S b/sysdeps/s390/strcmp-z900.S index 2404cdc3c0..07ad1fbdf5 100644 --- a/sysdeps/s390/strcmp-z900.S +++ b/sysdeps/s390/strcmp-z900.S @@ -24,35 +24,27 @@ #include "sysdep.h" #include "asm-syntax.h" -#if HAVE_STRCMP_Z900_G5 -# if defined __s390x__ -# define SLGR slgr -# define LGHI lghi -# else -# define SLGR slr -# define LGHI lhi -# endif /* ! defined __s390x__ */ - +#if HAVE_STRCMP_Z900 .text -ENTRY(STRCMP_Z900_G5) - SLGR %r0,%r0 +ENTRY(STRCMP_Z900) + slgr %r0,%r0 0: clst %r2,%r3 jo 0b jp 1f jm 2f - SLGR %r2,%r2 + slgr %r2,%r2 br %r14 -1: LGHI %r2,1 +1: lghi %r2,1 br %r14 -2: LGHI %r2,-1 +2: lghi %r2,-1 br %r14 -END(STRCMP_Z900_G5) +END(STRCMP_Z900) # if ! HAVE_STRCMP_IFUNC -strong_alias (STRCMP_Z900_G5, strcmp) +strong_alias (STRCMP_Z900, strcmp) # endif # if defined SHARED && IS_IN (libc) -strong_alias (STRCMP_Z900_G5, __GI_strcmp) +strong_alias (STRCMP_Z900, __GI_strcmp) # endif #endif diff --git a/sysdeps/s390/strcmp.c b/sysdeps/s390/strcmp.c index 2dbffb13c9..9ed3abee19 100644 --- a/sysdeps/s390/strcmp.c +++ b/sysdeps/s390/strcmp.c @@ -26,8 +26,8 @@ # include # undef strcmp -# if HAVE_STRCMP_Z900_G5 -extern __typeof (__redirect_strcmp) STRCMP_Z900_G5 attribute_hidden; +# if HAVE_STRCMP_Z900 +extern __typeof (__redirect_strcmp) STRCMP_Z900 attribute_hidden; # endif # if HAVE_STRCMP_Z13 diff --git a/sysdeps/s390/strcpy-vx.S b/sysdeps/s390/strcpy-vx.S index 2ddc96ed0b..7cc6dd8f68 100644 --- a/sysdeps/s390/strcpy-vx.S +++ b/sysdeps/s390/strcpy-vx.S @@ -1,4 +1,4 @@ -/* Vector optimized 32/64 bit S/390 version of strcpy. +/* Vector optimized 64 bit S/390 version of strcpy. Copyright (C) 2015-2026 Free Software Foundation, Inc. This file is part of the GNU C Library. @@ -38,7 +38,6 @@ */ ENTRY(STRCPY_Z13) .machine "z13" - .machinemode "zarch_nohighgprs" vlbb %v16,0(%r3),6 /* Load s until next 4k-byte boundary. */ lcbb %r1,0(%r3),6 /* Get bytes to 4k-byte boundary or 16. */ @@ -103,7 +102,7 @@ END(STRCPY_Z13) strong_alias (STRCPY_Z13, strcpy) # endif -# if ! HAVE_STRCPY_Z900_G5 && defined SHARED && IS_IN (libc) +# if ! HAVE_STRCPY_Z900 && defined SHARED && IS_IN (libc) strong_alias (STRCPY_Z13, __GI_strcpy) # endif #endif diff --git a/sysdeps/s390/strcpy-z900.S b/sysdeps/s390/strcpy-z900.S index 39f7238152..a34cb56b9a 100644 --- a/sysdeps/s390/strcpy-z900.S +++ b/sysdeps/s390/strcpy-z900.S @@ -1,4 +1,4 @@ -/* strcpy - copy a string from source to destination. 64/31 bit S/390 version. +/* strcpy - copy a string from source to destination. 64 bit S/390 version. Copyright (C) 2001-2026 Free Software Foundation, Inc. This file is part of the GNU C Library. @@ -24,32 +24,21 @@ #include "sysdep.h" #include "asm-syntax.h" -#if HAVE_STRCPY_Z900_G5 -# if defined __s390x__ -# define SLGR slgr -# define LGR lgr -# else -# define SLGR slr -# define LGR lr -# endif /* ! defined __s390x__ */ - - .text -ENTRY(STRCPY_Z900_G5) - SLGR %r0,%r0 - LGR %r1,%r2 +#if HAVE_STRCPY_Z900 + .text +ENTRY(STRCPY_Z900) + slgr %r0,%r0 + lgr %r1,%r2 0: mvst %r1,%r3 jo 0b br %r14 -END(STRCPY_Z900_G5) - -# undef SLGR -# undef LGR +END(STRCPY_Z900) # if ! HAVE_STRCPY_IFUNC -strong_alias (STRCPY_Z900_G5, strcpy) +strong_alias (STRCPY_Z900, strcpy) # endif # if defined SHARED && IS_IN (libc) -strong_alias (STRCPY_Z900_G5, __GI_strcpy) +strong_alias (STRCPY_Z900, __GI_strcpy) # endif #endif diff --git a/sysdeps/s390/strcpy.c b/sysdeps/s390/strcpy.c index a307a5f370..daede82f3f 100644 --- a/sysdeps/s390/strcpy.c +++ b/sysdeps/s390/strcpy.c @@ -24,8 +24,8 @@ # undef strcpy # include -# if HAVE_STRCPY_Z900_G5 -extern __typeof (__redirect_strcpy) STRCPY_Z900_G5 attribute_hidden; +# if HAVE_STRCPY_Z900 +extern __typeof (__redirect_strcpy) STRCPY_Z900 attribute_hidden; # endif # if HAVE_STRCPY_Z13 diff --git a/sysdeps/s390/strcspn-vx.S b/sysdeps/s390/strcspn-vx.S index 7a825131dd..e28f738d6c 100644 --- a/sysdeps/s390/strcspn-vx.S +++ b/sysdeps/s390/strcspn-vx.S @@ -1,4 +1,4 @@ -/* Vector optimized 32/64 bit S/390 version of strcspn. +/* Vector optimized 64 bit S/390 version of strcspn. Copyright (C) 2015-2026 Free Software Foundation, Inc. This file is part of the GNU C Library. @@ -62,7 +62,6 @@ */ ENTRY(STRCSPN_Z13) .machine "z13" - .machinemode "zarch_nohighgprs" /* Check if reject-string fits in one vreg: diff --git a/sysdeps/s390/strlen-vx.S b/sysdeps/s390/strlen-vx.S index e4bbcd4500..99f71f1e22 100644 --- a/sysdeps/s390/strlen-vx.S +++ b/sysdeps/s390/strlen-vx.S @@ -1,4 +1,4 @@ -/* Vector optimized 32/64 bit S/390 version of strlen. +/* Vector optimized 64 bit S/390 version of strlen. Copyright (C) 2015-2026 Free Software Foundation, Inc. This file is part of the GNU C Library. @@ -37,7 +37,6 @@ */ ENTRY(STRLEN_Z13) .machine "z13" - .machinemode "zarch_nohighgprs" vlbb %v16,0(%r2),6 /* Load s until next 4k-byte boundary. */ lcbb %r1,0(%r2),6 /* Get bytes to 4k-byte boundary or 16. */ diff --git a/sysdeps/s390/strncat-vx.S b/sysdeps/s390/strncat-vx.S index 02b2022cbc..53e80a49c1 100644 --- a/sysdeps/s390/strncat-vx.S +++ b/sysdeps/s390/strncat-vx.S @@ -1,4 +1,4 @@ -/* Vector optimized 32/64 bit S/390 version of strncat. +/* Vector optimized 64 bit S/390 version of strncat. Copyright (C) 2015-2026 Free Software Foundation, Inc. This file is part of the GNU C Library. @@ -43,11 +43,6 @@ */ ENTRY(STRNCAT_Z13) .machine "z13" - .machinemode "zarch_nohighgprs" - -# if !defined __s390x__ - llgfr %r4,%r4 -# endif /* !defined __s390x__ */ clgfi %r4,0 ber %r14 /* Nothing to do, if n == 0. */ diff --git a/sysdeps/s390/strncmp-vx.S b/sysdeps/s390/strncmp-vx.S index 332dd4593e..a334bdfca1 100644 --- a/sysdeps/s390/strncmp-vx.S +++ b/sysdeps/s390/strncmp-vx.S @@ -1,4 +1,4 @@ -/* Vector optimized 32/64 bit S/390 version of strncmp. +/* Vector optimized 64 bit S/390 version of strncmp. Copyright (C) 2015-2026 Free Software Foundation, Inc. This file is part of the GNU C Library. @@ -41,11 +41,6 @@ */ ENTRY(STRNCMP_Z13) .machine "z13" - .machinemode "zarch_nohighgprs" - -# if !defined __s390x__ - llgfr %r4,%r4 -# endif /* !defined __s390x__ */ clgije %r4,0,.Lend_equal /* Nothing to do if n == 0, */ lghi %r5,0 /* current_len = 0. */ diff --git a/sysdeps/s390/strncpy-vx.S b/sysdeps/s390/strncpy-vx.S index 76155bf8c4..9d65d4ebe7 100644 --- a/sysdeps/s390/strncpy-vx.S +++ b/sysdeps/s390/strncpy-vx.S @@ -1,4 +1,4 @@ -/* Vector optimized 32/64 bit S/390 version of strncpy. +/* Vector optimized 64 bit S/390 version of strncpy. Copyright (C) 2015-2026 Free Software Foundation, Inc. This file is part of the GNU C Library. @@ -42,11 +42,6 @@ */ ENTRY(STRNCPY_Z13) .machine "z13" - .machinemode "zarch_nohighgprs" - -# if !defined __s390x__ - llgfr %r4,%r4 -# endif /* !defined __s390x__ */ clgfi %r4,0 ber %r14 /* Nothing to do, if n == 0. */ @@ -202,7 +197,7 @@ END(STRNCPY_Z13) strong_alias (STRNCPY_Z13, strncpy) # endif -# if ! HAVE_STRNCPY_Z900_G5 && defined SHARED && IS_IN (libc) +# if ! HAVE_STRNCPY_Z900 && defined SHARED && IS_IN (libc) strong_alias (STRNCPY_Z13, __GI_strncpy) # endif #endif diff --git a/sysdeps/s390/strncpy.c b/sysdeps/s390/strncpy.c index b7ace482a5..986f00a0f4 100644 --- a/sysdeps/s390/strncpy.c +++ b/sysdeps/s390/strncpy.c @@ -26,8 +26,8 @@ # undef strncpy # include -# if HAVE_STRNCPY_Z900_G5 -extern __typeof (__redirect_strncpy) STRNCPY_Z900_G5 attribute_hidden; +# if HAVE_STRNCPY_Z900 +extern __typeof (__redirect_strncpy) STRNCPY_Z900 attribute_hidden; # endif # if HAVE_STRNCPY_Z13 diff --git a/sysdeps/s390/strnlen-vx.S b/sysdeps/s390/strnlen-vx.S index db1bda229f..29e3353d5a 100644 --- a/sysdeps/s390/strnlen-vx.S +++ b/sysdeps/s390/strnlen-vx.S @@ -1,4 +1,4 @@ -/* Vector optimized 32/64 bit S/390 version of strnlen. +/* Vector optimized 64 bit S/390 version of strnlen. Copyright (C) 2015-2026 Free Software Foundation, Inc. This file is part of the GNU C Library. @@ -38,11 +38,6 @@ */ ENTRY(STRNLEN_Z13) .machine "z13" - .machinemode "zarch_nohighgprs" - -# if !defined __s390x__ - llgfr %r3,%r3 -# endif /* !defined __s390x__ */ clgfi %r3,0 /* if maxlen == 0, return 0. */ locgre %r2,%r3 diff --git a/sysdeps/s390/strpbrk-vx.S b/sysdeps/s390/strpbrk-vx.S index 8fb6963be2..6bf1213418 100644 --- a/sysdeps/s390/strpbrk-vx.S +++ b/sysdeps/s390/strpbrk-vx.S @@ -1,4 +1,4 @@ -/* Vector optimized 32/64 bit S/390 version of strpbrk. +/* Vector optimized 64 bit S/390 version of strpbrk. Copyright (C) 2015-2026 Free Software Foundation, Inc. This file is part of the GNU C Library. @@ -63,7 +63,6 @@ */ ENTRY(STRPBRK_Z13) .machine "z13" - .machinemode "zarch_nohighgprs" /* Check if accept-string fits in one vreg: diff --git a/sysdeps/s390/strrchr-vx.S b/sysdeps/s390/strrchr-vx.S index ed2342c9e3..219c6d59ce 100644 --- a/sysdeps/s390/strrchr-vx.S +++ b/sysdeps/s390/strrchr-vx.S @@ -1,4 +1,4 @@ -/* Vector optimized 32/64 bit S/390 version of strrchr. +/* Vector optimized 64 bit S/390 version of strrchr. Copyright (C) 2015-2026 Free Software Foundation, Inc. This file is part of the GNU C Library. @@ -43,7 +43,6 @@ */ ENTRY(STRRCHR_Z13) .machine "z13" - .machinemode "zarch_nohighgprs" vlbb %v16,0(%r2),6 /* Load s until next 4k-byte boundary. */ lcbb %r0,0(%r2),6 /* Get bytes to 4k-byte boundary or 16. */ diff --git a/sysdeps/s390/strspn-vx.S b/sysdeps/s390/strspn-vx.S index aa985de110..67de888395 100644 --- a/sysdeps/s390/strspn-vx.S +++ b/sysdeps/s390/strspn-vx.S @@ -1,4 +1,4 @@ -/* Vector optimized 32/64 bit S/390 version of strspn. +/* Vector optimized 64 bit S/390 version of strspn. Copyright (C) 2015-2026 Free Software Foundation, Inc. This file is part of the GNU C Library. @@ -61,7 +61,6 @@ */ ENTRY(STRSPN_Z13) .machine "z13" - .machinemode "zarch_nohighgprs" /* Check if accept-string fits in one vreg: diff --git a/sysdeps/s390/strstr-arch13.S b/sysdeps/s390/strstr-arch13.S index 10875acad6..acf47928ba 100644 --- a/sysdeps/s390/strstr-arch13.S +++ b/sysdeps/s390/strstr-arch13.S @@ -1,4 +1,4 @@ -/* Vector optimized 32/64 bit S/390 version of strstr. +/* Vector optimized 64 bit S/390 version of strstr. Copyright (C) 2019-2026 Free Software Foundation, Inc. This file is part of the GNU C Library. @@ -26,7 +26,6 @@ Locate a substring. */ ENTRY(STRSTR_ARCH13) .machine "arch13" - .machinemode "zarch_nohighgprs" lcbb %r1,0(%r3),6 jo .Lneedle_on_bb /* Needle on block-boundary? */ vl %v18,0(%r3),6 /* Load needle. */ diff --git a/sysdeps/s390/tst-dl-runtime-mod.S b/sysdeps/s390/tst-dl-runtime-mod.S index 6090d21a97..58feb14450 100644 --- a/sysdeps/s390/tst-dl-runtime-mod.S +++ b/sysdeps/s390/tst-dl-runtime-mod.S @@ -20,11 +20,7 @@ .type r0x2, @function r0x2: .cfi_startproc -#if defined (__s390x__) agr %r0,%r0 -#else - ar %r0,%r0 -#endif br %r14 .cfi_endproc .size r0x2, .-r0x2 diff --git a/sysdeps/s390/tst-dl-runtime.c b/sysdeps/s390/tst-dl-runtime.c index 3b2fc3093e..49087ef5e0 100644 --- a/sysdeps/s390/tst-dl-runtime.c +++ b/sysdeps/s390/tst-dl-runtime.c @@ -22,11 +22,7 @@ #include #include -#if defined (__s390x__) static const unsigned long magic_value = 0x0011223344556677UL; -#else -static const unsigned long magic_value = 0x00112233; -#endif unsigned long r0x2_trampoline (unsigned long); @@ -35,7 +31,6 @@ unsigned long r0x2_trampoline (unsigned long); _dl_runtime_resolve and _dl_runtime_profile. */ asm (" .type r0x2_trampoline, @function\n" "r0x2_trampoline:\n" -#if defined (__s390x__) " lgr %r0,%r2\n" " stg %r14,112(%r15)\n" " aghi %r15,-160\n" @@ -44,28 +39,6 @@ asm (" .type r0x2_trampoline, @function\n" " lg %r14,112(%r15)\n" " lgr %r2,%r0\n" " br %r14\n" -#elif defined (__zarch__) - " lr %r0,%r2\n" - " st %r14,56(%r15)\n" - " ahi %r15,-96\n" - " brasl %r14,r0x2@plt\n" - " ahi %r15,96\n" - " l %r14,56(%r15)\n" - " lr %r2,%r0\n" - " br %r14\n" -#else - " lr %r0,%r2\n" - " st %r14,56(%r15)\n" - " ahi %r15,-96\n" - " balr %r14,0\n" - " l %r14,1f-.(%r14)\n" - " basr %r14,%r14\n" - " ahi %r15,96\n" - " l %r14,56(%r15)\n" - " lr %r2,%r0\n" - " br %r14\n" - "1: .long r0x2\n" -#endif ); static int diff --git a/sysdeps/s390/utf16-utf32-z9.c b/sysdeps/s390/utf16-utf32-z9.c index ceba2fad5e..68d256a7b2 100644 --- a/sysdeps/s390/utf16-utf32-z9.c +++ b/sysdeps/s390/utf16-utf32-z9.c @@ -49,12 +49,6 @@ # define ASM_CLOBBER_VR(NR) #endif -#if defined __s390x__ -# define CONVERT_32BIT_SIZE_T(REG) -#else -# define CONVERT_32BIT_SIZE_T(REG) "llgfr %" #REG ",%" #REG "\n\t" -#endif - /* UTF-32 big endian byte order mark. */ #define BOM_UTF32 0x0000feffu @@ -256,12 +250,9 @@ gconv_end (struct __gconv_step *data) unsigned long tmp, tmp2, tmp3; \ asm volatile (".machine push\n\t" \ ".machine \"z13\"\n\t" \ - ".machinemode \"zarch_nohighgprs\"\n\t" \ /* Setup to check for surrogates. */ \ " larl %[R_TMP],9f\n\t" \ " vlm %%v30,%%v31,0(%[R_TMP])\n\t" \ - CONVERT_32BIT_SIZE_T ([R_INLEN]) \ - CONVERT_32BIT_SIZE_T ([R_OUTLEN]) \ /* Loop which handles UTF-16 chars <0xd800, >0xdfff. */ \ "0: clgijl %[R_INLEN],16,2f\n\t" \ " clgijl %[R_OUTLEN],32,2f\n\t" \ @@ -402,12 +393,9 @@ gconv_end (struct __gconv_step *data) unsigned long tmp, tmp2, tmp3; \ asm volatile (".machine push\n\t" \ ".machine \"z13\"\n\t" \ - ".machinemode \"zarch_nohighgprs\"\n\t" \ /* Setup to check for surrogates. */ \ " larl %[R_TMP],9f\n\t" \ " vlm %%v30,%%v31,0(%[R_TMP])\n\t" \ - CONVERT_32BIT_SIZE_T ([R_INLEN]) \ - CONVERT_32BIT_SIZE_T ([R_OUTLEN]) \ /* Loop which handles UTF-16 chars <0xd800, >0xdfff. */ \ "0: clgijl %[R_INLEN],16,20f\n\t" \ " clgijl %[R_OUTLEN],32,20f\n\t" \ @@ -572,12 +560,9 @@ gconv_end (struct __gconv_step *data) unsigned long tmp, tmp2, tmp3; \ asm volatile (".machine push\n\t" \ ".machine \"z13\"\n\t" \ - ".machinemode \"zarch_nohighgprs\"\n\t" \ /* Setup to check for surrogates. */ \ " larl %[R_TMP],9f\n\t" \ " vlm %%v30,%%v31,0(%[R_TMP])\n\t" \ - CONVERT_32BIT_SIZE_T ([R_INLEN]) \ - CONVERT_32BIT_SIZE_T ([R_OUTLEN]) \ /* Loop which handles UTF-32 chars \ ch < 0xd800 || (ch > 0xdfff && ch < 0x10000). */ \ "0: clgijl %[R_INLEN],32,2f\n\t" \ @@ -712,12 +697,9 @@ gconv_end (struct __gconv_step *data) unsigned long tmp, tmp2, tmp3; \ asm volatile (".machine push\n\t" \ ".machine \"z13\"\n\t" \ - ".machinemode \"zarch_nohighgprs\"\n\t" \ /* Setup to check for surrogates. */ \ " larl %[R_TMP],9f\n\t" \ " vlm %%v30,%%v31,0(%[R_TMP])\n\t" \ - CONVERT_32BIT_SIZE_T ([R_INLEN]) \ - CONVERT_32BIT_SIZE_T ([R_OUTLEN]) \ /* Loop which handles UTF-32 chars \ ch < 0xd800 || (ch > 0xdfff && ch < 0x10000). */ \ "0: clgijl %[R_INLEN],32,20f\n\t" \ diff --git a/sysdeps/s390/utf8-utf16-z9.c b/sysdeps/s390/utf8-utf16-z9.c index 1c43f5b221..1bc52e5833 100644 --- a/sysdeps/s390/utf8-utf16-z9.c +++ b/sysdeps/s390/utf8-utf16-z9.c @@ -59,12 +59,6 @@ # define ASM_CLOBBER_VR(NR) #endif -#if defined __s390x__ -# define CONVERT_32BIT_SIZE_T(REG) -#else -# define CONVERT_32BIT_SIZE_T(REG) "llgfr %" #REG ",%" #REG "\n\t" -#endif - /* Defines for skeleton.c. */ #define DEFINE_INIT 0 #define DEFINE_FINI 0 @@ -176,7 +170,6 @@ gconv_end (struct __gconv_step *data) \ __asm__ __volatile__ (".machine push \n\t" \ ".machine \"z9-109\" \n\t" \ - ".machinemode \"zarch_nohighgprs\"\n\t" \ "0: " INSTRUCTION " \n\t" \ ".machine pop \n\t" \ " jo 0b \n\t" \ @@ -247,11 +240,8 @@ gconv_end (struct __gconv_step *data) unsigned long tmp, tmp2, tmp3; \ asm volatile (".machine push\n\t" \ ".machine \"z13\"\n\t" \ - ".machinemode \"zarch_nohighgprs\"\n\t" \ " vrepib %%v30,0x7f\n\t" /* For compare > 0x7f. */ \ " vrepib %%v31,0x20\n\t" \ - CONVERT_32BIT_SIZE_T ([R_INLEN]) \ - CONVERT_32BIT_SIZE_T ([R_OUTLEN]) \ /* Loop which handles UTF-8 chars <=0x7f. */ \ "0: clgijl %[R_INLEN],16,20f\n\t" \ " clgijl %[R_OUTLEN],32,20f\n\t" \ @@ -636,12 +626,9 @@ gconv_end (struct __gconv_step *data) unsigned long tmp, tmp2, tmp3; \ asm volatile (".machine push\n\t" \ ".machine \"z13\"\n\t" \ - ".machinemode \"zarch_nohighgprs\"\n\t" \ /* Setup to check for values <= 0x7f. */ \ " larl %[R_TMP],9f\n\t" \ " vlm %%v30,%%v31,0(%[R_TMP])\n\t" \ - CONVERT_32BIT_SIZE_T ([R_INLEN]) \ - CONVERT_32BIT_SIZE_T ([R_OUTLEN]) \ /* Loop which handles UTF-16 chars <=0x7f. */ \ "0: clgijl %[R_INLEN],32,2f\n\t" \ " clgijl %[R_OUTLEN],16,2f\n\t" \ @@ -823,12 +810,9 @@ gconv_end (struct __gconv_step *data) unsigned long tmp, tmp2, tmp3; \ asm volatile (".machine push\n\t" \ ".machine \"z13\"\n\t" \ - ".machinemode \"zarch_nohighgprs\"\n\t" \ /* Setup to check for values <= 0x7f. */ \ " larl %[R_TMP],9f\n\t" \ " vlm %%v30,%%v31,0(%[R_TMP])\n\t" \ - CONVERT_32BIT_SIZE_T ([R_INLEN]) \ - CONVERT_32BIT_SIZE_T ([R_OUTLEN]) \ /* Loop which handles UTF-16 chars <=0x7f. */ \ "0: clgijl %[R_INLEN],32,20f\n\t" \ " clgijl %[R_OUTLEN],16,20f\n\t" \ diff --git a/sysdeps/s390/utf8-utf32-z9.c b/sysdeps/s390/utf8-utf32-z9.c index a5bf48e499..c1708772c6 100644 --- a/sysdeps/s390/utf8-utf32-z9.c +++ b/sysdeps/s390/utf8-utf32-z9.c @@ -59,12 +59,6 @@ # define ASM_CLOBBER_VR(NR) #endif -#if defined __s390x__ -# define CONVERT_32BIT_SIZE_T(REG) -#else -# define CONVERT_32BIT_SIZE_T(REG) "llgfr %" #REG ",%" #REG "\n\t" -#endif - /* Defines for skeleton.c. */ #define DEFINE_INIT 0 #define DEFINE_FINI 0 @@ -176,7 +170,6 @@ gconv_end (struct __gconv_step *data) \ __asm__ __volatile__ (".machine push \n\t" \ ".machine \"z9-109\" \n\t" \ - ".machinemode \"zarch_nohighgprs\"\n\t" \ "0: " INSTRUCTION " \n\t" \ ".machine pop \n\t" \ " jo 0b \n\t" \ @@ -480,11 +473,8 @@ gconv_end (struct __gconv_step *data) unsigned long tmp, tmp2, tmp3; \ asm volatile (".machine push\n\t" \ ".machine \"z13\"\n\t" \ - ".machinemode \"zarch_nohighgprs\"\n\t" \ " vrepib %%v30,0x7f\n\t" /* For compare > 0x7f. */ \ " vrepib %%v31,0x20\n\t" \ - CONVERT_32BIT_SIZE_T ([R_INLEN]) \ - CONVERT_32BIT_SIZE_T ([R_OUTLEN]) \ /* Loop which handles UTF-8 chars <=0x7f. */ \ "0: clgijl %[R_INLEN],16,20f\n\t" \ " clgijl %[R_OUTLEN],64,20f\n\t" \ @@ -691,13 +681,10 @@ gconv_end (struct __gconv_step *data) unsigned long tmp, tmp2, tmp3; \ asm volatile (".machine push\n\t" \ ".machine \"z13\"\n\t" \ - ".machinemode \"zarch_nohighgprs\"\n\t" \ " vleif %%v20,127,0\n\t" /* element 0: 127 */ \ " vzero %%v21\n\t" \ " vleih %%v21,8192,0\n\t" /* element 0: > */ \ " vleih %%v21,-8192,2\n\t" /* element 1: =<> */ \ - CONVERT_32BIT_SIZE_T ([R_INLEN]) \ - CONVERT_32BIT_SIZE_T ([R_OUTLEN]) \ /* Loop which handles UTF-32 chars <=0x7f. */ \ "0: clgijl %[R_INLEN],64,2f\n\t" \ " clgijl %[R_OUTLEN],16,2f\n\t" \ @@ -869,13 +856,10 @@ gconv_end (struct __gconv_step *data) unsigned long tmp, tmp2; \ asm volatile (".machine push\n\t" \ ".machine \"z13\"\n\t" \ - ".machinemode \"zarch_nohighgprs\"\n\t" \ " vleif %%v20,127,0\n\t" /* element 0: 127 */ \ " vzero %%v21\n\t" \ " vleih %%v21,8192,0\n\t" /* element 0: > */ \ " vleih %%v21,-8192,2\n\t" /* element 1: =<> */ \ - CONVERT_32BIT_SIZE_T ([R_INLEN]) \ - CONVERT_32BIT_SIZE_T ([R_OUTLEN]) \ /* Loop which handles UTF-32 chars <= 0x7f. */ \ "0: clgijl %[R_INLEN],64,20f\n\t" \ " clgijl %[R_OUTLEN],16,20f\n\t" \ diff --git a/sysdeps/s390/wcpcpy-vx.S b/sysdeps/s390/wcpcpy-vx.S index 98c9d09064..ee509ab8d0 100644 --- a/sysdeps/s390/wcpcpy-vx.S +++ b/sysdeps/s390/wcpcpy-vx.S @@ -1,4 +1,4 @@ -/* Vector optimized 32/64 bit S/390 version of wcpcpy. +/* Vector optimized 64 bit S/390 version of wcpcpy. Copyright (C) 2015-2026 Free Software Foundation, Inc. This file is part of the GNU C Library. @@ -40,7 +40,6 @@ */ ENTRY(WCPCPY_Z13) .machine "z13" - .machinemode "zarch_nohighgprs" vlbb %v16,0(%r3),6 /* Load s until next 4k-byte boundary. */ lcbb %r1,0(%r3),6 /* Get bytes to 4k-byte boundary or 16. */ diff --git a/sysdeps/s390/wcpncpy-vx.S b/sysdeps/s390/wcpncpy-vx.S index 097eee9678..69817aa97d 100644 --- a/sysdeps/s390/wcpncpy-vx.S +++ b/sysdeps/s390/wcpncpy-vx.S @@ -1,4 +1,4 @@ -/* Vector optimized 32/64 bit S/390 version of wcpncpy. +/* Vector optimized 64 bit S/390 version of wcpncpy. Copyright (C) 2015-2026 Free Software Foundation, Inc. This file is part of the GNU C Library. @@ -41,11 +41,6 @@ */ ENTRY(WCPNCPY_Z13) .machine "z13" - .machinemode "zarch_nohighgprs" - -# if !defined __s390x__ - llgfr %r4,%r4 -# endif /* !defined __s390x__ */ clgfi %r4,0 ber %r14 /* Nothing to do, if n == 0. */ @@ -62,13 +57,8 @@ ENTRY(WCPNCPY_Z13) llgfr %r6,%r6 /* Convert 32bit to 64bit. */ /* Check range of maxlen and convert to byte-count. */ -# ifdef __s390x__ tmhh %r4,49152 /* Test bit 0 or 1 of maxlen. */ lghi %r1,-4 /* Max byte-count is 18446744073709551612. */ -# else - tmlh %r4,49152 /* Test bit 0 or 1 of maxlen. */ - llilf %r1,4294967292 /* Max byte-count is 4294967292. */ -# endif /* !__s390x__ */ sllg %r4,%r4,2 /* Convert character-count to byte-count. */ locgrne %r4,%r1 /* Use max byte-count, if bit 0/1 was one. */ diff --git a/sysdeps/s390/wcscat-vx.S b/sysdeps/s390/wcscat-vx.S index 0feb4797e6..a7ec6d50b5 100644 --- a/sysdeps/s390/wcscat-vx.S +++ b/sysdeps/s390/wcscat-vx.S @@ -1,4 +1,4 @@ -/* Vector optimized 32/64 bit S/390 version of wcscat. +/* Vector optimized 64 bit S/390 version of wcscat. Copyright (C) 2015-2026 Free Software Foundation, Inc. This file is part of the GNU C Library. @@ -40,7 +40,6 @@ */ ENTRY(WCSCAT_Z13) .machine "z13" - .machinemode "zarch_nohighgprs" vlbb %v16,0(%r2),6 /* Load s until next 4k-byte boundary. */ lcbb %r1,0(%r2),6 /* Get bytes to 4k-byte boundary or 16. */ diff --git a/sysdeps/s390/wcschr-vx.S b/sysdeps/s390/wcschr-vx.S index dd4ca46d9a..af3f5cf849 100644 --- a/sysdeps/s390/wcschr-vx.S +++ b/sysdeps/s390/wcschr-vx.S @@ -1,4 +1,4 @@ -/* Vector optimized 32/64 bit S/390 version of wcschr. +/* Vector optimized 64 bit S/390 version of wcschr. Copyright (C) 2015-2026 Free Software Foundation, Inc. This file is part of the GNU C Library. @@ -39,7 +39,6 @@ */ ENTRY(WCSCHR_Z13) .machine "z13" - .machinemode "zarch_nohighgprs" vlbb %v16,0(%r2),6 /* Load s until next 4k-byte boundary. */ lcbb %r1,0(%r2),6 /* Get bytes to 4k-byte boundary or 16. */ diff --git a/sysdeps/s390/wcschrnul-vx.S b/sysdeps/s390/wcschrnul-vx.S index 9d1d0b3670..0107fd5a66 100644 --- a/sysdeps/s390/wcschrnul-vx.S +++ b/sysdeps/s390/wcschrnul-vx.S @@ -1,4 +1,4 @@ -/* Vector optimized 32/64 bit S/390 version of wcschrnul. +/* Vector optimized 64 bit S/390 version of wcschrnul. Copyright (C) 2015-2026 Free Software Foundation, Inc. This file is part of the GNU C Library. @@ -38,7 +38,6 @@ */ ENTRY(WCSCHRNUL_Z13) .machine "z13" - .machinemode "zarch_nohighgprs" vlbb %v16,0(%r2),6 /* Load s until next 4k-byte boundary. */ lcbb %r1,0(%r2),6 /* Get bytes to 4k-byte boundary or 16. */ diff --git a/sysdeps/s390/wcscmp-vx.S b/sysdeps/s390/wcscmp-vx.S index 39d62412d5..25f992e75c 100644 --- a/sysdeps/s390/wcscmp-vx.S +++ b/sysdeps/s390/wcscmp-vx.S @@ -1,4 +1,4 @@ -/* Vector optimized 32/64 bit S/390 version of wcscmp. +/* Vector optimized 64 bit S/390 version of wcscmp. Copyright (C) 2015-2026 Free Software Foundation, Inc. This file is part of the GNU C Library. @@ -39,7 +39,6 @@ */ ENTRY(WCSCMP_Z13) .machine "z13" - .machinemode "zarch_nohighgprs" lghi %r5,0 /* current_len = 0. */ diff --git a/sysdeps/s390/wcscpy-vx.S b/sysdeps/s390/wcscpy-vx.S index 718fb2f9e1..2aa266d2ef 100644 --- a/sysdeps/s390/wcscpy-vx.S +++ b/sysdeps/s390/wcscpy-vx.S @@ -1,4 +1,4 @@ -/* Vector optimized 32/64 bit S/390 version of wcscpy. +/* Vector optimized 64 bit S/390 version of wcscpy. Copyright (C) 2015-2026 Free Software Foundation, Inc. This file is part of the GNU C Library. @@ -40,7 +40,6 @@ */ ENTRY(WCSCPY_Z13) .machine "z13" - .machinemode "zarch_nohighgprs" vlbb %v16,0(%r3),6 /* Load s until next 4k-byte boundary. */ lcbb %r1,0(%r3),6 /* Get bytes to 4k-byte boundary or 16. */ diff --git a/sysdeps/s390/wcscspn-vx.S b/sysdeps/s390/wcscspn-vx.S index b5b910f8bf..3a6fcb6e1b 100644 --- a/sysdeps/s390/wcscspn-vx.S +++ b/sysdeps/s390/wcscspn-vx.S @@ -1,4 +1,4 @@ -/* Vector optimized 32/64 bit S/390 version of wcscspn. +/* Vector optimized 64 bit S/390 version of wcscspn. Copyright (C) 2015-2026 Free Software Foundation, Inc. This file is part of the GNU C Library. @@ -60,7 +60,6 @@ */ ENTRY(WCSCSPN_Z13) .machine "z13" - .machinemode "zarch_nohighgprs" tmll %r2,3 /* Test if s is 4-byte aligned? */ jne .Lfallback /* And use common-code variant if not. */ diff --git a/sysdeps/s390/wcslen-vx.S b/sysdeps/s390/wcslen-vx.S index 29a9131521..cd4459ac82 100644 --- a/sysdeps/s390/wcslen-vx.S +++ b/sysdeps/s390/wcslen-vx.S @@ -1,4 +1,4 @@ -/* Vector optimized 32/64 bit S/390 version of wcslen. +/* Vector optimized 64 bit S/390 version of wcslen. Copyright (C) 2015-2026 Free Software Foundation, Inc. This file is part of the GNU C Library. @@ -37,7 +37,6 @@ */ ENTRY(WCSLEN_Z13) .machine "z13" - .machinemode "zarch_nohighgprs" vlbb %v16,0(%r2),6 /* Load s until next 4k-byte boundary. */ lcbb %r1,0(%r2),6 /* Get bytes to 4k-byte boundary or 16. */ diff --git a/sysdeps/s390/wcsncat-vx.S b/sysdeps/s390/wcsncat-vx.S index 91d2a9b89d..155459dd5e 100644 --- a/sysdeps/s390/wcsncat-vx.S +++ b/sysdeps/s390/wcsncat-vx.S @@ -1,4 +1,4 @@ -/* Vector optimized 32/64 bit S/390 version of wcsncat. +/* Vector optimized 64 bit S/390 version of wcsncat. Copyright (C) 2015-2026 Free Software Foundation, Inc. This file is part of the GNU C Library. @@ -43,11 +43,6 @@ */ ENTRY(WCSNCAT_Z13) .machine "z13" - .machinemode "zarch_nohighgprs" - -# if !defined __s390x__ - llgfr %r4,%r4 -# endif /* !defined __s390x__ */ clgfi %r4,0 ber %r14 /* Nothing to do, if n == 0. */ @@ -123,13 +118,8 @@ ENTRY(WCSNCAT_Z13) lghi %r5,0 /* current_len = 0. */ /* Check range of maxlen and convert to byte-count. */ -# ifdef __s390x__ tmhh %r4,49152 /* Test bit 0 or 1 of maxlen. */ lghi %r1,-4 /* Max byte-count is 18446744073709551612. */ -# else - tmlh %r4,49152 /* Test bit 0 or 1 of maxlen. */ - llilf %r1,4294967292 /* Max byte-count is 4294967292. */ -# endif /* !__s390x__ */ sllg %r4,%r4,2 /* Convert character-count to byte-count. */ locgrne %r4,%r1 /* Use max byte-count, if bit 0/1 was one. */ diff --git a/sysdeps/s390/wcsncmp-vx.S b/sysdeps/s390/wcsncmp-vx.S index f01fcc56a6..3fb3756059 100644 --- a/sysdeps/s390/wcsncmp-vx.S +++ b/sysdeps/s390/wcsncmp-vx.S @@ -1,4 +1,4 @@ -/* Vector optimized 32/64 bit S/390 version of wcsncmp. +/* Vector optimized 64 bit S/390 version of wcsncmp. Copyright (C) 2015-2026 Free Software Foundation, Inc. This file is part of the GNU C Library. @@ -40,22 +40,12 @@ */ ENTRY(WCSNCMP_Z13) .machine "z13" - .machinemode "zarch_nohighgprs" - -# if !defined __s390x__ - llgfr %r4,%r4 -# endif /* !defined __s390x__ */ clgije %r4,0,.Lend_equal /* Nothing to do if n == 0. */ /* Check range of n and convert to byte-count. */ -# ifdef __s390x__ tmhh %r4,49152 /* Test bit 0 or 1 of maxlen. */ lghi %r1,-4 /* Max byte-count is 18446744073709551612. */ -# else - tmlh %r4,49152 /* Test bit 0 or 1 of maxlen. */ - llilf %r1,4294967292 /* Max byte-count is 4294967292. */ -# endif /* !__s390x__ */ sllg %r4,%r4,2 /* Convert character-count to byte-count. */ locgrne %r4,%r1 /* Use max byte-count, if bit 0/1 was one. */ diff --git a/sysdeps/s390/wcsncpy-vx.S b/sysdeps/s390/wcsncpy-vx.S index c1d6732e87..afe1495185 100644 --- a/sysdeps/s390/wcsncpy-vx.S +++ b/sysdeps/s390/wcsncpy-vx.S @@ -1,4 +1,4 @@ -/* Vector optimized 32/64 bit S/390 version of wcsncpy. +/* Vector optimized 64 bit S/390 version of wcsncpy. Copyright (C) 2015-2026 Free Software Foundation, Inc. This file is part of the GNU C Library. @@ -43,11 +43,6 @@ */ ENTRY(WCSNCPY_Z13) .machine "z13" - .machinemode "zarch_nohighgprs" - -# if !defined __s390x__ - llgfr %r4,%r4 -# endif /* !defined __s390x__ */ clgfi %r4,0 ber %r14 /* Nothing to do, if n == 0. */ @@ -66,13 +61,8 @@ ENTRY(WCSNCPY_Z13) lghi %r5,0 /* current_len = 0. */ /* Check range of maxlen and convert to byte-count. */ -# ifdef __s390x__ tmhh %r4,49152 /* Test bit 0 or 1 of n. */ lghi %r1,-4 /* Max byte-count is 18446744073709551612. */ -# else - tmlh %r4,49152 /* Test bit 0 or 1 of n. */ - llilf %r1,4294967292 /* Max byte-count is 4294967292. */ -# endif /* !__s390x__ */ sllg %r4,%r4,2 /* Convert character-count to byte-count. */ locgrne %r4,%r1 /* Use max byte-count, if bit 0/1 was one. */ diff --git a/sysdeps/s390/wcsnlen-vx.S b/sysdeps/s390/wcsnlen-vx.S index bfff0ba2a4..d57b3bb5b3 100644 --- a/sysdeps/s390/wcsnlen-vx.S +++ b/sysdeps/s390/wcsnlen-vx.S @@ -1,4 +1,4 @@ -/* Vector optimized 32/64 bit S/390 version of wcsnlen. +/* Vector optimized 64 bit S/390 version of wcsnlen. Copyright (C) 2015-2026 Free Software Foundation, Inc. This file is part of the GNU C Library. @@ -38,11 +38,6 @@ ENTRY(WCSNLEN_Z13) .machine "z13" - .machinemode "zarch_nohighgprs" - -# if !defined __s390x__ - llgfr %r3,%r3 -# endif /* !defined __s390x__ */ clgfi %r3,0 /* if maxlen == 0, return 0. */ locgre %r2,%r3 @@ -56,13 +51,8 @@ ENTRY(WCSNLEN_Z13) jne .Lfallback /* And use common-code variant if not. */ /* Check range of maxlen and convert to byte-count. */ -# ifdef __s390x__ tmhh %r3,49152 /* Test bit 0 or 1 of maxlen. */ lghi %r4,-4 /* Max byte-count is 18446744073709551612. */ -# else - tmlh %r3,49152 /* Test bit 0 or 1 of maxlen. */ - llilf %r4,4294967292 /* Max byte-count is 4294967292. */ -# endif /* !__s390x__ */ sllg %r3,%r3,2 /* Convert character-count to byte-count. */ locgrne %r3,%r4 /* Use max byte-count, if bit 0/1 was one. */ diff --git a/sysdeps/s390/wcspbrk-vx.S b/sysdeps/s390/wcspbrk-vx.S index d1c0b2b47d..d97b2c02f1 100644 --- a/sysdeps/s390/wcspbrk-vx.S +++ b/sysdeps/s390/wcspbrk-vx.S @@ -1,4 +1,4 @@ -/* Vector optimized 32/64 bit S/390 version of wcspbrk. +/* Vector optimized 64 bit S/390 version of wcspbrk. Copyright (C) 2015-2026 Free Software Foundation, Inc. This file is part of the GNU C Library. @@ -62,7 +62,6 @@ */ ENTRY(WCSPBRK_Z13) .machine "z13" - .machinemode "zarch_nohighgprs" tmll %r2,3 /* Test if s is 4-byte aligned? */ jne .Lfallback /* And use common-code variant if not. */ diff --git a/sysdeps/s390/wcsrchr-vx.S b/sysdeps/s390/wcsrchr-vx.S index 9e5f4ceea3..4e9934f01e 100644 --- a/sysdeps/s390/wcsrchr-vx.S +++ b/sysdeps/s390/wcsrchr-vx.S @@ -1,4 +1,4 @@ -/* Vector optimized 32/64 bit S/390 version of wcsrchr. +/* Vector optimized 64 bit S/390 version of wcsrchr. Copyright (C) 2015-2026 Free Software Foundation, Inc. This file is part of the GNU C Library. @@ -42,7 +42,6 @@ */ ENTRY(WCSRCHR_Z13) .machine "z13" - .machinemode "zarch_nohighgprs" vlbb %v16,0(%r2),6 /* Load s until next 4k-byte boundary. */ lcbb %r0,0(%r2),6 /* Get bytes to 4k-byte boundary or 16. */ diff --git a/sysdeps/s390/wcsspn-vx.S b/sysdeps/s390/wcsspn-vx.S index 81d7ccb101..bdd316950d 100644 --- a/sysdeps/s390/wcsspn-vx.S +++ b/sysdeps/s390/wcsspn-vx.S @@ -1,4 +1,4 @@ -/* Vector optimized 32/64 bit S/390 version of wcsspn. +/* Vector optimized 64 bit S/390 version of wcsspn. Copyright (C) 2015-2026 Free Software Foundation, Inc. This file is part of the GNU C Library. @@ -60,7 +60,6 @@ */ ENTRY(WCSSPN_Z13) .machine "z13" - .machinemode "zarch_nohighgprs" tmll %r2,3 /* Test if s is 4-byte aligned? */ jne .Lfallback /* And use common-code variant if not. */ diff --git a/sysdeps/s390/wmemchr-vx.S b/sysdeps/s390/wmemchr-vx.S index 6882395ce7..2040ee8eba 100644 --- a/sysdeps/s390/wmemchr-vx.S +++ b/sysdeps/s390/wmemchr-vx.S @@ -1,4 +1,4 @@ -/* Vector optimized 32/64 bit S/390 version of wmemchr. +/* Vector optimized 64 bit S/390 version of wmemchr. Copyright (C) 2015-2026 Free Software Foundation, Inc. This file is part of the GNU C Library. @@ -41,11 +41,6 @@ */ ENTRY(WMEMCHR_Z13) .machine "z13" - .machinemode "zarch_nohighgprs" - -# if !defined __s390x__ - llgfr %r4,%r4 -# endif /* !defined __s390x__ */ clgije %r4,0,.Lnf_end /* If len == 0 then exit. */ @@ -61,13 +56,8 @@ ENTRY(WMEMCHR_Z13) lghi %r5,16 /* current_len = 16. */ /* Check range of maxlen and convert to byte-count. */ -# ifdef __s390x__ tmhh %r4,49152 /* Test bit 0 or 1 of maxlen. */ lghi %r1,-4 /* Max byte-count is 18446744073709551612. */ -# else - tmlh %r4,49152 /* Test bit 0 or 1 of maxlen. */ - llilf %r1,4294967292 /* Max byte-count is 4294967292. */ -# endif /* !__s390x__ */ sllg %r4,%r4,2 /* Convert character-count to byte-count. */ locgrne %r4,%r1 /* Use max byte-count, if bit 0/1 was one. */ diff --git a/sysdeps/s390/wmemcmp-vx.S b/sysdeps/s390/wmemcmp-vx.S index 3d07b815a0..6a2997d74b 100644 --- a/sysdeps/s390/wmemcmp-vx.S +++ b/sysdeps/s390/wmemcmp-vx.S @@ -1,4 +1,4 @@ -/* Vector Optimized 32/64 bit S/390 version of wmemcmp. +/* Vector Optimized 64 bit S/390 version of wmemcmp. Copyright (C) 2015-2026 Free Software Foundation, Inc. This file is part of the GNU C Library. @@ -40,21 +40,11 @@ */ ENTRY(WMEMCMP_Z13) .machine "z13" - .machinemode "zarch_nohighgprs" - -# if !defined __s390x__ - llgfr %r4,%r4 -# endif /* !defined __s390x__ */ clgije %r4,0,.Lend_equal /* Nothing to do if n == 0. */ /* Check range of maxlen and convert to byte-count. */ -# ifdef __s390x__ tmhh %r4,49152 /* Test bit 0 or 1 of maxlen. */ lghi %r1,-4 /* Max byte-count is 18446744073709551612. */ -# else - tmlh %r4,49152 /* Test bit 0 or 1 of maxlen. */ - llilf %r1,4294967292 /* Max byte-count is 4294967292. */ -# endif /* !__s390x__ */ sllg %r4,%r4,2 /* Convert character-count to byte-count. */ locgrne %r4,%r1 /* Use max byte-count, if bit 0/1 was one. */ diff --git a/sysdeps/s390/wmemset-vx.S b/sysdeps/s390/wmemset-vx.S index 4f3661297c..f7ab5dd8c7 100644 --- a/sysdeps/s390/wmemset-vx.S +++ b/sysdeps/s390/wmemset-vx.S @@ -1,4 +1,4 @@ -/* Vector Optimized 32/64 bit S/390 version of wmemset. +/* Vector Optimized 64 bit S/390 version of wmemset. Copyright (C) 2015-2026 Free Software Foundation, Inc. This file is part of the GNU C Library. @@ -41,11 +41,6 @@ */ ENTRY(WMEMSET_Z13) .machine "z13" - .machinemode "zarch_nohighgprs" - -# if !defined __s390x__ - llgfr %r4,%r4 -# endif /* !defined __s390x__ */ vlvgg %v31,%r2,0 /* Save destination pointer for return. */ clgije %r4,0,.Lend @@ -54,13 +49,8 @@ ENTRY(WMEMSET_Z13) vrepf %v16,%v16,0 /* Check range of maxlen and convert to byte-count. */ -# ifdef __s390x__ tmhh %r4,49152 /* Test bit 0 or 1 of maxlen. */ lghi %r5,-4 /* Max byte-count is 18446744073709551612. */ -# else - tmlh %r4,49152 /* Test bit 0 or 1 of maxlen. */ - llilf %r5,4294967292 /* Max byte-count is 4294967292. */ -# endif /* !__s390x__ */ sllg %r4,%r4,2 /* Convert character-count to byte-count. */ locgrne %r4,%r5 /* Use max byte-count, if bit 0/1 was one. */ diff --git a/sysdeps/unix/sysv/linux/fxstat.c b/sysdeps/unix/sysv/linux/fxstat.c index 2b45a31c2d..a034345ee3 100644 --- a/sysdeps/unix/sysv/linux/fxstat.c +++ b/sysdeps/unix/sysv/linux/fxstat.c @@ -43,7 +43,7 @@ __fxstat (int vers, int fd, struct stat *buf) return r ?: stat_overflow (buf); # else /* Old kABIs with old non-LFS support, e.g. arm, i386, hppa, m68k, - microblaze, s390, sh, powerpc, and sparc. */ + microblaze, sh, powerpc, and sparc. */ return INLINE_SYSCALL_CALL (fstat, fd, buf); # endif } diff --git a/sysdeps/unix/sysv/linux/fxstatat.c b/sysdeps/unix/sysv/linux/fxstatat.c index 8f4dcdd3a9..12d743f61e 100644 --- a/sysdeps/unix/sysv/linux/fxstatat.c +++ b/sysdeps/unix/sysv/linux/fxstatat.c @@ -43,7 +43,7 @@ __fxstatat (int vers, int fd, const char *file, struct stat *st, int flag) return INLINE_SYSCALL_ERROR_RETURN_VALUE (EINVAL); #else /* Old kABIs with old non-LFS support, e.g. arm, i386, hppa, m68k, mips32, - microblaze, s390, sh, powerpc32, and sparc32. */ + microblaze, sh, powerpc32, and sparc32. */ struct stat64 st64; int r = INLINE_SYSCALL_CALL (fstatat64, fd, file, &st64, flag); return r ?: __xstat32_conv (vers, &st64, st); diff --git a/sysdeps/unix/sysv/linux/ipc_priv.h b/sysdeps/unix/sysv/linux/ipc_priv.h index 24f6867e0e..2b75a49b1e 100644 --- a/sysdeps/unix/sysv/linux/ipc_priv.h +++ b/sysdeps/unix/sysv/linux/ipc_priv.h @@ -48,8 +48,8 @@ struct __old_ipc_perm #define MSGRCV_ARGS(__msgp, __msgtyp) \ ((long int []){ (long int) __msgp, __msgtyp }) -/* This macro is required to handle the s390 variants, which passes the - arguments in a different order than default. */ +/* This macro is required to handle s390x, which passes the arguments in a + different order than default. */ #define SEMTIMEDOP_IPC_ARGS(__nsops, __sops, __timeout) \ (__nsops), 0, (__sops), (__timeout) diff --git a/sysdeps/unix/sysv/linux/kernel-features.h b/sysdeps/unix/sysv/linux/kernel-features.h index 94bdbbb730..85f6e888db 100644 --- a/sysdeps/unix/sysv/linux/kernel-features.h +++ b/sysdeps/unix/sysv/linux/kernel-features.h @@ -155,7 +155,7 @@ similar to kernel: - __ASSUME_CLONE_BACKWARDS: for variant 1. - - __ASSUME_CLONE_BACKWARDS2: for variant 2 (s390). + - __ASSUME_CLONE_BACKWARDS2: for variant 2 (s390x). - __ASSUME_CLONE_BACKWARDS3: for variant 3 (microblaze). - __ASSUME_CLONE_DEFAULT: for variant 4. */ diff --git a/sysdeps/unix/sysv/linux/lxstat.c b/sysdeps/unix/sysv/linux/lxstat.c index a65e2715a8..6efe1698bc 100644 --- a/sysdeps/unix/sysv/linux/lxstat.c +++ b/sysdeps/unix/sysv/linux/lxstat.c @@ -44,7 +44,7 @@ __lxstat (int vers, const char *name, struct stat *buf) return r ?: stat_overflow (buf); # else /* Old kABIs with old non-LFS support, e.g. arm, i386, hppa, m68k, - microblaze, s390, sh, powerpc, and sparc. */ + microblaze, sh, powerpc, and sparc. */ return INLINE_SYSCALL_CALL (lstat, name, buf); # endif } diff --git a/sysdeps/unix/sysv/linux/lxstat64.c b/sysdeps/unix/sysv/linux/lxstat64.c index 22b0bedbf1..e743aaec4a 100644 --- a/sysdeps/unix/sysv/linux/lxstat64.c +++ b/sysdeps/unix/sysv/linux/lxstat64.c @@ -75,7 +75,7 @@ ___lxstat64 (int vers, const char *name, struct stat64 *buf) AT_SYMLINK_NOFOLLOW); # else /* Old kABIs with old non-LFS support, e.g. arm, i386, hppa, m68k, - microblaze, s390, sh, mips32, powerpc32, and sparc32. */ + microblaze, sh, mips32, powerpc32, and sparc32. */ return INLINE_SYSCALL_CALL (lstat64, name, buf); # endif /* STAT_IS_KERNEL_STAT */ #endif /* XSTAT_IS_XSTAT64 */ diff --git a/sysdeps/unix/sysv/linux/posix_fadvise.c b/sysdeps/unix/sysv/linux/posix_fadvise.c index b62cf8c002..01c450de31 100644 --- a/sysdeps/unix/sysv/linux/posix_fadvise.c +++ b/sysdeps/unix/sysv/linux/posix_fadvise.c @@ -32,11 +32,7 @@ __NR_fadvise64_64 (without the alignment argument required for the ABI). Third option will be used by mips o32. Mips will use a 7 argument - syscall with __NR_fadvise64. - - s390 implements fadvice64_64 using a specific struct with arguments - packed inside. This is the only implementation handled in arch-specific - code. */ + syscall with __NR_fadvise64. */ int posix_fadvise (int fd, off_t offset, off_t len, int advise) diff --git a/sysdeps/unix/sysv/linux/posix_fadvise64.c b/sysdeps/unix/sysv/linux/posix_fadvise64.c index 56748fd7fe..b19b5deb56 100644 --- a/sysdeps/unix/sysv/linux/posix_fadvise64.c +++ b/sysdeps/unix/sysv/linux/posix_fadvise64.c @@ -25,11 +25,7 @@ libc_hidden_proto (__posix_fadvise64_l64) /* Both arm and powerpc implements fadvise64_64 with last 'advise' argument just after 'fd' to avoid the requirement of implementing 7-arg syscalls. - ARM also defines __NR_fadvise64_64 as __NR_arm_fadvise64_64. - - s390 implements fadvice64_64 using a specific struct with arguments - packed inside. This is the only implementation handled in arch-specific - code. */ + ARM also defines __NR_fadvise64_64 as __NR_arm_fadvise64_64. */ #ifndef __NR_fadvise64_64 # define __NR_fadvise64_64 __NR_fadvise64 diff --git a/sysdeps/unix/sysv/linux/s390/Makefile b/sysdeps/unix/sysv/linux/s390/Makefile index d5433f1dd9..218aff1aee 100644 --- a/sysdeps/unix/sysv/linux/s390/Makefile +++ b/sysdeps/unix/sysv/linux/s390/Makefile @@ -1,7 +1,3 @@ -abi-variants := 32 64 -abi-32-condition := __WORDSIZE == 32 -abi-64-condition := __WORDSIZE == 64 - ifeq ($(subdir),rt) librt-routines += rt-sysdep librt-shared-only-routines += rt-sysdep diff --git a/sysdeps/unix/sysv/linux/s390/bits/elfclass.h b/sysdeps/unix/sysv/linux/s390/bits/elfclass.h index 723aa1189a..59de7fbef6 100644 --- a/sysdeps/unix/sysv/linux/s390/bits/elfclass.h +++ b/sysdeps/unix/sysv/linux/s390/bits/elfclass.h @@ -27,11 +27,6 @@ #define __ELF_NATIVE_CLASS __WORDSIZE -#if __WORDSIZE == 64 /* 64 bit Linux for S/390 is exceptional as it has .hash section with 64 bit entries. */ typedef uint64_t Elf_Symndx; -#else -/* 32 bit Linux for S/390 has normal .hash section entries with 32 bits. */ -typedef uint32_t Elf_Symndx; -#endif diff --git a/sysdeps/unix/sysv/linux/s390/bits/fcntl.h b/sysdeps/unix/sysv/linux/s390/bits/fcntl.h index 75ea4e23c6..0531f13efd 100644 --- a/sysdeps/unix/sysv/linux/s390/bits/fcntl.h +++ b/sysdeps/unix/sysv/linux/s390/bits/fcntl.h @@ -22,29 +22,20 @@ #include -#if __WORDSIZE == 64 /* Not necessary, files are always with 64bit off_t. */ -# define __O_LARGEFILE 0 -#endif +#define __O_LARGEFILE 0 -#if __WORDSIZE == 64 /* Not necessary, we always have 64-bit offsets. */ -# define F_GETLK64 5 /* Get record locking info. */ -# define F_SETLK64 6 /* Set record locking info (non-blocking). */ -# define F_SETLKW64 7 /* Set record locking info (blocking). */ -#endif +#define F_GETLK64 5 /* Get record locking info. */ +#define F_SETLK64 6 /* Set record locking info (non-blocking). */ +#define F_SETLKW64 7 /* Set record locking info (blocking). */ struct flock { short int l_type; /* Type of lock: F_RDLCK, F_WRLCK, or F_UNLCK. */ short int l_whence; /* Where `l_start' is relative to (like `lseek'). */ -#if __WORDSIZE == 64 || !defined __USE_FILE_OFFSET64 __off_t l_start; /* Offset where the lock begins. */ __off_t l_len; /* Size of the locked area; zero means until EOF. */ -#else - __off64_t l_start; /* Offset where the lock begins. */ - __off64_t l_len; /* Size of the locked area; zero means until EOF. */ -#endif __pid_t l_pid; /* Process holding the lock. */ }; @@ -59,13 +50,8 @@ struct flock64 }; #endif -#if __WORDSIZE == 64 -# define __POSIX_FADV_DONTNEED 6 /* Don't need these pages. */ -# define __POSIX_FADV_NOREUSE 7 /* Data will be accessed once. */ -#else -# define __POSIX_FADV_DONTNEED 4 /* Don't need these pages. */ -# define __POSIX_FADV_NOREUSE 5 /* Data will be accessed once. */ -#endif +#define __POSIX_FADV_DONTNEED 6 /* Don't need these pages. */ +#define __POSIX_FADV_NOREUSE 7 /* Data will be accessed once. */ /* Include generic Linux declarations. */ #include diff --git a/sysdeps/unix/sysv/linux/s390/bits/sigaction.h b/sysdeps/unix/sysv/linux/s390/bits/sigaction.h index 7f761808dc..19cdb14c32 100644 --- a/sysdeps/unix/sysv/linux/s390/bits/sigaction.h +++ b/sysdeps/unix/sysv/linux/s390/bits/sigaction.h @@ -1,4 +1,4 @@ -/* Definitions for 31 & 64 bit S/390 sigaction. +/* Definitions for 64 bit S/390 sigaction. Copyright (C) 2001-2026 Free Software Foundation, Inc. This file is part of the GNU C Library. @@ -23,9 +23,6 @@ # error "Never include directly; use instead." #endif -#include - -#if __WORDSIZE == 64 /* Structure describing the action to be taken when a signal arrives. */ struct sigaction { @@ -55,36 +52,6 @@ struct sigaction /* Additional set of signals to be blocked. */ __sigset_t sa_mask; }; -#else -/* Structure describing the action to be taken when a signal arrives. */ -struct sigaction - { - /* Signal handler. */ -#if defined __USE_POSIX199309 || defined __USE_XOPEN_EXTENDED - union - { - /* Used if SA_SIGINFO is not set. */ - __sighandler_t sa_handler; - /* Used if SA_SIGINFO is set. */ - void (*sa_sigaction) (int, siginfo_t *, void *); - } - __sigaction_handler; -# define sa_handler __sigaction_handler.sa_handler -# define sa_sigaction __sigaction_handler.sa_sigaction -#else - __sighandler_t sa_handler; -#endif - - /* Additional set of signals to be blocked. */ - __sigset_t sa_mask; - - /* Special flags. */ - int sa_flags; - - /* Restore handler. */ - void (*sa_restorer) (void); - }; -#endif /* Bits in `sa_flags'. */ #define SA_NOCLDSTOP 1 /* Don't send SIGCHLD when children stop. */ diff --git a/sysdeps/unix/sysv/linux/s390/bits/struct_stat.h b/sysdeps/unix/sysv/linux/s390/bits/struct_stat.h index e98192d7ef..f6a3a785a1 100644 --- a/sysdeps/unix/sysv/linux/s390/bits/struct_stat.h +++ b/sysdeps/unix/sysv/linux/s390/bits/struct_stat.h @@ -25,7 +25,6 @@ #include -#if __WORDSIZE == 64 struct stat { __dev_t st_dev; /* Device. */ @@ -62,70 +61,8 @@ struct stat __blkcnt_t st_blocks; /* Nr. 512-byte blocks allocated. */ long int __glibc_reserved[3]; }; -#else -struct stat - { -# ifdef __USE_TIME64_REDIRECTS -# include -# else - __dev_t st_dev; /* Device. */ - unsigned int __pad1; -# ifndef __USE_FILE_OFFSET64 - __ino_t st_ino; /* File serial number. */ -# else - __ino_t __st_ino; /* 32bit file serial number. */ -# endif - __mode_t st_mode; /* File mode. */ - __nlink_t st_nlink; /* Link count. */ - __uid_t st_uid; /* User ID of the file's owner. */ - __gid_t st_gid; /* Group ID of the file's group.*/ - __dev_t st_rdev; /* Device number, if device. */ - unsigned int __pad2; -# ifndef __USE_FILE_OFFSET64 - __off_t st_size; /* Size of file, in bytes. */ -# else - __off64_t st_size; /* Size of file, in bytes. */ -# endif - __blksize_t st_blksize; /* Optimal block size for I/O. */ - -# ifndef __USE_FILE_OFFSET64 - __blkcnt_t st_blocks; /* Number 512-byte blocks allocated. */ -# else - __blkcnt64_t st_blocks; /* Number 512-byte blocks allocated. */ -# endif -# ifdef __USE_XOPEN2K8 - /* Nanosecond resolution timestamps are stored in a format - equivalent to 'struct timespec'. This is the type used - whenever possible but the Unix namespace rules do not allow the - identifier 'timespec' to appear in the header. - Therefore we have to handle the use of this header in strictly - standard-compliant sources special. */ - struct timespec st_atim; /* Time of last access. */ - struct timespec st_mtim; /* Time of last modification. */ - struct timespec st_ctim; /* Time of last status change. */ -# define st_atime st_atim.tv_sec /* Backward compatibility. */ -# define st_mtime st_mtim.tv_sec -# define st_ctime st_ctim.tv_sec -# else - __time_t st_atime; /* Time of last access. */ - unsigned long int st_atimensec; /* Nscecs of last access. */ - __time_t st_mtime; /* Time of last modification. */ - unsigned long int st_mtimensec; /* Nsecs of last modification. */ - __time_t st_ctime; /* Time of last status change. */ - unsigned long int st_ctimensec; /* Nsecs of last status change. */ -# endif -# ifndef __USE_FILE_OFFSET64 - unsigned long int __glibc_reserved4; - unsigned long int __glibc_reserved5; -# else - __ino64_t st_ino; /* File serial number. */ -# endif -# endif - }; -# endif #ifdef __USE_LARGEFILE64 -# if __WORDSIZE == 64 /* Note stat64 is the same shape as stat. */ struct stat64 { @@ -138,7 +75,7 @@ struct stat64 int __glibc_reserved0; __dev_t st_rdev; /* Device number, if device. */ __off_t st_size; /* Size of file, in bytes. */ -# ifdef __USE_XOPEN2K8 +# ifdef __USE_XOPEN2K8 /* Nanosecond resolution timestamps are stored in a format equivalent to 'struct timespec'. This is the type used whenever possible but the Unix namespace rules do not allow the @@ -148,66 +85,21 @@ struct stat64 struct timespec st_atim; /* Time of last access. */ struct timespec st_mtim; /* Time of last modification. */ struct timespec st_ctim; /* Time of last status change. */ -# define st_atime st_atim.tv_sec /* Backward compatibility. */ -# define st_mtime st_mtim.tv_sec -# define st_ctime st_ctim.tv_sec -# else +# define st_atime st_atim.tv_sec /* Backward compatibility. */ +# define st_mtime st_mtim.tv_sec +# define st_ctime st_ctim.tv_sec +# else __time_t st_atime; /* Time of last access. */ unsigned long int st_atimensec; /* Nscecs of last access. */ __time_t st_mtime; /* Time of last modification. */ unsigned long int st_mtimensec; /* Nsecs of last modification. */ __time_t st_ctime; /* Time of last status change. */ unsigned long int st_ctimensec; /* Nsecs of last status change. */ -# endif +# endif __blksize_t st_blksize; /* Optimal block size for I/O. */ __blkcnt64_t st_blocks; /* Nr. 512-byte blocks allocated. */ long int __glibc_reserved[3]; }; -# else -struct stat64 - { -# ifdef __USE_TIME64_REDIRECTS -# include -# else - __dev_t st_dev; /* Device. */ - unsigned int __pad1; - - __ino_t __st_ino; /* 32bit file serial number. */ - __mode_t st_mode; /* File mode. */ - __nlink_t st_nlink; /* Link count. */ - __uid_t st_uid; /* User ID of the file's owner. */ - __gid_t st_gid; /* Group ID of the file's group.*/ - __dev_t st_rdev; /* Device number, if device. */ - unsigned int __pad2; - __off64_t st_size; /* Size of file, in bytes. */ - __blksize_t st_blksize; /* Optimal block size for I/O. */ - - __blkcnt64_t st_blocks; /* Number 512-byte blocks allocated. */ -# ifdef __USE_XOPEN2K8 - /* Nanosecond resolution timestamps are stored in a format - equivalent to 'struct timespec'. This is the type used - whenever possible but the Unix namespace rules do not allow the - identifier 'timespec' to appear in the header. - Therefore we have to handle the use of this header in strictly - standard-compliant sources special. */ - struct timespec st_atim; /* Time of last access. */ - struct timespec st_mtim; /* Time of last modification. */ - struct timespec st_ctim; /* Time of last status change. */ -# define st_atime st_atim.tv_sec /* Backward compatibility. */ -# define st_mtime st_mtim.tv_sec -# define st_ctime st_ctim.tv_sec -# else - __time_t st_atime; /* Time of last access. */ - unsigned long int st_atimensec; /* Nscecs of last access. */ - __time_t st_mtime; /* Time of last modification. */ - unsigned long int st_mtimensec; /* Nsecs of last modification. */ - __time_t st_ctime; /* Time of last status change. */ - unsigned long int st_ctimensec; /* Nsecs of last status change. */ -# endif - __ino64_t st_ino; /* File serial number. */ -# endif - }; -# endif #endif /* Tell code we have these members. */ diff --git a/sysdeps/unix/sysv/linux/s390/bits/typesizes.h b/sysdeps/unix/sysv/linux/s390/bits/typesizes.h index 826a1e425c..6e2be2270f 100644 --- a/sysdeps/unix/sysv/linux/s390/bits/typesizes.h +++ b/sysdeps/unix/sysv/linux/s390/bits/typesizes.h @@ -57,42 +57,34 @@ #define __TIMER_T_TYPE void * #define __BLKSIZE_T_TYPE __SLONGWORD_TYPE #define __FSID_T_TYPE struct { int __val[2]; } -#if defined __GNUC__ && __GNUC__ <= 2 -/* Compatibility with g++ 2.95.x. */ -#define __SSIZE_T_TYPE __SWORD_TYPE -#else -/* size_t is unsigned long int on s390 -m31. */ -#define __SSIZE_T_TYPE __SLONGWORD_TYPE -#endif + +/* With s390-32, __SSIZE_T_TYPE was __SWORD_TYPE for compatibility with + g++ 2.95.x. Afterwards __SLONGWORD_TYPE was needed as size_t was + unsigned long int on s390-32. + Now as only s390-64 exists, __SWORD_TYPE can be used as also used in the + generic version as both types result in long int. */ +#define __SSIZE_T_TYPE __SWORD_TYPE + #define __SYSCALL_SLONG_TYPE __SLONGWORD_TYPE #define __SYSCALL_ULONG_TYPE __ULONGWORD_TYPE -#define __CPU_MASK_TYPE __ULONGWORD_TYPE +#define __CPU_MASK_TYPE __ULONGWORD_TYPE -#ifdef __s390x__ /* Tell the libc code that off_t and off64_t are actually the same type for all ABI purposes, even if possibly expressed as different base types for C type-checking purposes. */ -# define __OFF_T_MATCHES_OFF64_T 1 +#define __OFF_T_MATCHES_OFF64_T 1 /* Same for ino_t and ino64_t. */ -# define __INO_T_MATCHES_INO64_T 1 +#define __INO_T_MATCHES_INO64_T 1 /* And for __rlim_t and __rlim64_t. */ -# define __RLIM_T_MATCHES_RLIM64_T 1 +#define __RLIM_T_MATCHES_RLIM64_T 1 /* And for fsblkcnt_t, fsblkcnt64_t, fsfilcnt_t and fsfilcnt64_t. */ -# define __STATFS_MATCHES_STATFS64 1 +#define __STATFS_MATCHES_STATFS64 1 /* And for getitimer, setitimer and rusage */ -# define __KERNEL_OLD_TIMEVAL_MATCHES_TIMEVAL64 1 -#else -# define __RLIM_T_MATCHES_RLIM64_T 0 - -# define __STATFS_MATCHES_STATFS64 0 - -/* And for getitimer, setitimer and rusage */ -# define __KERNEL_OLD_TIMEVAL_MATCHES_TIMEVAL64 0 -#endif +#define __KERNEL_OLD_TIMEVAL_MATCHES_TIMEVAL64 1 /* Number of descriptors that can fit in an `fd_set'. */ #define __FD_SETSIZE 1024 diff --git a/sysdeps/unix/sysv/linux/s390/kernel-features.h b/sysdeps/unix/sysv/linux/s390/kernel-features.h index a955c18738..d7af29285f 100644 --- a/sysdeps/unix/sysv/linux/s390/kernel-features.h +++ b/sysdeps/unix/sysv/linux/s390/kernel-features.h @@ -47,9 +47,6 @@ # undef __ASSUME_DIRECT_SYSVIPC_SYSCALLS # undef __ASSUME_SYSVIPC_DEFAULT_IPC_64 #endif -#ifndef __s390x__ -# define __ASSUME_SYSVIPC_BROKEN_MODE_T -#endif #undef __ASSUME_CLONE_DEFAULT #define __ASSUME_CLONE_BACKWARDS2 diff --git a/sysdeps/unix/sysv/linux/s390/readelflib.c b/sysdeps/unix/sysv/linux/s390/readelflib.c index 6229b705d2..87e900f536 100644 --- a/sysdeps/unix/sysv/linux/s390/readelflib.c +++ b/sysdeps/unix/sysv/linux/s390/readelflib.c @@ -16,9 +16,6 @@ . */ -int process_elf32_file (const char *file_name, const char *lib, - int *flag, unsigned int *isa_level, char **soname, - void *file_contents, size_t file_length); int process_elf64_file (const char *file_name, const char *lib, int *flag, unsigned int *isa_level, char **soname, void *file_contents, size_t file_length); @@ -29,29 +26,15 @@ process_elf_file (const char *file_name, const char *lib, int *flag, unsigned int *isa_level, char **soname, void *file_contents, size_t file_length) { - ElfW(Ehdr) *elf_header = (ElfW(Ehdr) *) file_contents; - int ret; - - if (elf_header->e_ident [EI_CLASS] == ELFCLASS32) - return process_elf32_file (file_name, lib, flag, isa_level, soname, - file_contents, file_length); - else - { - ret = process_elf64_file (file_name, lib, flag, isa_level, soname, - file_contents, file_length); - /* S/390 64bit libraries are always libc.so.6+. */ - if (!ret) - *flag = FLAG_S390_LIB64|FLAG_ELF_LIBC6; - return ret; - } + int ret = process_elf64_file (file_name, lib, flag, isa_level, soname, + file_contents, file_length); + /* S/390 64bit libraries are always libc.so.6+ which is already set + in process_elf64_file. */ + if (!ret) + *flag |= FLAG_S390_LIB64; + return ret; } -#undef __ELF_NATIVE_CLASS -#undef process_elf_file -#define process_elf_file process_elf32_file -#define __ELF_NATIVE_CLASS 32 -#include "elf/readelflib.c" - #undef __ELF_NATIVE_CLASS #undef process_elf_file #define process_elf_file process_elf64_file diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/Makefile b/sysdeps/unix/sysv/linux/s390/s390-64/Makefile index 6795734747..0c338cba36 100644 --- a/sysdeps/unix/sysv/linux/s390/s390-64/Makefile +++ b/sysdeps/unix/sysv/linux/s390/s390-64/Makefile @@ -1,6 +1,3 @@ -# See Makeconfig regarding the use of default-abi. -default-abi := 64 - ifeq ($(subdir),misc) sysdep_headers += sys/elf.h endif diff --git a/sysdeps/unix/sysv/linux/s390/sigcontextinfo.h b/sysdeps/unix/sysv/linux/s390/sigcontextinfo.h index 08679ffc82..ac1fc28dc3 100644 --- a/sysdeps/unix/sysv/linux/s390/sigcontextinfo.h +++ b/sysdeps/unix/sysv/linux/s390/sigcontextinfo.h @@ -23,11 +23,7 @@ static inline uintptr_t sigcontext_get_pc (const ucontext_t *ctx) { -#ifdef __s390x__ return ctx->uc_mcontext.psw.addr; -#else - return ctx->uc_mcontext.psw.addr & 0x7FFFFFFF; -#endif } #endif diff --git a/sysdeps/unix/sysv/linux/s390/sys/ucontext.h b/sysdeps/unix/sysv/linux/s390/sys/ucontext.h index 1d4d979b6c..3bbddd08ba 100644 --- a/sysdeps/unix/sysv/linux/s390/sys/ucontext.h +++ b/sysdeps/unix/sysv/linux/s390/sys/ucontext.h @@ -45,11 +45,7 @@ typedef unsigned long greg_t; the register set is an array, we make gregset_t a simple array that has the same size as s390_regs. This is needed for the elf_prstatus structure. */ -#if __WORDSIZE == 64 -# define __NGREG 27 -#else -# define __NGREG 36 -#endif +#define __NGREG 27 #ifdef __USE_MISC # define NGREG __NGREG #endif diff --git a/sysdeps/unix/sysv/linux/s390/sysconf.c b/sysdeps/unix/sysv/linux/s390/sysconf.c index 7083b63737..57ccaed4e3 100644 --- a/sysdeps/unix/sysv/linux/s390/sysconf.c +++ b/sysdeps/unix/sysv/linux/s390/sysconf.c @@ -1,4 +1,4 @@ -/* Get system parameters, e.g. cache information. S390/S390x version. +/* Get system parameters, e.g. cache information. S390x version. Copyright (C) 2015-2026 Free Software Foundation, Inc. This file is part of the GNU C Library. @@ -50,14 +50,9 @@ get_cache_info (int level, int attr, int type) /* Check if ecag-instruction is available. ecag - extract CPU attribute (only in zarch; arch >= z10; in as 2.24) */ - if (!(features->hwcap & HWCAP_S390_STFLE) -#if !defined __s390x__ - || !(features->hwcap & HWCAP_S390_ZARCH) - || !(features->hwcap & HWCAP_S390_HIGH_GPRS) -#endif /* !__s390x__ */ - ) + if (!(features->hwcap & HWCAP_S390_STFLE)) { - /* stfle (or zarch, high-gprs on s390-32) is not available. + /* stfle is not available. We are on an old machine. Return 256byte for LINESIZE for L1 d/i-cache, otherwise 0. */ if (level == 1 && attr == CACHE_ATTR_LINESIZE) @@ -81,7 +76,6 @@ get_cache_info (int level, int attr, int type) arg = (CACHE_LEVEL_MAX - level) * 8; __asm__ __volatile__ (".machine push\n\t" ".machine \"z10\"\n\t" - ".machinemode \"zarch_nohighgprs\"\n\t" "ecag %0,%%r0,0\n\t" /* returns 64bit unsigned integer. */ "srlg %0,%0,0(%1)\n\t" /* right align 8bit cache info field. */ ".machine pop" @@ -97,7 +91,6 @@ get_cache_info (int level, int attr, int type) cmd = (attr << 4) | ((level - 1) << 1) | type; __asm__ __volatile__ (".machine push\n\t" ".machine \"z10\"\n\t" - ".machinemode \"zarch_nohighgprs\"\n\t" "ecag %0,%%r0,0(%1)\n\t" ".machine pop" : "=d" (val) diff --git a/sysdeps/unix/sysv/linux/s390/sysdep.h b/sysdeps/unix/sysv/linux/s390/sysdep.h index ee2d92edff..593e70dc1e 100644 --- a/sysdeps/unix/sysv/linux/s390/sysdep.h +++ b/sysdeps/unix/sysv/linux/s390/sysdep.h @@ -69,14 +69,9 @@ #define VDSO_HASH 123718585 /* List of system calls which are supported as vsyscalls. */ -#ifdef __s390x__ #define HAVE_CLOCK_GETRES64_VSYSCALL "__kernel_clock_getres" #define HAVE_CLOCK_GETTIME64_VSYSCALL "__kernel_clock_gettime" #define HAVE_GETRANDOM_VSYSCALL "__kernel_getrandom" -#else -#define HAVE_CLOCK_GETRES_VSYSCALL "__kernel_clock_getres" -#define HAVE_CLOCK_GETTIME_VSYSCALL "__kernel_clock_gettime" -#endif #define HAVE_GETTIMEOFDAY_VSYSCALL "__kernel_gettimeofday" #define HAVE_GETCPU_VSYSCALL "__kernel_getcpu" diff --git a/sysdeps/unix/sysv/linux/s390/xstatver.h b/sysdeps/unix/sysv/linux/s390/xstatver.h index 9923199e40..f24ab4a9ee 100644 --- a/sysdeps/unix/sysv/linux/s390/xstatver.h +++ b/sysdeps/unix/sysv/linux/s390/xstatver.h @@ -1,19 +1,10 @@ /* Versions of the 'struct stat' data structure used in compatibility xstat functions. */ - -#include - -#if __WORDSIZE == 64 -# define _STAT_VER_KERNEL 0 -# define _STAT_VER_LINUX 1 -# define _MKNOD_VER_LINUX 0 -#else -# define _STAT_VER_LINUX_OLD 1 -# define _STAT_VER_KERNEL 1 -# define _STAT_VER_SVR4 2 -# define _STAT_VER_LINUX 3 -# define _MKNOD_VER_LINUX 1 -# define _MKNOD_VER_SVR4 2 -#endif +#define _STAT_VER_KERNEL 0 +#define _STAT_VER_LINUX 1 #define _STAT_VER _STAT_VER_LINUX + +/* Versions of the 'xmknod' interface used in compatibility xmknod + functions. */ +#define _MKNOD_VER_LINUX 0 #define _MKNOD_VER _MKNOD_VER_LINUX diff --git a/sysdeps/unix/sysv/linux/tst-ofdlocks-compat.c b/sysdeps/unix/sysv/linux/tst-ofdlocks-compat.c index f9cdde3222..0947fff157 100644 --- a/sysdeps/unix/sysv/linux/tst-ofdlocks-compat.c +++ b/sysdeps/unix/sysv/linux/tst-ofdlocks-compat.c @@ -41,9 +41,9 @@ do_prepare (int argc, char **argv) /* Linux between 4.13 and 4.15 return EOVERFLOW for LFS OFD locks usage in compat mode (non-LFS ABI running on a LFS default kernel, such as - i386 on a x86_64 kernel or s390-32 on a s390-64 kernel) [1]. This is - a kernel issue because __NR_fcntl64 is the expected way to use OFD locks - (used on GLIBC for both fcntl and fcntl64). + i386 on a x86_64 kernel) [1]. This is a kernel issue because __NR_fcntl64 + is the expected way to use OFD locks (used on GLIBC for both fcntl and + fcntl64). [1] https://sourceware.org/ml/libc-alpha/2018-07/msg00243.html */ diff --git a/sysdeps/unix/sysv/linux/xstat.c b/sysdeps/unix/sysv/linux/xstat.c index a67139cafa..33863c3cb7 100644 --- a/sysdeps/unix/sysv/linux/xstat.c +++ b/sysdeps/unix/sysv/linux/xstat.c @@ -43,7 +43,7 @@ __xstat (int vers, const char *name, struct stat *buf) return r ?: stat_overflow (buf); # else /* Old kABIs with old non-LFS support, e.g. arm, i386, hppa, m68k, - microblaze, s390, sh, powerpc, and sparc32. */ + microblaze, sh, powerpc, and sparc32. */ return INLINE_SYSCALL_CALL (stat, name, buf); # endif } diff --git a/sysdeps/unix/sysv/linux/xstat64.c b/sysdeps/unix/sysv/linux/xstat64.c index 8baa8214bc..7d513e4af0 100644 --- a/sysdeps/unix/sysv/linux/xstat64.c +++ b/sysdeps/unix/sysv/linux/xstat64.c @@ -72,7 +72,7 @@ ___xstat64 (int vers, const char *name, struct stat64 *buf) return INLINE_SYSCALL_CALL (fstatat64, AT_FDCWD, name, buf, 0); # else /* Old kABIs with old non-LFS support, e.g. arm, i386, hppa, m68k, - microblaze, s390, sh, mips32, powerpc32, and sparc32. */ + microblaze, sh, mips32, powerpc32, and sparc32. */ return INLINE_SYSCALL_CALL (stat64, name, buf); # endif /* STAT_IS_KERNEL_STAT */ #endif /* XSTAT_IS_XSTAT64 */ From patchwork Thu Apr 9 08:47:08 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Stefan Liebler X-Patchwork-Id: 132843 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from vm01.sourceware.org (localhost [127.0.0.1]) by sourceware.org (Postfix) with ESMTP id C1E724BA2E14 for ; Thu, 9 Apr 2026 08:53:22 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org C1E724BA2E14 Authentication-Results: sourceware.org; dkim=pass (2048-bit key, unprotected) header.d=ibm.com header.i=@ibm.com header.a=rsa-sha256 header.s=pp1 header.b=P7GUe1n6 X-Original-To: libc-alpha@sourceware.org Delivered-To: libc-alpha@sourceware.org Received: from mx0b-001b2d01.pphosted.com (mx0b-001b2d01.pphosted.com [148.163.158.5]) by sourceware.org (Postfix) with ESMTPS id B47D44BA2E08 for ; Thu, 9 Apr 2026 08:51:17 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org B47D44BA2E08 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=linux.ibm.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=linux.ibm.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org B47D44BA2E08 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=148.163.158.5 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1775724677; cv=none; b=q/tMhksw7gIPei+7aQQkDSvNOYwYnVVWybzngfq9lBOqPyC1lNZmBvIAbNALPiUyndGcUdh9w2aoBEZa5llKYQfzL7Kxd4MOqDykvx1PGIlEKdAT09XGEO3i4x74/hOzQCjFBed2+8Vjqt4x6lAUT70kTnjoK8h4C4qraDLRE0c= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1775724677; c=relaxed/simple; bh=KOIOeasrC2C2tfjQBDaRcxm4u4UYorQ0Cs9zeRE/l08=; h=DKIM-Signature:From:To:Subject:Date:Message-ID:MIME-Version; b=eWm6rvQ7ETuFw5kqTuZ7aBWwRUd38RASny6mrposreh7CYApvcpXJU6niUlUFzrp1Tk/BhT3r28KhC8qQVE3VAtmHeoUjyL8YvnQoi/qS3ga4oakh1lxJnQxL468wyERaUKi/8dL2vnlYXmg24B9JsyZwfuFewJ+IvB3eC8ZBUg= ARC-Authentication-Results: i=1; server2.sourceware.org DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org B47D44BA2E08 Received: from pps.filterd (m0356516.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 638JZWUM2326538 for ; Thu, 9 Apr 2026 08:51:17 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h=cc :content-transfer-encoding:date:from:in-reply-to:message-id :mime-version:references:subject:to; s=pp1; bh=lUvgAjiau+PxOCOYw pS4dGpNByeWwN8kHWtMoGBeD5o=; b=P7GUe1n63jceZwEuYQwBIjAtE0Di5cyMi tR7Ny+lV0IHs7V/bf/UBuD0FLyKvHheSx5qteGHKlfBbd+HwRS7YAXW76z3HDAPy BsnmHro7jNU75QHQnPofdfTTlhIFHkYoAYDzdQCmXAqNfyKYANbFwvuf6xf4t8MA wMYX3OOp1o1EMUC8YqSPw4VxHIC+DU+63aym+JTIE5l8Yd4raL3ObVU5OXV9MJT8 2dbHbTUWcZcP6Rx8fOoLvJ64YlDbw2pK2pQHwo15p4yek/ylmm5jEUBqC1gZ9VZi xoGRrt457N5SzXqPAzRHjffIxfME/9ykj12D34K6QvFnxr8WDBfbg== Received: from ppma23.wdc07v.mail.ibm.com (5d.69.3da9.ip4.static.sl-reverse.com [169.61.105.93]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 4dcn2kk8gg-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for ; Thu, 09 Apr 2026 08:51:16 +0000 (GMT) Received: from pps.filterd (ppma23.wdc07v.mail.ibm.com [127.0.0.1]) by ppma23.wdc07v.mail.ibm.com (8.18.1.2/8.18.1.2) with ESMTP id 6397rg5C013902 for ; Thu, 9 Apr 2026 08:51:16 GMT Received: from smtprelay07.fra02v.mail.ibm.com ([9.218.2.229]) by ppma23.wdc07v.mail.ibm.com (PPS) with ESMTPS id 4dcmf4avh2-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for ; Thu, 09 Apr 2026 08:51:16 +0000 Received: from smtpav03.fra02v.mail.ibm.com (smtpav03.fra02v.mail.ibm.com [10.20.54.102]) by smtprelay07.fra02v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 6398pCo235717466 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 9 Apr 2026 08:51:12 GMT Received: from smtpav03.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 02BED20043; Thu, 9 Apr 2026 08:51:12 +0000 (GMT) Received: from smtpav03.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id D15332004D; Thu, 9 Apr 2026 08:51:11 +0000 (GMT) Received: from a35lp68.lnxne.boe (unknown [9.87.84.240]) by smtpav03.fra02v.mail.ibm.com (Postfix) with ESMTP; Thu, 9 Apr 2026 08:51:11 +0000 (GMT) From: Stefan Liebler To: libc-alpha@sourceware.org Cc: Stefan Liebler Subject: [PATCH 3/5] s390: Switch to common-code headers Date: Thu, 9 Apr 2026 10:47:08 +0200 Message-ID: <20260409085102.3475867-4-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 X-TM-AS-GCONF: 00 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNDA5MDA3NyBTYWx0ZWRfX0kz3a3MpR+rU h+BIWvgFiPUdthaxIbAn9yQOSKqgmaBt0MtIaxXzq4gv6UYf09I24KhDC3RoKVoJghgKNdbYVBx aZyU5JXM3uMvr92DrykAgQzGUcwM5z0EG3exspn8Jr7uMDRzHtP3AX9mLE0u6DLzNvrJ0CrlF7d Gi1LYj+RevnL258IsBAVKS375MciPt+kechCtK8KHzVCBexkJFyoQPjphs5VPE6Kny7BWmiicb1 Nc35wIkuyA25gHhNwuAYUwbJg+B5wGSQSY92JJW5iHyiVOGX7OhMwUMRfL8ktXkhykxcM3xlnXI bqwF5mw2QGxhNT2i+OUj0NS2Tbiy6reHVFBbjaCmt0OOTjt0abCMVG9UJb/oRIhrQJEv7PepkK0 KKclhkoVB03IBIltETIdSwkvCGJWY7PN+iQQR+gXXAxHvXiJ9rNr27pUt5ItrG4alVMb5MN2PBV PxC0d5UpasP1mJytaHQ== X-Proofpoint-ORIG-GUID: Aew5TAg84xUT4AFeL3JexUEW3ufYayyX X-Authority-Analysis: v=2.4 cv=e9k2j6p/ c=1 sm=1 tr=0 ts=69d76884 cx=c_pps a=3Bg1Hr4SwmMryq2xdFQyZA==:117 a=3Bg1Hr4SwmMryq2xdFQyZA==:17 a=A5OVakUREuEA:10 a=VkNPw1HP01LnGYTKEx00:22 a=RnoormkPH1_aCDwRdu11:22 a=Y2IxJ9c9Rs8Kov3niI8_:22 a=mDV3o1hIAAAA:8 a=WK8v31sS_Lc71AaTvwUA:9 X-Proofpoint-GUID: Aew5TAg84xUT4AFeL3JexUEW3ufYayyX X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-04-09_02,2026-04-08_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 impostorscore=0 malwarescore=0 suspectscore=0 spamscore=0 bulkscore=0 adultscore=0 priorityscore=1501 phishscore=0 lowpriorityscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2604010000 definitions=main-2604090077 X-Spam-Status: No, score=-10.8 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_EF, GIT_PATCH_0, KAM_SHORT, RCVD_IN_DNSWL_LOW, RCVD_IN_MSPIKE_H4, RCVD_IN_MSPIKE_WL, RCVD_IN_VALIDITY_RPBL_BLOCKED, RCVD_IN_VALIDITY_SAFE_BLOCKED, SPF_HELO_NONE, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on sourceware.org X-BeenThere: libc-alpha@sourceware.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Libc-alpha mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: libc-alpha-bounces~patchwork=sourceware.org@sourceware.org The removal of s390-32 allows us to switch to common-code headers instead of providing s390-64 specific headers: from sysdeps/unix/sysv/linux/s390/bits/environments.h to bits/environments.h -> We now only have a 64bit environment. from sysdeps/s390/s390-64/bits/wordsize.h to sysdeps/wordsize-64/bits/wordsize.h -> All macros are defined equal from sysdeps/unix/sysv/linux/s390/bits/utmp.h to bits/utmp.h -> On s390-64, __WORDSIZE_TIME64_COMPAT32 is defined to 0, then the 64bit part of both headers is identical from sysdeps/unix/sysv/linux/s390/bits/utmpx.h to sysdeps/gnu/bits/utmpx.h -> On s390-64, __WORDSIZE_TIME64_COMPAT32 is defined to 0, then the 64bit part of both headers is identical from sysdeps/unix/sysv/linux/s390/bits/timesize.h to bits/timesize.h -> __TIMESIZE is defined to 64 in both cases from sysdeps/unix/sysv/linux/s390/bits/procfs-id.h to sysdeps/unix/sysv/linux/bits/procfs-id.h -> The typedefs for __pr_uid_t and __pr_gid_t on s390-64 are equal in both files. No need for an extra s390-specific header file anymore. from sysdeps/unix/sysv/linux/s390/bits/procfs-extra.h to sysdeps/unix/sysv/linux/bits/procfs-extra.h -> Get rid of the "32-bit variants so that BFD can read 32-bit core files." Furthermore it turned out that there is a hardcoded implementation independent of procfs-extra.h in /bfd/elf32-s390.c: elf_s390_grok_prstatus(), elf_s390_grok_psinfo(). --- sysdeps/s390/s390-64/bits/wordsize.h | 4 - .../unix/sysv/linux/s390/bits/environments.h | 96 ------------- .../unix/sysv/linux/s390/bits/procfs-extra.h | 75 ----------- sysdeps/unix/sysv/linux/s390/bits/procfs-id.h | 30 ----- sysdeps/unix/sysv/linux/s390/bits/timesize.h | 22 --- sysdeps/unix/sysv/linux/s390/bits/utmp.h | 127 ------------------ sysdeps/unix/sysv/linux/s390/bits/utmpx.h | 106 --------------- 7 files changed, 460 deletions(-) delete mode 100644 sysdeps/s390/s390-64/bits/wordsize.h delete mode 100644 sysdeps/unix/sysv/linux/s390/bits/environments.h delete mode 100644 sysdeps/unix/sysv/linux/s390/bits/procfs-extra.h delete mode 100644 sysdeps/unix/sysv/linux/s390/bits/procfs-id.h delete mode 100644 sysdeps/unix/sysv/linux/s390/bits/timesize.h delete mode 100644 sysdeps/unix/sysv/linux/s390/bits/utmp.h delete mode 100644 sysdeps/unix/sysv/linux/s390/bits/utmpx.h diff --git a/sysdeps/s390/s390-64/bits/wordsize.h b/sysdeps/s390/s390-64/bits/wordsize.h deleted file mode 100644 index b263c3141b..0000000000 --- a/sysdeps/s390/s390-64/bits/wordsize.h +++ /dev/null @@ -1,4 +0,0 @@ -/* Determine the wordsize from the preprocessor defines. */ - -#define __WORDSIZE 64 -#define __WORDSIZE_TIME64_COMPAT32 0 diff --git a/sysdeps/unix/sysv/linux/s390/bits/environments.h b/sysdeps/unix/sysv/linux/s390/bits/environments.h deleted file mode 100644 index 083f86cdd8..0000000000 --- a/sysdeps/unix/sysv/linux/s390/bits/environments.h +++ /dev/null @@ -1,96 +0,0 @@ -/* Copyright (C) 1999-2026 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, see - . */ - -#ifndef _UNISTD_H -# error "Never include this file directly. Use instead" -#endif - -#include - -/* This header should define the following symbols under the described - situations. A value `1' means that the model is always supported, - `-1' means it is never supported. Undefined means it cannot be - statically decided. - - _POSIX_V7_ILP32_OFF32 32bit int, long, pointers, and off_t type - _POSIX_V7_ILP32_OFFBIG 32bit int, long, and pointers and larger off_t type - - _POSIX_V7_LP64_OFF32 64bit long and pointers and 32bit off_t type - _POSIX_V7_LPBIG_OFFBIG 64bit long and pointers and large off_t type - - The macros _POSIX_V6_ILP32_OFF32, _POSIX_V6_ILP32_OFFBIG, - _POSIX_V6_LP64_OFF32, _POSIX_V6_LPBIG_OFFBIG, _XBS5_ILP32_OFF32, - _XBS5_ILP32_OFFBIG, _XBS5_LP64_OFF32, and _XBS5_LPBIG_OFFBIG were - used in previous versions of the Unix standard and are available - only for compatibility. -*/ - -#if __WORDSIZE == 64 - -/* Environments with 32-bit wide pointers are optionally provided. - Therefore following macros aren't defined: - # undef _POSIX_V7_ILP32_OFF32 - # undef _POSIX_V7_ILP32_OFFBIG - # undef _POSIX_V6_ILP32_OFF32 - # undef _POSIX_V6_ILP32_OFFBIG - # undef _XBS5_ILP32_OFF32 - # undef _XBS5_ILP32_OFFBIG - and users need to check at runtime. */ - -/* We also have no use (for now) for an environment with bigger pointers - and offsets. */ -# define _POSIX_V7_LPBIG_OFFBIG -1 -# define _POSIX_V6_LPBIG_OFFBIG -1 -# define _XBS5_LPBIG_OFFBIG -1 - -/* By default we have 64-bit wide `long int', pointers and `off_t'. */ -# define _POSIX_V7_LP64_OFF64 1 -# define _POSIX_V6_LP64_OFF64 1 -# define _XBS5_LP64_OFF64 1 - -#else /* __WORDSIZE == 32 */ - -/* By default we have 32-bit wide `int', `long int', pointers and `off_t' - and all platforms support LFS. */ -# define _POSIX_V7_ILP32_OFF32 1 -# define _POSIX_V7_ILP32_OFFBIG 1 -# define _POSIX_V6_ILP32_OFF32 1 -# define _POSIX_V6_ILP32_OFFBIG 1 -# define _XBS5_ILP32_OFF32 1 -# define _XBS5_ILP32_OFFBIG 1 - -/* We optionally provide an environment with the above size but an 64-bit - side `off_t'. Therefore we don't define _POSIX_V7_ILP32_OFFBIG. */ - -/* Environments with 64-bit wide pointers can be provided, - so these macros aren't defined: - # undef _POSIX_V7_LP64_OFF64 - # undef _POSIX_V7_LPBIG_OFFBIG - # undef _POSIX_V6_LP64_OFF64 - # undef _POSIX_V6_LPBIG_OFFBIG - # undef _XBS5_LP64_OFF64 - # undef _XBS5_LPBIG_OFFBIG - and sysconf tests for it at runtime. */ - -#endif /* __WORDSIZE == 32 */ - -#define __ILP32_OFF32_CFLAGS "-m31" -#define __ILP32_OFFBIG_CFLAGS "-m31 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64" -#define __ILP32_OFF32_LDFLAGS "-m31" -#define __ILP32_OFFBIG_LDFLAGS "-m31" -#define __LP64_OFF64_CFLAGS "-m64" -#define __LP64_OFF64_LDFLAGS "-m64" diff --git a/sysdeps/unix/sysv/linux/s390/bits/procfs-extra.h b/sysdeps/unix/sysv/linux/s390/bits/procfs-extra.h deleted file mode 100644 index 338d3f2fda..0000000000 --- a/sysdeps/unix/sysv/linux/s390/bits/procfs-extra.h +++ /dev/null @@ -1,75 +0,0 @@ -/* Extra sys/procfs.h definitions. S/390 version. - Copyright (C) 2000-2026 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, see - . */ - -#ifndef _SYS_PROCFS_H -# error "Never include directly; use instead." -#endif - -#if __WORDSIZE == 64 - -/* Provide 32-bit variants so that BFD can read 32-bit - core files. */ -#define ELF_NGREG32 36 -typedef unsigned int elf_greg_t32; -typedef elf_greg_t32 - elf_gregset_t32[ELF_NGREG32] __attribute__ ((__aligned__ (8))); -typedef elf_fpregset_t elf_fpregset_t32; - -struct elf_prstatus32 - { - struct elf_siginfo pr_info; /* Info associated with signal. */ - short int pr_cursig; /* Current signal. */ - unsigned int pr_sigpend; /* Set of pending signals. */ - unsigned int pr_sighold; /* Set of held signals. */ - __pid_t pr_pid; - __pid_t pr_ppid; - __pid_t pr_pgrp; - __pid_t pr_sid; - struct - { - int tv_sec, tv_usec; - } pr_utime, /* User time. */ - pr_stime, /* System time. */ - pr_cutime, /* Cumulative user time. */ - pr_cstime; /* Cumulative system time. */ - elf_gregset_t32 pr_reg; /* GP registers. */ - int pr_fpvalid; /* True if math copro being used. */ - }; - -struct elf_prpsinfo32 - { - char pr_state; /* Numeric process state. */ - char pr_sname; /* Char for pr_state. */ - char pr_zomb; /* Zombie. */ - char pr_nice; /* Nice val. */ - unsigned int pr_flag; /* Flags. */ - unsigned short int pr_uid; - unsigned short int pr_gid; - int pr_pid, pr_ppid, pr_pgrp, pr_sid; - /* Lots missing */ - char pr_fname[16]; /* Filename of executable. */ - char pr_psargs[ELF_PRARGSZ]; /* Initial part of arg list. */ - }; - -typedef elf_gregset_t32 prgregset32_t; -typedef elf_fpregset_t32 prfpregset32_t; - -typedef struct elf_prstatus32 prstatus32_t; -typedef struct elf_prpsinfo32 prpsinfo32_t; - -#endif diff --git a/sysdeps/unix/sysv/linux/s390/bits/procfs-id.h b/sysdeps/unix/sysv/linux/s390/bits/procfs-id.h deleted file mode 100644 index 247edf0b89..0000000000 --- a/sysdeps/unix/sysv/linux/s390/bits/procfs-id.h +++ /dev/null @@ -1,30 +0,0 @@ -/* Types of pr_uid and pr_gid in struct elf_prpsinfo. S/390 version. - Copyright (C) 2018-2026 Free Software Foundation, Inc. - - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, see - . */ - -#ifndef _SYS_PROCFS_H -# error "Never include directly; use instead." -#endif - -#if __WORDSIZE == 64 -typedef unsigned int __pr_uid_t; -typedef unsigned int __pr_gid_t; -#else -typedef unsigned short int __pr_uid_t; -typedef unsigned short int __pr_gid_t; -#endif diff --git a/sysdeps/unix/sysv/linux/s390/bits/timesize.h b/sysdeps/unix/sysv/linux/s390/bits/timesize.h deleted file mode 100644 index 363b4d7904..0000000000 --- a/sysdeps/unix/sysv/linux/s390/bits/timesize.h +++ /dev/null @@ -1,22 +0,0 @@ -/* Bit size of the time_t type at glibc build time, Linux/s390. - Copyright (C) 2021-2026 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, see - . */ - -#include - -/* Size in bits of the 'time_t' type of the default ABI. */ -#define __TIMESIZE __WORDSIZE diff --git a/sysdeps/unix/sysv/linux/s390/bits/utmp.h b/sysdeps/unix/sysv/linux/s390/bits/utmp.h deleted file mode 100644 index abe3a06fd7..0000000000 --- a/sysdeps/unix/sysv/linux/s390/bits/utmp.h +++ /dev/null @@ -1,127 +0,0 @@ -/* The `struct utmp' type, describing entries in the utmp file. GNU version. - Copyright (C) 1993-2026 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, see - . */ - -#ifndef _UTMP_H -# error "Never include directly; use instead." -#endif - -#include -#include -#include -#include - - -#define UT_LINESIZE 32 -#define UT_NAMESIZE 32 -#define UT_HOSTSIZE 256 - - -/* The structure describing an entry in the database of - previous logins. */ -struct lastlog - { -#if __WORDSIZE == 32 - int64_t ll_time; -#else - __time_t ll_time; -#endif - char ll_line[UT_LINESIZE]; - char ll_host[UT_HOSTSIZE]; - }; - - -/* The structure describing the status of a terminated process. This - type is used in `struct utmp' below. */ -struct exit_status - { - short int e_termination; /* Process termination status. */ - short int e_exit; /* Process exit status. */ - }; - - -/* The structure describing an entry in the user accounting database. */ -struct utmp -{ - short int ut_type; /* Type of login. */ - pid_t ut_pid; /* Process ID of login process. */ - char ut_line[UT_LINESIZE] - __attribute_nonstring__; /* Devicename. */ - char ut_id[4] - __attribute_nonstring__; /* Inittab ID. */ - char ut_user[UT_NAMESIZE] - __attribute_nonstring__; /* Username. */ - char ut_host[UT_HOSTSIZE] - __attribute_nonstring__; /* Hostname for remote login. */ - struct exit_status ut_exit; /* Exit status of a process marked - as DEAD_PROCESS. */ -/* The ut_session and ut_tv fields must be the same size when compiled - 32- and 64-bit. This allows data files and shared memory to be - shared between 32- and 64-bit applications. */ -#if __WORDSIZE == 32 - int64_t ut_session; /* Session ID, used for windowing. */ - struct - { - int64_t tv_sec; /* Seconds. */ - int64_t tv_usec; /* Microseconds. */ - } ut_tv; /* Time entry was made. */ -#else - long int ut_session; /* Session ID, used for windowing. */ - struct timeval ut_tv; /* Time entry was made. */ -#endif - - int32_t ut_addr_v6[4]; /* Internet address of remote host. */ - char __glibc_reserved[20]; /* Reserved for future use. */ -}; - -/* Backwards compatibility hacks. */ -#define ut_name ut_user -#ifndef _NO_UT_TIME -/* We have a problem here: `ut_time' is also used otherwise. Define - _NO_UT_TIME if the compiler complains. */ -# define ut_time ut_tv.tv_sec -#endif -#define ut_xtime ut_tv.tv_sec -#define ut_addr ut_addr_v6[0] - - -/* Values for the `ut_type' field of a `struct utmp'. */ -#define EMPTY 0 /* No valid user accounting information. */ - -#define RUN_LVL 1 /* The system's runlevel. */ -#define BOOT_TIME 2 /* Time of system boot. */ -#define NEW_TIME 3 /* Time after system clock changed. */ -#define OLD_TIME 4 /* Time when system clock changed. */ - -#define INIT_PROCESS 5 /* Process spawned by the init process. */ -#define LOGIN_PROCESS 6 /* Session leader of a logged in user. */ -#define USER_PROCESS 7 /* Normal process. */ -#define DEAD_PROCESS 8 /* Terminated process. */ - -#define ACCOUNTING 9 - -/* Old Linux name for the EMPTY type. */ -#define UT_UNKNOWN EMPTY - - -/* Tell the user that we have a modern system with UT_HOST, UT_PID, - UT_TYPE, UT_ID and UT_TV fields. */ -#define _HAVE_UT_TYPE 1 -#define _HAVE_UT_PID 1 -#define _HAVE_UT_ID 1 -#define _HAVE_UT_TV 1 -#define _HAVE_UT_HOST 1 diff --git a/sysdeps/unix/sysv/linux/s390/bits/utmpx.h b/sysdeps/unix/sysv/linux/s390/bits/utmpx.h deleted file mode 100644 index f96542a09d..0000000000 --- a/sysdeps/unix/sysv/linux/s390/bits/utmpx.h +++ /dev/null @@ -1,106 +0,0 @@ -/* Structures and definitions for the user accounting database. GNU version. - Copyright (C) 1997-2026 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, see - . */ - -#ifndef _UTMPX_H -# error "Never include directly; use instead." -#endif - -#include -#include -#include - - -#ifdef __USE_GNU -# include -# define _PATH_UTMPX _PATH_UTMP -# define _PATH_WTMPX _PATH_WTMP -#endif - - -#define __UT_LINESIZE 32 -#define __UT_NAMESIZE 32 -#define __UT_HOSTSIZE 256 - - -/* The structure describing the status of a terminated process. This - type is used in `struct utmpx' below. */ -struct __exit_status - { -#ifdef __USE_GNU - short int e_termination; /* Process termination status. */ - short int e_exit; /* Process exit status. */ -#else - short int __e_termination; /* Process termination status. */ - short int __e_exit; /* Process exit status. */ -#endif - }; - - -/* The structure describing an entry in the user accounting database. */ -struct utmpx -{ - short int ut_type; /* Type of login. */ - __pid_t ut_pid; /* Process ID of login process. */ - char ut_line[__UT_LINESIZE] - __attribute_nonstring__; /* Devicename. */ - char ut_id[4] - __attribute_nonstring__; /* Inittab ID. */ - char ut_user[__UT_NAMESIZE] - __attribute_nonstring__; /* Username. */ - char ut_host[__UT_HOSTSIZE] - __attribute_nonstring__; /* Hostname for remote login. */ - struct __exit_status ut_exit; /* Exit status of a process marked - as DEAD_PROCESS. */ - -/* The fields ut_session and ut_tv must be the same size when compiled - 32- and 64-bit. This allows files and shared memory to be shared - between 32- and 64-bit applications. */ -#if __WORDSIZE == 32 - __int64_t ut_session; /* Session ID, used for windowing. */ - struct - { - __int64_t tv_sec; /* Seconds. */ - __int64_t tv_usec; /* Microseconds. */ - } ut_tv; /* Time entry was made. */ -#else - long int ut_session; /* Session ID, used for windowing. */ - struct timeval ut_tv; /* Time entry was made. */ -#endif - __int32_t ut_addr_v6[4]; /* Internet address of remote host. */ - char __glibc_reserved[20]; /* Reserved for future use. */ -}; - - -/* Values for the `ut_type' field of a `struct utmpx'. */ -#define EMPTY 0 /* No valid user accounting information. */ - -#ifdef __USE_GNU -# define RUN_LVL 1 /* The system's runlevel. */ -#endif -#define BOOT_TIME 2 /* Time of system boot. */ -#define NEW_TIME 3 /* Time after system clock changed. */ -#define OLD_TIME 4 /* Time when system clock changed. */ - -#define INIT_PROCESS 5 /* Process spawned by the init process. */ -#define LOGIN_PROCESS 6 /* Session leader of a logged in user. */ -#define USER_PROCESS 7 /* Normal process. */ -#define DEAD_PROCESS 8 /* Terminated process. */ - -#ifdef __USE_GNU -# define ACCOUNTING 9 /* System accounting. */ -#endif From patchwork Thu Apr 9 08:47:09 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Stefan Liebler X-Patchwork-Id: 132842 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from vm01.sourceware.org (localhost [127.0.0.1]) by sourceware.org (Postfix) with ESMTP id 1C54A4BA23C2 for ; Thu, 9 Apr 2026 08:52:06 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 1C54A4BA23C2 Authentication-Results: sourceware.org; dkim=pass (2048-bit key, unprotected) header.d=ibm.com header.i=@ibm.com header.a=rsa-sha256 header.s=pp1 header.b=bTc1ZYAr X-Original-To: libc-alpha@sourceware.org Delivered-To: libc-alpha@sourceware.org Received: from mx0b-001b2d01.pphosted.com (mx0b-001b2d01.pphosted.com [148.163.158.5]) by sourceware.org (Postfix) with ESMTPS id 4AD364BA2E09 for ; Thu, 9 Apr 2026 08:51:18 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 4AD364BA2E09 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=linux.ibm.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=linux.ibm.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 4AD364BA2E09 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=148.163.158.5 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1775724678; cv=none; 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; t=1775724678; c=relaxed/simple; bh=rs67zLUdIM0iYX+Y4cwDRiNpZumngpxbNr1vTxArIec=; h=DKIM-Signature:From:To:Subject:Date:Message-ID:MIME-Version; b=IN0zIcUPuPczk8Dch38a/wcIDdZuTEAou3s3ROxHpQPMQyR3ObEeL02cNsQ9IwIrOWAn6fjdgjNrd/pfEsW+N4vT1XBBAiauZFQD0w4g9VXq/mkBR9vgxmiKroy6UzTYjTQqx0ztrcsS6EIN4x63bwqt1rfJggDtut2sx2rV4uw= ARC-Authentication-Results: i=1; server2.sourceware.org DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 4AD364BA2E09 Received: from pps.filterd (m0360072.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 638Hi5Vs2297936 for ; Thu, 9 Apr 2026 08:51:17 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h=cc :content-transfer-encoding:date:from:in-reply-to:message-id :mime-version:references:subject:to; s=pp1; bh=E4T1yInpiunE0c5Sz Lw43eYgOrB/AanbhRbUMPVv5ao=; b=bTc1ZYAru6qgc8UXVQ8flFRstQlb/Ig2q 9qRbVHFJdfeKjuPf06K4gZtG0hE75lJ+yvEagDdI0wowPc0zOT+76ihUO0cyfnkX VWbwTueqLbeqdnf9LzIcO30nlRyjXlOd76+IMJAsVARGRRBUxokHLth5ubpaETRZ WNIGsaTx7Xju6J6rYjmx4lO95WG0INk2kL2gLuD2OFOBV6pjCU2fMBZyXyk6ye/+ R7qDZnercdueJwALnBMF8q04BC6cSUmukH8berayZZ2HFo8Ds+8aEEnzrs+D+Uvn a7rhizl5JR6H2nfiMgKQYS5v9cDhEUmZWfcenj3SZEV1g8u5Fa3ZA== Received: from ppma12.dal12v.mail.ibm.com (dc.9e.1632.ip4.static.sl-reverse.com [50.22.158.220]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 4dcn2g39dr-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for ; Thu, 09 Apr 2026 08:51:17 +0000 (GMT) Received: from pps.filterd (ppma12.dal12v.mail.ibm.com [127.0.0.1]) by ppma12.dal12v.mail.ibm.com (8.18.1.2/8.18.1.2) with ESMTP id 6398ZUJW026707 for ; Thu, 9 Apr 2026 08:51:16 GMT Received: from smtprelay07.fra02v.mail.ibm.com ([9.218.2.229]) by ppma12.dal12v.mail.ibm.com (PPS) with ESMTPS id 4dcmg82u1x-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for ; Thu, 09 Apr 2026 08:51:16 +0000 Received: from smtpav03.fra02v.mail.ibm.com (smtpav03.fra02v.mail.ibm.com [10.20.54.102]) by smtprelay07.fra02v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 6398pCG850528756 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 9 Apr 2026 08:51:12 GMT Received: from smtpav03.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 2E7C520040; Thu, 9 Apr 2026 08:51:12 +0000 (GMT) Received: from smtpav03.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 08DD72004B; Thu, 9 Apr 2026 08:51:12 +0000 (GMT) Received: from a35lp68.lnxne.boe (unknown [9.87.84.240]) by smtpav03.fra02v.mail.ibm.com (Postfix) with ESMTP; Thu, 9 Apr 2026 08:51:11 +0000 (GMT) From: Stefan Liebler To: libc-alpha@sourceware.org Cc: Stefan Liebler 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 X-TM-AS-GCONF: 00 X-Authority-Analysis: v=2.4 cv=KeridwYD c=1 sm=1 tr=0 ts=69d76885 cx=c_pps a=bLidbwmWQ0KltjZqbj+ezA==:117 a=bLidbwmWQ0KltjZqbj+ezA==:17 a=A5OVakUREuEA:10 a=VkNPw1HP01LnGYTKEx00:22 a=RnoormkPH1_aCDwRdu11:22 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 nG+XV4pXvYsR56URtVXvn2A8Pa0x4f9opgxTieeq9zqUadCanMiqPquCpKcqWzF1qAhbD4BcFU+ OyqM7VHRnR5IFSCNfCQMMymEfAY+1kWNEX7daaWFDfNTuErxUePjBTeksAGSfxuSPN8137aCw+A dlWX1drkXhR+FNkSJnbwdule3YGGFWttqEVr69J7LsmQ/tlrZjK+WWwYPS/H9Uqczh9ar5rcSDk L4v5sIirusI53IMl8req/dW/++43Gh1mYfpbMYP/tkDyra76YOktlRYJJN08sOCfH6HBad/7A5v R4hhCIBQjgh5SdXzQaPdC+kkTeQ5mhJnWu4lT3t5FyZUP3b+sUzues7BrXNFeemzeE5yWCShq3s DH6/vFxJ7A7qFtI2zYH0CGVpE6eIyD15iKetfEQAqA7eXOhIAayF1DdrRR5/sTYSus0dW3Xu2ln 2UrXxKmGWtOcbkzpmkA== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-04-09_02,2026-04-08_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 suspectscore=0 malwarescore=0 lowpriorityscore=0 adultscore=0 impostorscore=0 clxscore=1015 phishscore=0 priorityscore=1501 spamscore=0 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2604010000 definitions=main-2604090077 X-Spam-Status: No, score=-10.7 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_EF, GIT_PATCH_0, KAM_SHORT, PROLO_LEO2, RCVD_IN_DNSWL_LOW, RCVD_IN_MSPIKE_H4, RCVD_IN_MSPIKE_WL, RCVD_IN_VALIDITY_RPBL_BLOCKED, RCVD_IN_VALIDITY_SAFE_BLOCKED, SPF_HELO_NONE, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on sourceware.org X-BeenThere: libc-alpha@sourceware.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Libc-alpha mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: libc-alpha-bounces~patchwork=sourceware.org@sourceware.org All the files in subfolders s390/s390-64 in sysdeps directory are moved up to the s390/ ones. If necessary the files were merged with the existing ones. sysdeps/s390/preconfigure.ac was updated to reflect the removal of s390-64 subdirectory. --- sysdeps/s390/Implies | 1 + sysdeps/s390/Makefile | 89 +++++++ sysdeps/s390/Versions | 3 + sysdeps/s390/{s390-64 => }/__longjmp.c | 2 +- sysdeps/s390/{s390-64 => }/add_n.S | 0 sysdeps/s390/{s390-64 => }/bsd-_setjmp.S | 0 sysdeps/s390/{s390-64 => }/bsd-setjmp.S | 0 sysdeps/s390/configure | 93 +++++++- sysdeps/s390/configure.ac | 56 ++++- sysdeps/s390/{s390-64 => }/crti.S | 0 sysdeps/s390/{s390-64 => }/crtn.S | 0 sysdeps/s390/{s390-64 => }/dl-hwcap-check.h | 0 .../s390/{s390-64 => }/dl-hwcaps-subdirs.c | 0 sysdeps/s390/{s390-64 => }/dl-machine.h | 0 sysdeps/s390/{s390-64 => }/dl-trampoline.S | 0 sysdeps/s390/{s390-64 => }/dl-trampoline.h | 0 sysdeps/s390/preconfigure | 2 +- sysdeps/s390/preconfigure.ac | 2 +- sysdeps/s390/s390-64/Implies | 1 - sysdeps/s390/s390-64/Makefile | 92 -------- sysdeps/s390/s390-64/Versions | 5 - sysdeps/s390/s390-64/configure | 95 -------- sysdeps/s390/s390-64/configure.ac | 57 ----- sysdeps/s390/{s390-64 => }/s390x-mcount.S | 0 sysdeps/s390/{s390-64 => }/s390x-mcount.h | 0 sysdeps/s390/{s390-64 => }/setjmp.S | 0 .../s390/{s390-64 => }/stackguard-macros.h | 0 sysdeps/s390/{s390-64 => }/start.S | 0 sysdeps/s390/{s390-64 => }/strncpy-z900.S | 0 sysdeps/s390/{s390-64 => }/sub_n.S | 0 sysdeps/s390/{s390-64 => }/sysdep.h | 0 sysdeps/s390/{s390-64 => }/tst-audit.h | 0 sysdeps/s390/{s390-64 => }/tst-glibc-hwcaps.c | 0 sysdeps/unix/sysv/linux/s390/Implies | 1 + sysdeps/unix/sysv/linux/s390/Makefile | 10 + sysdeps/unix/sysv/linux/s390/Versions | 5 + .../s390/{s390-64 => }/____longjmp_chk.c | 0 .../s390/{s390-64 => }/__makecontext_ret.S | 0 .../linux/s390/{s390-64 => }/arch-syscall.h | 0 .../linux/s390/{s390-64 => }/c++-types.data | 0 .../sysv/linux/s390/{s390-64 => }/clone.S | 0 .../sysv/linux/s390/{s390-64 => }/clone3.S | 0 sysdeps/unix/sysv/linux/s390/configure | 13 ++ sysdeps/unix/sysv/linux/s390/configure.ac | 2 + sysdeps/unix/sysv/linux/s390/dl-cache.h | 23 ++ .../linux/s390/{s390-64 => }/getcontext.S | 0 .../sysv/linux/s390/{s390-64 => }/ld.abilist | 0 .../{s390-64 => }/libBrokenLocale.abilist | 0 .../linux/s390/{s390-64 => }/libanl.abilist | 0 .../linux/s390/{s390-64 => }/libc.abilist | 0 .../{s390-64 => }/libc_malloc_debug.abilist | 0 .../linux/s390/{s390-64 => }/libdl.abilist | 0 .../linux/s390/{s390-64 => }/libm.abilist | 0 .../linux/s390/{s390-64 => }/libnsl.abilist | 0 .../s390/{s390-64 => }/libpthread.abilist | 0 .../s390/{s390-64 => }/libresolv.abilist | 0 .../linux/s390/{s390-64 => }/librt.abilist | 0 .../s390/{s390-64 => }/libthread_db.abilist | 0 .../linux/s390/{s390-64 => }/libutil.abilist | 0 .../linux/s390/{s390-64 => }/makecontext.c | 0 .../linux/s390/{s390-64 => }/pointer_guard.h | 0 sysdeps/unix/sysv/linux/s390/s390-64/Implies | 1 - sysdeps/unix/sysv/linux/s390/s390-64/Makefile | 15 -- sysdeps/unix/sysv/linux/s390/s390-64/Versions | 7 - .../unix/sysv/linux/s390/s390-64/configure | 16 -- .../unix/sysv/linux/s390/s390-64/configure.ac | 4 - .../unix/sysv/linux/s390/s390-64/dl-cache.h | 24 -- sysdeps/unix/sysv/linux/s390/s390-64/sysdep.h | 178 -------------- .../linux/s390/{s390-64 => }/setcontext.S | 0 .../linux/s390/{s390-64 => }/shlib-versions | 0 .../linux/s390/{s390-64 => }/single-thread.h | 0 .../linux/s390/{s390-64 => }/swapcontext.S | 0 .../sysv/linux/s390/{s390-64 => }/syscall.S | 0 .../linux/s390/{s390-64 => }/syscall_cancel.S | 0 .../sysv/linux/s390/{s390-64 => }/sysdep.S | 0 sysdeps/unix/sysv/linux/s390/sysdep.h | 218 +++++++++++++++--- .../{s390-64 => }/timer_t_was_int_compat.h | 0 .../sysv/linux/s390/{s390-64 => }/vfork.S | 0 78 files changed, 481 insertions(+), 534 deletions(-) rename sysdeps/s390/{s390-64 => }/__longjmp.c (97%) rename sysdeps/s390/{s390-64 => }/add_n.S (100%) rename sysdeps/s390/{s390-64 => }/bsd-_setjmp.S (100%) rename sysdeps/s390/{s390-64 => }/bsd-setjmp.S (100%) rename sysdeps/s390/{s390-64 => }/crti.S (100%) rename sysdeps/s390/{s390-64 => }/crtn.S (100%) rename sysdeps/s390/{s390-64 => }/dl-hwcap-check.h (100%) rename sysdeps/s390/{s390-64 => }/dl-hwcaps-subdirs.c (100%) rename sysdeps/s390/{s390-64 => }/dl-machine.h (100%) rename sysdeps/s390/{s390-64 => }/dl-trampoline.S (100%) rename sysdeps/s390/{s390-64 => }/dl-trampoline.h (100%) delete mode 100644 sysdeps/s390/s390-64/Implies delete mode 100644 sysdeps/s390/s390-64/Makefile delete mode 100644 sysdeps/s390/s390-64/Versions delete mode 100644 sysdeps/s390/s390-64/configure delete mode 100644 sysdeps/s390/s390-64/configure.ac rename sysdeps/s390/{s390-64 => }/s390x-mcount.S (100%) rename sysdeps/s390/{s390-64 => }/s390x-mcount.h (100%) rename sysdeps/s390/{s390-64 => }/setjmp.S (100%) rename sysdeps/s390/{s390-64 => }/stackguard-macros.h (100%) rename sysdeps/s390/{s390-64 => }/start.S (100%) rename sysdeps/s390/{s390-64 => }/strncpy-z900.S (100%) rename sysdeps/s390/{s390-64 => }/sub_n.S (100%) rename sysdeps/s390/{s390-64 => }/sysdep.h (100%) rename sysdeps/s390/{s390-64 => }/tst-audit.h (100%) rename sysdeps/s390/{s390-64 => }/tst-glibc-hwcaps.c (100%) rename sysdeps/unix/sysv/linux/s390/{s390-64 => }/____longjmp_chk.c (100%) rename sysdeps/unix/sysv/linux/s390/{s390-64 => }/__makecontext_ret.S (100%) rename sysdeps/unix/sysv/linux/s390/{s390-64 => }/arch-syscall.h (100%) rename sysdeps/unix/sysv/linux/s390/{s390-64 => }/c++-types.data (100%) rename sysdeps/unix/sysv/linux/s390/{s390-64 => }/clone.S (100%) rename sysdeps/unix/sysv/linux/s390/{s390-64 => }/clone3.S (100%) rename sysdeps/unix/sysv/linux/s390/{s390-64 => }/getcontext.S (100%) rename sysdeps/unix/sysv/linux/s390/{s390-64 => }/ld.abilist (100%) rename sysdeps/unix/sysv/linux/s390/{s390-64 => }/libBrokenLocale.abilist (100%) rename sysdeps/unix/sysv/linux/s390/{s390-64 => }/libanl.abilist (100%) rename sysdeps/unix/sysv/linux/s390/{s390-64 => }/libc.abilist (100%) rename sysdeps/unix/sysv/linux/s390/{s390-64 => }/libc_malloc_debug.abilist (100%) rename sysdeps/unix/sysv/linux/s390/{s390-64 => }/libdl.abilist (100%) rename sysdeps/unix/sysv/linux/s390/{s390-64 => }/libm.abilist (100%) rename sysdeps/unix/sysv/linux/s390/{s390-64 => }/libnsl.abilist (100%) rename sysdeps/unix/sysv/linux/s390/{s390-64 => }/libpthread.abilist (100%) rename sysdeps/unix/sysv/linux/s390/{s390-64 => }/libresolv.abilist (100%) rename sysdeps/unix/sysv/linux/s390/{s390-64 => }/librt.abilist (100%) rename sysdeps/unix/sysv/linux/s390/{s390-64 => }/libthread_db.abilist (100%) rename sysdeps/unix/sysv/linux/s390/{s390-64 => }/libutil.abilist (100%) rename sysdeps/unix/sysv/linux/s390/{s390-64 => }/makecontext.c (100%) rename sysdeps/unix/sysv/linux/s390/{s390-64 => }/pointer_guard.h (100%) delete mode 100644 sysdeps/unix/sysv/linux/s390/s390-64/Implies delete mode 100644 sysdeps/unix/sysv/linux/s390/s390-64/Makefile delete mode 100644 sysdeps/unix/sysv/linux/s390/s390-64/Versions delete mode 100644 sysdeps/unix/sysv/linux/s390/s390-64/configure delete mode 100644 sysdeps/unix/sysv/linux/s390/s390-64/configure.ac delete mode 100644 sysdeps/unix/sysv/linux/s390/s390-64/dl-cache.h delete mode 100644 sysdeps/unix/sysv/linux/s390/s390-64/sysdep.h rename sysdeps/unix/sysv/linux/s390/{s390-64 => }/setcontext.S (100%) rename sysdeps/unix/sysv/linux/s390/{s390-64 => }/shlib-versions (100%) rename sysdeps/unix/sysv/linux/s390/{s390-64 => }/single-thread.h (100%) rename sysdeps/unix/sysv/linux/s390/{s390-64 => }/swapcontext.S (100%) rename sysdeps/unix/sysv/linux/s390/{s390-64 => }/syscall.S (100%) rename sysdeps/unix/sysv/linux/s390/{s390-64 => }/syscall_cancel.S (100%) rename sysdeps/unix/sysv/linux/s390/{s390-64 => }/sysdep.S (100%) rename sysdeps/unix/sysv/linux/s390/{s390-64 => }/timer_t_was_int_compat.h (100%) rename sysdeps/unix/sysv/linux/s390/{s390-64 => }/vfork.S (100%) diff --git a/sysdeps/s390/Implies b/sysdeps/s390/Implies index 1945b1f4bb..30800d54c3 100644 --- a/sysdeps/s390/Implies +++ b/sysdeps/s390/Implies @@ -1,3 +1,4 @@ +wordsize-64 ieee754/ldbl-128 ieee754/dbl-64 ieee754/flt-32 diff --git a/sysdeps/s390/Makefile b/sysdeps/s390/Makefile index 985b4f25ee..29d11dfdab 100644 --- a/sysdeps/s390/Makefile +++ b/sysdeps/s390/Makefile @@ -1,3 +1,7 @@ +ifeq ($(subdir),gmon) +sysdep_routines += s390x-mcount +endif + ifeq ($(subdir),iconvdata) ISO-8859-1_CP037_Z900-routines := iso-8859-1_cp037_z900 ISO-8859-1_CP037_Z900-map := gconv.map @@ -43,6 +47,91 @@ $(modpfx)gconv-modules-s390.conf: ../sysdeps/s390/gconv-modules-s390.conf \ endif ifeq ($(subdir),elf) +CFLAGS-rtld.c += -Wno-uninitialized -Wno-unused +CFLAGS-dl-load.c += -Wno-unused +CFLAGS-dl-reloc.c += -Wno-unused + +$(objpfx)tst-glibc-hwcaps: \ + $(objpfx)libmarkermod2-1.so \ + $(objpfx)libmarkermod3-1.so \ + $(objpfx)libmarkermod4-1.so \ + $(objpfx)libmarkermod5-1.so \ + $(objpfx)libmarkermod6-1.so +$(objpfx)tst-glibc-hwcaps.out: \ + $(objpfx)libmarkermod2.so \ + $(objpfx)glibc-hwcaps/z13/libmarkermod2.so \ + $(objpfx)libmarkermod3.so \ + $(objpfx)glibc-hwcaps/z13/libmarkermod3.so \ + $(objpfx)glibc-hwcaps/z14/libmarkermod3.so \ + $(objpfx)libmarkermod4.so \ + $(objpfx)glibc-hwcaps/z13/libmarkermod4.so \ + $(objpfx)glibc-hwcaps/z14/libmarkermod4.so \ + $(objpfx)glibc-hwcaps/z15/libmarkermod4.so \ + $(objpfx)libmarkermod5.so \ + $(objpfx)glibc-hwcaps/z13/libmarkermod5.so \ + $(objpfx)glibc-hwcaps/z14/libmarkermod5.so \ + $(objpfx)glibc-hwcaps/z15/libmarkermod5.so \ + $(objpfx)glibc-hwcaps/z16/libmarkermod5.so \ + $(objpfx)libmarkermod6.so \ + $(objpfx)glibc-hwcaps/z13/libmarkermod6.so \ + $(objpfx)glibc-hwcaps/z14/libmarkermod6.so \ + $(objpfx)glibc-hwcaps/z15/libmarkermod6.so \ + $(objpfx)glibc-hwcaps/z16/libmarkermod6.so \ + $(objpfx)glibc-hwcaps/z17/libmarkermod6.so + + +$(objpfx)glibc-hwcaps/z13/libmarkermod2.so: $(objpfx)libmarkermod2-2.so + $(make-target-directory) + cp $< $@ +$(objpfx)glibc-hwcaps/z13/libmarkermod3.so: $(objpfx)libmarkermod3-2.so + $(make-target-directory) + cp $< $@ +$(objpfx)glibc-hwcaps/z14/libmarkermod3.so: $(objpfx)libmarkermod3-3.so + $(make-target-directory) + cp $< $@ +$(objpfx)glibc-hwcaps/z13/libmarkermod4.so: $(objpfx)libmarkermod4-2.so + $(make-target-directory) + cp $< $@ +$(objpfx)glibc-hwcaps/z14/libmarkermod4.so: $(objpfx)libmarkermod4-3.so + $(make-target-directory) + cp $< $@ +$(objpfx)glibc-hwcaps/z15/libmarkermod4.so: $(objpfx)libmarkermod4-4.so + $(make-target-directory) + cp $< $@ +$(objpfx)glibc-hwcaps/z13/libmarkermod5.so: $(objpfx)libmarkermod5-2.so + $(make-target-directory) + cp $< $@ +$(objpfx)glibc-hwcaps/z14/libmarkermod5.so: $(objpfx)libmarkermod5-3.so + $(make-target-directory) + cp $< $@ +$(objpfx)glibc-hwcaps/z15/libmarkermod5.so: $(objpfx)libmarkermod5-4.so + $(make-target-directory) + cp $< $@ +$(objpfx)glibc-hwcaps/z16/libmarkermod5.so: $(objpfx)libmarkermod5-5.so + $(make-target-directory) + cp $< $@ +$(objpfx)glibc-hwcaps/z13/libmarkermod6.so: $(objpfx)libmarkermod6-2.so + $(make-target-directory) + cp $< $@ +$(objpfx)glibc-hwcaps/z14/libmarkermod6.so: $(objpfx)libmarkermod6-3.so + $(make-target-directory) + cp $< $@ +$(objpfx)glibc-hwcaps/z15/libmarkermod6.so: $(objpfx)libmarkermod6-4.so + $(make-target-directory) + cp $< $@ +$(objpfx)glibc-hwcaps/z16/libmarkermod6.so: $(objpfx)libmarkermod6-5.so + $(make-target-directory) + cp $< $@ +$(objpfx)glibc-hwcaps/z17/libmarkermod6.so: $(objpfx)libmarkermod6-6.so + $(make-target-directory) + cp $< $@ + + +ifeq (no,$(build-hardcoded-path-in-tests)) +# This is an ld.so.cache test, and RPATH/RUNPATH in the executable +# interferes with its test objectives. +tests-container += tst-glibc-hwcaps-cache +endif ifeq ($(build-shared),yes) tests += tst-dl-runtime-resolve-noaudit tst-dl-runtime-resolve-audit \ diff --git a/sysdeps/s390/Versions b/sysdeps/s390/Versions index 8417623353..d80d691817 100644 --- a/sysdeps/s390/Versions +++ b/sysdeps/s390/Versions @@ -3,6 +3,9 @@ libc { setjmp; _setjmp; __sigsetjmp; longjmp; _longjmp; siglongjmp; } + GLIBC_2.29 { + __fentry__; + } } ld { diff --git a/sysdeps/s390/s390-64/__longjmp.c b/sysdeps/s390/__longjmp.c similarity index 97% rename from sysdeps/s390/s390-64/__longjmp.c rename to sysdeps/s390/__longjmp.c index fabd5e0a4e..7c207e44c6 100644 --- a/sysdeps/s390/s390-64/__longjmp.c +++ b/sysdeps/s390/__longjmp.c @@ -24,7 +24,7 @@ #include #include -/* See sysdeps/unix/sysv/linux/s390/s390-64/pointer_guard.h. */ +/* See sysdeps/unix/sysv/linux/s390/pointer_guard.h. */ #if IS_IN (rtld) # undef PTR_DEMANGLE #endif diff --git a/sysdeps/s390/s390-64/add_n.S b/sysdeps/s390/add_n.S similarity index 100% rename from sysdeps/s390/s390-64/add_n.S rename to sysdeps/s390/add_n.S diff --git a/sysdeps/s390/s390-64/bsd-_setjmp.S b/sysdeps/s390/bsd-_setjmp.S similarity index 100% rename from sysdeps/s390/s390-64/bsd-_setjmp.S rename to sysdeps/s390/bsd-_setjmp.S diff --git a/sysdeps/s390/s390-64/bsd-setjmp.S b/sysdeps/s390/bsd-setjmp.S similarity index 100% rename from sysdeps/s390/s390-64/bsd-setjmp.S rename to sysdeps/s390/bsd-setjmp.S diff --git a/sysdeps/s390/configure b/sysdeps/s390/configure index f4ec662610..e21a5ba3a7 100644 --- a/sysdeps/s390/configure +++ b/sysdeps/s390/configure @@ -269,6 +269,95 @@ then fi -test -n "$critic_missing" && as_fn_error $? " -*** $critic_missing" "$LINENO" 5 +# Minimal checking for static PIE support in ld. +# Compare to ld testcase/bugzilla: +# /ld/testsuite/ld-elf/pr22263-1.rd +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for s390-specific static PIE requirements" >&5 +printf %s "checking for s390-specific static PIE requirements... " >&6; } +if { as_var=\ +libc_cv_s390x_staticpie_req_runtime; eval test \${$as_var+y}; } +then : + printf %s "(cached) " >&6 +else case e in #( + e) cat > conftest1.c < conftest2.c <&5 + (eval $ac_try) 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; } \ + && { ac_try='${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS -fPIE -c conftest2.c -o conftest2.o' + { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5 + (eval $ac_try) 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; } \ + && { ac_try='${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS -static-pie -nostartfiles -nostdlib -fPIE -o conftest conftest1.o conftest2.o' + { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5 + (eval $ac_try) 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; } \ + && { ac_try='! LC_ALL=C $READELF -Wr conftest | grep R_390_TLS_TPOFF >&5' + { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5 + (eval $ac_try) 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; } \ + && { ac_try='LC_ALL=C $READELF -Wd conftest | grep JMPREL >&5' + { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5 + (eval $ac_try) 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; } + then + libc_cv_s390x_staticpie_req_runtime=yes + fi + rm -rf conftest.* ;; +esac +fi +eval ac_res=\$\ +libc_cv_s390x_staticpie_req_runtime + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +printf "%s\n" "$ac_res" >&6; } + +if test $libc_cv_s390x_staticpie_req_runtime = yes; then + # Some kernels might fail with /proc/sys/kernel/randomize_va_space set to 0 + # due not enough space for a brk call. However, there is no reliable way to + # test it. + printf "%s\n" "#define SUPPORT_STATIC_PIE 1" >>confdefs.h + +fi diff --git a/sysdeps/s390/configure.ac b/sysdeps/s390/configure.ac index 82e1a4445f..3c384f9670 100644 --- a/sysdeps/s390/configure.ac +++ b/sysdeps/s390/configure.ac @@ -133,5 +133,57 @@ then AC_DEFINE(HAVE_S390_MIN_ARCH13_ZARCH_ASM_SUPPORT) fi -test -n "$critic_missing" && AC_MSG_ERROR([ -*** $critic_missing]) +# Minimal checking for static PIE support in ld. +# Compare to ld testcase/bugzilla: +# /ld/testsuite/ld-elf/pr22263-1.rd +AC_CACHE_CHECK([for s390-specific static PIE requirements], \ +[libc_cv_s390x_staticpie_req_runtime], [dnl + cat > conftest1.c < conftest2.c <&AS_MESSAGE_LOG_FD) \ + && AC_TRY_COMMAND([LC_ALL=C $READELF -Wd conftest | grep JMPREL >&AS_MESSAGE_LOG_FD]) + then + libc_cv_s390x_staticpie_req_runtime=yes + fi + rm -rf conftest.*]) + +if test $libc_cv_s390x_staticpie_req_runtime = yes; then + # Some kernels might fail with /proc/sys/kernel/randomize_va_space set to 0 + # due not enough space for a brk call. However, there is no reliable way to + # test it. + AC_DEFINE(SUPPORT_STATIC_PIE) +fi diff --git a/sysdeps/s390/s390-64/crti.S b/sysdeps/s390/crti.S similarity index 100% rename from sysdeps/s390/s390-64/crti.S rename to sysdeps/s390/crti.S diff --git a/sysdeps/s390/s390-64/crtn.S b/sysdeps/s390/crtn.S similarity index 100% rename from sysdeps/s390/s390-64/crtn.S rename to sysdeps/s390/crtn.S diff --git a/sysdeps/s390/s390-64/dl-hwcap-check.h b/sysdeps/s390/dl-hwcap-check.h similarity index 100% rename from sysdeps/s390/s390-64/dl-hwcap-check.h rename to sysdeps/s390/dl-hwcap-check.h diff --git a/sysdeps/s390/s390-64/dl-hwcaps-subdirs.c b/sysdeps/s390/dl-hwcaps-subdirs.c similarity index 100% rename from sysdeps/s390/s390-64/dl-hwcaps-subdirs.c rename to sysdeps/s390/dl-hwcaps-subdirs.c diff --git a/sysdeps/s390/s390-64/dl-machine.h b/sysdeps/s390/dl-machine.h similarity index 100% rename from sysdeps/s390/s390-64/dl-machine.h rename to sysdeps/s390/dl-machine.h diff --git a/sysdeps/s390/s390-64/dl-trampoline.S b/sysdeps/s390/dl-trampoline.S similarity index 100% rename from sysdeps/s390/s390-64/dl-trampoline.S rename to sysdeps/s390/dl-trampoline.S diff --git a/sysdeps/s390/s390-64/dl-trampoline.h b/sysdeps/s390/dl-trampoline.h similarity index 100% rename from sysdeps/s390/s390-64/dl-trampoline.h rename to sysdeps/s390/dl-trampoline.h diff --git a/sysdeps/s390/preconfigure b/sysdeps/s390/preconfigure index 0536f3eb80..39843cb365 100644 --- a/sysdeps/s390/preconfigure +++ b/sysdeps/s390/preconfigure @@ -4,7 +4,7 @@ case "$machine" in s390x) base_machine=s390 - machine=s390/s390-64 + machine=s390 ;; s390) as_fn_error $? "s390-32 is not supported anymore." "$LINENO" 5 diff --git a/sysdeps/s390/preconfigure.ac b/sysdeps/s390/preconfigure.ac index aee9e4e0cc..b75ad3be00 100644 --- a/sysdeps/s390/preconfigure.ac +++ b/sysdeps/s390/preconfigure.ac @@ -4,7 +4,7 @@ GLIBC_PROVIDES dnl See aclocal.m4 in the top level source directory. case "$machine" in s390x) base_machine=s390 - machine=s390/s390-64 + machine=s390 ;; s390) AC_MSG_ERROR(s390-32 is not supported anymore.) diff --git a/sysdeps/s390/s390-64/Implies b/sysdeps/s390/s390-64/Implies deleted file mode 100644 index a8cae95f9d..0000000000 --- a/sysdeps/s390/s390-64/Implies +++ /dev/null @@ -1 +0,0 @@ -wordsize-64 diff --git a/sysdeps/s390/s390-64/Makefile b/sysdeps/s390/s390-64/Makefile deleted file mode 100644 index 991025cd2a..0000000000 --- a/sysdeps/s390/s390-64/Makefile +++ /dev/null @@ -1,92 +0,0 @@ -ifeq ($(subdir),gmon) -sysdep_routines += s390x-mcount -endif - -ifeq ($(subdir),elf) -CFLAGS-rtld.c += -Wno-uninitialized -Wno-unused -CFLAGS-dl-load.c += -Wno-unused -CFLAGS-dl-reloc.c += -Wno-unused - -$(objpfx)tst-glibc-hwcaps: \ - $(objpfx)libmarkermod2-1.so \ - $(objpfx)libmarkermod3-1.so \ - $(objpfx)libmarkermod4-1.so \ - $(objpfx)libmarkermod5-1.so \ - $(objpfx)libmarkermod6-1.so -$(objpfx)tst-glibc-hwcaps.out: \ - $(objpfx)libmarkermod2.so \ - $(objpfx)glibc-hwcaps/z13/libmarkermod2.so \ - $(objpfx)libmarkermod3.so \ - $(objpfx)glibc-hwcaps/z13/libmarkermod3.so \ - $(objpfx)glibc-hwcaps/z14/libmarkermod3.so \ - $(objpfx)libmarkermod4.so \ - $(objpfx)glibc-hwcaps/z13/libmarkermod4.so \ - $(objpfx)glibc-hwcaps/z14/libmarkermod4.so \ - $(objpfx)glibc-hwcaps/z15/libmarkermod4.so \ - $(objpfx)libmarkermod5.so \ - $(objpfx)glibc-hwcaps/z13/libmarkermod5.so \ - $(objpfx)glibc-hwcaps/z14/libmarkermod5.so \ - $(objpfx)glibc-hwcaps/z15/libmarkermod5.so \ - $(objpfx)glibc-hwcaps/z16/libmarkermod5.so \ - $(objpfx)libmarkermod6.so \ - $(objpfx)glibc-hwcaps/z13/libmarkermod6.so \ - $(objpfx)glibc-hwcaps/z14/libmarkermod6.so \ - $(objpfx)glibc-hwcaps/z15/libmarkermod6.so \ - $(objpfx)glibc-hwcaps/z16/libmarkermod6.so \ - $(objpfx)glibc-hwcaps/z17/libmarkermod6.so - - -$(objpfx)glibc-hwcaps/z13/libmarkermod2.so: $(objpfx)libmarkermod2-2.so - $(make-target-directory) - cp $< $@ -$(objpfx)glibc-hwcaps/z13/libmarkermod3.so: $(objpfx)libmarkermod3-2.so - $(make-target-directory) - cp $< $@ -$(objpfx)glibc-hwcaps/z14/libmarkermod3.so: $(objpfx)libmarkermod3-3.so - $(make-target-directory) - cp $< $@ -$(objpfx)glibc-hwcaps/z13/libmarkermod4.so: $(objpfx)libmarkermod4-2.so - $(make-target-directory) - cp $< $@ -$(objpfx)glibc-hwcaps/z14/libmarkermod4.so: $(objpfx)libmarkermod4-3.so - $(make-target-directory) - cp $< $@ -$(objpfx)glibc-hwcaps/z15/libmarkermod4.so: $(objpfx)libmarkermod4-4.so - $(make-target-directory) - cp $< $@ -$(objpfx)glibc-hwcaps/z13/libmarkermod5.so: $(objpfx)libmarkermod5-2.so - $(make-target-directory) - cp $< $@ -$(objpfx)glibc-hwcaps/z14/libmarkermod5.so: $(objpfx)libmarkermod5-3.so - $(make-target-directory) - cp $< $@ -$(objpfx)glibc-hwcaps/z15/libmarkermod5.so: $(objpfx)libmarkermod5-4.so - $(make-target-directory) - cp $< $@ -$(objpfx)glibc-hwcaps/z16/libmarkermod5.so: $(objpfx)libmarkermod5-5.so - $(make-target-directory) - cp $< $@ -$(objpfx)glibc-hwcaps/z13/libmarkermod6.so: $(objpfx)libmarkermod6-2.so - $(make-target-directory) - cp $< $@ -$(objpfx)glibc-hwcaps/z14/libmarkermod6.so: $(objpfx)libmarkermod6-3.so - $(make-target-directory) - cp $< $@ -$(objpfx)glibc-hwcaps/z15/libmarkermod6.so: $(objpfx)libmarkermod6-4.so - $(make-target-directory) - cp $< $@ -$(objpfx)glibc-hwcaps/z16/libmarkermod6.so: $(objpfx)libmarkermod6-5.so - $(make-target-directory) - cp $< $@ -$(objpfx)glibc-hwcaps/z17/libmarkermod6.so: $(objpfx)libmarkermod6-6.so - $(make-target-directory) - cp $< $@ - - -ifeq (no,$(build-hardcoded-path-in-tests)) -# This is an ld.so.cache test, and RPATH/RUNPATH in the executable -# interferes with its test objectives. -tests-container += tst-glibc-hwcaps-cache -endif - -endif # $(subdir) == elf diff --git a/sysdeps/s390/s390-64/Versions b/sysdeps/s390/s390-64/Versions deleted file mode 100644 index ec1d68313d..0000000000 --- a/sysdeps/s390/s390-64/Versions +++ /dev/null @@ -1,5 +0,0 @@ -libc { - GLIBC_2.29 { - __fentry__; - } -} diff --git a/sysdeps/s390/s390-64/configure b/sysdeps/s390/s390-64/configure deleted file mode 100644 index 9ea6940c85..0000000000 --- a/sysdeps/s390/s390-64/configure +++ /dev/null @@ -1,95 +0,0 @@ -# This file is generated from configure.ac by Autoconf. DO NOT EDIT! - # Local configure fragment for sysdeps/s390/s390-64. - -# Minimal checking for static PIE support in ld. -# Compare to ld testcase/bugzilla: -# /ld/testsuite/ld-elf/pr22263-1.rd -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for s390-specific static PIE requirements" >&5 -printf %s "checking for s390-specific static PIE requirements... " >&6; } -if { as_var=\ -libc_cv_s390x_staticpie_req_runtime; eval test \${$as_var+y}; } -then : - printf %s "(cached) " >&6 -else case e in #( - e) cat > conftest1.c < conftest2.c <&5 - (eval $ac_try) 2>&5 - ac_status=$? - printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; } \ - && { ac_try='${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS -fPIE -c conftest2.c -o conftest2.o' - { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5 - (eval $ac_try) 2>&5 - ac_status=$? - printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; } \ - && { ac_try='${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS -static-pie -nostartfiles -nostdlib -fPIE -o conftest conftest1.o conftest2.o' - { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5 - (eval $ac_try) 2>&5 - ac_status=$? - printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; } \ - && { ac_try='! LC_ALL=C $READELF -Wr conftest | grep R_390_TLS_TPOFF >&5' - { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5 - (eval $ac_try) 2>&5 - ac_status=$? - printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; } \ - && { ac_try='LC_ALL=C $READELF -Wd conftest | grep JMPREL >&5' - { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5 - (eval $ac_try) 2>&5 - ac_status=$? - printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; } - then - libc_cv_s390x_staticpie_req_runtime=yes - fi - rm -rf conftest.* ;; -esac -fi -eval ac_res=\$\ -libc_cv_s390x_staticpie_req_runtime - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -printf "%s\n" "$ac_res" >&6; } - -if test $libc_cv_s390x_staticpie_req_runtime = yes; then - # Some kernels might fail with /proc/sys/kernel/randomize_va_space set to 0 - # due not enough space for a brk call. However, there is no reliable way to - # test it. - printf "%s\n" "#define SUPPORT_STATIC_PIE 1" >>confdefs.h - -fi - diff --git a/sysdeps/s390/s390-64/configure.ac b/sysdeps/s390/s390-64/configure.ac deleted file mode 100644 index aaf71eabb1..0000000000 --- a/sysdeps/s390/s390-64/configure.ac +++ /dev/null @@ -1,57 +0,0 @@ -GLIBC_PROVIDES dnl See aclocal.m4 in the top level source directory. -# Local configure fragment for sysdeps/s390/s390-64. - -# Minimal checking for static PIE support in ld. -# Compare to ld testcase/bugzilla: -# /ld/testsuite/ld-elf/pr22263-1.rd -AC_CACHE_CHECK([for s390-specific static PIE requirements], \ -[libc_cv_s390x_staticpie_req_runtime], [dnl - cat > conftest1.c < conftest2.c <&AS_MESSAGE_LOG_FD) \ - && AC_TRY_COMMAND([LC_ALL=C $READELF -Wd conftest | grep JMPREL >&AS_MESSAGE_LOG_FD]) - then - libc_cv_s390x_staticpie_req_runtime=yes - fi - rm -rf conftest.*]) - -if test $libc_cv_s390x_staticpie_req_runtime = yes; then - # Some kernels might fail with /proc/sys/kernel/randomize_va_space set to 0 - # due not enough space for a brk call. However, there is no reliable way to - # test it. - AC_DEFINE(SUPPORT_STATIC_PIE) -fi diff --git a/sysdeps/s390/s390-64/s390x-mcount.S b/sysdeps/s390/s390x-mcount.S similarity index 100% rename from sysdeps/s390/s390-64/s390x-mcount.S rename to sysdeps/s390/s390x-mcount.S diff --git a/sysdeps/s390/s390-64/s390x-mcount.h b/sysdeps/s390/s390x-mcount.h similarity index 100% rename from sysdeps/s390/s390-64/s390x-mcount.h rename to sysdeps/s390/s390x-mcount.h diff --git a/sysdeps/s390/s390-64/setjmp.S b/sysdeps/s390/setjmp.S similarity index 100% rename from sysdeps/s390/s390-64/setjmp.S rename to sysdeps/s390/setjmp.S diff --git a/sysdeps/s390/s390-64/stackguard-macros.h b/sysdeps/s390/stackguard-macros.h similarity index 100% rename from sysdeps/s390/s390-64/stackguard-macros.h rename to sysdeps/s390/stackguard-macros.h diff --git a/sysdeps/s390/s390-64/start.S b/sysdeps/s390/start.S similarity index 100% rename from sysdeps/s390/s390-64/start.S rename to sysdeps/s390/start.S diff --git a/sysdeps/s390/s390-64/strncpy-z900.S b/sysdeps/s390/strncpy-z900.S similarity index 100% rename from sysdeps/s390/s390-64/strncpy-z900.S rename to sysdeps/s390/strncpy-z900.S diff --git a/sysdeps/s390/s390-64/sub_n.S b/sysdeps/s390/sub_n.S similarity index 100% rename from sysdeps/s390/s390-64/sub_n.S rename to sysdeps/s390/sub_n.S diff --git a/sysdeps/s390/s390-64/sysdep.h b/sysdeps/s390/sysdep.h similarity index 100% rename from sysdeps/s390/s390-64/sysdep.h rename to sysdeps/s390/sysdep.h diff --git a/sysdeps/s390/s390-64/tst-audit.h b/sysdeps/s390/tst-audit.h similarity index 100% rename from sysdeps/s390/s390-64/tst-audit.h rename to sysdeps/s390/tst-audit.h diff --git a/sysdeps/s390/s390-64/tst-glibc-hwcaps.c b/sysdeps/s390/tst-glibc-hwcaps.c similarity index 100% rename from sysdeps/s390/s390-64/tst-glibc-hwcaps.c rename to sysdeps/s390/tst-glibc-hwcaps.c diff --git a/sysdeps/unix/sysv/linux/s390/Implies b/sysdeps/unix/sysv/linux/s390/Implies index e6e51fa5a7..615f507831 100644 --- a/sysdeps/unix/sysv/linux/s390/Implies +++ b/sysdeps/unix/sysv/linux/s390/Implies @@ -1,4 +1,5 @@ s390/nptl +unix/sysv/linux/wordsize-64 # These supply the ABI compatibility for when long double was double. ieee754/ldbl-64-128 diff --git a/sysdeps/unix/sysv/linux/s390/Makefile b/sysdeps/unix/sysv/linux/s390/Makefile index 218aff1aee..e9ef5c51ac 100644 --- a/sysdeps/unix/sysv/linux/s390/Makefile +++ b/sysdeps/unix/sysv/linux/s390/Makefile @@ -1,3 +1,11 @@ +ifeq ($(subdir),elf) +ifeq (yes,$(build-shared)) +# This is needed to support g++ v2 and v3. +sysdep_routines += framestate +shared-only-routines += framestate +endif +endif + ifeq ($(subdir),rt) librt-routines += rt-sysdep librt-shared-only-routines += rt-sysdep @@ -5,8 +13,10 @@ endif ifeq ($(subdir),stdlib) gen-as-const-headers += ucontext_i.sym +sysdep_routines += __makecontext_ret endif ifeq ($(subdir),misc) tests += tst-ptrace-singleblock +sysdep_headers += sys/elf.h endif diff --git a/sysdeps/unix/sysv/linux/s390/Versions b/sysdeps/unix/sysv/linux/s390/Versions index 548397fcff..d4b6a01950 100644 --- a/sysdeps/unix/sysv/linux/s390/Versions +++ b/sysdeps/unix/sysv/linux/s390/Versions @@ -1,4 +1,9 @@ libc { + GLIBC_2.2 { + # Exception handling support functions from libgcc + __register_frame; __register_frame_table; __deregister_frame; + __frame_state_for; __register_frame_info_table; + } GLIBC_2.19 { __longjmp_chk; getcontext; diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/____longjmp_chk.c b/sysdeps/unix/sysv/linux/s390/____longjmp_chk.c similarity index 100% rename from sysdeps/unix/sysv/linux/s390/s390-64/____longjmp_chk.c rename to sysdeps/unix/sysv/linux/s390/____longjmp_chk.c diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/__makecontext_ret.S b/sysdeps/unix/sysv/linux/s390/__makecontext_ret.S similarity index 100% rename from sysdeps/unix/sysv/linux/s390/s390-64/__makecontext_ret.S rename to sysdeps/unix/sysv/linux/s390/__makecontext_ret.S diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/arch-syscall.h b/sysdeps/unix/sysv/linux/s390/arch-syscall.h similarity index 100% rename from sysdeps/unix/sysv/linux/s390/s390-64/arch-syscall.h rename to sysdeps/unix/sysv/linux/s390/arch-syscall.h diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/c++-types.data b/sysdeps/unix/sysv/linux/s390/c++-types.data similarity index 100% rename from sysdeps/unix/sysv/linux/s390/s390-64/c++-types.data rename to sysdeps/unix/sysv/linux/s390/c++-types.data diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/clone.S b/sysdeps/unix/sysv/linux/s390/clone.S similarity index 100% rename from sysdeps/unix/sysv/linux/s390/s390-64/clone.S rename to sysdeps/unix/sysv/linux/s390/clone.S diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/clone3.S b/sysdeps/unix/sysv/linux/s390/clone3.S similarity index 100% rename from sysdeps/unix/sysv/linux/s390/s390-64/clone3.S rename to sysdeps/unix/sysv/linux/s390/clone3.S diff --git a/sysdeps/unix/sysv/linux/s390/configure b/sysdeps/unix/sysv/linux/s390/configure index d8a14434c5..9b3a1c01d2 100644 --- a/sysdeps/unix/sysv/linux/s390/configure +++ b/sysdeps/unix/sysv/linux/s390/configure @@ -4,3 +4,16 @@ libc_cv_gcc_unwind_find_fde=yes ldd_rewrite_script=sysdeps/unix/sysv/linux/s390/ldd-rewrite.sed +test -n "$libc_cv_slibdir" || +case "$prefix" in +/usr | /usr/) + libc_cv_slibdir='/lib64' + libc_cv_rtlddir='/lib' + if test "$libdir" = '${exec_prefix}/lib'; then + libdir='${exec_prefix}/lib64'; + # Locale data can be shared between 32-bit and 64-bit libraries. + libc_cv_complocaledir='${exec_prefix}/lib/locale' + fi + ;; +esac + diff --git a/sysdeps/unix/sysv/linux/s390/configure.ac b/sysdeps/unix/sysv/linux/s390/configure.ac index 978450c94b..28e1caff2f 100644 --- a/sysdeps/unix/sysv/linux/s390/configure.ac +++ b/sysdeps/unix/sysv/linux/s390/configure.ac @@ -3,3 +3,5 @@ GLIBC_PROVIDES dnl See aclocal.m4 in the top level source directory. libc_cv_gcc_unwind_find_fde=yes ldd_rewrite_script=sysdeps/unix/sysv/linux/s390/ldd-rewrite.sed + +LIBC_SLIBDIR_RTLDDIR([lib64], [lib]) diff --git a/sysdeps/unix/sysv/linux/s390/dl-cache.h b/sysdeps/unix/sysv/linux/s390/dl-cache.h index 766bba4265..df1ef9155c 100644 --- a/sysdeps/unix/sysv/linux/s390/dl-cache.h +++ b/sysdeps/unix/sysv/linux/s390/dl-cache.h @@ -1 +1,24 @@ +/* Support for reading /etc/ld.so.cache files written by Linux ldconfig. + Copyright (C) 2001-2026 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + . */ + +#define _DL_CACHE_DEFAULT_ID 0x403 + +#define _dl_cache_check_flags(flags) \ + ((flags) == _DL_CACHE_DEFAULT_ID) + #include diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/getcontext.S b/sysdeps/unix/sysv/linux/s390/getcontext.S similarity index 100% rename from sysdeps/unix/sysv/linux/s390/s390-64/getcontext.S rename to sysdeps/unix/sysv/linux/s390/getcontext.S diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/ld.abilist b/sysdeps/unix/sysv/linux/s390/ld.abilist similarity index 100% rename from sysdeps/unix/sysv/linux/s390/s390-64/ld.abilist rename to sysdeps/unix/sysv/linux/s390/ld.abilist diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libBrokenLocale.abilist b/sysdeps/unix/sysv/linux/s390/libBrokenLocale.abilist similarity index 100% rename from sysdeps/unix/sysv/linux/s390/s390-64/libBrokenLocale.abilist rename to sysdeps/unix/sysv/linux/s390/libBrokenLocale.abilist diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libanl.abilist b/sysdeps/unix/sysv/linux/s390/libanl.abilist similarity index 100% rename from sysdeps/unix/sysv/linux/s390/s390-64/libanl.abilist rename to sysdeps/unix/sysv/linux/s390/libanl.abilist diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist b/sysdeps/unix/sysv/linux/s390/libc.abilist similarity index 100% rename from sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist rename to sysdeps/unix/sysv/linux/s390/libc.abilist diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libc_malloc_debug.abilist b/sysdeps/unix/sysv/linux/s390/libc_malloc_debug.abilist similarity index 100% rename from sysdeps/unix/sysv/linux/s390/s390-64/libc_malloc_debug.abilist rename to sysdeps/unix/sysv/linux/s390/libc_malloc_debug.abilist diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libdl.abilist b/sysdeps/unix/sysv/linux/s390/libdl.abilist similarity index 100% rename from sysdeps/unix/sysv/linux/s390/s390-64/libdl.abilist rename to sysdeps/unix/sysv/linux/s390/libdl.abilist diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist b/sysdeps/unix/sysv/linux/s390/libm.abilist similarity index 100% rename from sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist rename to sysdeps/unix/sysv/linux/s390/libm.abilist diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libnsl.abilist b/sysdeps/unix/sysv/linux/s390/libnsl.abilist similarity index 100% rename from sysdeps/unix/sysv/linux/s390/s390-64/libnsl.abilist rename to sysdeps/unix/sysv/linux/s390/libnsl.abilist diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist b/sysdeps/unix/sysv/linux/s390/libpthread.abilist similarity index 100% rename from sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist rename to sysdeps/unix/sysv/linux/s390/libpthread.abilist diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libresolv.abilist b/sysdeps/unix/sysv/linux/s390/libresolv.abilist similarity index 100% rename from sysdeps/unix/sysv/linux/s390/s390-64/libresolv.abilist rename to sysdeps/unix/sysv/linux/s390/libresolv.abilist diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/librt.abilist b/sysdeps/unix/sysv/linux/s390/librt.abilist similarity index 100% rename from sysdeps/unix/sysv/linux/s390/s390-64/librt.abilist rename to sysdeps/unix/sysv/linux/s390/librt.abilist diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libthread_db.abilist b/sysdeps/unix/sysv/linux/s390/libthread_db.abilist similarity index 100% rename from sysdeps/unix/sysv/linux/s390/s390-64/libthread_db.abilist rename to sysdeps/unix/sysv/linux/s390/libthread_db.abilist diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libutil.abilist b/sysdeps/unix/sysv/linux/s390/libutil.abilist similarity index 100% rename from sysdeps/unix/sysv/linux/s390/s390-64/libutil.abilist rename to sysdeps/unix/sysv/linux/s390/libutil.abilist diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/makecontext.c b/sysdeps/unix/sysv/linux/s390/makecontext.c similarity index 100% rename from sysdeps/unix/sysv/linux/s390/s390-64/makecontext.c rename to sysdeps/unix/sysv/linux/s390/makecontext.c diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/pointer_guard.h b/sysdeps/unix/sysv/linux/s390/pointer_guard.h similarity index 100% rename from sysdeps/unix/sysv/linux/s390/s390-64/pointer_guard.h rename to sysdeps/unix/sysv/linux/s390/pointer_guard.h diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/Implies b/sysdeps/unix/sysv/linux/s390/s390-64/Implies deleted file mode 100644 index 8d91c80097..0000000000 --- a/sysdeps/unix/sysv/linux/s390/s390-64/Implies +++ /dev/null @@ -1 +0,0 @@ -unix/sysv/linux/wordsize-64 diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/Makefile b/sysdeps/unix/sysv/linux/s390/s390-64/Makefile deleted file mode 100644 index 0c338cba36..0000000000 --- a/sysdeps/unix/sysv/linux/s390/s390-64/Makefile +++ /dev/null @@ -1,15 +0,0 @@ -ifeq ($(subdir),misc) -sysdep_headers += sys/elf.h -endif - -ifeq ($(subdir),elf) -ifeq (yes,$(build-shared)) -# This is needed to support g++ v2 and v3. -sysdep_routines += framestate -shared-only-routines += framestate -endif -endif - -ifeq ($(subdir),stdlib) -sysdep_routines += __makecontext_ret -endif diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/Versions b/sysdeps/unix/sysv/linux/s390/s390-64/Versions deleted file mode 100644 index 83092db48e..0000000000 --- a/sysdeps/unix/sysv/linux/s390/s390-64/Versions +++ /dev/null @@ -1,7 +0,0 @@ -libc { - GLIBC_2.2 { - # Exception handling support functions from libgcc - __register_frame; __register_frame_table; __deregister_frame; - __frame_state_for; __register_frame_info_table; - } -} diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/configure b/sysdeps/unix/sysv/linux/s390/s390-64/configure deleted file mode 100644 index 5490bc669e..0000000000 --- a/sysdeps/unix/sysv/linux/s390/s390-64/configure +++ /dev/null @@ -1,16 +0,0 @@ -# This file is generated from configure.ac by Autoconf. DO NOT EDIT! - # Local configure fragment for sysdeps/unix/sysv/linux/s390/s390-64. - -test -n "$libc_cv_slibdir" || -case "$prefix" in -/usr | /usr/) - libc_cv_slibdir='/lib64' - libc_cv_rtlddir='/lib' - if test "$libdir" = '${exec_prefix}/lib'; then - libdir='${exec_prefix}/lib64'; - # Locale data can be shared between 32-bit and 64-bit libraries. - libc_cv_complocaledir='${exec_prefix}/lib/locale' - fi - ;; -esac - diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/configure.ac b/sysdeps/unix/sysv/linux/s390/s390-64/configure.ac deleted file mode 100644 index 8c75888b62..0000000000 --- a/sysdeps/unix/sysv/linux/s390/s390-64/configure.ac +++ /dev/null @@ -1,4 +0,0 @@ -GLIBC_PROVIDES dnl See aclocal.m4 in the top level source directory. -# Local configure fragment for sysdeps/unix/sysv/linux/s390/s390-64. - -LIBC_SLIBDIR_RTLDDIR([lib64], [lib]) diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/dl-cache.h b/sysdeps/unix/sysv/linux/s390/s390-64/dl-cache.h deleted file mode 100644 index 0a334a9d9a..0000000000 --- a/sysdeps/unix/sysv/linux/s390/s390-64/dl-cache.h +++ /dev/null @@ -1,24 +0,0 @@ -/* Support for reading /etc/ld.so.cache files written by Linux ldconfig. - Copyright (C) 2001-2026 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, see - . */ - -#define _DL_CACHE_DEFAULT_ID 0x403 - -#define _dl_cache_check_flags(flags) \ - ((flags) == _DL_CACHE_DEFAULT_ID) - -#include_next diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/sysdep.h b/sysdeps/unix/sysv/linux/s390/s390-64/sysdep.h deleted file mode 100644 index 9c9e2a271f..0000000000 --- a/sysdeps/unix/sysv/linux/s390/s390-64/sysdep.h +++ /dev/null @@ -1,178 +0,0 @@ -/* Assembler macros for 64 bit S/390. - Copyright (C) 2001-2026 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, see - . */ - -#ifndef _LINUX_S390_SYSDEP_H -#define _LINUX_S390_SYSDEP_H - -#include -#include -#include -#include -#include /* For RTLD_PRIVATE_ERRNO. */ -#include - -/* For Linux we can use the system call table in the header file - /usr/include/asm/unistd.h - of the kernel. But these symbols do not follow the SYS_* syntax - so we have to redefine the `SYS_ify' macro here. */ -/* In newer 2.1 kernels __NR_syscall is missing so we define it here. */ -#define __NR_syscall 0 - -#undef SYS_ify -#define SYS_ify(syscall_name) __NR_##syscall_name - -#ifdef __ASSEMBLER__ - -/* Linux uses a negative return value to indicate syscall errors, unlike - most Unices, which use the condition codes' carry flag. - - Since version 2.1 the return value of a system call might be negative - even if the call succeeded. E.g., the `lseek' system call might return - a large offset. Therefore we must not anymore test for < 0, but test - for a real error by making sure the value in gpr2 is a real error - number. Linus said he will make sure that no syscall returns a value - in -1 .. -4095 as a valid result so we can safely test with -4095. */ - -#undef PSEUDO -#define PSEUDO(name, syscall_name, args) \ - .text; \ - ENTRY (name) \ - DO_CALL (syscall_name, args); \ - lghi %r4,-4095 ; \ - clgr %r2,%r4 ; \ - jgnl SYSCALL_ERROR_LABEL - -#undef PSEUDO_END -#define PSEUDO_END(name) \ - SYSCALL_ERROR_HANDLER; \ - END (name) - -#undef PSEUDO_NOERRNO -#define PSEUDO_NOERRNO(name, syscall_name, args) \ - .text; \ - ENTRY (name) \ - DO_CALL (syscall_name, args) - -#undef PSEUDO_END_NOERRNO -#define PSEUDO_END_NOERRNO(name) \ - SYSCALL_ERROR_HANDLER; \ - END (name) - -#undef PSEUDO_ERRVAL -#define PSEUDO_ERRVAL(name, syscall_name, args) \ - .text; \ - ENTRY (name) \ - DO_CALL (syscall_name, args); \ - lcgr %r2,%r2 - -#undef PSEUDO_END_ERRVAL -#define PSEUDO_END_ERRVAL(name) \ - SYSCALL_ERROR_HANDLER; \ - END (name) - -#undef SYSCALL_ERROR_LABEL -#ifndef PIC -# undef SYSCALL_ERROR_LABEL -# define SYSCALL_ERROR_LABEL syscall_error -# define SYSCALL_ERROR_HANDLER -#else -# if RTLD_PRIVATE_ERRNO -# undef SYSCALL_ERROR_LABEL -# define SYSCALL_ERROR_LABEL 0f -# define SYSCALL_ERROR_HANDLER \ -0: larl %r1,rtld_errno; \ - lcr %r2,%r2; \ - st %r2,0(%r1); \ - lghi %r2,-1; \ - br %r14 -# elif defined _LIBC_REENTRANT -# if IS_IN (libc) -# define SYSCALL_ERROR_ERRNO __libc_errno -# else -# define SYSCALL_ERROR_ERRNO errno -# endif -# undef SYSCALL_ERROR_LABEL -# define SYSCALL_ERROR_LABEL 0f -# define SYSCALL_ERROR_HANDLER \ -0: lcr %r0,%r2; \ - larl %r1,SYSCALL_ERROR_ERRNO@indntpoff; \ - lg %r1,0(%r1); \ - ear %r2,%a0; \ - sllg %r2,%r2,32; \ - ear %r2,%a1; \ - st %r0,0(%r1,%r2); \ - lghi %r2,-1; \ - br %r14 -# else -# undef SYSCALL_ERROR_LABEL -# define SYSCALL_ERROR_LABEL 0f -# define SYSCALL_ERROR_HANDLER \ -0: larl %r1,_GLOBAL_OFFSET_TABLE_; \ - lg %r1,errno@GOT(%r1); \ - lcr %r2,%r2; \ - st %r2,0(%r1); \ - lghi %r2,-1; \ - br %r14 -# endif /* _LIBC_REENTRANT */ -#endif /* PIC */ - -/* Linux takes system call arguments in registers: - - syscall number 1 call-clobbered - arg 1 2 call-clobbered - arg 2 3 call-clobbered - arg 3 4 call-clobbered - arg 4 5 call-clobbered - arg 5 6 call-saved - arg 6 7 call-saved - - (Of course a function with say 3 arguments does not have entries for - arguments 4 and 5.) - For system calls with 6 parameters a stack operation is required - to load the 6th parameter to register 7. Call saved register 7 is - moved to register 0 and back to avoid an additional stack frame. - */ - -#define DO_CALL(syscall, args) \ - .if args > 5; \ - lgr %r0,%r7; \ - lg %r7,160(%r15); \ - .endif; \ - lghi %r1,SYS_ify (syscall); \ - svc 0; \ - .if args > 5; \ - lgr %r7,%r0; \ - .endif - -#define ret \ - br 14 - -#define ret_NOERRNO \ - br 14 - -#define ret_ERRVAL \ - br 14 - -#else - -# undef HAVE_INTERNAL_BRK_ADDR_SYMBOL -# define HAVE_INTERNAL_BRK_ADDR_SYMBOL 1 - -#endif /* __ASSEMBLER__ */ - -#endif /* _LINUX_S390_SYSDEP_H */ diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/setcontext.S b/sysdeps/unix/sysv/linux/s390/setcontext.S similarity index 100% rename from sysdeps/unix/sysv/linux/s390/s390-64/setcontext.S rename to sysdeps/unix/sysv/linux/s390/setcontext.S diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/shlib-versions b/sysdeps/unix/sysv/linux/s390/shlib-versions similarity index 100% rename from sysdeps/unix/sysv/linux/s390/s390-64/shlib-versions rename to sysdeps/unix/sysv/linux/s390/shlib-versions diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/single-thread.h b/sysdeps/unix/sysv/linux/s390/single-thread.h similarity index 100% rename from sysdeps/unix/sysv/linux/s390/s390-64/single-thread.h rename to sysdeps/unix/sysv/linux/s390/single-thread.h diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/swapcontext.S b/sysdeps/unix/sysv/linux/s390/swapcontext.S similarity index 100% rename from sysdeps/unix/sysv/linux/s390/s390-64/swapcontext.S rename to sysdeps/unix/sysv/linux/s390/swapcontext.S diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/syscall.S b/sysdeps/unix/sysv/linux/s390/syscall.S similarity index 100% rename from sysdeps/unix/sysv/linux/s390/s390-64/syscall.S rename to sysdeps/unix/sysv/linux/s390/syscall.S diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/syscall_cancel.S b/sysdeps/unix/sysv/linux/s390/syscall_cancel.S similarity index 100% rename from sysdeps/unix/sysv/linux/s390/s390-64/syscall_cancel.S rename to sysdeps/unix/sysv/linux/s390/syscall_cancel.S diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/sysdep.S b/sysdeps/unix/sysv/linux/s390/sysdep.S similarity index 100% rename from sysdeps/unix/sysv/linux/s390/s390-64/sysdep.S rename to sysdeps/unix/sysv/linux/s390/sysdep.S diff --git a/sysdeps/unix/sysv/linux/s390/sysdep.h b/sysdeps/unix/sysv/linux/s390/sysdep.h index 593e70dc1e..42fb8aa469 100644 --- a/sysdeps/unix/sysv/linux/s390/sysdep.h +++ b/sysdeps/unix/sysv/linux/s390/sysdep.h @@ -1,5 +1,5 @@ -/* Syscall definitions, Linux s390 version. - Copyright (C) 2019-2026 Free Software Foundation, Inc. +/* Assembler macros for 64 bit S/390. + Copyright (C) 2001-2026 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,15 +14,163 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ -#ifndef __ASSEMBLY__ +#ifndef _LINUX_S390_SYSDEP_H +#define _LINUX_S390_SYSDEP_H + +#include +#include +#include +#include /* For RTLD_PRIVATE_ERRNO. */ +#include + +/* For Linux we can use the system call table in the header file + /usr/include/asm/unistd.h + of the kernel. But these symbols do not follow the SYS_* syntax + so we have to redefine the `SYS_ify' macro here. */ +/* In newer 2.1 kernels __NR_syscall is missing so we define it here. */ +#define __NR_syscall 0 #undef SYS_ify #define SYS_ify(syscall_name) __NR_##syscall_name -#undef INTERNAL_SYSCALL_NCS -#define INTERNAL_SYSCALL_NCS(no, nr, args...) \ +#ifdef __ASSEMBLER__ + +/* Linux uses a negative return value to indicate syscall errors, unlike + most Unices, which use the condition codes' carry flag. + + Since version 2.1 the return value of a system call might be negative + even if the call succeeded. E.g., the `lseek' system call might return + a large offset. Therefore we must not anymore test for < 0, but test + for a real error by making sure the value in gpr2 is a real error + number. Linus said he will make sure that no syscall returns a value + in -1 .. -4095 as a valid result so we can safely test with -4095. */ + +# undef PSEUDO +# define PSEUDO(name, syscall_name, args) \ + .text; \ + ENTRY (name) \ + DO_CALL (syscall_name, args); \ + lghi %r4,-4095 ; \ + clgr %r2,%r4 ; \ + jgnl SYSCALL_ERROR_LABEL + +# undef PSEUDO_END +# define PSEUDO_END(name) \ + SYSCALL_ERROR_HANDLER; \ + END (name) + +# undef PSEUDO_NOERRNO +# define PSEUDO_NOERRNO(name, syscall_name, args) \ + .text; \ + ENTRY (name) \ + DO_CALL (syscall_name, args) + +# undef PSEUDO_END_NOERRNO +# define PSEUDO_END_NOERRNO(name) \ + SYSCALL_ERROR_HANDLER; \ + END (name) + +# undef PSEUDO_ERRVAL +# define PSEUDO_ERRVAL(name, syscall_name, args) \ + .text; \ + ENTRY (name) \ + DO_CALL (syscall_name, args); \ + lcgr %r2,%r2 + +# undef PSEUDO_END_ERRVAL +# define PSEUDO_END_ERRVAL(name) \ + SYSCALL_ERROR_HANDLER; \ + END (name) + +# undef SYSCALL_ERROR_LABEL +# ifndef PIC +# undef SYSCALL_ERROR_LABEL +# define SYSCALL_ERROR_LABEL syscall_error +# define SYSCALL_ERROR_HANDLER +# else +# if RTLD_PRIVATE_ERRNO +# undef SYSCALL_ERROR_LABEL +# define SYSCALL_ERROR_LABEL 0f +# define SYSCALL_ERROR_HANDLER \ +0: larl %r1,rtld_errno; \ + lcr %r2,%r2; \ + st %r2,0(%r1); \ + lghi %r2,-1; \ + br %r14 +# elif defined _LIBC_REENTRANT +# if IS_IN (libc) +# define SYSCALL_ERROR_ERRNO __libc_errno +# else +# define SYSCALL_ERROR_ERRNO errno +# endif +# undef SYSCALL_ERROR_LABEL +# define SYSCALL_ERROR_LABEL 0f +# define SYSCALL_ERROR_HANDLER \ +0: lcr %r0,%r2; \ + larl %r1,SYSCALL_ERROR_ERRNO@indntpoff; \ + lg %r1,0(%r1); \ + ear %r2,%a0; \ + sllg %r2,%r2,32; \ + ear %r2,%a1; \ + st %r0,0(%r1,%r2); \ + lghi %r2,-1; \ + br %r14 +# else +# undef SYSCALL_ERROR_LABEL +# define SYSCALL_ERROR_LABEL 0f +# define SYSCALL_ERROR_HANDLER \ +0: larl %r1,_GLOBAL_OFFSET_TABLE_; \ + lg %r1,errno@GOT(%r1); \ + lcr %r2,%r2; \ + st %r2,0(%r1); \ + lghi %r2,-1; \ + br %r14 +# endif /* _LIBC_REENTRANT */ +# endif /* PIC */ + +/* Linux takes system call arguments in registers: + + syscall number 1 call-clobbered + arg 1 2 call-clobbered + arg 2 3 call-clobbered + arg 3 4 call-clobbered + arg 4 5 call-clobbered + arg 5 6 call-saved + arg 6 7 call-saved + + (Of course a function with say 3 arguments does not have entries for + arguments 4 and 5.) + For system calls with 6 parameters a stack operation is required + to load the 6th parameter to register 7. Call saved register 7 is + moved to register 0 and back to avoid an additional stack frame. + */ + +# define DO_CALL(syscall, args) \ + .if args > 5; \ + lgr %r0,%r7; \ + lg %r7,160(%r15); \ + .endif; \ + lghi %r1,SYS_ify (syscall); \ + svc 0; \ + .if args > 5; \ + lgr %r7,%r0; \ + .endif + +# define ret \ + br 14 + +# define ret_NOERRNO \ + br 14 + +# define ret_ERRVAL \ + br 14 + +#else /* not __ASSEMBLER__ */ + +# undef INTERNAL_SYSCALL_NCS +# define INTERNAL_SYSCALL_NCS(no, nr, args...) \ ({ \ DECLARGS_##nr(args) \ register unsigned long int _nr __asm__("1") = (unsigned long int)(no); \ @@ -34,46 +182,52 @@ : "memory" ); \ _ret; }) -#undef INTERNAL_SYSCALL -#define INTERNAL_SYSCALL(name, nr, args...) \ +# undef INTERNAL_SYSCALL +# define INTERNAL_SYSCALL(name, nr, args...) \ INTERNAL_SYSCALL_NCS(__NR_##name, nr, args) -#define DECLARGS_0() -#define DECLARGS_1(arg1) \ +# define DECLARGS_0() +# define DECLARGS_1(arg1) \ register unsigned long int gpr2 __asm__ ("2") = (unsigned long int)(arg1); -#define DECLARGS_2(arg1, arg2) \ +# define DECLARGS_2(arg1, arg2) \ DECLARGS_1(arg1) \ register unsigned long int gpr3 __asm__ ("3") = (unsigned long int)(arg2); -#define DECLARGS_3(arg1, arg2, arg3) \ +# define DECLARGS_3(arg1, arg2, arg3) \ DECLARGS_2(arg1, arg2) \ register unsigned long int gpr4 __asm__ ("4") = (unsigned long int)(arg3); -#define DECLARGS_4(arg1, arg2, arg3, arg4) \ +# define DECLARGS_4(arg1, arg2, arg3, arg4) \ DECLARGS_3(arg1, arg2, arg3) \ register unsigned long int gpr5 __asm__ ("5") = (unsigned long int)(arg4); -#define DECLARGS_5(arg1, arg2, arg3, arg4, arg5) \ +# define DECLARGS_5(arg1, arg2, arg3, arg4, arg5) \ DECLARGS_4(arg1, arg2, arg3, arg4) \ register unsigned long int gpr6 __asm__ ("6") = (unsigned long int)(arg5); -#define DECLARGS_6(arg1, arg2, arg3, arg4, arg5, arg6) \ +# define DECLARGS_6(arg1, arg2, arg3, arg4, arg5, arg6) \ DECLARGS_5(arg1, arg2, arg3, arg4, arg5) \ register unsigned long int gpr7 __asm__ ("7") = (unsigned long int)(arg6); -#define ASMFMT_0 -#define ASMFMT_1 , "0" (gpr2) -#define ASMFMT_2 , "0" (gpr2), "d" (gpr3) -#define ASMFMT_3 , "0" (gpr2), "d" (gpr3), "d" (gpr4) -#define ASMFMT_4 , "0" (gpr2), "d" (gpr3), "d" (gpr4), "d" (gpr5) -#define ASMFMT_5 , "0" (gpr2), "d" (gpr3), "d" (gpr4), "d" (gpr5), "d" (gpr6) -#define ASMFMT_6 , "0" (gpr2), "d" (gpr3), "d" (gpr4), "d" (gpr5), "d" (gpr6), "d" (gpr7) +# define ASMFMT_0 +# define ASMFMT_1 , "0" (gpr2) +# define ASMFMT_2 , "0" (gpr2), "d" (gpr3) +# define ASMFMT_3 , "0" (gpr2), "d" (gpr3), "d" (gpr4) +# define ASMFMT_4 , "0" (gpr2), "d" (gpr3), "d" (gpr4), "d" (gpr5) +# define ASMFMT_5 , "0" (gpr2), "d" (gpr3), "d" (gpr4), "d" (gpr5), "d" (gpr6) +# define ASMFMT_6 , "0" (gpr2), "d" (gpr3), "d" (gpr4), "d" (gpr5), "d" (gpr6), "d" (gpr7) -#define VDSO_NAME "LINUX_2.6.29" -#define VDSO_HASH 123718585 +# define VDSO_NAME "LINUX_2.6.29" +# define VDSO_HASH 123718585 /* List of system calls which are supported as vsyscalls. */ -#define HAVE_CLOCK_GETRES64_VSYSCALL "__kernel_clock_getres" -#define HAVE_CLOCK_GETTIME64_VSYSCALL "__kernel_clock_gettime" -#define HAVE_GETRANDOM_VSYSCALL "__kernel_getrandom" -#define HAVE_GETTIMEOFDAY_VSYSCALL "__kernel_gettimeofday" -#define HAVE_GETCPU_VSYSCALL "__kernel_getcpu" - -#define HAVE_CLONE3_WRAPPER 1 -#endif +# define HAVE_CLOCK_GETRES64_VSYSCALL "__kernel_clock_getres" +# define HAVE_CLOCK_GETTIME64_VSYSCALL "__kernel_clock_gettime" +# define HAVE_GETRANDOM_VSYSCALL "__kernel_getrandom" +# define HAVE_GETTIMEOFDAY_VSYSCALL "__kernel_gettimeofday" +# define HAVE_GETCPU_VSYSCALL "__kernel_getcpu" + +# define HAVE_CLONE3_WRAPPER 1 + +# undef HAVE_INTERNAL_BRK_ADDR_SYMBOL +# define HAVE_INTERNAL_BRK_ADDR_SYMBOL 1 + +#endif /* __ASSEMBLER__ */ + +#endif /* _LINUX_S390_SYSDEP_H */ diff --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 similarity index 100% rename from sysdeps/unix/sysv/linux/s390/s390-64/timer_t_was_int_compat.h rename to sysdeps/unix/sysv/linux/s390/timer_t_was_int_compat.h diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/vfork.S b/sysdeps/unix/sysv/linux/s390/vfork.S similarity index 100% rename from sysdeps/unix/sysv/linux/s390/s390-64/vfork.S rename to sysdeps/unix/sysv/linux/s390/vfork.S From patchwork Thu Apr 9 08:47:10 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Stefan Liebler X-Patchwork-Id: 132841 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from vm01.sourceware.org (localhost [127.0.0.1]) by sourceware.org (Postfix) with ESMTP id 7948D4BA23C8 for ; Thu, 9 Apr 2026 08:51:59 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 7948D4BA23C8 Authentication-Results: sourceware.org; dkim=pass (2048-bit key, unprotected) header.d=ibm.com header.i=@ibm.com header.a=rsa-sha256 header.s=pp1 header.b=SQlJD0Ha X-Original-To: libc-alpha@sourceware.org Delivered-To: libc-alpha@sourceware.org Received: from mx0b-001b2d01.pphosted.com (mx0b-001b2d01.pphosted.com [148.163.158.5]) by sourceware.org (Postfix) with ESMTPS id 8EF454BA5439 for ; Thu, 9 Apr 2026 08:51:17 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 8EF454BA5439 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=linux.ibm.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=linux.ibm.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 8EF454BA5439 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=148.163.158.5 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1775724677; cv=none; b=pgk72y9Yq+xSBPGtPX2ZeJ/oEJII4AqpC8FM/PAUayGCC4wIGc4Gz7vQGqPyKINnMiWwEZYXtteii8PlSLYVNAe/fiJ9n70mWtD5lmAtZyKeBXc8QkwN6YcxxIEXvCMV7PrP8x7V7ubk9HXVgiKddj9QqRObpUku53xwZp2A6zQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1775724677; c=relaxed/simple; bh=QjyU89nGuHpgEXjIx4uRgDkbtpc6wgtBVImXOy5TGuU=; h=DKIM-Signature:From:To:Subject:Date:Message-ID:MIME-Version; b=vRZuVk/gN75cxvvKWrHEJhKjU1H+42aTmLUy7OIGpHfxu2Hl3wUGrlGK3JJKMGZd90ZZ+1/tZqIfc1VQaDbw3l+19e+CMZsk97aVutCDIyFmT8WuTYcVOuUIYuFOKsxPD/I1bYPqwuMb+Rz/sd2dOuwt4opAjydEvlqGAgZ/3aw= ARC-Authentication-Results: i=1; server2.sourceware.org DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 8EF454BA5439 Received: from pps.filterd (m0353725.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 638JEEZ22211010 for ; Thu, 9 Apr 2026 08:51:17 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h=cc :content-transfer-encoding:date:from:in-reply-to:message-id :mime-version:references:subject:to; s=pp1; bh=VL7eoqpIJxcs1t7pW S6E+/M6Qnx6JstA+InX+2xEex8=; b=SQlJD0HazV6p83O/4fO9C1vC3bRtwRyeD JA5erHO7SUTA7eFLcMwbR/Py3xVbDannlJUTean3F+pC7CHtbyQjxrx5FVRZLifG 9cA3AaLvG3oQOSjBDccInog+PDgk6ey09G4KIcraKbU1vH1Ve7j9GMyP+Gg0GwpA pnakev43rvYuxJBraWFOzHqvp6SwtD+4D+BBrCYddLW1svh0jEBzeKbU3csmoKIM E80GKyEZQNhGKMMeP4dxjMKMRgofr0KNPFnSRS9WKQJweTjQfc4eTBIH0fTxF9ob VB9mZn7BKbEEAITIYMdF4T/RCi14tCeL8Q50cW8eMEWhFuim+MTRQ== Received: from ppma11.dal12v.mail.ibm.com (db.9e.1632.ip4.static.sl-reverse.com [50.22.158.219]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 4dcn2hk8cj-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for ; Thu, 09 Apr 2026 08:51:16 +0000 (GMT) Received: from pps.filterd (ppma11.dal12v.mail.ibm.com [127.0.0.1]) by ppma11.dal12v.mail.ibm.com (8.18.1.2/8.18.1.2) with ESMTP id 6397gsuE014345 for ; Thu, 9 Apr 2026 08:51:16 GMT Received: from smtprelay07.fra02v.mail.ibm.com ([9.218.2.229]) by ppma11.dal12v.mail.ibm.com (PPS) with ESMTPS id 4dcmg4tvg2-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for ; Thu, 09 Apr 2026 08:51:15 +0000 Received: from smtpav03.fra02v.mail.ibm.com (smtpav03.fra02v.mail.ibm.com [10.20.54.102]) by smtprelay07.fra02v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 6398pC9P35717474 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 9 Apr 2026 08:51:12 GMT Received: from smtpav03.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 508F42004B; Thu, 9 Apr 2026 08:51:12 +0000 (GMT) Received: from smtpav03.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 33AA220043; Thu, 9 Apr 2026 08:51:12 +0000 (GMT) Received: from a35lp68.lnxne.boe (unknown [9.87.84.240]) by smtpav03.fra02v.mail.ibm.com (Postfix) with ESMTP; Thu, 9 Apr 2026 08:51:12 +0000 (GMT) From: Stefan Liebler To: libc-alpha@sourceware.org Cc: Stefan Liebler Subject: [PATCH 5/5] CONTRIBUTED-BY: Adjustments regarding s390-32, s390-64 Date: Thu, 9 Apr 2026 10:47:10 +0200 Message-ID: <20260409085102.3475867-6-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 X-TM-AS-GCONF: 00 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNDA5MDA3NyBTYWx0ZWRfXypSpIWfJhila COIueLLagRVjIXPbMh3TKiFv0wpH/1EDoGL8Q+hv8QhEjLYzlAMUIYlaTcjsO17c9CWN3DYPxXF PD+iyy33eUXNY8LrzCHtp6j19pgHiCzH+y3Txm0pfGMJZ0SMP/lnFUxg0iUzOkb5PrW63AgFzQH 2+yNTZ7nsEm9jZGErHnrWZSNGT7dgI70PxmD64svpB29M3HF+S6xgOAKmiPPTFqGfu58D22XqPx a7WZ5toC0WCIyfP/CaScZH22acXABw+qmgonK/X1q/0ax4krWxc2h5va4rMd9xilx4paanXOqa+ Yv1b1Di90Yl+ISDcMje9ipNvxHZ7xw/T5BL5kSBqW0ruD7wBGO7VOAZFtkIA946gT1TgesCCXvZ DtD3Ynu66EY3G86EdNJG8DDOoVV6uaACripqzAm3kiEPhBNaqERnJi+b59oTJC0Ddb2i3qIB9Gi SrOaFyudmdQKkfnN1ig== X-Proofpoint-GUID: E0bzu4VmB_T_mdyWkRMlAVazR4VkzJDX X-Authority-Analysis: v=2.4 cv=a/wAM0SF c=1 sm=1 tr=0 ts=69d76884 cx=c_pps a=aDMHemPKRhS1OARIsFnwRA==:117 a=aDMHemPKRhS1OARIsFnwRA==:17 a=A5OVakUREuEA:10 a=VkNPw1HP01LnGYTKEx00:22 a=RnoormkPH1_aCDwRdu11:22 a=V8glGbnc2Ofi9Qvn3v5h:22 a=VnNF1IyMAAAA:8 a=20KFwNOVAAAA:8 a=LIa9h0xa2cA_CvVWP8EA:9 X-Proofpoint-ORIG-GUID: E0bzu4VmB_T_mdyWkRMlAVazR4VkzJDX X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-04-09_02,2026-04-08_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 bulkscore=0 clxscore=1015 spamscore=0 impostorscore=0 priorityscore=1501 phishscore=0 lowpriorityscore=0 adultscore=0 malwarescore=0 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2604010000 definitions=main-2604090077 X-Spam-Status: No, score=-10.8 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_EF, GIT_PATCH_0, RCVD_IN_DNSWL_LOW, RCVD_IN_MSPIKE_H4, RCVD_IN_MSPIKE_WL, RCVD_IN_VALIDITY_RPBL_BLOCKED, RCVD_IN_VALIDITY_SAFE_BLOCKED, SPF_HELO_NONE, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on sourceware.org X-BeenThere: libc-alpha@sourceware.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Libc-alpha mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: libc-alpha-bounces~patchwork=sourceware.org@sourceware.org After removing the files in s390-32 subfolder, we can also remove the entries in CONTRIBUTED-BY file. The entries for s390-64 files were adjusted to fit to the new paths. --- CONTRIBUTED-BY | 170 +++++++------------------------------------------ 1 file changed, 22 insertions(+), 148 deletions(-) diff --git a/CONTRIBUTED-BY b/CONTRIBUTED-BY index 0cb379cc9d..b37d1ad3c0 100644 --- a/CONTRIBUTED-BY +++ b/CONTRIBUTED-BY @@ -8489,70 +8489,37 @@ sysdeps/s390/memchr-z900.S: sysdeps/s390/memset-z900.S: Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com). -sysdeps/s390/s390-32/__longjmp.c: +sysdeps/s390/__longjmp.c: Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com). -sysdeps/s390/s390-32/add_n.S: +sysdeps/s390/add_n.S: Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com). -sysdeps/s390/s390-32/addmul_1.S: +sysdeps/s390/crti.S: Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com). -sysdeps/s390/s390-32/dl-machine.h: - Contributed by Carl Pederson & Martin Schwidefsky. - -sysdeps/s390/s390-32/mul_1.S: - Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com). - -sysdeps/s390/s390-32/s390-mcount.S: - Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com) - -sysdeps/s390/s390-32/setjmp.S: - Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com). - -sysdeps/s390/s390-32/start.S: - Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com). - -sysdeps/s390/s390-32/strncpy-z900.S: - Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com). - -sysdeps/s390/s390-32/sub_n.S: - Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com). - -sysdeps/s390/s390-32/sysdep.h: - Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com). - -sysdeps/s390/s390-64/__longjmp.c: - Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com). - -sysdeps/s390/s390-64/add_n.S: - Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com). - -sysdeps/s390/s390-64/crti.S: - Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com). - -sysdeps/s390/s390-64/crtn.S: +sysdeps/s390/crtn.S: Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com). -sysdeps/s390/s390-64/dl-machine.h: +sysdeps/s390/dl-machine.h: Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com). -sysdeps/s390/s390-64/s390x-mcount.h: +sysdeps/s390/s390x-mcount.h: Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com) -sysdeps/s390/s390-64/setjmp.S: +sysdeps/s390/setjmp.S: Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com). -sysdeps/s390/s390-64/start.S: +sysdeps/s390/start.S: Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com). -sysdeps/s390/s390-64/strncpy-z900.S: +sysdeps/s390/strncpy-z900.S: Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com). -sysdeps/s390/s390-64/sub_n.S: +sysdeps/s390/sub_n.S: Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com). -sysdeps/s390/s390-64/sysdep.h: +sysdeps/s390/sysdep.h: Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com). sysdeps/s390/strcmp-z900.S: @@ -9613,130 +9580,37 @@ sysdeps/unix/sysv/linux/s390/bits/elfclass.h: sysdeps/unix/sysv/linux/s390/dl-procinfo.h: Contributed by Martin Schwidefsky , 2006. -sysdeps/unix/sysv/linux/s390/s390-32/____longjmp_chk.c: - Contributed by Jakub Jelinek . - -sysdeps/unix/sysv/linux/s390/s390-32/clone.S: - Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com). - -sysdeps/unix/sysv/linux/s390/s390-32/getcontext.S: - Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com). - -sysdeps/unix/sysv/linux/s390/s390-32/getutent.c: - Contributed by Andreas Krebbel . - -sysdeps/unix/sysv/linux/s390/s390-32/getutent_r.c: - Contributed by Andreas Krebbel . - -sysdeps/unix/sysv/linux/s390/s390-32/getutid.c: - Contributed by Andreas Krebbel . - -sysdeps/unix/sysv/linux/s390/s390-32/getutid_r.c: - Contributed by Andreas Krebbel . - -sysdeps/unix/sysv/linux/s390/s390-32/getutline.c: - Contributed by Andreas Krebbel . - -sysdeps/unix/sysv/linux/s390/s390-32/getutline_r.c: - Contributed by Andreas Krebbel . - -sysdeps/unix/sysv/linux/s390/s390-32/getutmp.c: - Contributed by Andreas Krebbel . - -sysdeps/unix/sysv/linux/s390/s390-32/getutxent.c: - Contributed by Andreas Krebbel . - -sysdeps/unix/sysv/linux/s390/s390-32/getutxid.c: - Contributed by Andreas Krebbel . - -sysdeps/unix/sysv/linux/s390/s390-32/getutxline.c: - Contributed by Andreas Krebbel . - -sysdeps/unix/sysv/linux/s390/s390-32/login.c: - Contributed by Andreas Krebbel . - -sysdeps/unix/sysv/linux/s390/s390-32/login32.c: - Contributed by Andreas Krebbel . - -sysdeps/unix/sysv/linux/s390/s390-32/makecontext.c: - Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com). - -sysdeps/unix/sysv/linux/s390/s390-32/pututxline.c: - Contributed by Andreas Krebbel . - -sysdeps/unix/sysv/linux/s390/s390-32/register-dump.h: - Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com). - -sysdeps/unix/sysv/linux/s390/s390-32/setcontext.S: - Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com). - -sysdeps/unix/sysv/linux/s390/s390-32/swapcontext.S: - Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com). - -sysdeps/unix/sysv/linux/s390/s390-32/syscall.S: - Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com). - -sysdeps/unix/sysv/linux/s390/s390-32/sysdep.S: - Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com). - -sysdeps/unix/sysv/linux/s390/s390-32/sysdep.h: - Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com). - -sysdeps/unix/sysv/linux/s390/s390-32/updwtmp.c: - Contributed by Andreas Krebbel . - -sysdeps/unix/sysv/linux/s390/s390-32/updwtmpx.c: - Contributed by Andreas Krebbel . - -sysdeps/unix/sysv/linux/s390/s390-32/utmp-compat.h: - Contributed by Andreas Krebbel . - -sysdeps/unix/sysv/linux/s390/s390-32/utmp-convert.h: - Contributed by Andreas Krebbel . - -sysdeps/unix/sysv/linux/s390/s390-32/utmp32.c: - Contributed by Andreas Krebbel . - -sysdeps/unix/sysv/linux/s390/s390-32/utmpx-convert.h: - Contributed by Andreas Krebbel . - -sysdeps/unix/sysv/linux/s390/s390-32/utmpx32.c: - Contributed by Andreas Krebbel . - -sysdeps/unix/sysv/linux/s390/s390-32/vfork.S: - Contributed by Jakub Jelinek , 2004. - -sysdeps/unix/sysv/linux/s390/s390-64/____longjmp_chk.c: +sysdeps/unix/sysv/linux/s390/____longjmp_chk.c: Contributed by Jakub Jelinek . -sysdeps/unix/sysv/linux/s390/s390-64/clone.S: +sysdeps/unix/sysv/linux/s390/clone.S: Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com). -sysdeps/unix/sysv/linux/s390/s390-64/getcontext.S: +sysdeps/unix/sysv/linux/s390/getcontext.S: Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com). -sysdeps/unix/sysv/linux/s390/s390-64/makecontext.c: +sysdeps/unix/sysv/linux/s390/makecontext.c: Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com). -sysdeps/unix/sysv/linux/s390/s390-64/register-dump.h: +sysdeps/unix/sysv/linux/s390/register-dump.h: Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com). -sysdeps/unix/sysv/linux/s390/s390-64/setcontext.S: +sysdeps/unix/sysv/linux/s390/setcontext.S: Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com). -sysdeps/unix/sysv/linux/s390/s390-64/swapcontext.S: +sysdeps/unix/sysv/linux/s390/swapcontext.S: Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com). -sysdeps/unix/sysv/linux/s390/s390-64/syscall.S: +sysdeps/unix/sysv/linux/s390/syscall.S: Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com). -sysdeps/unix/sysv/linux/s390/s390-64/sysdep.S: +sysdeps/unix/sysv/linux/s390/sysdep.S: Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com). -sysdeps/unix/sysv/linux/s390/s390-64/sysdep.h: +sysdeps/unix/sysv/linux/s390/sysdep.h: Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com). -sysdeps/unix/sysv/linux/s390/s390-64/vfork.S: +sysdeps/unix/sysv/linux/s390/vfork.S: Contributed by Jakub Jelinek , 2004. sysdeps/unix/sysv/linux/s390/sigcontextinfo.h: