From patchwork Sun Jul 12 15:47:23 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alistair Francis X-Patchwork-Id: 40049 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 63EE23851C1A; Sun, 12 Jul 2020 15:57:14 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 63EE23851C1A DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1594569434; bh=97t/2SSz8GsrHaY060YKbPKB4Xaje4D7Ur4CaJsjnec=; h=To:Subject:Date:In-Reply-To:References:List-Id:List-Unsubscribe: List-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:Cc: From; b=hVO3QXlhEq5MhWZ4y17cbhJKICU0KSzlyAnuv3o5mNtJ9fku9VYzd8KJjwR+reVQJ +qepglaNdDic72Jf1oTEgO9CX89LX/x9CVuocechn6RbsW5camHXilFxwXgEgMGm2z ofKmFOeKSZW8yyMtjeHvUsut2CwLrvk6t1kUOBeI= X-Original-To: libc-alpha@sourceware.org Delivered-To: libc-alpha@sourceware.org Received: from esa3.hgst.iphmx.com (esa3.hgst.iphmx.com [216.71.153.141]) by sourceware.org (Postfix) with ESMTPS id 9D23B3857027 for ; Sun, 12 Jul 2020 15:57:11 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org 9D23B3857027 IronPort-SDR: 5rNmq/6Kjt0qUpuioumct+dFVVLoy9PyAJNRxANfBw9tiac5A2qlbC7itXOLpMZP1CdRfwjm6K fbqJULPFe8Hr6D8+sqL81XTjb8WjWbN5OplilH8lYnKU9S782RBI5R3RP6YvUre10gVOD0mzbL Y832DDs3AduRcCzyasxLAFABVjLImJFwcVcQQi3HsMOkIJjX2lOLi16NK4jBZFHg0dvV5z5UaF QGkYOa0ltlSUGWZUczxcg2N7O35AAHAunbdgwLqbD+LwExeMF6ljjv/rdSq+81ATDHg1720xXe GWc= X-IronPort-AV: E=Sophos;i="5.75,344,1589212800"; d="scan'208";a="146561176" Received: from h199-255-45-15.hgst.com (HELO uls-op-cesaep02.wdc.com) ([199.255.45.15]) by ob1.hgst.iphmx.com with ESMTP; 12 Jul 2020 23:56:55 +0800 IronPort-SDR: ln/Jj7uxvVtib65QShkACzz0FWlIpsQ35yGZ3NVPQV29F3uao4FqwK/E+JLHQeZLppwnTM0y8B FRio/0bCb5pLEHBVf1oIxEqi7vtDotcwE= Received: from uls-op-cesaip01.wdc.com ([10.248.3.36]) by uls-op-cesaep02.wdc.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 12 Jul 2020 08:44:51 -0700 IronPort-SDR: IWNTFs/WrLE81JC9t+Gx7pK5VFuP8+st9Ys+ntzDBUKahqLsaWkmrasM6mIUVRpEA3N8JF81a0 2ckiinfZ9uMA== WDCIronportException: Internal Received: from usa002626.ad.shared (HELO risc6-mainframe.hgst.com) ([10.86.57.178]) by uls-op-cesaip01.wdc.com with ESMTP; 12 Jul 2020 08:56:55 -0700 To: libc-alpha@sourceware.org Subject: [PATCH v3 01/19] RISC-V: Use 64-bit time_t and off_t for RV32 and RV64 Date: Sun, 12 Jul 2020 08:47:23 -0700 Message-Id: <6c5860daa78b04cc33a0de16a1370a2dfd0820f2.1594568655.git.alistair.francis@wdc.com> X-Mailer: git-send-email 2.27.0 In-Reply-To: References: MIME-Version: 1.0 X-Spam-Status: No, score=-15.0 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, KAM_NUMSUBJECT, KAM_SHORT, SPF_HELO_PASS, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on server2.sourceware.org X-BeenThere: libc-alpha@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Libc-alpha mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Patchwork-Original-From: Alistair Francis via Libc-alpha From: Alistair Francis Reply-To: Alistair Francis Cc: alistair.francis@wdc.com Errors-To: libc-alpha-bounces@sourceware.org Sender: "Libc-alpha" Using the original glibc headers under bits/ let's make small modifications to use 64-bit time_t and off_t for both RV32 and RV64. For the typesizes.h, here are justifications for the changes from the generic version (based on Arnd's very helpful feedback): - All the !__USE_FILE_OFFSET64 types (__off_t, __ino_t, __rlim_t, ...) are changed to match the 64-bit replacements. - __time_t is defined to 64 bit, but no __time64_t is added. This makes sense as we don't have the time64 support for other 32-bit architectures yet, and it will be easy to change when that happens. - __suseconds_t is 64-bit. This matches what we use the kernel ABI for the few drivers that are relying on 'struct timeval' input arguments in ioctl, as well as the adjtimex system call. It means that timeval has to be defined without the padding, unlike timespec, which needs padding. Reviewed-by: Maciej W. Rozycki --- .../unix/sysv/linux/riscv/bits/environments.h | 81 +++++++++++++++++++ sysdeps/unix/sysv/linux/riscv/bits/time64.h | 36 +++++++++ sysdeps/unix/sysv/linux/riscv/bits/timesize.h | 22 +++++ sysdeps/unix/sysv/linux/riscv/kernel_stat.h | 23 ++++++ 4 files changed, 162 insertions(+) create mode 100644 sysdeps/unix/sysv/linux/riscv/bits/environments.h create mode 100644 sysdeps/unix/sysv/linux/riscv/bits/time64.h create mode 100644 sysdeps/unix/sysv/linux/riscv/bits/timesize.h create mode 100644 sysdeps/unix/sysv/linux/riscv/kernel_stat.h diff --git a/sysdeps/unix/sysv/linux/riscv/bits/environments.h b/sysdeps/unix/sysv/linux/riscv/bits/environments.h new file mode 100644 index 0000000000..9ee21a217d --- /dev/null +++ b/sysdeps/unix/sysv/linux/riscv/bits/environments.h @@ -0,0 +1,81 @@ +/* Copyright (C) 2020 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 + +/* We can never provide environments with 32-bit wide pointers. */ +# 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 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 */ + +/* RISC-V requires 64-bit off_t */ +# define _POSIX_V7_ILP32_OFF32 -1 +# define _POSIX_V6_ILP32_OFF32 -1 +# define _XBS5_ILP32_OFF32 -1 + +# define _POSIX_V7_ILP32_OFFBIG 1 +# define _POSIX_V6_ILP32_OFFBIG 1 +# define _XBS5_ILP32_OFFBIG 1 + +/* We can never provide environments with 64-bit wide pointers. */ +# define _POSIX_V7_LP64_OFF64 -1 +# define _POSIX_V7_LPBIG_OFFBIG -1 +# define _POSIX_V6_LP64_OFF64 -1 +# define _POSIX_V6_LPBIG_OFFBIG -1 +# define _XBS5_LP64_OFF64 -1 +# define _XBS5_LPBIG_OFFBIG -1 + +#endif /* __WORDSIZE == 32 */ diff --git a/sysdeps/unix/sysv/linux/riscv/bits/time64.h b/sysdeps/unix/sysv/linux/riscv/bits/time64.h new file mode 100644 index 0000000000..139a7c7335 --- /dev/null +++ b/sysdeps/unix/sysv/linux/riscv/bits/time64.h @@ -0,0 +1,36 @@ +/* bits/time64.h -- underlying types for __time64_t. RISC-V version. + Copyright (C) 2020 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 _BITS_TYPES_H +# error "Never include directly; use instead." +#endif + +#ifndef _BITS_TIME64_H +#define _BITS_TIME64_H 1 + +/* Define __TIME64_T_TYPE so that it is always a 64-bit type. */ + +#if __WORDSIZE == 64 +/* If we already have 64-bit time type then use it. */ +# define __TIME64_T_TYPE __TIME_T_TYPE +#else +/* Define a 64-bit time type alongsize the 32-bit one. */ +# define __TIME64_T_TYPE __SQUAD_TYPE +#endif + +#endif /* bits/time64.h */ diff --git a/sysdeps/unix/sysv/linux/riscv/bits/timesize.h b/sysdeps/unix/sysv/linux/riscv/bits/timesize.h new file mode 100644 index 0000000000..728d6c5053 --- /dev/null +++ b/sysdeps/unix/sysv/linux/riscv/bits/timesize.h @@ -0,0 +1,22 @@ +/* Bit size of the time_t type at glibc build time, RISC-V case. + Copyright (C) 2020 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 + +/* RV32 and RV64 both use 64-bit time_t */ +#define __TIMESIZE 64 diff --git a/sysdeps/unix/sysv/linux/riscv/kernel_stat.h b/sysdeps/unix/sysv/linux/riscv/kernel_stat.h new file mode 100644 index 0000000000..06eb5bce96 --- /dev/null +++ b/sysdeps/unix/sysv/linux/riscv/kernel_stat.h @@ -0,0 +1,23 @@ +/* Copyright (C) 2020 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 STAT_IS_KERNEL_STAT 1 + +#define XSTAT_IS_XSTAT64 1 +#define STATFS_IS_STATFS64 0 From patchwork Sun Jul 12 15:47:26 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alistair Francis X-Patchwork-Id: 40047 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id C91AF385EC57; Sun, 12 Jul 2020 15:57:11 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org C91AF385EC57 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1594569431; bh=3NlbLel7a5wF4Xfmzy4I5tvGAIThOwog34wlnkOrykU=; h=To:Subject:Date:In-Reply-To:References:List-Id:List-Unsubscribe: List-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:Cc: From; b=r8Fbh8XpuMgYYAe5H0qS3CC4MEUEpRRAur8IVJlOL428Fl90wiPfDKVYYFx1dk8tP GuJTk4sXRPTiGkvNoutMoU4uTTnAsEQG4NNhCth4Q6jik051l2PwFwhzhDqCRr/XqK t2nEc5UXEI/z9CYgxDNFnmtVWWBNbmdESEEK4S8A= X-Original-To: libc-alpha@sourceware.org Delivered-To: libc-alpha@sourceware.org Received: from esa3.hgst.iphmx.com (esa3.hgst.iphmx.com [216.71.153.141]) by sourceware.org (Postfix) with ESMTPS id C4DAC3858D37 for ; Sun, 12 Jul 2020 15:57:09 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org C4DAC3858D37 IronPort-SDR: YmoFbsQymFVgKCtCz6v2g6uvpnN1HSQolCYb5/wHE05bkmVsP6x1lDWssIY3lXTbw2sunuegrx 4sIIMxqxAQXUG/7Nyg3J3L6fPtw8EjjtfjcJNwcHMyo5N0BWigd9hy1Z9V+IsN7jlGHV6pvQux LjrX67Q8vY1u+3RRLICl7vl5DRjyjCFPNA/RNcXv3EQ+Sb6U0o8Aw+pynoXER8103rT4qYrwXu ii8uA6wW3G3IF9iizIoaLzwR5xh8KY8Rfbbrwfh0pfmHH9vPuezA96g66RiJLG5yqdnWYNQUF0 EGU= X-IronPort-AV: E=Sophos;i="5.75,344,1589212800"; d="scan'208";a="146561177" Received: from uls-op-cesaip01.wdc.com (HELO uls-op-cesaep01.wdc.com) ([199.255.45.14]) by ob1.hgst.iphmx.com with ESMTP; 12 Jul 2020 23:56:58 +0800 IronPort-SDR: f9XPGLVA1f+5hdYiZ877UEQ1PS5udKhifD4elqurZofdGevIYasxcOpE8eG5GNECV7s4ra4UMx 5QcpC9P+IIzDPyjq2YlhVGrpi7Lakq8yc= Received: from uls-op-cesaip02.wdc.com ([10.248.3.37]) by uls-op-cesaep01.wdc.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 12 Jul 2020 08:45:27 -0700 IronPort-SDR: TpYwsUwI2Tl5ALshBlIJLsXEfsuoAmqGYkeiRLoncPd2zGP9Z+0VX0ga1fWFBjw481VqBRrVQT 2ARaToyi1oyg== WDCIronportException: Internal Received: from usa002626.ad.shared (HELO risc6-mainframe.hgst.com) ([10.86.57.178]) by uls-op-cesaip02.wdc.com with ESMTP; 12 Jul 2020 08:56:56 -0700 To: libc-alpha@sourceware.org Subject: [PATCH v3 02/19] RISC-V: Cleanup some of the sysdep.h code Date: Sun, 12 Jul 2020 08:47:26 -0700 Message-Id: <91a2de374c9ae48869743324f4a0edc185f63161.1594568655.git.alistair.francis@wdc.com> X-Mailer: git-send-email 2.27.0 In-Reply-To: References: MIME-Version: 1.0 X-Spam-Status: No, score=-15.0 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, SPF_HELO_PASS, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on server2.sourceware.org X-BeenThere: libc-alpha@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Libc-alpha mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Patchwork-Original-From: Alistair Francis via Libc-alpha From: Alistair Francis Reply-To: Alistair Francis Cc: alistair.francis@wdc.com Errors-To: libc-alpha-bounces@sourceware.org Sender: "Libc-alpha" --- sysdeps/unix/sysv/linux/riscv/sysdep.h | 14 +------------- 1 file changed, 1 insertion(+), 13 deletions(-) diff --git a/sysdeps/unix/sysv/linux/riscv/sysdep.h b/sysdeps/unix/sysv/linux/riscv/sysdep.h index 83e4adf6a2..429686cebe 100644 --- a/sysdeps/unix/sysv/linux/riscv/sysdep.h +++ b/sysdeps/unix/sysv/linux/riscv/sysdep.h @@ -107,19 +107,7 @@ # undef ret_ERRVAL # define ret_ERRVAL ret -#endif /* __ASSEMBLER__ */ - -/* In order to get __set_errno() definition in INLINE_SYSCALL. */ -#ifndef __ASSEMBLER__ -# include -#endif - -#include - -#undef SYS_ify -#define SYS_ify(syscall_name) __NR_##syscall_name - -#ifndef __ASSEMBLER__ +#else # define VDSO_NAME "LINUX_4.15" # define VDSO_HASH 182943605 From patchwork Sun Jul 12 15:47:28 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alistair Francis X-Patchwork-Id: 40050 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id E33B8385703D; Sun, 12 Jul 2020 15:57:16 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org E33B8385703D DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1594569437; bh=9+Lx/gDmsdEg1b8ay+NnZtkDowI5wP/H1Re0pm/Ut0Y=; h=To:Subject:Date:In-Reply-To:References:List-Id:List-Unsubscribe: List-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:Cc: From; b=hIcDY8Sj5iE0SzcS5XdieLRFMfscVDJa4RW69Uk2tBsvmKCodYWF85RVzzDc3ji0l ivYwLZLfyxd4ag9gnXG7ZQyhtcKrmoOdS8Qmi+psBywyCy7bsoi2EDRI0ZePoskwLK plWw54xbDcylU5DfW0NyyRD00ywDHAGBjXm8aclw= X-Original-To: libc-alpha@sourceware.org Delivered-To: libc-alpha@sourceware.org Received: from esa3.hgst.iphmx.com (esa3.hgst.iphmx.com [216.71.153.141]) by sourceware.org (Postfix) with ESMTPS id A30AE3857027 for ; Sun, 12 Jul 2020 15:57:13 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org A30AE3857027 IronPort-SDR: RThXdkq21JZsa2HrwhTW2kHaBwdg+QxSpGd1rIctey+SXhc1EUeBSJ9XcWnlMcUdfwpBNxwJUZ aNhlZXbHp+khEQxQzX2ARGUEmdaT86fYTXvAX9Ezs+BBZHEvOrRLdsWWI2wSEyKwKRGF4yJ3Py nNCg0UIFyU7rxFxwfAyoyxEixU/G7EMLQqLxloggOfOw1KHxKEXwX2NCpgdQ7dfXZO/e+DGWjH K2EsOrE2UVXXD5hkNaOeg09HLyASU9CrSilQSY9fiG/YZq3Y1ZLdtF12wi03egYxl0sTfxKw0R 8Vg= X-IronPort-AV: E=Sophos;i="5.75,344,1589212800"; d="scan'208";a="146561179" Received: from uls-op-cesaip01.wdc.com (HELO uls-op-cesaep01.wdc.com) ([199.255.45.14]) by ob1.hgst.iphmx.com with ESMTP; 12 Jul 2020 23:57:00 +0800 IronPort-SDR: +6tt7gGIHL4DYk5Bi/inuZTAI0rdZc364waNgH0dZIpMVBTw5Xle08ICQRi/mZ51KU1YHp1Q8j 2O7VtHkZhbph1I4lPDZOaKv/W9dwlngDQ= Received: from uls-op-cesaip02.wdc.com ([10.248.3.37]) by uls-op-cesaep01.wdc.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 12 Jul 2020 08:45:30 -0700 IronPort-SDR: OLCYHmnJstngM9XiEWI0K8pXn5w0sK3Ci3XUnD+uIyZmVCmQ1XW1OLWOjgAsyQyVLoa7qZrTIJ zQt9+vr1NeXw== WDCIronportException: Internal Received: from usa002626.ad.shared (HELO risc6-mainframe.hgst.com) ([10.86.57.178]) by uls-op-cesaip02.wdc.com with ESMTP; 12 Jul 2020 08:56:59 -0700 To: libc-alpha@sourceware.org Subject: [PATCH v3 03/19] RISC-V: Use 64-bit-time syscall numbers with the 32-bit port Date: Sun, 12 Jul 2020 08:47:28 -0700 Message-Id: <8c6518f04fc70bebac9b00a171c691feca0d2628.1594568655.git.alistair.francis@wdc.com> X-Mailer: git-send-email 2.27.0 In-Reply-To: References: MIME-Version: 1.0 X-Spam-Status: No, score=-14.9 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, KAM_SHORT, SPF_HELO_PASS, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on server2.sourceware.org X-BeenThere: libc-alpha@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Libc-alpha mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Patchwork-Original-From: Alistair Francis via Libc-alpha From: Alistair Francis Reply-To: Alistair Francis Cc: alistair.francis@wdc.com Errors-To: libc-alpha-bounces@sourceware.org Sender: "Libc-alpha" This patches adds any required syscall suppression for 32-bit off_t/time_t to fixup-asm-unistd.h so arch-syscall.h will have only the required definitions. sysdep.h redefines only the syscall where the generic implementation still does not have actual 64-bit time_t support: /* "workarounds" for generic code needing to handle 64-bit time_t. */ /* Fix sysdeps/unix/sysv/linux/clock_getcpuclockid.c. */ #define __NR_clock_getres __NR_clock_getres_time64 /* Fix sysdeps/nptl/lowlevellock-futex.h. */ #define __NR_futex __NR_futex_time64 [...] This patch also adds a comment that it is a workaround to handle 64-bit time_t and on each #define comment for which implementation it intends to. --- .../unix/sysv/linux/riscv/fixup-asm-unistd.h | 45 +++++++++++++++++++ sysdeps/unix/sysv/linux/riscv/sysdep.h | 27 +++++++++++ 2 files changed, 72 insertions(+) create mode 100644 sysdeps/unix/sysv/linux/riscv/fixup-asm-unistd.h diff --git a/sysdeps/unix/sysv/linux/riscv/fixup-asm-unistd.h b/sysdeps/unix/sysv/linux/riscv/fixup-asm-unistd.h new file mode 100644 index 0000000000..bc8b10e283 --- /dev/null +++ b/sysdeps/unix/sysv/linux/riscv/fixup-asm-unistd.h @@ -0,0 +1,45 @@ +/* Regularize definitions. RISC-V version. + Copyright (C) 2020 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 + . */ + +/* Adjustments to RISC-V asm-generic syscall for 64-bit time_t support. */ + +/* fstat64 and fstatat64 need to be replaced with statx. */ + +#undef __NR_fstat64 +#undef __NR_fstatat64 + +/* Replace all other 32-bit time syscalls with 64-bit variants. */ + +# undef __NR_clock_adjtime +# undef __NR_clock_getres +# undef __NR_clock_gettime +# undef __NR_clock_nanosleep +# undef __NR_clock_settime +# undef __NR_futex +# undef __NR_mq_timedreceive +# undef __NR_mq_timedsend +# undef __NR_ppoll +# undef __NR_pselect6 +# undef __NR_recvmmsg +# undef __NR_rt_sigtimedwait +# undef __NR_sched_rr_get_interval +# undef __NR_semtimedop +# undef __NR_timer_gettime +# undef __NR_timer_settime +# undef __NR_timerfd_gettime +# undef __NR_timerfd_settime +# undef __NR_utimensat diff --git a/sysdeps/unix/sysv/linux/riscv/sysdep.h b/sysdeps/unix/sysv/linux/riscv/sysdep.h index 429686cebe..62a9551f50 100644 --- a/sysdeps/unix/sysv/linux/riscv/sysdep.h +++ b/sysdeps/unix/sysv/linux/riscv/sysdep.h @@ -22,6 +22,33 @@ #include #include +#if __WORDSIZE == 32 + + +/* "workarounds" for generic code needing to handle 64-bit time_t. */ + +/* Fix sysdeps/unix/sysv/linux/clock_getcpuclockid.c. */ +#define __NR_clock_getres __NR_clock_getres_time64 +/* Fix sysdeps/nptl/lowlevellock-futex.h. */ +#define __NR_futex __NR_futex_time64 +/* Fix sysdeps/unix/sysv/linux/pause.c. */ +#define __NR_ppoll __NR_ppoll_time64 +/* Fix sysdeps/unix/sysv/linux/select.c. */ +#define __NR_pselect6 __NR_pselect6_time64 +/* Fix sysdeps/unix/sysv/linux/recvmmsg.c. */ +#define __NR_recvmmsg __NR_recvmmsg_time64 +/* Fix sysdeps/unix/sysv/linux/sigtimedwait.c. */ +#define __NR_rt_sigtimedwait __NR_rt_sigtimedwait_time64 +/* Fix sysdeps/unix/sysv/linux/semtimedop.c. */ +#define __NR_semtimedop __NR_semtimedop_time64 +/* Hack sysdeps/unix/sysv/linux/generic/utimes.c. */ +#define __NR_utimensat __NR_utimensat_time64 + +#endif /* __WORDSIZE == 32 */ + +#undef SYS_ify +#define SYS_ify(syscall_name) __NR_##syscall_name + #ifdef __ASSEMBLER__ # include From patchwork Sun Jul 12 15:47:31 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alistair Francis X-Patchwork-Id: 40044 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 344003857C61; Sun, 12 Jul 2020 15:57:06 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 344003857C61 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1594569426; bh=XLK4IdFUNQcF5GXlX7HheRLCubir13IbACISEz9KbHk=; h=To:Subject:Date:In-Reply-To:References:List-Id:List-Unsubscribe: List-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:Cc: From; b=D8+fmvgGGUrm4dPzcSApRkb03rIz04Wno/dATyUVE8gslI6ZqAAvnUbL4TOH4fZV3 CazQyUDsNoqPc/AWzeBoPrpWGd07+xtKolJTpu92gCkH46NA97W6Yh1asOkHhTuWsg XU5ggPEAVc1yZMv0v50Igz7weydtvLAP/zEQO2nQ= X-Original-To: libc-alpha@sourceware.org Delivered-To: libc-alpha@sourceware.org Received: from esa4.hgst.iphmx.com (esa4.hgst.iphmx.com [216.71.154.42]) by sourceware.org (Postfix) with ESMTPS id B6804385701F for ; Sun, 12 Jul 2020 15:57:02 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org B6804385701F IronPort-SDR: bGfgJo/zq3PuSX/bFRrzXmRCWpy8MrYUJPSFKxRKqiZrYAsyFgstItClehUMgH1EqzjLQGbhJi QRt16vIfe2B8YtxD/kDboKjz3usVCoILRYozzOhRKFkM1AezKy3wF5ZWaCKUXzWlXML8A0Yv/f mBhxbkXIMt7s4rg5K9geHXhtbXvd5FRU6LsAZlPluzxbuH0IUESPHu9saKkn3NCzgwUDeMzyx/ BaUB/YJ0RWH+gspE7s+otNZn0otdekYbqhs3SKQG97BpcfNrEhQwj0MDqAHEEEFigu43yVHUkv Ae0= X-IronPort-AV: E=Sophos;i="5.75,344,1589212800"; d="scan'208";a="142250027" Received: from uls-op-cesaip02.wdc.com (HELO uls-op-cesaep02.wdc.com) ([199.255.45.15]) by ob1.hgst.iphmx.com with ESMTP; 12 Jul 2020 23:57:01 +0800 IronPort-SDR: EBvKly6h6WrLvLVpLsVMnIb44bIOKUH50oC+L+xH9rdQWe/IGd3DMXJVhmVGfxBMFYJ48DbZwT JMLQR19TuS8V/eESMfCPD2KgtgBPMm7h4= Received: from uls-op-cesaip01.wdc.com ([10.248.3.36]) by uls-op-cesaep02.wdc.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 12 Jul 2020 08:44:59 -0700 IronPort-SDR: C+smiBr2V8oceuq/x4BX/kocPE9wzBq7KxujGjnHN3GJxedPsvGro6LS2uHh80vDHfiQvqx0/O M8Ohs0pvC/yg== WDCIronportException: Internal Received: from usa002626.ad.shared (HELO risc6-mainframe.hgst.com) ([10.86.57.178]) by uls-op-cesaip01.wdc.com with ESMTP; 12 Jul 2020 08:57:03 -0700 To: libc-alpha@sourceware.org Subject: [PATCH v3 04/19] RISC-V: Add support for 32-bit vDSO calls Date: Sun, 12 Jul 2020 08:47:31 -0700 Message-Id: <50619acf4344de8022a28f34cd04c36eff6873ae.1594568655.git.alistair.francis@wdc.com> X-Mailer: git-send-email 2.27.0 In-Reply-To: References: MIME-Version: 1.0 X-Spam-Status: No, score=-15.5 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, SPF_HELO_PASS, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on server2.sourceware.org X-BeenThere: libc-alpha@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Libc-alpha mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Patchwork-Original-From: Alistair Francis via Libc-alpha From: Alistair Francis Reply-To: Alistair Francis Cc: alistair.francis@wdc.com Errors-To: libc-alpha-bounces@sourceware.org Sender: "Libc-alpha" --- sysdeps/unix/sysv/linux/riscv/sysdep.h | 27 ++++++++++++++++++-------- 1 file changed, 19 insertions(+), 8 deletions(-) diff --git a/sysdeps/unix/sysv/linux/riscv/sysdep.h b/sysdeps/unix/sysv/linux/riscv/sysdep.h index 62a9551f50..bf26379479 100644 --- a/sysdeps/unix/sysv/linux/riscv/sysdep.h +++ b/sysdeps/unix/sysv/linux/riscv/sysdep.h @@ -136,14 +136,25 @@ #else -# define VDSO_NAME "LINUX_4.15" -# define VDSO_HASH 182943605 - -/* List of system calls which are supported as vsyscalls. */ -# define HAVE_CLOCK_GETRES64_VSYSCALL "__vdso_clock_getres" -# define HAVE_CLOCK_GETTIME64_VSYSCALL "__vdso_clock_gettime" -# define HAVE_GETTIMEOFDAY_VSYSCALL "__vdso_gettimeofday" -# define HAVE_GETCPU_VSYSCALL "__vdso_getcpu" +# if __WORDSIZE == 64 +# define VDSO_NAME "LINUX_4.15" +# define VDSO_HASH 182943605 + +/* List of system calls which are supported as vsyscalls only + for RV64. */ +# define HAVE_CLOCK_GETRES64_VSYSCALL "__vdso_clock_getres" +# define HAVE_CLOCK_GETTIME64_VSYSCALL "__vdso_clock_gettime" +# define HAVE_GETTIMEOFDAY_VSYSCALL "__vdso_gettimeofday" +# else +# define VDSO_NAME "LINUX_5.4" +# define VDSO_HASH 61765876 + +/* RV32 does not support the gettime VDSO syscalls. */ +# endif + +/* List of system calls which are supported as vsyscalls (for RV32 and + RV64). */ +# define HAVE_GETCPU_VSYSCALL "__vdso_getcpu" # define INTERNAL_SYSCALL(name, nr, args...) \ internal_syscall##nr (SYS_ify (name), args) From patchwork Sun Jul 12 15:47:34 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alistair Francis X-Patchwork-Id: 40045 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id B43D1385702F; Sun, 12 Jul 2020 15:57:06 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org B43D1385702F DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1594569426; bh=JHVGBpOROEwHTW+eGIXcKsqltQUpoKiWrJ/eXN84pN8=; h=To:Subject:Date:In-Reply-To:References:List-Id:List-Unsubscribe: List-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:Cc: From; b=JFK+FXwRY/1pOo4331ntlVmUdG/a9W8IHujurQsO5B2+ZjVMdrPQrmDWrtT/03MC/ 6QbwlCT4z8M5YzJgUiWZkreMLf7497ziwsJ945lWP2VgYaQ10eLyHslCFqHvUZcruW 048lFPBJiRaIJDQOzguGSYgdNNdg3B6v06hzwxPs= X-Original-To: libc-alpha@sourceware.org Delivered-To: libc-alpha@sourceware.org Received: from esa4.hgst.iphmx.com (esa4.hgst.iphmx.com [216.71.154.42]) by sourceware.org (Postfix) with ESMTPS id C629D3858D37 for ; Sun, 12 Jul 2020 15:57:04 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org C629D3858D37 IronPort-SDR: Tn6XwxRjO3YaqesUpuwDGWP1qgPocsTeFRQ2Hw8gXC2Tkhn4NqU8hJzjqFXdw5wEU7SOxekrgV xj9FYuLHQ5Rcc21JLwIzR9h7XHcS955vB5Vhgs1YGMOnk1HI4xfL8ioBEpIitwoHbqI6YtIrH8 XCDtPpTbNAh1N9p+H6Wg0AygO2Y9ZRHVUL+cGZTJr5dStq2X1WeCf2QJcNI1iYOZHbPAobD0HD tOnzroYyazdPM+pztJxltx5ip59x4psZFWtctn5RuY9Jwl0ToJwH/StA+c8la0slo2fScXLOIL vzE= X-IronPort-AV: E=Sophos;i="5.75,344,1589212800"; d="scan'208";a="142250033" Received: from uls-op-cesaip02.wdc.com (HELO uls-op-cesaep02.wdc.com) ([199.255.45.15]) by ob1.hgst.iphmx.com with ESMTP; 12 Jul 2020 23:57:04 +0800 IronPort-SDR: SFcV38vEl1E6u7vCFf/YNoJoDGmK1ahNzLwWgntTVVBk8IPQeUtnZC9uNvKkaJ6moNw3MhxMvE dBlSC7AJeH1yTYb8C4T450nB7o6c3gN8M= Received: from uls-op-cesaip01.wdc.com ([10.248.3.36]) by uls-op-cesaep02.wdc.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 12 Jul 2020 08:45:02 -0700 IronPort-SDR: WCs557VbBCwrcFY38N2N9OOyy8h2unLcA8fa1VD5pYIbsxQXzBmVqnkP+eGPc0acnzMwtbf2/5 ZSL5iRqjgvFw== WDCIronportException: Internal Received: from usa002626.ad.shared (HELO risc6-mainframe.hgst.com) ([10.86.57.178]) by uls-op-cesaip01.wdc.com with ESMTP; 12 Jul 2020 08:57:05 -0700 To: libc-alpha@sourceware.org Subject: [PATCH v3 05/19] RISC-V: Support dynamic loader for the 32-bit Date: Sun, 12 Jul 2020 08:47:34 -0700 Message-Id: <5ffcf9fa9b7b7e6e062bc0fb36b604ac5506253d.1594568655.git.alistair.francis@wdc.com> X-Mailer: git-send-email 2.27.0 In-Reply-To: References: MIME-Version: 1.0 X-Spam-Status: No, score=-15.4 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, SPF_HELO_PASS, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on server2.sourceware.org X-BeenThere: libc-alpha@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Libc-alpha mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Patchwork-Original-From: Alistair Francis via Libc-alpha From: Alistair Francis Reply-To: Alistair Francis Cc: alistair.francis@wdc.com Errors-To: libc-alpha-bounces@sourceware.org Sender: "Libc-alpha" From: Zong Li Add the LD_SO_ABI definition for RISC-V 32-bit. Reviewed-by: Maciej W. Rozycki --- sysdeps/unix/sysv/linux/riscv/ldconfig.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sysdeps/unix/sysv/linux/riscv/ldconfig.h b/sysdeps/unix/sysv/linux/riscv/ldconfig.h index 3d7065b293..35badb7cf0 100644 --- a/sysdeps/unix/sysv/linux/riscv/ldconfig.h +++ b/sysdeps/unix/sysv/linux/riscv/ldconfig.h @@ -24,7 +24,7 @@ #if __riscv_xlen == 64 # define LD_SO_ABI "riscv64-lp64" #else -# error "rv32i-based targets are not supported" +# define LD_SO_ABI "riscv32-ilp32" #endif #define SYSDEP_KNOWN_INTERPRETER_NAMES \ From patchwork Sun Jul 12 15:47:36 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alistair Francis X-Patchwork-Id: 40046 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 453BA385DC17; Sun, 12 Jul 2020 15:57:10 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 453BA385DC17 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1594569430; bh=xwq5ljl8r5xJ3dPsHAnRUCfTPFoA9yPvk16PHZZ2Pek=; h=To:Subject:Date:In-Reply-To:References:List-Id:List-Unsubscribe: List-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:Cc: From; b=X8IUP9XoAmOs9xeZX+73OsObuQuSAb1rIQe0Q9G96eiiv7sYAuLcoOttJRkjvSyCW G6UoDSXRwpPOYZgy7IIk2yXBjJ4h8eACVSGQFBOuyR8rW82Mg4aUntsF/o2H7izzKT 3CxcN7zk+hjw0ip630RUPHN9pawpPLB9WRjbKL0E= X-Original-To: libc-alpha@sourceware.org Delivered-To: libc-alpha@sourceware.org Received: from esa4.hgst.iphmx.com (esa4.hgst.iphmx.com [216.71.154.42]) by sourceware.org (Postfix) with ESMTPS id 5F209385703D for ; Sun, 12 Jul 2020 15:57:07 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org 5F209385703D IronPort-SDR: N49KVxPU1uv3K4DYbLeW1zT+PTqeNVUQzrqkuPga9HrPZ4AxzXQeaG5/qHUjvzhzAmzPOmvj4r wosgUeYko5l6AAyM+MBU4Kfja6DKhbag+Y0K8meXNr0bvqQ6VvJDGLrkGJsmhNhcVZPWCCiMUi zo8G9mXWOQ6DUAi0meJizatsUBEFbXZ+mGlqPSa0MAVpRYAsebw6IgEJsoj+gfl+m2CRAhNjir XmLne2qp99GAuma4VDkfiYsrJEIfd3Er7AP+a9ReKm3/92JYYbWfEj4xdi+tYmlUYvlYBz4fmF yeY= X-IronPort-AV: E=Sophos;i="5.75,344,1589212800"; d="scan'208";a="142250036" Received: from uls-op-cesaip02.wdc.com (HELO uls-op-cesaep02.wdc.com) ([199.255.45.15]) by ob1.hgst.iphmx.com with ESMTP; 12 Jul 2020 23:57:07 +0800 IronPort-SDR: gvoKmhF4vkKH1oC20/+tcdq95HIJGiMX2xnrEWhdBTwgi2bbt+D0DcyWurJkm6lOc/6B8RXMRT YEQWQtKkGWr2YhkQVRBSrTNOl1MgnKCds= Received: from uls-op-cesaip01.wdc.com ([10.248.3.36]) by uls-op-cesaep02.wdc.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 12 Jul 2020 08:45:04 -0700 IronPort-SDR: zUWCxh1mzzRRxOWPSopG7YmAsygU+MGhbwFkkDbYT6vahMz8tsE7Mb4KH8W4CkgvolsjZsXy8x zbUXU+dp4kpQ== WDCIronportException: Internal Received: from usa002626.ad.shared (HELO risc6-mainframe.hgst.com) ([10.86.57.178]) by uls-op-cesaip01.wdc.com with ESMTP; 12 Jul 2020 08:57:08 -0700 To: libc-alpha@sourceware.org Subject: [PATCH v3 06/19] sysv/linux: riscv: Fix dl-cache.h indentation Date: Sun, 12 Jul 2020 08:47:36 -0700 Message-Id: <780c989c666abbabca7e13123fe876a3eaa73aef.1594568655.git.alistair.francis@wdc.com> X-Mailer: git-send-email 2.27.0 In-Reply-To: References: MIME-Version: 1.0 X-Spam-Status: No, score=-15.4 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, SPF_HELO_PASS, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on server2.sourceware.org X-BeenThere: libc-alpha@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Libc-alpha mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Patchwork-Original-From: Alistair Francis via Libc-alpha From: Alistair Francis Reply-To: Alistair Francis Cc: alistair.francis@wdc.com Errors-To: libc-alpha-bounces@sourceware.org Sender: "Libc-alpha" Replace 8 spaces with a tabi and extend the line length in preperation for the next patch. No functional changes. --- sysdeps/unix/sysv/linux/riscv/dl-cache.h | 62 ++++++++++++------------ 1 file changed, 31 insertions(+), 31 deletions(-) diff --git a/sysdeps/unix/sysv/linux/riscv/dl-cache.h b/sysdeps/unix/sysv/linux/riscv/dl-cache.h index c297dfe84f..b3cda4ef9f 100644 --- a/sysdeps/unix/sysv/linux/riscv/dl-cache.h +++ b/sysdeps/unix/sysv/linux/riscv/dl-cache.h @@ -38,37 +38,37 @@ so this will add all of those paths. According to Joseph Myers: - My reasoning for that would be: generic autoconf-configured (etc.) - software may only know about using the lib directory, so you want the - lib directory to be searched regardless of the ABI - but it's also - useful to be able to e.g. list /usr/local/lib in /etc/ld.so.conf for all - architectures and have that automatically imply /usr/local/lib64/lp64d - etc. so that libraries can be found that come from software that does - use the ABI-specific directories. */ -#define add_system_dir(dir) \ - do \ - { \ - size_t len = strlen (dir); \ - char path[len + 9]; \ - memcpy (path, dir, len + 1); \ - if (len >= 12 && ! memcmp(path + len - 12, "/lib64/lp64d", 12)) \ - { \ - len -= 8; \ - path[len] = '\0'; \ - } \ - if (len >= 11 && ! memcmp(path + len - 11, "/lib64/lp64", 11)) \ - { \ - len -= 7; \ - path[len] = '\0'; \ - } \ - add_dir (path); \ - if (len >= 4 && ! memcmp(path + len - 4, "/lib", 4)) \ - { \ - memcpy (path + len, "64/lp64d", 9); \ - add_dir (path); \ - memcpy (path + len, "64/lp64", 8); \ - add_dir (path); \ - } \ + My reasoning for that would be: generic autoconf-configured (etc.) + software may only know about using the lib directory, so you want the + lib directory to be searched regardless of the ABI - but it's also + useful to be able to e.g. list /usr/local/lib in /etc/ld.so.conf for all + architectures and have that automatically imply /usr/local/lib64/lp64d + etc. so that libraries can be found that come from software that does + use the ABI-specific directories. */ +#define add_system_dir(dir) \ + do \ + { \ + size_t len = strlen (dir); \ + char path[len + 9]; \ + memcpy (path, dir, len + 1); \ + if (len >= 12 && ! memcmp(path + len - 12, "/lib64/lp64d", 12)) \ + { \ + len -= 8; \ + path[len] = '\0'; \ + } \ + if (len >= 11 && ! memcmp(path + len - 11, "/lib64/lp64", 11)) \ + { \ + len -= 7; \ + path[len] = '\0'; \ + } \ + add_dir (path); \ + if (len >= 4 && ! memcmp(path + len - 4, "/lib", 4)) \ + { \ + memcpy (path + len, "64/lp64d", 9); \ + add_dir (path); \ + memcpy (path + len, "64/lp64", 8); \ + add_dir (path); \ + } \ } while (0) From patchwork Sun Jul 12 15:47:39 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alistair Francis X-Patchwork-Id: 40048 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 550183851C0B; Sun, 12 Jul 2020 15:57:12 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 550183851C0B DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1594569432; bh=t8X5USHOctK8S9i+F2q96i7frdk/gCJw9mHP2XHPbWI=; h=To:Subject:Date:In-Reply-To:References:List-Id:List-Unsubscribe: List-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:Cc: From; b=hfJWtyIlnwqUpr1oMBNAk1yZfhSfKBc1xm9KLD4Kkc/wNIVM3F1/ZBN4EoSngMnCx 04v5Whmcl3NMgrvOLcuJbg9bqc64bhgJMPyvDGse4/r6Gm1yOjILGKTFQ/tWZYYV5t sEw1aO/izNJajx8mrP7SJbRHATlEoebw6CJu5Wj8= X-Original-To: libc-alpha@sourceware.org Delivered-To: libc-alpha@sourceware.org Received: from esa4.hgst.iphmx.com (esa4.hgst.iphmx.com [216.71.154.42]) by sourceware.org (Postfix) with ESMTPS id 013623857027 for ; Sun, 12 Jul 2020 15:57:09 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org 013623857027 IronPort-SDR: 9/tsQjzjI5A2vPYtea2Qp1SeKGHnFuu/kVMgbF4qv6yb1S11CVKv+64nEcu+JQiH9EMhd5wLaH dPfpZZJ+YVvT9srciWQKjmyRhFV+wXJiJfJQevhGYK6aPdVS4DXRF4GlItgbUhoiG+Xhvd7XTP 9CLGZgvUltOIFZL3wCYl2pAmAGRM1Dr115lzFY9ybBj02f7GrmmBOTCwZzsk2TnWNz394BSmDh QuxL2fCIx1KpdOuxVYlVx/f+7ilBZGBOFyasA2wXWBH3QLzDjk3MbMwL734Z4YWSL+bquKLXKY orA= X-IronPort-AV: E=Sophos;i="5.75,344,1589212800"; d="scan'208";a="142250039" Received: from uls-op-cesaip02.wdc.com (HELO uls-op-cesaep02.wdc.com) ([199.255.45.15]) by ob1.hgst.iphmx.com with ESMTP; 12 Jul 2020 23:57:09 +0800 IronPort-SDR: IZXZUX5KU7e0EgV3TmtkUQP2LrbHoCNWW3FoFODKuJnDaDeN0VXgZdZyJRn6YbjUvhw/a4DOwN Kz8BUK9RZQ0sG7OAgb8+XMQFjK+Wj0v58= Received: from uls-op-cesaip01.wdc.com ([10.248.3.36]) by uls-op-cesaep02.wdc.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 12 Jul 2020 08:45:07 -0700 IronPort-SDR: TZYedAHlfmtf/yhbzSyfrjWsA5mu6lxWJHJ/Ls8vDo2mn3whNmXGWaw8is6c8h5bnWNfm24YPQ 8SRkbmElrYBA== WDCIronportException: Internal Received: from usa002626.ad.shared (HELO risc6-mainframe.hgst.com) ([10.86.57.178]) by uls-op-cesaip01.wdc.com with ESMTP; 12 Jul 2020 08:57:11 -0700 To: libc-alpha@sourceware.org Subject: [PATCH v3 07/19] RISC-V: Add path of library directories for the 32-bit Date: Sun, 12 Jul 2020 08:47:39 -0700 Message-Id: <5cf15612abb2f89e7cf7b76b1546b558751ce261.1594568655.git.alistair.francis@wdc.com> X-Mailer: git-send-email 2.27.0 In-Reply-To: References: MIME-Version: 1.0 X-Spam-Status: No, score=-15.3 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, SPF_HELO_PASS, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on server2.sourceware.org X-BeenThere: libc-alpha@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Libc-alpha mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Patchwork-Original-From: Alistair Francis via Libc-alpha From: Alistair Francis Reply-To: Alistair Francis Cc: alistair.francis@wdc.com Errors-To: libc-alpha-bounces@sourceware.org Sender: "Libc-alpha" With RV32 support the list of possible RISC-V system directories increases to: - /lib64/lp64d - /lib64/lp64 - /lib32/ilp32d - /lib32/ilp32 - /lib (only ld.so) This patch changes the add_system_di () macro to support the new ilp32d and ilp32 directories for RV32. While refactoring this code let's split out the confusing if statements into a loop to make it easier to understand and extend. --- sysdeps/unix/sysv/linux/riscv/dl-cache.h | 39 +++++++++++++++++------- 1 file changed, 28 insertions(+), 11 deletions(-) diff --git a/sysdeps/unix/sysv/linux/riscv/dl-cache.h b/sysdeps/unix/sysv/linux/riscv/dl-cache.h index b3cda4ef9f..7317406036 100644 --- a/sysdeps/unix/sysv/linux/riscv/dl-cache.h +++ b/sysdeps/unix/sysv/linux/riscv/dl-cache.h @@ -30,10 +30,12 @@ ((flags) == _DL_CACHE_DEFAULT_ID) /* If given a path to one of our library directories, adds every library - directory via add_dir (), otherwise just adds the giver directory. On + directory via add_dir (), otherwise just adds the given directory. On RISC-V, libraries can be found in paths ending in: - /lib64/lp64d - /lib64/lp64 + - /lib32/ilp32d + - /lib32/ilp32 - /lib (only ld.so) so this will add all of those paths. @@ -45,25 +47,40 @@ architectures and have that automatically imply /usr/local/lib64/lp64d etc. so that libraries can be found that come from software that does use the ABI-specific directories. */ + #define add_system_dir(dir) \ do \ { \ + static const char* lib_dirs[] = { \ + "/lib64/lp64d", \ + "/lib64/lp64", \ + "/lib32/ilp32d", \ + "/lib32/ilp32", \ + NULL, \ + }; \ size_t len = strlen (dir); \ - char path[len + 9]; \ + char path[len + 10]; \ memcpy (path, dir, len + 1); \ - if (len >= 12 && ! memcmp(path + len - 12, "/lib64/lp64d", 12)) \ - { \ - len -= 8; \ - path[len] = '\0'; \ - } \ - if (len >= 11 && ! memcmp(path + len - 11, "/lib64/lp64", 11)) \ - { \ - len -= 7; \ - path[len] = '\0'; \ + int i = 0; \ + const char* lib_dir = lib_dirs[0]; \ + \ + while (lib_dir != NULL) { \ + size_t dir_len = strlen (lib_dir); \ + if (len >= dir_len && ! memcmp(path + len - dir_len, lib_dir, dir_len)) { \ + len -= dir_len + 4; \ + path[len] = '\0'; \ + break; \ + } \ + i++; \ + lib_dir = lib_dirs[i]; \ } \ add_dir (path); \ if (len >= 4 && ! memcmp(path + len - 4, "/lib", 4)) \ { \ + memcpy (path + len, "32/ilp32d", 10); \ + add_dir (path); \ + memcpy (path + len, "32/ilp32", 9); \ + add_dir (path); \ memcpy (path + len, "64/lp64d", 9); \ add_dir (path); \ memcpy (path + len, "64/lp64", 8); \ From patchwork Sun Jul 12 15:47:42 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alistair Francis X-Patchwork-Id: 40051 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 6F2313851C21; Sun, 12 Jul 2020 15:57:17 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 6F2313851C21 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1594569437; bh=emh0dttWTKuYcTkfzUdLyd0V8jzAxHr38h/m0UT3j+c=; h=To:Subject:Date:In-Reply-To:References:List-Id:List-Unsubscribe: List-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:Cc: From; b=w95Mje+Qb17MSqLGymOibipOdf9UwEcrNe5Oiq0y00UCc1gM/dSBG+F3Xn5NeDGy+ frgYVTY84G1W402Qz9An2Q6xLBqhigMY6Ib9/iGk66rEBqnbvs/umZy95vCCdr5yZM ghOF0yIU367/rhGt/S1vw+6ZJAj/belgnOKi5aNM= X-Original-To: libc-alpha@sourceware.org Delivered-To: libc-alpha@sourceware.org Received: from esa5.hgst.iphmx.com (esa5.hgst.iphmx.com [216.71.153.144]) by sourceware.org (Postfix) with ESMTPS id C7EB6385703D for ; Sun, 12 Jul 2020 15:57:13 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org C7EB6385703D IronPort-SDR: 94/xODjEw5e2+kie/qzMIkRfVKgOQF5rJfK+7GZvhXcEXOIYxGxiYuEY4o7GewpKYpTH4kCc9D 6LgPFf/CMdw/+MmHDHZsiUAZNpByaTEkEQZ6Qsu3mFt9WtYjIBFzmh5E2wG66zu1BQldQoAcCQ ux3H/HxvCk3sspUAhm/Qr2HgRetf69tMMWi5YoXT3RZmwP+qyU4Db9za3TiHHbNPV/hAbw4cIR hQE0q84oCPTRc8xZD+7A0I62qe6po4N9JR10l60S+cBnlY2HlYOjNT5ofl9kEui6dU1dJpob6Q i2s= X-IronPort-AV: E=Sophos;i="5.75,344,1589212800"; d="scan'208";a="142401269" Received: from uls-op-cesaip01.wdc.com (HELO uls-op-cesaep01.wdc.com) ([199.255.45.14]) by ob1.hgst.iphmx.com with ESMTP; 12 Jul 2020 23:57:13 +0800 IronPort-SDR: /Yh7lSppadcRvYYETa3SZtS4jWTKgGQVfnn1QiJuQTAFCWWJ3yT/N9zuWQt5yKAcQuwtEtSuL5 ngzlSyOmY/tFJRHcmtzmoYW57kx8Z5G+0= Received: from uls-op-cesaip02.wdc.com ([10.248.3.37]) by uls-op-cesaep01.wdc.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 12 Jul 2020 08:45:43 -0700 IronPort-SDR: jR/SKngF4AoQgdXgLnP/ZvvR8hfqZvupuGPE11yNu8yrC8ESfTaev0Sbl6pS5eDw09UPVYDlPD hrjESoAwkHDg== WDCIronportException: Internal Received: from usa002626.ad.shared (HELO risc6-mainframe.hgst.com) ([10.86.57.178]) by uls-op-cesaip02.wdc.com with ESMTP; 12 Jul 2020 08:57:12 -0700 To: libc-alpha@sourceware.org Subject: [PATCH v3 08/19] RISC-V: Add arch-syscall.h for RV32 Date: Sun, 12 Jul 2020 08:47:42 -0700 Message-Id: <91b020b4e43f478c971eafcf2ebb7e81a82fc313.1594568655.git.alistair.francis@wdc.com> X-Mailer: git-send-email 2.27.0 In-Reply-To: References: MIME-Version: 1.0 X-Spam-Status: No, score=-14.6 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, KAM_NUMSUBJECT, SPF_HELO_PASS, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on server2.sourceware.org X-BeenThere: libc-alpha@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Libc-alpha mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Patchwork-Original-From: Alistair Francis via Libc-alpha From: Alistair Francis Reply-To: Alistair Francis Cc: alistair.francis@wdc.com Errors-To: libc-alpha-bounces@sourceware.org Sender: "Libc-alpha" Reviewed-by: Maciej W. Rozycki --- .../unix/sysv/linux/riscv/rv32/arch-syscall.h | 283 ++++++++++++++++++ 1 file changed, 283 insertions(+) create mode 100644 sysdeps/unix/sysv/linux/riscv/rv32/arch-syscall.h diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/arch-syscall.h b/sysdeps/unix/sysv/linux/riscv/rv32/arch-syscall.h new file mode 100644 index 0000000000..9f9a2d5912 --- /dev/null +++ b/sysdeps/unix/sysv/linux/riscv/rv32/arch-syscall.h @@ -0,0 +1,283 @@ +/* AUTOGENERATED by update-syscall-lists.py. */ +#define __NR_accept 202 +#define __NR_accept4 242 +#define __NR_acct 89 +#define __NR_add_key 217 +#define __NR_bind 200 +#define __NR_bpf 280 +#define __NR_brk 214 +#define __NR_capget 90 +#define __NR_capset 91 +#define __NR_chdir 49 +#define __NR_chroot 51 +#define __NR_clock_adjtime64 405 +#define __NR_clock_getres_time64 406 +#define __NR_clock_gettime64 403 +#define __NR_clock_nanosleep_time64 407 +#define __NR_clock_settime64 404 +#define __NR_clone 220 +#define __NR_close 57 +#define __NR_connect 203 +#define __NR_copy_file_range 285 +#define __NR_delete_module 106 +#define __NR_dup 23 +#define __NR_dup3 24 +#define __NR_epoll_create1 20 +#define __NR_epoll_ctl 21 +#define __NR_epoll_pwait 22 +#define __NR_eventfd2 19 +#define __NR_execve 221 +#define __NR_execveat 281 +#define __NR_exit 93 +#define __NR_exit_group 94 +#define __NR_faccessat 48 +#define __NR_fadvise64_64 223 +#define __NR_fallocate 47 +#define __NR_fanotify_init 262 +#define __NR_fanotify_mark 263 +#define __NR_fchdir 50 +#define __NR_fchmod 52 +#define __NR_fchmodat 53 +#define __NR_fchown 55 +#define __NR_fchownat 54 +#define __NR_fcntl64 25 +#define __NR_fdatasync 83 +#define __NR_fgetxattr 10 +#define __NR_finit_module 273 +#define __NR_flistxattr 13 +#define __NR_flock 32 +#define __NR_fremovexattr 16 +#define __NR_fsconfig 431 +#define __NR_fsetxattr 7 +#define __NR_fsmount 432 +#define __NR_fsopen 430 +#define __NR_fspick 433 +#define __NR_fstatfs64 44 +#define __NR_fsync 82 +#define __NR_ftruncate64 46 +#define __NR_futex_time64 422 +#define __NR_get_mempolicy 236 +#define __NR_get_robust_list 100 +#define __NR_getcpu 168 +#define __NR_getcwd 17 +#define __NR_getdents64 61 +#define __NR_getegid 177 +#define __NR_geteuid 175 +#define __NR_getgid 176 +#define __NR_getgroups 158 +#define __NR_getitimer 102 +#define __NR_getpeername 205 +#define __NR_getpgid 155 +#define __NR_getpid 172 +#define __NR_getppid 173 +#define __NR_getpriority 141 +#define __NR_getrandom 278 +#define __NR_getresgid 150 +#define __NR_getresuid 148 +#define __NR_getrusage 165 +#define __NR_getsid 156 +#define __NR_getsockname 204 +#define __NR_getsockopt 209 +#define __NR_gettid 178 +#define __NR_getuid 174 +#define __NR_getxattr 8 +#define __NR_init_module 105 +#define __NR_inotify_add_watch 27 +#define __NR_inotify_init1 26 +#define __NR_inotify_rm_watch 28 +#define __NR_io_cancel 3 +#define __NR_io_destroy 1 +#define __NR_io_pgetevents_time64 416 +#define __NR_io_setup 0 +#define __NR_io_submit 2 +#define __NR_io_uring_enter 426 +#define __NR_io_uring_register 427 +#define __NR_io_uring_setup 425 +#define __NR_ioctl 29 +#define __NR_ioprio_get 31 +#define __NR_ioprio_set 30 +#define __NR_kcmp 272 +#define __NR_kexec_file_load 294 +#define __NR_kexec_load 104 +#define __NR_keyctl 219 +#define __NR_kill 129 +#define __NR_lgetxattr 9 +#define __NR_linkat 37 +#define __NR_listen 201 +#define __NR_listxattr 11 +#define __NR_llistxattr 12 +#define __NR_llseek 62 +#define __NR_lookup_dcookie 18 +#define __NR_lremovexattr 15 +#define __NR_lsetxattr 6 +#define __NR_madvise 233 +#define __NR_mbind 235 +#define __NR_membarrier 283 +#define __NR_memfd_create 279 +#define __NR_migrate_pages 238 +#define __NR_mincore 232 +#define __NR_mkdirat 34 +#define __NR_mknodat 33 +#define __NR_mlock 228 +#define __NR_mlock2 284 +#define __NR_mlockall 230 +#define __NR_mmap2 222 +#define __NR_mount 40 +#define __NR_move_mount 429 +#define __NR_move_pages 239 +#define __NR_mprotect 226 +#define __NR_mq_getsetattr 185 +#define __NR_mq_notify 184 +#define __NR_mq_open 180 +#define __NR_mq_timedreceive_time64 419 +#define __NR_mq_timedsend_time64 418 +#define __NR_mq_unlink 181 +#define __NR_mremap 216 +#define __NR_msgctl 187 +#define __NR_msgget 186 +#define __NR_msgrcv 188 +#define __NR_msgsnd 189 +#define __NR_msync 227 +#define __NR_munlock 229 +#define __NR_munlockall 231 +#define __NR_munmap 215 +#define __NR_name_to_handle_at 264 +#define __NR_nfsservctl 42 +#define __NR_open_by_handle_at 265 +#define __NR_open_tree 428 +#define __NR_openat 56 +#define __NR_openat2 437 +#define __NR_perf_event_open 241 +#define __NR_personality 92 +#define __NR_pidfd_getfd 438 +#define __NR_pidfd_open 434 +#define __NR_pidfd_send_signal 424 +#define __NR_pipe2 59 +#define __NR_pivot_root 41 +#define __NR_pkey_alloc 289 +#define __NR_pkey_free 290 +#define __NR_pkey_mprotect 288 +#define __NR_ppoll_time64 414 +#define __NR_prctl 167 +#define __NR_pread64 67 +#define __NR_preadv 69 +#define __NR_preadv2 286 +#define __NR_prlimit64 261 +#define __NR_process_vm_readv 270 +#define __NR_process_vm_writev 271 +#define __NR_pselect6_time64 413 +#define __NR_ptrace 117 +#define __NR_pwrite64 68 +#define __NR_pwritev 70 +#define __NR_pwritev2 287 +#define __NR_quotactl 60 +#define __NR_read 63 +#define __NR_readahead 213 +#define __NR_readlinkat 78 +#define __NR_readv 65 +#define __NR_reboot 142 +#define __NR_recvfrom 207 +#define __NR_recvmmsg_time64 417 +#define __NR_recvmsg 212 +#define __NR_remap_file_pages 234 +#define __NR_removexattr 14 +#define __NR_renameat2 276 +#define __NR_request_key 218 +#define __NR_restart_syscall 128 +#define __NR_riscv_flush_icache 259 +#define __NR_rseq 293 +#define __NR_rt_sigaction 134 +#define __NR_rt_sigpending 136 +#define __NR_rt_sigprocmask 135 +#define __NR_rt_sigqueueinfo 138 +#define __NR_rt_sigreturn 139 +#define __NR_rt_sigsuspend 133 +#define __NR_rt_sigtimedwait_time64 421 +#define __NR_rt_tgsigqueueinfo 240 +#define __NR_sched_get_priority_max 125 +#define __NR_sched_get_priority_min 126 +#define __NR_sched_getaffinity 123 +#define __NR_sched_getattr 275 +#define __NR_sched_getparam 121 +#define __NR_sched_getscheduler 120 +#define __NR_sched_rr_get_interval_time64 423 +#define __NR_sched_setaffinity 122 +#define __NR_sched_setattr 274 +#define __NR_sched_setparam 118 +#define __NR_sched_setscheduler 119 +#define __NR_sched_yield 124 +#define __NR_seccomp 277 +#define __NR_semctl 191 +#define __NR_semget 190 +#define __NR_semop 193 +#define __NR_semtimedop_time64 420 +#define __NR_sendfile64 71 +#define __NR_sendmmsg 269 +#define __NR_sendmsg 211 +#define __NR_sendto 206 +#define __NR_set_mempolicy 237 +#define __NR_set_robust_list 99 +#define __NR_set_tid_address 96 +#define __NR_setdomainname 162 +#define __NR_setfsgid 152 +#define __NR_setfsuid 151 +#define __NR_setgid 144 +#define __NR_setgroups 159 +#define __NR_sethostname 161 +#define __NR_setitimer 103 +#define __NR_setns 268 +#define __NR_setpgid 154 +#define __NR_setpriority 140 +#define __NR_setregid 143 +#define __NR_setresgid 149 +#define __NR_setresuid 147 +#define __NR_setreuid 145 +#define __NR_setsid 157 +#define __NR_setsockopt 208 +#define __NR_setuid 146 +#define __NR_setxattr 5 +#define __NR_shmat 196 +#define __NR_shmctl 195 +#define __NR_shmdt 197 +#define __NR_shmget 194 +#define __NR_shutdown 210 +#define __NR_sigaltstack 132 +#define __NR_signalfd4 74 +#define __NR_socket 198 +#define __NR_socketpair 199 +#define __NR_splice 76 +#define __NR_statfs64 43 +#define __NR_statx 291 +#define __NR_swapoff 225 +#define __NR_swapon 224 +#define __NR_symlinkat 36 +#define __NR_sync 81 +#define __NR_sync_file_range 84 +#define __NR_syncfs 267 +#define __NR_sysinfo 179 +#define __NR_syslog 116 +#define __NR_tee 77 +#define __NR_tgkill 131 +#define __NR_timer_create 107 +#define __NR_timer_delete 111 +#define __NR_timer_getoverrun 109 +#define __NR_timer_gettime64 408 +#define __NR_timer_settime64 409 +#define __NR_timerfd_create 85 +#define __NR_timerfd_gettime64 410 +#define __NR_timerfd_settime64 411 +#define __NR_times 153 +#define __NR_tkill 130 +#define __NR_truncate64 45 +#define __NR_umask 166 +#define __NR_umount2 39 +#define __NR_uname 160 +#define __NR_unlinkat 35 +#define __NR_unshare 97 +#define __NR_userfaultfd 282 +#define __NR_utimensat_time64 412 +#define __NR_vhangup 58 +#define __NR_vmsplice 75 +#define __NR_waitid 95 +#define __NR_write 64 +#define __NR_writev 66 From patchwork Sun Jul 12 15:47:44 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alistair Francis X-Patchwork-Id: 40053 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 268953851C36; Sun, 12 Jul 2020 15:57:19 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 268953851C36 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1594569439; bh=rdR3i1uvc+HTWMbFqvmfVqChEbOjI6alSKJbaF3Lg1Y=; h=To:Subject:Date:In-Reply-To:References:List-Id:List-Unsubscribe: List-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:Cc: From; b=yEMN8CPRKuXRDUUAPKQlYEcXiTIRFuWY9Nn9Jz5TmyTMluJHpaRAKrjDA8L840/Ro FB2WSZwX7ZLQqzrLSw8ZjYL9zkoqEW6fC1sbbQ6xkRnPUGWiPhy1NS5xFaoZszuRTF rAhc1azAFo9CBeOfAh6MekwE+K0aaqFB2o1GLENM= X-Original-To: libc-alpha@sourceware.org Delivered-To: libc-alpha@sourceware.org Received: from esa5.hgst.iphmx.com (esa5.hgst.iphmx.com [216.71.153.144]) by sourceware.org (Postfix) with ESMTPS id E85C83857027 for ; Sun, 12 Jul 2020 15:57:15 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org E85C83857027 IronPort-SDR: aohTiy4PDc95qwSuyQXAb1gna4lkXhD1T8kqmn51zqozJtM+rvVhxKE3PjG0U5f5VujOh5Bwbu UWFPhKoQaCYNKGIBFLKiMctNer0tmWqyoZHDMdk1I/aL9GpFBpU5SCgJSCIluYyrWfdwAk37ip 7Q3WepS3uwqA3jufqWVI4x6m3mNm2TFyG9VhFtsCJOIKZgPJ5SfM6mO10Wq7vm2FYA4AFINT2Z TW4zEKUw+/MZCoUQ2kfveMSdoh2tlDPxw090Zj8AjNrPHEFf3+cllpeMsHQnrijDHigc82Pi03 jJU= X-IronPort-AV: E=Sophos;i="5.75,344,1589212800"; d="scan'208";a="142401271" Received: from uls-op-cesaip01.wdc.com (HELO uls-op-cesaep01.wdc.com) ([199.255.45.14]) by ob1.hgst.iphmx.com with ESMTP; 12 Jul 2020 23:57:15 +0800 IronPort-SDR: SFOVWeO11tPeAqVzo1v/9SRNSdytNKk9vd4rRFOqB6+cCitel7Xnv0GG6DuCnjGL4lHJWxbFee W8y+HNpbyC6GXi/dZn4NGlFtlivrTLAdM= Received: from uls-op-cesaip02.wdc.com ([10.248.3.37]) by uls-op-cesaep01.wdc.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 12 Jul 2020 08:45:46 -0700 IronPort-SDR: r2cnfE9/dvmwHtq4TJ9xe1s3rT8n6dQTOYyTF6R8zoYSXNkRrdiAs6mM6JuIu0YBk6qqupYgRm RSFRtjyRZDUg== WDCIronportException: Internal Received: from usa002626.ad.shared (HELO risc6-mainframe.hgst.com) ([10.86.57.178]) by uls-op-cesaip02.wdc.com with ESMTP; 12 Jul 2020 08:57:15 -0700 To: libc-alpha@sourceware.org Subject: [PATCH v3 09/19] RISC-V: nptl: update default pthread-offsets.h Date: Sun, 12 Jul 2020 08:47:44 -0700 Message-Id: <6721223c2ff1b6facd61cb415507f29c6c8d7357.1594568655.git.alistair.francis@wdc.com> X-Mailer: git-send-email 2.27.0 In-Reply-To: References: MIME-Version: 1.0 X-Spam-Status: No, score=-14.8 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, SPF_HELO_PASS, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on server2.sourceware.org X-BeenThere: libc-alpha@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Libc-alpha mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Patchwork-Original-From: Alistair Francis via Libc-alpha From: Alistair Francis Reply-To: Alistair Francis Cc: alistair.francis@wdc.com Errors-To: libc-alpha-bounces@sourceware.org Sender: "Libc-alpha" Update the RISC-V pthread-offsets.h values to support RV32. --- sysdeps/riscv/nptl/pthread-offsets.h | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/sysdeps/riscv/nptl/pthread-offsets.h b/sysdeps/riscv/nptl/pthread-offsets.h index 31f0587bec..a85c752a1f 100644 --- a/sysdeps/riscv/nptl/pthread-offsets.h +++ b/sysdeps/riscv/nptl/pthread-offsets.h @@ -1,3 +1,12 @@ -#define __PTHREAD_MUTEX_KIND_OFFSET 16 +#if __WORDSIZE == 64 +# define __PTHREAD_MUTEX_KIND_OFFSET 16 +#else +# define __PTHREAD_MUTEX_KIND_OFFSET 12 +#endif -#define __PTHREAD_RWLOCK_FLAGS_OFFSET 48 + +#if __WORDSIZE == 64 +# define __PTHREAD_RWLOCK_FLAGS_OFFSET 48 +#else +# define __PTHREAD_RWLOCK_FLAGS_OFFSET 24 +#endif From patchwork Sun Jul 12 15:47:47 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alistair Francis X-Patchwork-Id: 40054 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id AABDA3851C17; Sun, 12 Jul 2020 15:57:22 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org AABDA3851C17 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1594569442; bh=Y9fGqB7mPXIS/zFCyTJvkyl1J93YF81TGPipFb8i90Q=; h=To:Subject:Date:In-Reply-To:References:List-Id:List-Unsubscribe: List-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:Cc: From; b=EEJ3e37agyVsoSyprSXSH9tbpirNKuwE3QrFXwW3JN5wRT3xgz87gYMc3IjYGn+0T rGtMj0vs/bJW7SoJkQUWn9C7RNdpMrpuHx/d6as7Emha0mnTgQ2LXlOUEowZr83lSr vHfPOOrpjyKF5znMfA8GXWks5IjBWvXRerUsI/Ag= X-Original-To: libc-alpha@sourceware.org Delivered-To: libc-alpha@sourceware.org Received: from esa5.hgst.iphmx.com (esa5.hgst.iphmx.com [216.71.153.144]) by sourceware.org (Postfix) with ESMTPS id DB2A23851C2F for ; Sun, 12 Jul 2020 15:57:18 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org DB2A23851C2F IronPort-SDR: TQv0QCEiTHUk/QyDphd/NUk8DcD6N4VU8xe3GMXrm6FuWy3mKBp2KSj5LYn5qPH5Du2eyOz68X WbYB9wPjkbJV2NQ0v97slK3ReHXtD7qaiwiW5ulB/3un8Hj57BjftteOjxOkrC9ZnOOs4snzgx /yzaJHhVdSfZXIPRUJn+lwXU4P9iM9CDXRpU/hssflT920U4WY4+N2nmxAsrrx+kC3BTGraTul lNrixnyRlMBVQmRAVk9zgfT2ShUf/sQp0QGSGCXqAyp60+xDr0CFgAV4ignNcZyGYuIiSw4OA3 B7Q= X-IronPort-AV: E=Sophos;i="5.75,344,1589212800"; d="scan'208";a="142401274" Received: from uls-op-cesaip01.wdc.com (HELO uls-op-cesaep01.wdc.com) ([199.255.45.14]) by ob1.hgst.iphmx.com with ESMTP; 12 Jul 2020 23:57:18 +0800 IronPort-SDR: 09oUyqX2FgDEcPsp44MVhKv7HEFhPUexXsP81AndS9DbM/hraChuAOn31EL7Y1LP65vC/2u77o /bbA5ElJauNHkOZKwVx8srX/jpxrszOus= Received: from uls-op-cesaip02.wdc.com ([10.248.3.37]) by uls-op-cesaep01.wdc.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 12 Jul 2020 08:45:48 -0700 IronPort-SDR: 6hHunAn4X9MDHDkc0YB3p/YIEAjmmtIz9yYs92Tv58pLmldjYtXhbiQmfVFbrdP0t9XYYhF0jv /E0SFtlaCM8Q== WDCIronportException: Internal Received: from usa002626.ad.shared (HELO risc6-mainframe.hgst.com) ([10.86.57.178]) by uls-op-cesaip02.wdc.com with ESMTP; 12 Jul 2020 08:57:17 -0700 To: libc-alpha@sourceware.org Subject: [PATCH v3 10/19] RISC-V: Support the 32-bit ABI implementation Date: Sun, 12 Jul 2020 08:47:47 -0700 Message-Id: X-Mailer: git-send-email 2.27.0 In-Reply-To: References: MIME-Version: 1.0 X-Spam-Status: No, score=-14.8 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, KAM_SHORT, SPF_HELO_PASS, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on server2.sourceware.org X-BeenThere: libc-alpha@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Libc-alpha mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Patchwork-Original-From: Alistair Francis via Libc-alpha From: Alistair Francis Reply-To: Alistair Francis Cc: alistair.francis@wdc.com Errors-To: libc-alpha-bounces@sourceware.org Sender: "Libc-alpha" From: Zong Li This patch adds the ABI implementation for 32-bit RISC-V. It contains the Linux-specific and RISC-V architecture code. --- sysdeps/riscv/bits/wordsize.h | 9 ++-- sysdeps/riscv/nptl/bits/pthreadtypes-arch.h | 18 ++++--- sysdeps/riscv/nptl/bits/struct_rwlock.h | 27 +++++++++- sysdeps/riscv/sfp-machine.h | 27 +++++++++- sysdeps/riscv/sys/asm.h | 5 +- .../unix/sysv/linux/riscv/jmp_buf-macros.h | 53 +++++++++++++++++++ 6 files changed, 124 insertions(+), 15 deletions(-) create mode 100644 sysdeps/unix/sysv/linux/riscv/jmp_buf-macros.h diff --git a/sysdeps/riscv/bits/wordsize.h b/sysdeps/riscv/bits/wordsize.h index faccc71828..6e6677effe 100644 --- a/sysdeps/riscv/bits/wordsize.h +++ b/sysdeps/riscv/bits/wordsize.h @@ -22,8 +22,9 @@ # error unsupported ABI #endif -#if __riscv_xlen == 64 -# define __WORDSIZE_TIME64_COMPAT32 1 -#else -# error "rv32i-based targets are not supported" +#define __WORDSIZE_TIME64_COMPAT32 1 + +#if __WORDSIZE == 32 +# define __WORDSIZE32_SIZE_ULONG 0 +# define __WORDSIZE32_PTRDIFF_LONG 0 #endif diff --git a/sysdeps/riscv/nptl/bits/pthreadtypes-arch.h b/sysdeps/riscv/nptl/bits/pthreadtypes-arch.h index c3c72d6c10..d03f2bfe5c 100644 --- a/sysdeps/riscv/nptl/bits/pthreadtypes-arch.h +++ b/sysdeps/riscv/nptl/bits/pthreadtypes-arch.h @@ -21,18 +21,22 @@ #include -#if __riscv_xlen == 64 +#define __SIZEOF_PTHREAD_MUTEXATTR_T 4 +#define __SIZEOF_PTHREAD_COND_T 48 +#define __SIZEOF_PTHREAD_CONDATTR_T 4 +#define __SIZEOF_PTHREAD_RWLOCKATTR_T 8 +#define __SIZEOF_PTHREAD_BARRIERATTR_T 4 + +#if __WORDSIZE == 64 # define __SIZEOF_PTHREAD_ATTR_T 56 # define __SIZEOF_PTHREAD_MUTEX_T 40 -# define __SIZEOF_PTHREAD_MUTEXATTR_T 4 -# define __SIZEOF_PTHREAD_COND_T 48 -# define __SIZEOF_PTHREAD_CONDATTR_T 4 # define __SIZEOF_PTHREAD_RWLOCK_T 56 -# define __SIZEOF_PTHREAD_RWLOCKATTR_T 8 # define __SIZEOF_PTHREAD_BARRIER_T 32 -# define __SIZEOF_PTHREAD_BARRIERATTR_T 4 #else -# error "rv32i-based systems are not supported" +# define __SIZEOF_PTHREAD_ATTR_T 32 +# define __SIZEOF_PTHREAD_MUTEX_T 32 +# define __SIZEOF_PTHREAD_RWLOCK_T 48 +# define __SIZEOF_PTHREAD_BARRIER_T 20 #endif #define __LOCK_ALIGNMENT diff --git a/sysdeps/riscv/nptl/bits/struct_rwlock.h b/sysdeps/riscv/nptl/bits/struct_rwlock.h index acfaa75e1b..dc467d42c7 100644 --- a/sysdeps/riscv/nptl/bits/struct_rwlock.h +++ b/sysdeps/riscv/nptl/bits/struct_rwlock.h @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #ifndef _RWLOCK_INTERNAL_H #define _RWLOCK_INTERNAL_H @@ -32,14 +32,37 @@ 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; unsigned long int __pad2; unsigned int __flags; +#else +# if __BYTE_ORDER == __BIG_ENDIAN + unsigned char __pad1; + unsigned char __pad2; + unsigned char __shared; + unsigned char __flags; +# else + unsigned char __flags; + unsigned char __shared; + unsigned char __pad1; + unsigned char __pad2; +# endif + int __cur_writer; +#endif }; -#define __PTHREAD_RWLOCK_INITIALIZER(__flags) \ +#if __WORDSIZE == 64 +# define __PTHREAD_RWLOCK_INITIALIZER(__flags) \ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, __flags +#elif __BYTE_ORDER == __BIG_ENDIAN +# define __PTHREAD_RWLOCK_INITIALIZER(__flags) \ + 0, 0, 0, 0, 0, 0, 0, 0, 0, __flags, 0 +#else +# define __PTHREAD_RWLOCK_INITIALIZER(__flags) \ + 0, 0, 0, 0, 0, 0, __flags, 0, 0, 0, 0 +#endif #endif diff --git a/sysdeps/riscv/sfp-machine.h b/sysdeps/riscv/sfp-machine.h index 08a84fd701..bbeb9b37cf 100644 --- a/sysdeps/riscv/sfp-machine.h +++ b/sysdeps/riscv/sfp-machine.h @@ -22,7 +22,32 @@ #if __riscv_xlen == 32 -# error "rv32i-based targets are not supported" +# define _FP_W_TYPE_SIZE 32 +# define _FP_W_TYPE unsigned long +# define _FP_WS_TYPE signed long +# define _FP_I_TYPE long + +# define _FP_MUL_MEAT_S(R, X, Y) \ + _FP_MUL_MEAT_1_wide (_FP_WFRACBITS_S, R, X, Y, umul_ppmm) +# define _FP_MUL_MEAT_D(R, X, Y) \ + _FP_MUL_MEAT_2_wide (_FP_WFRACBITS_D, R, X, Y, umul_ppmm) +# define _FP_MUL_MEAT_Q(R, X, Y) \ + _FP_MUL_MEAT_4_wide (_FP_WFRACBITS_Q, R, X, Y, umul_ppmm) + +# define _FP_MUL_MEAT_DW_S(R, X, Y) \ + _FP_MUL_MEAT_DW_1_wide (_FP_WFRACBITS_S, R, X, Y, umul_ppmm) +# define _FP_MUL_MEAT_DW_D(R, X, Y) \ + _FP_MUL_MEAT_DW_2_wide (_FP_WFRACBITS_D, R, X, Y, umul_ppmm) +# define _FP_MUL_MEAT_DW_Q(R, X, Y) \ + _FP_MUL_MEAT_DW_4_wide (_FP_WFRACBITS_Q, R, X, Y, umul_ppmm) + +# define _FP_DIV_MEAT_S(R, X, Y) _FP_DIV_MEAT_1_udiv_norm (S, R, X, Y) +# define _FP_DIV_MEAT_D(R, X, Y) _FP_DIV_MEAT_2_udiv (D, R, X, Y) +# define _FP_DIV_MEAT_Q(R, X, Y) _FP_DIV_MEAT_4_udiv (Q, R, X, Y) + +# define _FP_NANFRAC_S _FP_QNANBIT_S +# define _FP_NANFRAC_D _FP_QNANBIT_D, 0 +# define _FP_NANFRAC_Q _FP_QNANBIT_Q, 0, 0, 0 #else diff --git a/sysdeps/riscv/sys/asm.h b/sysdeps/riscv/sys/asm.h index bd2de17e17..e314133ce4 100644 --- a/sysdeps/riscv/sys/asm.h +++ b/sysdeps/riscv/sys/asm.h @@ -26,7 +26,10 @@ # define REG_S sd # define REG_L ld #elif __riscv_xlen == 32 -# error "rv32i-based targets are not supported" +# define PTRLOG 2 +# define SZREG 4 +# define REG_S sw +# define REG_L lw #else # error __riscv_xlen must equal 32 or 64 #endif diff --git a/sysdeps/unix/sysv/linux/riscv/jmp_buf-macros.h b/sysdeps/unix/sysv/linux/riscv/jmp_buf-macros.h new file mode 100644 index 0000000000..73c7ade9c7 --- /dev/null +++ b/sysdeps/unix/sysv/linux/riscv/jmp_buf-macros.h @@ -0,0 +1,53 @@ +/* The jump buffer constants for RISC-V. + Copyright (C) 2020 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 + . */ + +/* Produced by this program: + + #include + #include + #include + #include + + int main (int argc, char **argv) + { + printf ("#define JMP_BUF_SIZE %d\n", sizeof (jmp_buf)); + printf ("#define JMP_BUF_ALIGN %d\n", __alignof__ (jmp_buf)); + printf ("#define SIGJMP_BUF_SIZE %d\n", sizeof (sigjmp_buf)); + printf ("#define SIGJMP_BUF_ALIGN %d\n", __alignof__ (sigjmp_buf)); + printf ("#define MASK_WAS_SAVED_OFFSET %d\n", offsetof (struct __jmp_buf_tag, __mask_was_saved)); + printf ("#define SAVED_MASK_OFFSET %d\n", offsetof (struct __jmp_buf_tag, __saved_mask)); + } */ + +#if defined __riscv_float_abi_soft +# define JMP_BUF_SIZE 188 +# define JMP_BUF_ALIGN 4 +# define SIGJMP_BUF_SIZE 188 +# define SIGJMP_BUF_ALIGN 4 +# define MASK_WAS_SAVED_OFFSET 56 +# define SAVED_MASK_OFFSET 60 +#elif defined __riscv_float_abi_double +# define JMP_BUF_SIZE 288 +# define JMP_BUF_ALIGN 8 +# define SIGJMP_BUF_SIZE 288 +# define SIGJMP_BUF_ALIGN 8 +# define MASK_WAS_SAVED_OFFSET 152 +# define SAVED_MASK_OFFSET 156 +#else +# error "Unknown RISC-V floating-point ABI" +#endif From patchwork Sun Jul 12 15:47:49 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alistair Francis X-Patchwork-Id: 40055 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 3CE353851C3D; Sun, 12 Jul 2020 15:57:24 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 3CE353851C3D DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1594569444; bh=eFY4P+fgHkvZDjKjP0lKR5iW1MNB3/TZRzlqpZWhyjc=; h=To:Subject:Date:In-Reply-To:References:List-Id:List-Unsubscribe: List-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:Cc: From; b=dXEXQaWaFZDTOxZNC4SdfRXhwraJMWjiFtucSXVMy5OqKoRGUkw+PyIoB+XULoDFy cnfCyQporrw2nDugC7/Kdiim6tNt/kNO4QPlwTKSzZp/TXv96ejCzLAaFA0IeFVz6B Zh1LF/wQDBZxrFlXwuRjEtddrpXb1bHMm7OzAWb4= X-Original-To: libc-alpha@sourceware.org Delivered-To: libc-alpha@sourceware.org Received: from esa5.hgst.iphmx.com (esa5.hgst.iphmx.com [216.71.153.144]) by sourceware.org (Postfix) with ESMTPS id 0CE873857027 for ; Sun, 12 Jul 2020 15:57:20 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org 0CE873857027 IronPort-SDR: WMMrJVIWfJBm676HkN6SCbi8obq84KPbET5l395YO717e/zNRM2zpyPm3YEbNHnsyEeBfZ8322 N2yQBLt3bZxbSvlBjNgP7gVkXlpbD4CCZARweQBiE1p1BqKWmVLe/uBWyB93XPgzhgkbP1Mr4z q2ZhBGgogWrldXkcOn7SvbM0V8/qonkK9DZH57kyFnZFx+u0ZPR5hvIrsvT6K+Udbce7WDz1aX 2T62ussANNKXcFQgmTnLcceNzyhpP35sZA/wkXh4ym4eSNa4AzNl4rXohgdk8MJGsB7LD6JkS/ YJM= X-IronPort-AV: E=Sophos;i="5.75,344,1589212800"; d="scan'208";a="142401276" Received: from uls-op-cesaip01.wdc.com (HELO uls-op-cesaep01.wdc.com) ([199.255.45.14]) by ob1.hgst.iphmx.com with ESMTP; 12 Jul 2020 23:57:21 +0800 IronPort-SDR: EMxoqXv1rsocS5L1+K2PadPSETxoO7mYzopUPR49UMGle1eUmu615liuIuDOP4XbGal/2iRdFE vm+V6XU9fE87Gnwk0alZgvr1UTKA77SjE= Received: from uls-op-cesaip02.wdc.com ([10.248.3.37]) by uls-op-cesaep01.wdc.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 12 Jul 2020 08:45:51 -0700 IronPort-SDR: 1Wlcq42Hh0PIcl59pFG4eXzbWLvxtoKSwbaHzXxxcsQPGXy3kRa6mwiMEhZPkQKmLl+HcRezAS I8jHQkEwRJ0Q== WDCIronportException: Internal Received: from usa002626.ad.shared (HELO risc6-mainframe.hgst.com) ([10.86.57.178]) by uls-op-cesaip02.wdc.com with ESMTP; 12 Jul 2020 08:57:20 -0700 To: libc-alpha@sourceware.org Subject: [PATCH v3 11/19] RISC-V: Hard float support for 32-bit Date: Sun, 12 Jul 2020 08:47:49 -0700 Message-Id: <55e8f6583006bf80653190c3f0f56979f15facfc.1594568655.git.alistair.francis@wdc.com> X-Mailer: git-send-email 2.27.0 In-Reply-To: References: MIME-Version: 1.0 X-Spam-Status: No, score=-14.7 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, KAM_SHORT, SPF_HELO_PASS, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on server2.sourceware.org X-BeenThere: libc-alpha@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Libc-alpha mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Patchwork-Original-From: Alistair Francis via Libc-alpha From: Alistair Francis Reply-To: Alistair Francis Cc: alistair.francis@wdc.com Errors-To: libc-alpha-bounces@sourceware.org Sender: "Libc-alpha" From: Zong Li This patch contains hardware floating-point support for the RV32IF and RV32IFD. --- sysdeps/riscv/rv32/rvd/s_lrint.c | 31 ++++++++++++++++++++++++++++++ sysdeps/riscv/rv32/rvd/s_lround.c | 31 ++++++++++++++++++++++++++++++ sysdeps/riscv/rv32/rvf/s_lrintf.c | 31 ++++++++++++++++++++++++++++++ sysdeps/riscv/rv32/rvf/s_lroundf.c | 31 ++++++++++++++++++++++++++++++ 4 files changed, 124 insertions(+) create mode 100644 sysdeps/riscv/rv32/rvd/s_lrint.c create mode 100644 sysdeps/riscv/rv32/rvd/s_lround.c create mode 100644 sysdeps/riscv/rv32/rvf/s_lrintf.c create mode 100644 sysdeps/riscv/rv32/rvf/s_lroundf.c diff --git a/sysdeps/riscv/rv32/rvd/s_lrint.c b/sysdeps/riscv/rv32/rvd/s_lrint.c new file mode 100644 index 0000000000..bdec792f18 --- /dev/null +++ b/sysdeps/riscv/rv32/rvd/s_lrint.c @@ -0,0 +1,31 @@ +/* lrint(). The 32-bit RISC-V (RV32) version. + Copyright (C) 2020 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 + +long int +__lrint (double x) +{ + int32_t res; + asm ("fcvt.w.d %0, %1" : "=r" (res) : "f" (x)); + return res; +} + +libm_alias_double (__lrint, lrint) diff --git a/sysdeps/riscv/rv32/rvd/s_lround.c b/sysdeps/riscv/rv32/rvd/s_lround.c new file mode 100644 index 0000000000..51cb020e48 --- /dev/null +++ b/sysdeps/riscv/rv32/rvd/s_lround.c @@ -0,0 +1,31 @@ +/* lround(). RISC-V version. + Copyright (C) 2020 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 + +long int +__lround (double x) +{ + int32_t res; + asm ("fcvt.w.d %0, %1, rmm" : "=r" (res) : "f" (x)); + return res; +} + +libm_alias_double (__lround, lround) diff --git a/sysdeps/riscv/rv32/rvf/s_lrintf.c b/sysdeps/riscv/rv32/rvf/s_lrintf.c new file mode 100644 index 0000000000..e9aee00cab --- /dev/null +++ b/sysdeps/riscv/rv32/rvf/s_lrintf.c @@ -0,0 +1,31 @@ +/* lrintf(). RISC-V version. + Copyright (C) 2020 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 + +long int +__lrintf (float x) +{ + int32_t res; + asm ("fcvt.w.s %0, %1" : "=r" (res) : "f" (x)); + return res; +} + +libm_alias_float (__lrint, lrint) diff --git a/sysdeps/riscv/rv32/rvf/s_lroundf.c b/sysdeps/riscv/rv32/rvf/s_lroundf.c new file mode 100644 index 0000000000..3b5ca73a5e --- /dev/null +++ b/sysdeps/riscv/rv32/rvf/s_lroundf.c @@ -0,0 +1,31 @@ +/* lroundf(). RISC-V version. + Copyright (C) 2020 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 + +long int +__lroundf (float x) +{ + int32_t res; + asm ("fcvt.w.s %0, %1, rmm" : "=r" (res) : "f" (x)); + return res; +} + +libm_alias_float (__lround, lround) From patchwork Sun Jul 12 15:47:52 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alistair Francis X-Patchwork-Id: 40058 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 640423851C3B; Sun, 12 Jul 2020 15:57:34 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 640423851C3B DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1594569454; bh=uhx7xmvn6ohWsm0h9bfJJkMmyBKw4maM0hFX6kYTNP0=; h=To:Subject:Date:In-Reply-To:References:List-Id:List-Unsubscribe: List-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:Cc: From; b=FHJCsQ84nuQbOEcuAeS7yQR0B+uF1iapajVLyw6bo3gtS5V5GO4z1EzJpbggXpTdg GxOiUZss07DF3yaSNqJkcJrAYV9rmCRFv8VVwfExko+JqaXVZrlP/bUW8S9SCgkaB9 NT/GY7jDpzKuJh0f1jt9AZGTPkFxsXABGmEbO+Fw= X-Original-To: libc-alpha@sourceware.org Delivered-To: libc-alpha@sourceware.org Received: from esa5.hgst.iphmx.com (esa5.hgst.iphmx.com [216.71.153.144]) by sourceware.org (Postfix) with ESMTPS id 3646E3851C3B for ; Sun, 12 Jul 2020 15:57:24 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org 3646E3851C3B IronPort-SDR: DyE279bNL9k9bncFzhHkiVS1Oa8S7K3xsb27ba/MnhEzEHqM6rY0gCsX8tIVzQ6DGwnRqqlGdL IhKZd3YF6BSQHmXbGF66ZMsVmHlp2g4yD2sYelmSvmPRqhLTV3LejEMbe/YH7H+KIIbh4SEduX C8ELdoCOiFDZb72hSvh6qYgPp0tDm7UCyBax0/AqPkFwrbKElF+58gcgBQwUgaBio78DwnaOtG XkOJa9NCBC1femCfIlQOsPrmWPVNs2rPQUvrDfwkSLfGmDOXqxJFKffIaxHqPmJzIcD2dpQ7O8 w8o= X-IronPort-AV: E=Sophos;i="5.75,344,1589212800"; d="scan'208";a="142401278" Received: from uls-op-cesaip01.wdc.com (HELO uls-op-cesaep01.wdc.com) ([199.255.45.14]) by ob1.hgst.iphmx.com with ESMTP; 12 Jul 2020 23:57:23 +0800 IronPort-SDR: +DJI5mwWxb86m3PtvOsWBPFqk0vRPO3+IXIlWENswsgXFcweQNXOhsnoS311cgQRDTW+ipF+GQ eElnXChSQ01tfybfNNQNtxqBDGM8N+7z4= Received: from uls-op-cesaip02.wdc.com ([10.248.3.37]) by uls-op-cesaep01.wdc.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 12 Jul 2020 08:45:54 -0700 IronPort-SDR: PyhLsRtIokMJAErR0ymQ6S7Nu49meBqWuYgreeXt+IcLUUkBTqjoya3JVbgV/gCZixdBK3tTCq Fq74IHl/jgFQ== WDCIronportException: Internal Received: from usa002626.ad.shared (HELO risc6-mainframe.hgst.com) ([10.86.57.178]) by uls-op-cesaip02.wdc.com with ESMTP; 12 Jul 2020 08:57:22 -0700 To: libc-alpha@sourceware.org Subject: [PATCH v3 12/19] RISC-V: Add ABI lists Date: Sun, 12 Jul 2020 08:47:52 -0700 Message-Id: <99b0d66579564248bf48e19cdced0a5e57df1604.1594568655.git.alistair.francis@wdc.com> X-Mailer: git-send-email 2.27.0 In-Reply-To: References: MIME-Version: 1.0 X-Spam-Status: No, score=-14.6 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, SPF_HELO_PASS, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on server2.sourceware.org X-BeenThere: libc-alpha@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Libc-alpha mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Patchwork-Original-From: Alistair Francis via Libc-alpha From: Alistair Francis Reply-To: Alistair Francis Cc: alistair.francis@wdc.com Errors-To: libc-alpha-bounces@sourceware.org Sender: "Libc-alpha" Use the check-api and update-abi to generate the abilist for rv32. --- sysdeps/unix/sysv/linux/riscv/c++-types.data | 67 + sysdeps/unix/sysv/linux/riscv/ld.abilist | 5 + .../sysv/linux/riscv/libBrokenLocale.abilist | 1 + sysdeps/unix/sysv/linux/riscv/libanl.abilist | 4 + sysdeps/unix/sysv/linux/riscv/libc.abilist | 2098 +++++++++++++++++ .../unix/sysv/linux/riscv/libcrypt.abilist | 2 + sysdeps/unix/sysv/linux/riscv/libdl.abilist | 9 + sysdeps/unix/sysv/linux/riscv/libm.abilist | 940 ++++++++ .../unix/sysv/linux/riscv/libpthread.abilist | 213 ++ .../unix/sysv/linux/riscv/libresolv.abilist | 79 + sysdeps/unix/sysv/linux/riscv/librt.abilist | 35 + .../sysv/linux/riscv/libthread_db.abilist | 40 + sysdeps/unix/sysv/linux/riscv/libutil.abilist | 6 + 13 files changed, 3499 insertions(+) create mode 100644 sysdeps/unix/sysv/linux/riscv/c++-types.data create mode 100644 sysdeps/unix/sysv/linux/riscv/ld.abilist create mode 100644 sysdeps/unix/sysv/linux/riscv/libBrokenLocale.abilist create mode 100644 sysdeps/unix/sysv/linux/riscv/libanl.abilist create mode 100644 sysdeps/unix/sysv/linux/riscv/libc.abilist create mode 100644 sysdeps/unix/sysv/linux/riscv/libcrypt.abilist create mode 100644 sysdeps/unix/sysv/linux/riscv/libdl.abilist create mode 100644 sysdeps/unix/sysv/linux/riscv/libm.abilist create mode 100644 sysdeps/unix/sysv/linux/riscv/libpthread.abilist create mode 100644 sysdeps/unix/sysv/linux/riscv/libresolv.abilist create mode 100644 sysdeps/unix/sysv/linux/riscv/librt.abilist create mode 100644 sysdeps/unix/sysv/linux/riscv/libthread_db.abilist create mode 100644 sysdeps/unix/sysv/linux/riscv/libutil.abilist diff --git a/sysdeps/unix/sysv/linux/riscv/c++-types.data b/sysdeps/unix/sysv/linux/riscv/c++-types.data new file mode 100644 index 0000000000..0fb0143ae7 --- /dev/null +++ b/sysdeps/unix/sysv/linux/riscv/c++-types.data @@ -0,0 +1,67 @@ +blkcnt64_t:x +blkcnt_t:x +blksize_t:i +caddr_t:Pc +clockid_t:i +clock_t:l +daddr_t:i +dev_t:y +fd_mask:l +fsblkcnt64_t:y +fsblkcnt_t:y +fsfilcnt64_t:y +fsfilcnt_t:y +fsid_t:8__fsid_t +gid_t:j +id_t:j +ino64_t:y +ino_t:y +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:x +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:y +sigset_t:10__sigset_t +size_t:j +socklen_t:j +ssize_t:i +suseconds_t:x +time_t:x +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/riscv/ld.abilist b/sysdeps/unix/sysv/linux/riscv/ld.abilist new file mode 100644 index 0000000000..048f17c848 --- /dev/null +++ b/sysdeps/unix/sysv/linux/riscv/ld.abilist @@ -0,0 +1,5 @@ +GLIBC_2.32 __libc_stack_end D 0x4 +GLIBC_2.32 __stack_chk_guard D 0x4 +GLIBC_2.32 __tls_get_addr F +GLIBC_2.32 _dl_mcount F +GLIBC_2.32 _r_debug D 0x14 diff --git a/sysdeps/unix/sysv/linux/riscv/libBrokenLocale.abilist b/sysdeps/unix/sysv/linux/riscv/libBrokenLocale.abilist new file mode 100644 index 0000000000..b0869cec1f --- /dev/null +++ b/sysdeps/unix/sysv/linux/riscv/libBrokenLocale.abilist @@ -0,0 +1 @@ +GLIBC_2.32 __ctype_get_mb_cur_max F diff --git a/sysdeps/unix/sysv/linux/riscv/libanl.abilist b/sysdeps/unix/sysv/linux/riscv/libanl.abilist new file mode 100644 index 0000000000..ba513bd028 --- /dev/null +++ b/sysdeps/unix/sysv/linux/riscv/libanl.abilist @@ -0,0 +1,4 @@ +GLIBC_2.32 gai_cancel F +GLIBC_2.32 gai_error F +GLIBC_2.32 gai_suspend F +GLIBC_2.32 getaddrinfo_a F diff --git a/sysdeps/unix/sysv/linux/riscv/libc.abilist b/sysdeps/unix/sysv/linux/riscv/libc.abilist new file mode 100644 index 0000000000..4e567a083b --- /dev/null +++ b/sysdeps/unix/sysv/linux/riscv/libc.abilist @@ -0,0 +1,2098 @@ +GLIBC_2.32 _Exit F +GLIBC_2.32 _IO_2_1_stderr_ D 0xa0 +GLIBC_2.32 _IO_2_1_stdin_ D 0xa0 +GLIBC_2.32 _IO_2_1_stdout_ D 0xa0 +GLIBC_2.32 _IO_adjust_column F +GLIBC_2.32 _IO_adjust_wcolumn F +GLIBC_2.32 _IO_default_doallocate F +GLIBC_2.32 _IO_default_finish F +GLIBC_2.32 _IO_default_pbackfail F +GLIBC_2.32 _IO_default_uflow F +GLIBC_2.32 _IO_default_xsgetn F +GLIBC_2.32 _IO_default_xsputn F +GLIBC_2.32 _IO_do_write F +GLIBC_2.32 _IO_doallocbuf F +GLIBC_2.32 _IO_fclose F +GLIBC_2.32 _IO_fdopen F +GLIBC_2.32 _IO_feof F +GLIBC_2.32 _IO_ferror F +GLIBC_2.32 _IO_fflush F +GLIBC_2.32 _IO_fgetpos F +GLIBC_2.32 _IO_fgetpos64 F +GLIBC_2.32 _IO_fgets F +GLIBC_2.32 _IO_file_attach F +GLIBC_2.32 _IO_file_close F +GLIBC_2.32 _IO_file_close_it F +GLIBC_2.32 _IO_file_doallocate F +GLIBC_2.32 _IO_file_finish F +GLIBC_2.32 _IO_file_fopen F +GLIBC_2.32 _IO_file_init F +GLIBC_2.32 _IO_file_jumps D 0x54 +GLIBC_2.32 _IO_file_open F +GLIBC_2.32 _IO_file_overflow F +GLIBC_2.32 _IO_file_read F +GLIBC_2.32 _IO_file_seek F +GLIBC_2.32 _IO_file_seekoff F +GLIBC_2.32 _IO_file_setbuf F +GLIBC_2.32 _IO_file_stat F +GLIBC_2.32 _IO_file_sync F +GLIBC_2.32 _IO_file_underflow F +GLIBC_2.32 _IO_file_write F +GLIBC_2.32 _IO_file_xsputn F +GLIBC_2.32 _IO_flockfile F +GLIBC_2.32 _IO_flush_all F +GLIBC_2.32 _IO_flush_all_linebuffered F +GLIBC_2.32 _IO_fopen F +GLIBC_2.32 _IO_fprintf F +GLIBC_2.32 _IO_fputs F +GLIBC_2.32 _IO_fread F +GLIBC_2.32 _IO_free_backup_area F +GLIBC_2.32 _IO_free_wbackup_area F +GLIBC_2.32 _IO_fsetpos F +GLIBC_2.32 _IO_fsetpos64 F +GLIBC_2.32 _IO_ftell F +GLIBC_2.32 _IO_ftrylockfile F +GLIBC_2.32 _IO_funlockfile F +GLIBC_2.32 _IO_fwrite F +GLIBC_2.32 _IO_getc F +GLIBC_2.32 _IO_getline F +GLIBC_2.32 _IO_getline_info F +GLIBC_2.32 _IO_gets F +GLIBC_2.32 _IO_init F +GLIBC_2.32 _IO_init_marker F +GLIBC_2.32 _IO_init_wmarker F +GLIBC_2.32 _IO_iter_begin F +GLIBC_2.32 _IO_iter_end F +GLIBC_2.32 _IO_iter_file F +GLIBC_2.32 _IO_iter_next F +GLIBC_2.32 _IO_least_wmarker F +GLIBC_2.32 _IO_link_in F +GLIBC_2.32 _IO_list_all D 0x4 +GLIBC_2.32 _IO_list_lock F +GLIBC_2.32 _IO_list_resetlock F +GLIBC_2.32 _IO_list_unlock F +GLIBC_2.32 _IO_marker_delta F +GLIBC_2.32 _IO_marker_difference F +GLIBC_2.32 _IO_padn F +GLIBC_2.32 _IO_peekc_locked F +GLIBC_2.32 _IO_popen F +GLIBC_2.32 _IO_printf F +GLIBC_2.32 _IO_proc_close F +GLIBC_2.32 _IO_proc_open F +GLIBC_2.32 _IO_putc F +GLIBC_2.32 _IO_puts F +GLIBC_2.32 _IO_remove_marker F +GLIBC_2.32 _IO_seekmark F +GLIBC_2.32 _IO_seekoff F +GLIBC_2.32 _IO_seekpos F +GLIBC_2.32 _IO_seekwmark F +GLIBC_2.32 _IO_setb F +GLIBC_2.32 _IO_setbuffer F +GLIBC_2.32 _IO_setvbuf F +GLIBC_2.32 _IO_sgetn F +GLIBC_2.32 _IO_sprintf F +GLIBC_2.32 _IO_sputbackc F +GLIBC_2.32 _IO_sputbackwc F +GLIBC_2.32 _IO_sscanf F +GLIBC_2.32 _IO_str_init_readonly F +GLIBC_2.32 _IO_str_init_static F +GLIBC_2.32 _IO_str_overflow F +GLIBC_2.32 _IO_str_pbackfail F +GLIBC_2.32 _IO_str_seekoff F +GLIBC_2.32 _IO_str_underflow F +GLIBC_2.32 _IO_sungetc F +GLIBC_2.32 _IO_sungetwc F +GLIBC_2.32 _IO_switch_to_get_mode F +GLIBC_2.32 _IO_switch_to_main_wget_area F +GLIBC_2.32 _IO_switch_to_wbackup_area F +GLIBC_2.32 _IO_switch_to_wget_mode F +GLIBC_2.32 _IO_un_link F +GLIBC_2.32 _IO_ungetc F +GLIBC_2.32 _IO_unsave_markers F +GLIBC_2.32 _IO_unsave_wmarkers F +GLIBC_2.32 _IO_vfprintf F +GLIBC_2.32 _IO_vsprintf F +GLIBC_2.32 _IO_wdefault_doallocate F +GLIBC_2.32 _IO_wdefault_finish F +GLIBC_2.32 _IO_wdefault_pbackfail F +GLIBC_2.32 _IO_wdefault_uflow F +GLIBC_2.32 _IO_wdefault_xsgetn F +GLIBC_2.32 _IO_wdefault_xsputn F +GLIBC_2.32 _IO_wdo_write F +GLIBC_2.32 _IO_wdoallocbuf F +GLIBC_2.32 _IO_wfile_jumps D 0x54 +GLIBC_2.32 _IO_wfile_overflow F +GLIBC_2.32 _IO_wfile_seekoff F +GLIBC_2.32 _IO_wfile_sync F +GLIBC_2.32 _IO_wfile_underflow F +GLIBC_2.32 _IO_wfile_xsputn F +GLIBC_2.32 _IO_wmarker_delta F +GLIBC_2.32 _IO_wsetb F +GLIBC_2.32 ___brk_addr D 0x4 +GLIBC_2.32 __adjtimex F +GLIBC_2.32 __after_morecore_hook D 0x4 +GLIBC_2.32 __argz_count F +GLIBC_2.32 __argz_next F +GLIBC_2.32 __argz_stringify F +GLIBC_2.32 __asprintf F +GLIBC_2.32 __asprintf_chk F +GLIBC_2.32 __assert F +GLIBC_2.32 __assert_fail F +GLIBC_2.32 __assert_perror_fail F +GLIBC_2.32 __backtrace F +GLIBC_2.32 __backtrace_symbols F +GLIBC_2.32 __backtrace_symbols_fd F +GLIBC_2.32 __bsd_getpgrp F +GLIBC_2.32 __bzero F +GLIBC_2.32 __check_rhosts_file D 0x4 +GLIBC_2.32 __chk_fail F +GLIBC_2.32 __clone F +GLIBC_2.32 __close F +GLIBC_2.32 __cmsg_nxthdr F +GLIBC_2.32 __confstr_chk F +GLIBC_2.32 __connect F +GLIBC_2.32 __ctype_b_loc F +GLIBC_2.32 __ctype_get_mb_cur_max F +GLIBC_2.32 __ctype_tolower_loc F +GLIBC_2.32 __ctype_toupper_loc F +GLIBC_2.32 __curbrk D 0x4 +GLIBC_2.32 __cxa_at_quick_exit F +GLIBC_2.32 __cxa_atexit F +GLIBC_2.32 __cxa_finalize F +GLIBC_2.32 __cxa_thread_atexit_impl F +GLIBC_2.32 __cyg_profile_func_enter F +GLIBC_2.32 __cyg_profile_func_exit F +GLIBC_2.32 __daylight D 0x4 +GLIBC_2.32 __dcgettext F +GLIBC_2.32 __default_morecore F +GLIBC_2.32 __dgettext F +GLIBC_2.32 __dprintf_chk F +GLIBC_2.32 __dup2 F +GLIBC_2.32 __duplocale F +GLIBC_2.32 __endmntent F +GLIBC_2.32 __environ D 0x4 +GLIBC_2.32 __errno_location F +GLIBC_2.32 __explicit_bzero_chk F +GLIBC_2.32 __fbufsize F +GLIBC_2.32 __fcntl F +GLIBC_2.32 __fdelt_chk F +GLIBC_2.32 __fdelt_warn F +GLIBC_2.32 __ffs F +GLIBC_2.32 __fgets_chk F +GLIBC_2.32 __fgets_unlocked_chk F +GLIBC_2.32 __fgetws_chk F +GLIBC_2.32 __fgetws_unlocked_chk F +GLIBC_2.32 __finite F +GLIBC_2.32 __finitef F +GLIBC_2.32 __finitel F +GLIBC_2.32 __flbf F +GLIBC_2.32 __fork F +GLIBC_2.32 __fpending F +GLIBC_2.32 __fprintf_chk F +GLIBC_2.32 __fpu_control D 0x4 +GLIBC_2.32 __fpurge F +GLIBC_2.32 __fread_chk F +GLIBC_2.32 __fread_unlocked_chk F +GLIBC_2.32 __freadable F +GLIBC_2.32 __freading F +GLIBC_2.32 __free_hook D 0x4 +GLIBC_2.32 __freelocale F +GLIBC_2.32 __fsetlocking F +GLIBC_2.32 __fwprintf_chk F +GLIBC_2.32 __fwritable F +GLIBC_2.32 __fwriting F +GLIBC_2.32 __fxstat F +GLIBC_2.32 __fxstat64 F +GLIBC_2.32 __fxstatat F +GLIBC_2.32 __fxstatat64 F +GLIBC_2.32 __getauxval F +GLIBC_2.32 __getcwd_chk F +GLIBC_2.32 __getdelim F +GLIBC_2.32 __getdomainname_chk F +GLIBC_2.32 __getgroups_chk F +GLIBC_2.32 __gethostname_chk F +GLIBC_2.32 __getlogin_r_chk F +GLIBC_2.32 __getmntent_r F +GLIBC_2.32 __getpagesize F +GLIBC_2.32 __getpgid F +GLIBC_2.32 __getpid F +GLIBC_2.32 __gets_chk F +GLIBC_2.32 __gettimeofday F +GLIBC_2.32 __getwd_chk F +GLIBC_2.32 __gmtime_r F +GLIBC_2.32 __h_errno_location F +GLIBC_2.32 __isalnum_l F +GLIBC_2.32 __isalpha_l F +GLIBC_2.32 __isascii_l F +GLIBC_2.32 __isblank_l F +GLIBC_2.32 __iscntrl_l F +GLIBC_2.32 __isctype F +GLIBC_2.32 __isdigit_l F +GLIBC_2.32 __isgraph_l F +GLIBC_2.32 __isinf F +GLIBC_2.32 __isinff F +GLIBC_2.32 __isinfl F +GLIBC_2.32 __islower_l F +GLIBC_2.32 __isnan F +GLIBC_2.32 __isnanf F +GLIBC_2.32 __isnanl F +GLIBC_2.32 __isoc99_fscanf F +GLIBC_2.32 __isoc99_fwscanf F +GLIBC_2.32 __isoc99_scanf F +GLIBC_2.32 __isoc99_sscanf F +GLIBC_2.32 __isoc99_swscanf F +GLIBC_2.32 __isoc99_vfscanf F +GLIBC_2.32 __isoc99_vfwscanf F +GLIBC_2.32 __isoc99_vscanf F +GLIBC_2.32 __isoc99_vsscanf F +GLIBC_2.32 __isoc99_vswscanf F +GLIBC_2.32 __isoc99_vwscanf F +GLIBC_2.32 __isoc99_wscanf F +GLIBC_2.32 __isprint_l F +GLIBC_2.32 __ispunct_l F +GLIBC_2.32 __isspace_l F +GLIBC_2.32 __isupper_l F +GLIBC_2.32 __iswalnum_l F +GLIBC_2.32 __iswalpha_l F +GLIBC_2.32 __iswblank_l F +GLIBC_2.32 __iswcntrl_l F +GLIBC_2.32 __iswctype F +GLIBC_2.32 __iswctype_l F +GLIBC_2.32 __iswdigit_l F +GLIBC_2.32 __iswgraph_l F +GLIBC_2.32 __iswlower_l F +GLIBC_2.32 __iswprint_l F +GLIBC_2.32 __iswpunct_l F +GLIBC_2.32 __iswspace_l F +GLIBC_2.32 __iswupper_l F +GLIBC_2.32 __iswxdigit_l F +GLIBC_2.32 __isxdigit_l F +GLIBC_2.32 __ivaliduser F +GLIBC_2.32 __key_decryptsession_pk_LOCAL D 0x4 +GLIBC_2.32 __key_encryptsession_pk_LOCAL D 0x4 +GLIBC_2.32 __key_gendes_LOCAL D 0x4 +GLIBC_2.32 __libc_allocate_rtsig F +GLIBC_2.32 __libc_calloc F +GLIBC_2.32 __libc_current_sigrtmax F +GLIBC_2.32 __libc_current_sigrtmin F +GLIBC_2.32 __libc_free F +GLIBC_2.32 __libc_freeres F +GLIBC_2.32 __libc_init_first F +GLIBC_2.32 __libc_mallinfo F +GLIBC_2.32 __libc_malloc F +GLIBC_2.32 __libc_mallopt F +GLIBC_2.32 __libc_memalign F +GLIBC_2.32 __libc_pvalloc F +GLIBC_2.32 __libc_realloc F +GLIBC_2.32 __libc_sa_len F +GLIBC_2.32 __libc_single_threaded D 0x1 +GLIBC_2.32 __libc_start_main F +GLIBC_2.32 __libc_valloc F +GLIBC_2.32 __longjmp_chk F +GLIBC_2.32 __lseek F +GLIBC_2.32 __lxstat F +GLIBC_2.32 __lxstat64 F +GLIBC_2.32 __malloc_hook D 0x4 +GLIBC_2.32 __mbrlen F +GLIBC_2.32 __mbrtowc F +GLIBC_2.32 __mbsnrtowcs_chk F +GLIBC_2.32 __mbsrtowcs_chk F +GLIBC_2.32 __mbstowcs_chk F +GLIBC_2.32 __memalign_hook D 0x4 +GLIBC_2.32 __memcpy_chk F +GLIBC_2.32 __memmove_chk F +GLIBC_2.32 __mempcpy F +GLIBC_2.32 __mempcpy_chk F +GLIBC_2.32 __memset_chk F +GLIBC_2.32 __monstartup F +GLIBC_2.32 __morecore D 0x4 +GLIBC_2.32 __nanosleep F +GLIBC_2.32 __newlocale F +GLIBC_2.32 __nl_langinfo_l F +GLIBC_2.32 __nss_configure_lookup F +GLIBC_2.32 __nss_hostname_digits_dots F +GLIBC_2.32 __obstack_printf_chk F +GLIBC_2.32 __obstack_vprintf_chk F +GLIBC_2.32 __open F +GLIBC_2.32 __open64 F +GLIBC_2.32 __open64_2 F +GLIBC_2.32 __open_2 F +GLIBC_2.32 __openat64_2 F +GLIBC_2.32 __openat_2 F +GLIBC_2.32 __overflow F +GLIBC_2.32 __pipe F +GLIBC_2.32 __poll F +GLIBC_2.32 __poll_chk F +GLIBC_2.32 __posix_getopt F +GLIBC_2.32 __ppoll_chk F +GLIBC_2.32 __pread64 F +GLIBC_2.32 __pread64_chk F +GLIBC_2.32 __pread_chk F +GLIBC_2.32 __printf_chk F +GLIBC_2.32 __printf_fp F +GLIBC_2.32 __profile_frequency F +GLIBC_2.32 __progname D 0x4 +GLIBC_2.32 __progname_full D 0x4 +GLIBC_2.32 __ptsname_r_chk F +GLIBC_2.32 __pwrite64 F +GLIBC_2.32 __rawmemchr F +GLIBC_2.32 __rcmd_errstr D 0x4 +GLIBC_2.32 __read F +GLIBC_2.32 __read_chk F +GLIBC_2.32 __readlink_chk F +GLIBC_2.32 __readlinkat_chk F +GLIBC_2.32 __realloc_hook D 0x4 +GLIBC_2.32 __realpath_chk F +GLIBC_2.32 __recv_chk F +GLIBC_2.32 __recvfrom_chk F +GLIBC_2.32 __register_atfork F +GLIBC_2.32 __res_init F +GLIBC_2.32 __res_nclose F +GLIBC_2.32 __res_ninit F +GLIBC_2.32 __res_randomid F +GLIBC_2.32 __res_state F +GLIBC_2.32 __riscv_flush_icache F +GLIBC_2.32 __rpc_thread_createerr F +GLIBC_2.32 __rpc_thread_svc_fdset F +GLIBC_2.32 __rpc_thread_svc_max_pollfd F +GLIBC_2.32 __rpc_thread_svc_pollfd F +GLIBC_2.32 __rseq_abi T 0x20 +GLIBC_2.32 __sbrk F +GLIBC_2.32 __sched_cpualloc F +GLIBC_2.32 __sched_cpucount F +GLIBC_2.32 __sched_cpufree F +GLIBC_2.32 __sched_get_priority_max F +GLIBC_2.32 __sched_get_priority_min F +GLIBC_2.32 __sched_getparam F +GLIBC_2.32 __sched_getscheduler F +GLIBC_2.32 __sched_setscheduler F +GLIBC_2.32 __sched_yield F +GLIBC_2.32 __select F +GLIBC_2.32 __send F +GLIBC_2.32 __setmntent F +GLIBC_2.32 __setpgid F +GLIBC_2.32 __sigaction F +GLIBC_2.32 __signbit F +GLIBC_2.32 __signbitf F +GLIBC_2.32 __signbitl F +GLIBC_2.32 __sigpause F +GLIBC_2.32 __sigsetjmp F +GLIBC_2.32 __sigsuspend F +GLIBC_2.32 __snprintf_chk F +GLIBC_2.32 __sprintf_chk F +GLIBC_2.32 __stack_chk_fail F +GLIBC_2.32 __statfs F +GLIBC_2.32 __stpcpy F +GLIBC_2.32 __stpcpy_chk F +GLIBC_2.32 __stpncpy F +GLIBC_2.32 __stpncpy_chk F +GLIBC_2.32 __strcasecmp F +GLIBC_2.32 __strcasecmp_l F +GLIBC_2.32 __strcasestr F +GLIBC_2.32 __strcat_chk F +GLIBC_2.32 __strcoll_l F +GLIBC_2.32 __strcpy_chk F +GLIBC_2.32 __strdup F +GLIBC_2.32 __strerror_r F +GLIBC_2.32 __strfmon_l F +GLIBC_2.32 __strftime_l F +GLIBC_2.32 __strncasecmp_l F +GLIBC_2.32 __strncat_chk F +GLIBC_2.32 __strncpy_chk F +GLIBC_2.32 __strndup F +GLIBC_2.32 __strsep_g F +GLIBC_2.32 __strtod_internal F +GLIBC_2.32 __strtod_l F +GLIBC_2.32 __strtof_internal F +GLIBC_2.32 __strtof_l F +GLIBC_2.32 __strtok_r F +GLIBC_2.32 __strtol_internal F +GLIBC_2.32 __strtol_l F +GLIBC_2.32 __strtold_internal F +GLIBC_2.32 __strtold_l F +GLIBC_2.32 __strtoll_internal F +GLIBC_2.32 __strtoll_l F +GLIBC_2.32 __strtoul_internal F +GLIBC_2.32 __strtoul_l F +GLIBC_2.32 __strtoull_internal F +GLIBC_2.32 __strtoull_l F +GLIBC_2.32 __strverscmp F +GLIBC_2.32 __strxfrm_l F +GLIBC_2.32 __swprintf_chk F +GLIBC_2.32 __sysconf F +GLIBC_2.32 __syslog_chk F +GLIBC_2.32 __sysv_signal F +GLIBC_2.32 __timezone D 0x4 +GLIBC_2.32 __toascii_l F +GLIBC_2.32 __tolower_l F +GLIBC_2.32 __toupper_l F +GLIBC_2.32 __towctrans F +GLIBC_2.32 __towctrans_l F +GLIBC_2.32 __towlower_l F +GLIBC_2.32 __towupper_l F +GLIBC_2.32 __ttyname_r_chk F +GLIBC_2.32 __tzname D 0x8 +GLIBC_2.32 __uflow F +GLIBC_2.32 __underflow F +GLIBC_2.32 __uselocale F +GLIBC_2.32 __vasprintf_chk F +GLIBC_2.32 __vdprintf_chk F +GLIBC_2.32 __vfork F +GLIBC_2.32 __vfprintf_chk F +GLIBC_2.32 __vfscanf F +GLIBC_2.32 __vfwprintf_chk F +GLIBC_2.32 __vprintf_chk F +GLIBC_2.32 __vsnprintf F +GLIBC_2.32 __vsnprintf_chk F +GLIBC_2.32 __vsprintf_chk F +GLIBC_2.32 __vsscanf F +GLIBC_2.32 __vswprintf_chk F +GLIBC_2.32 __vsyslog_chk F +GLIBC_2.32 __vwprintf_chk F +GLIBC_2.32 __wait F +GLIBC_2.32 __waitpid F +GLIBC_2.32 __wcpcpy_chk F +GLIBC_2.32 __wcpncpy_chk F +GLIBC_2.32 __wcrtomb_chk F +GLIBC_2.32 __wcscasecmp_l F +GLIBC_2.32 __wcscat_chk F +GLIBC_2.32 __wcscoll_l F +GLIBC_2.32 __wcscpy_chk F +GLIBC_2.32 __wcsftime_l F +GLIBC_2.32 __wcsncasecmp_l F +GLIBC_2.32 __wcsncat_chk F +GLIBC_2.32 __wcsncpy_chk F +GLIBC_2.32 __wcsnrtombs_chk F +GLIBC_2.32 __wcsrtombs_chk F +GLIBC_2.32 __wcstod_internal F +GLIBC_2.32 __wcstod_l F +GLIBC_2.32 __wcstof_internal F +GLIBC_2.32 __wcstof_l F +GLIBC_2.32 __wcstol_internal F +GLIBC_2.32 __wcstol_l F +GLIBC_2.32 __wcstold_internal F +GLIBC_2.32 __wcstold_l F +GLIBC_2.32 __wcstoll_internal F +GLIBC_2.32 __wcstoll_l F +GLIBC_2.32 __wcstombs_chk F +GLIBC_2.32 __wcstoul_internal F +GLIBC_2.32 __wcstoul_l F +GLIBC_2.32 __wcstoull_internal F +GLIBC_2.32 __wcstoull_l F +GLIBC_2.32 __wcsxfrm_l F +GLIBC_2.32 __wctomb_chk F +GLIBC_2.32 __wctrans_l F +GLIBC_2.32 __wctype_l F +GLIBC_2.32 __wmemcpy_chk F +GLIBC_2.32 __wmemmove_chk F +GLIBC_2.32 __wmempcpy_chk F +GLIBC_2.32 __wmemset_chk F +GLIBC_2.32 __woverflow F +GLIBC_2.32 __wprintf_chk F +GLIBC_2.32 __write F +GLIBC_2.32 __wuflow F +GLIBC_2.32 __wunderflow F +GLIBC_2.32 __xmknod F +GLIBC_2.32 __xmknodat F +GLIBC_2.32 __xpg_basename F +GLIBC_2.32 __xpg_sigpause F +GLIBC_2.32 __xpg_strerror_r F +GLIBC_2.32 __xstat F +GLIBC_2.32 __xstat64 F +GLIBC_2.32 _authenticate F +GLIBC_2.32 _dl_mcount_wrapper F +GLIBC_2.32 _dl_mcount_wrapper_check F +GLIBC_2.32 _environ D 0x4 +GLIBC_2.32 _exit F +GLIBC_2.32 _flushlbf F +GLIBC_2.32 _libc_intl_domainname D 0x5 +GLIBC_2.32 _longjmp F +GLIBC_2.32 _mcleanup F +GLIBC_2.32 _mcount F +GLIBC_2.32 _nl_default_dirname D 0x12 +GLIBC_2.32 _nl_domain_bindings D 0x4 +GLIBC_2.32 _nl_msg_cat_cntr D 0x4 +GLIBC_2.32 _null_auth D 0xc +GLIBC_2.32 _obstack_allocated_p F +GLIBC_2.32 _obstack_begin F +GLIBC_2.32 _obstack_begin_1 F +GLIBC_2.32 _obstack_free F +GLIBC_2.32 _obstack_memory_used F +GLIBC_2.32 _obstack_newchunk F +GLIBC_2.32 _res D 0x200 +GLIBC_2.32 _res_hconf D 0x30 +GLIBC_2.32 _rpc_dtablesize F +GLIBC_2.32 _seterr_reply F +GLIBC_2.32 _setjmp F +GLIBC_2.32 _tolower F +GLIBC_2.32 _toupper F +GLIBC_2.32 a64l F +GLIBC_2.32 abort F +GLIBC_2.32 abs F +GLIBC_2.32 accept F +GLIBC_2.32 accept4 F +GLIBC_2.32 access F +GLIBC_2.32 acct F +GLIBC_2.32 addmntent F +GLIBC_2.32 addseverity F +GLIBC_2.32 adjtime F +GLIBC_2.32 adjtimex F +GLIBC_2.32 alarm F +GLIBC_2.32 aligned_alloc F +GLIBC_2.32 alphasort F +GLIBC_2.32 alphasort64 F +GLIBC_2.32 argp_err_exit_status D 0x4 +GLIBC_2.32 argp_error F +GLIBC_2.32 argp_failure F +GLIBC_2.32 argp_help F +GLIBC_2.32 argp_parse F +GLIBC_2.32 argp_program_bug_address D 0x4 +GLIBC_2.32 argp_program_version D 0x4 +GLIBC_2.32 argp_program_version_hook D 0x4 +GLIBC_2.32 argp_state_help F +GLIBC_2.32 argp_usage F +GLIBC_2.32 argz_add F +GLIBC_2.32 argz_add_sep F +GLIBC_2.32 argz_append F +GLIBC_2.32 argz_count F +GLIBC_2.32 argz_create F +GLIBC_2.32 argz_create_sep F +GLIBC_2.32 argz_delete F +GLIBC_2.32 argz_extract F +GLIBC_2.32 argz_insert F +GLIBC_2.32 argz_next F +GLIBC_2.32 argz_replace F +GLIBC_2.32 argz_stringify F +GLIBC_2.32 asctime F +GLIBC_2.32 asctime_r F +GLIBC_2.32 asprintf F +GLIBC_2.32 atof F +GLIBC_2.32 atoi F +GLIBC_2.32 atol F +GLIBC_2.32 atoll F +GLIBC_2.32 authdes_create F +GLIBC_2.32 authdes_getucred F +GLIBC_2.32 authdes_pk_create F +GLIBC_2.32 authnone_create F +GLIBC_2.32 authunix_create F +GLIBC_2.32 authunix_create_default F +GLIBC_2.32 backtrace F +GLIBC_2.32 backtrace_symbols F +GLIBC_2.32 backtrace_symbols_fd F +GLIBC_2.32 basename F +GLIBC_2.32 bcmp F +GLIBC_2.32 bcopy F +GLIBC_2.32 bind F +GLIBC_2.32 bind_textdomain_codeset F +GLIBC_2.32 bindresvport F +GLIBC_2.32 bindtextdomain F +GLIBC_2.32 brk F +GLIBC_2.32 bsd_signal F +GLIBC_2.32 bsearch F +GLIBC_2.32 btowc F +GLIBC_2.32 bzero F +GLIBC_2.32 c16rtomb F +GLIBC_2.32 c32rtomb F +GLIBC_2.32 calloc F +GLIBC_2.32 callrpc F +GLIBC_2.32 canonicalize_file_name F +GLIBC_2.32 capget F +GLIBC_2.32 capset F +GLIBC_2.32 catclose F +GLIBC_2.32 catgets F +GLIBC_2.32 catopen F +GLIBC_2.32 cbc_crypt F +GLIBC_2.32 cfgetispeed F +GLIBC_2.32 cfgetospeed F +GLIBC_2.32 cfmakeraw F +GLIBC_2.32 cfsetispeed F +GLIBC_2.32 cfsetospeed F +GLIBC_2.32 cfsetspeed F +GLIBC_2.32 chdir F +GLIBC_2.32 chflags F +GLIBC_2.32 chmod F +GLIBC_2.32 chown F +GLIBC_2.32 chroot F +GLIBC_2.32 clearenv F +GLIBC_2.32 clearerr F +GLIBC_2.32 clearerr_unlocked F +GLIBC_2.32 clnt_broadcast F +GLIBC_2.32 clnt_create F +GLIBC_2.32 clnt_pcreateerror F +GLIBC_2.32 clnt_perrno F +GLIBC_2.32 clnt_perror F +GLIBC_2.32 clnt_spcreateerror F +GLIBC_2.32 clnt_sperrno F +GLIBC_2.32 clnt_sperror F +GLIBC_2.32 clntraw_create F +GLIBC_2.32 clnttcp_create F +GLIBC_2.32 clntudp_bufcreate F +GLIBC_2.32 clntudp_create F +GLIBC_2.32 clntunix_create F +GLIBC_2.32 clock F +GLIBC_2.32 clock_adjtime F +GLIBC_2.32 clock_getcpuclockid F +GLIBC_2.32 clock_getres F +GLIBC_2.32 clock_gettime F +GLIBC_2.32 clock_nanosleep F +GLIBC_2.32 clock_settime F +GLIBC_2.32 clone F +GLIBC_2.32 close F +GLIBC_2.32 closedir F +GLIBC_2.32 closelog F +GLIBC_2.32 confstr F +GLIBC_2.32 connect F +GLIBC_2.32 copy_file_range F +GLIBC_2.32 copysign F +GLIBC_2.32 copysignf F +GLIBC_2.32 copysignl F +GLIBC_2.32 creat F +GLIBC_2.32 creat64 F +GLIBC_2.32 ctermid F +GLIBC_2.32 ctime F +GLIBC_2.32 ctime_r F +GLIBC_2.32 cuserid F +GLIBC_2.32 daemon F +GLIBC_2.32 daylight D 0x4 +GLIBC_2.32 dcgettext F +GLIBC_2.32 dcngettext F +GLIBC_2.32 delete_module F +GLIBC_2.32 des_setparity F +GLIBC_2.32 dgettext F +GLIBC_2.32 difftime F +GLIBC_2.32 dirfd F +GLIBC_2.32 dirname F +GLIBC_2.32 div F +GLIBC_2.32 dl_iterate_phdr F +GLIBC_2.32 dngettext F +GLIBC_2.32 dprintf F +GLIBC_2.32 drand48 F +GLIBC_2.32 drand48_r F +GLIBC_2.32 dup F +GLIBC_2.32 dup2 F +GLIBC_2.32 dup3 F +GLIBC_2.32 duplocale F +GLIBC_2.32 dysize F +GLIBC_2.32 eaccess F +GLIBC_2.32 ecb_crypt F +GLIBC_2.32 ecvt F +GLIBC_2.32 ecvt_r F +GLIBC_2.32 endaliasent F +GLIBC_2.32 endfsent F +GLIBC_2.32 endgrent F +GLIBC_2.32 endhostent F +GLIBC_2.32 endmntent F +GLIBC_2.32 endnetent F +GLIBC_2.32 endnetgrent F +GLIBC_2.32 endprotoent F +GLIBC_2.32 endpwent F +GLIBC_2.32 endrpcent F +GLIBC_2.32 endservent F +GLIBC_2.32 endsgent F +GLIBC_2.32 endspent F +GLIBC_2.32 endttyent F +GLIBC_2.32 endusershell F +GLIBC_2.32 endutent F +GLIBC_2.32 endutxent F +GLIBC_2.32 environ D 0x4 +GLIBC_2.32 envz_add F +GLIBC_2.32 envz_entry F +GLIBC_2.32 envz_get F +GLIBC_2.32 envz_merge F +GLIBC_2.32 envz_remove F +GLIBC_2.32 envz_strip F +GLIBC_2.32 epoll_create F +GLIBC_2.32 epoll_create1 F +GLIBC_2.32 epoll_ctl F +GLIBC_2.32 epoll_pwait F +GLIBC_2.32 epoll_wait F +GLIBC_2.32 erand48 F +GLIBC_2.32 erand48_r F +GLIBC_2.32 err F +GLIBC_2.32 error F +GLIBC_2.32 error_at_line F +GLIBC_2.32 error_message_count D 0x4 +GLIBC_2.32 error_one_per_line D 0x4 +GLIBC_2.32 error_print_progname D 0x4 +GLIBC_2.32 errx F +GLIBC_2.32 ether_aton F +GLIBC_2.32 ether_aton_r F +GLIBC_2.32 ether_hostton F +GLIBC_2.32 ether_line F +GLIBC_2.32 ether_ntoa F +GLIBC_2.32 ether_ntoa_r F +GLIBC_2.32 ether_ntohost F +GLIBC_2.32 euidaccess F +GLIBC_2.32 eventfd F +GLIBC_2.32 eventfd_read F +GLIBC_2.32 eventfd_write F +GLIBC_2.32 execl F +GLIBC_2.32 execle F +GLIBC_2.32 execlp F +GLIBC_2.32 execv F +GLIBC_2.32 execve F +GLIBC_2.32 execvp F +GLIBC_2.32 execvpe F +GLIBC_2.32 exit F +GLIBC_2.32 explicit_bzero F +GLIBC_2.32 faccessat F +GLIBC_2.32 fallocate F +GLIBC_2.32 fallocate64 F +GLIBC_2.32 fanotify_init F +GLIBC_2.32 fanotify_mark F +GLIBC_2.32 fchdir F +GLIBC_2.32 fchflags F +GLIBC_2.32 fchmod F +GLIBC_2.32 fchmodat F +GLIBC_2.32 fchown F +GLIBC_2.32 fchownat F +GLIBC_2.32 fclose F +GLIBC_2.32 fcloseall F +GLIBC_2.32 fcntl F +GLIBC_2.32 fcntl64 F +GLIBC_2.32 fcvt F +GLIBC_2.32 fcvt_r F +GLIBC_2.32 fdatasync F +GLIBC_2.32 fdopen F +GLIBC_2.32 fdopendir F +GLIBC_2.32 feof F +GLIBC_2.32 feof_unlocked F +GLIBC_2.32 ferror F +GLIBC_2.32 ferror_unlocked F +GLIBC_2.32 fexecve F +GLIBC_2.32 fflush F +GLIBC_2.32 fflush_unlocked F +GLIBC_2.32 ffs F +GLIBC_2.32 ffsl F +GLIBC_2.32 ffsll F +GLIBC_2.32 fgetc F +GLIBC_2.32 fgetc_unlocked F +GLIBC_2.32 fgetgrent F +GLIBC_2.32 fgetgrent_r F +GLIBC_2.32 fgetpos F +GLIBC_2.32 fgetpos64 F +GLIBC_2.32 fgetpwent F +GLIBC_2.32 fgetpwent_r F +GLIBC_2.32 fgets F +GLIBC_2.32 fgets_unlocked F +GLIBC_2.32 fgetsgent F +GLIBC_2.32 fgetsgent_r F +GLIBC_2.32 fgetspent F +GLIBC_2.32 fgetspent_r F +GLIBC_2.32 fgetwc F +GLIBC_2.32 fgetwc_unlocked F +GLIBC_2.32 fgetws F +GLIBC_2.32 fgetws_unlocked F +GLIBC_2.32 fgetxattr F +GLIBC_2.32 fileno F +GLIBC_2.32 fileno_unlocked F +GLIBC_2.32 finite F +GLIBC_2.32 finitef F +GLIBC_2.32 finitel F +GLIBC_2.32 flistxattr F +GLIBC_2.32 flock F +GLIBC_2.32 flockfile F +GLIBC_2.32 fmemopen F +GLIBC_2.32 fmtmsg F +GLIBC_2.32 fnmatch F +GLIBC_2.32 fopen F +GLIBC_2.32 fopen64 F +GLIBC_2.32 fopencookie F +GLIBC_2.32 fork F +GLIBC_2.32 fpathconf F +GLIBC_2.32 fprintf F +GLIBC_2.32 fputc F +GLIBC_2.32 fputc_unlocked F +GLIBC_2.32 fputs F +GLIBC_2.32 fputs_unlocked F +GLIBC_2.32 fputwc F +GLIBC_2.32 fputwc_unlocked F +GLIBC_2.32 fputws F +GLIBC_2.32 fputws_unlocked F +GLIBC_2.32 fread F +GLIBC_2.32 fread_unlocked F +GLIBC_2.32 free F +GLIBC_2.32 freeaddrinfo F +GLIBC_2.32 freeifaddrs F +GLIBC_2.32 freelocale F +GLIBC_2.32 fremovexattr F +GLIBC_2.32 freopen F +GLIBC_2.32 freopen64 F +GLIBC_2.32 frexp F +GLIBC_2.32 frexpf F +GLIBC_2.32 frexpl F +GLIBC_2.32 fscanf F +GLIBC_2.32 fseek F +GLIBC_2.32 fseeko F +GLIBC_2.32 fseeko64 F +GLIBC_2.32 fsetpos F +GLIBC_2.32 fsetpos64 F +GLIBC_2.32 fsetxattr F +GLIBC_2.32 fstatfs F +GLIBC_2.32 fstatfs64 F +GLIBC_2.32 fstatvfs F +GLIBC_2.32 fstatvfs64 F +GLIBC_2.32 fsync F +GLIBC_2.32 ftell F +GLIBC_2.32 ftello F +GLIBC_2.32 ftello64 F +GLIBC_2.32 ftime F +GLIBC_2.32 ftok F +GLIBC_2.32 ftruncate F +GLIBC_2.32 ftruncate64 F +GLIBC_2.32 ftrylockfile F +GLIBC_2.32 fts64_children F +GLIBC_2.32 fts64_close F +GLIBC_2.32 fts64_open F +GLIBC_2.32 fts64_read F +GLIBC_2.32 fts64_set F +GLIBC_2.32 fts_children F +GLIBC_2.32 fts_close F +GLIBC_2.32 fts_open F +GLIBC_2.32 fts_read F +GLIBC_2.32 fts_set F +GLIBC_2.32 ftw F +GLIBC_2.32 ftw64 F +GLIBC_2.32 funlockfile F +GLIBC_2.32 futimens F +GLIBC_2.32 futimes F +GLIBC_2.32 futimesat F +GLIBC_2.32 fwide F +GLIBC_2.32 fwprintf F +GLIBC_2.32 fwrite F +GLIBC_2.32 fwrite_unlocked F +GLIBC_2.32 fwscanf F +GLIBC_2.32 gai_strerror F +GLIBC_2.32 gcvt F +GLIBC_2.32 get_avphys_pages F +GLIBC_2.32 get_current_dir_name F +GLIBC_2.32 get_myaddress F +GLIBC_2.32 get_nprocs F +GLIBC_2.32 get_nprocs_conf F +GLIBC_2.32 get_phys_pages F +GLIBC_2.32 getaddrinfo F +GLIBC_2.32 getaliasbyname F +GLIBC_2.32 getaliasbyname_r F +GLIBC_2.32 getaliasent F +GLIBC_2.32 getaliasent_r F +GLIBC_2.32 getauxval F +GLIBC_2.32 getc F +GLIBC_2.32 getc_unlocked F +GLIBC_2.32 getchar F +GLIBC_2.32 getchar_unlocked F +GLIBC_2.32 getcontext F +GLIBC_2.32 getcpu F +GLIBC_2.32 getcwd F +GLIBC_2.32 getdate F +GLIBC_2.32 getdate_err D 0x4 +GLIBC_2.32 getdate_r F +GLIBC_2.32 getdelim F +GLIBC_2.32 getdents64 F +GLIBC_2.32 getdirentries F +GLIBC_2.32 getdirentries64 F +GLIBC_2.32 getdomainname F +GLIBC_2.32 getdtablesize F +GLIBC_2.32 getegid F +GLIBC_2.32 getentropy F +GLIBC_2.32 getenv F +GLIBC_2.32 geteuid F +GLIBC_2.32 getfsent F +GLIBC_2.32 getfsfile F +GLIBC_2.32 getfsspec F +GLIBC_2.32 getgid F +GLIBC_2.32 getgrent F +GLIBC_2.32 getgrent_r F +GLIBC_2.32 getgrgid F +GLIBC_2.32 getgrgid_r F +GLIBC_2.32 getgrnam F +GLIBC_2.32 getgrnam_r F +GLIBC_2.32 getgrouplist F +GLIBC_2.32 getgroups F +GLIBC_2.32 gethostbyaddr F +GLIBC_2.32 gethostbyaddr_r F +GLIBC_2.32 gethostbyname F +GLIBC_2.32 gethostbyname2 F +GLIBC_2.32 gethostbyname2_r F +GLIBC_2.32 gethostbyname_r F +GLIBC_2.32 gethostent F +GLIBC_2.32 gethostent_r F +GLIBC_2.32 gethostid F +GLIBC_2.32 gethostname F +GLIBC_2.32 getifaddrs F +GLIBC_2.32 getipv4sourcefilter F +GLIBC_2.32 getitimer F +GLIBC_2.32 getline F +GLIBC_2.32 getloadavg F +GLIBC_2.32 getlogin F +GLIBC_2.32 getlogin_r F +GLIBC_2.32 getmntent F +GLIBC_2.32 getmntent_r F +GLIBC_2.32 getnameinfo F +GLIBC_2.32 getnetbyaddr F +GLIBC_2.32 getnetbyaddr_r F +GLIBC_2.32 getnetbyname F +GLIBC_2.32 getnetbyname_r F +GLIBC_2.32 getnetent F +GLIBC_2.32 getnetent_r F +GLIBC_2.32 getnetgrent F +GLIBC_2.32 getnetgrent_r F +GLIBC_2.32 getnetname F +GLIBC_2.32 getopt F +GLIBC_2.32 getopt_long F +GLIBC_2.32 getopt_long_only F +GLIBC_2.32 getpagesize F +GLIBC_2.32 getpass F +GLIBC_2.32 getpeername F +GLIBC_2.32 getpgid F +GLIBC_2.32 getpgrp F +GLIBC_2.32 getpid F +GLIBC_2.32 getppid F +GLIBC_2.32 getpriority F +GLIBC_2.32 getprotobyname F +GLIBC_2.32 getprotobyname_r F +GLIBC_2.32 getprotobynumber F +GLIBC_2.32 getprotobynumber_r F +GLIBC_2.32 getprotoent F +GLIBC_2.32 getprotoent_r F +GLIBC_2.32 getpt F +GLIBC_2.32 getpublickey F +GLIBC_2.32 getpw F +GLIBC_2.32 getpwent F +GLIBC_2.32 getpwent_r F +GLIBC_2.32 getpwnam F +GLIBC_2.32 getpwnam_r F +GLIBC_2.32 getpwuid F +GLIBC_2.32 getpwuid_r F +GLIBC_2.32 getrandom F +GLIBC_2.32 getresgid F +GLIBC_2.32 getresuid F +GLIBC_2.32 getrlimit F +GLIBC_2.32 getrlimit64 F +GLIBC_2.32 getrpcbyname F +GLIBC_2.32 getrpcbyname_r F +GLIBC_2.32 getrpcbynumber F +GLIBC_2.32 getrpcbynumber_r F +GLIBC_2.32 getrpcent F +GLIBC_2.32 getrpcent_r F +GLIBC_2.32 getrpcport F +GLIBC_2.32 getrusage F +GLIBC_2.32 gets F +GLIBC_2.32 getsecretkey F +GLIBC_2.32 getservbyname F +GLIBC_2.32 getservbyname_r F +GLIBC_2.32 getservbyport F +GLIBC_2.32 getservbyport_r F +GLIBC_2.32 getservent F +GLIBC_2.32 getservent_r F +GLIBC_2.32 getsgent F +GLIBC_2.32 getsgent_r F +GLIBC_2.32 getsgnam F +GLIBC_2.32 getsgnam_r F +GLIBC_2.32 getsid F +GLIBC_2.32 getsockname F +GLIBC_2.32 getsockopt F +GLIBC_2.32 getsourcefilter F +GLIBC_2.32 getspent F +GLIBC_2.32 getspent_r F +GLIBC_2.32 getspnam F +GLIBC_2.32 getspnam_r F +GLIBC_2.32 getsubopt F +GLIBC_2.32 gettext F +GLIBC_2.32 gettid F +GLIBC_2.32 gettimeofday F +GLIBC_2.32 getttyent F +GLIBC_2.32 getttynam F +GLIBC_2.32 getuid F +GLIBC_2.32 getusershell F +GLIBC_2.32 getutent F +GLIBC_2.32 getutent_r F +GLIBC_2.32 getutid F +GLIBC_2.32 getutid_r F +GLIBC_2.32 getutline F +GLIBC_2.32 getutline_r F +GLIBC_2.32 getutmp F +GLIBC_2.32 getutmpx F +GLIBC_2.32 getutxent F +GLIBC_2.32 getutxid F +GLIBC_2.32 getutxline F +GLIBC_2.32 getw F +GLIBC_2.32 getwc F +GLIBC_2.32 getwc_unlocked F +GLIBC_2.32 getwchar F +GLIBC_2.32 getwchar_unlocked F +GLIBC_2.32 getwd F +GLIBC_2.32 getxattr F +GLIBC_2.32 glob F +GLIBC_2.32 glob64 F +GLIBC_2.32 glob_pattern_p F +GLIBC_2.32 globfree F +GLIBC_2.32 globfree64 F +GLIBC_2.32 gmtime F +GLIBC_2.32 gmtime_r F +GLIBC_2.32 gnu_dev_major F +GLIBC_2.32 gnu_dev_makedev F +GLIBC_2.32 gnu_dev_minor F +GLIBC_2.32 gnu_get_libc_release F +GLIBC_2.32 gnu_get_libc_version F +GLIBC_2.32 grantpt F +GLIBC_2.32 group_member F +GLIBC_2.32 gsignal F +GLIBC_2.32 gtty F +GLIBC_2.32 h_errlist D 0x14 +GLIBC_2.32 h_nerr D 0x4 +GLIBC_2.32 hasmntopt F +GLIBC_2.32 hcreate F +GLIBC_2.32 hcreate_r F +GLIBC_2.32 hdestroy F +GLIBC_2.32 hdestroy_r F +GLIBC_2.32 herror F +GLIBC_2.32 host2netname F +GLIBC_2.32 hsearch F +GLIBC_2.32 hsearch_r F +GLIBC_2.32 hstrerror F +GLIBC_2.32 htonl F +GLIBC_2.32 htons F +GLIBC_2.32 iconv F +GLIBC_2.32 iconv_close F +GLIBC_2.32 iconv_open F +GLIBC_2.32 if_freenameindex F +GLIBC_2.32 if_indextoname F +GLIBC_2.32 if_nameindex F +GLIBC_2.32 if_nametoindex F +GLIBC_2.32 imaxabs F +GLIBC_2.32 imaxdiv F +GLIBC_2.32 in6addr_any D 0x10 +GLIBC_2.32 in6addr_loopback D 0x10 +GLIBC_2.32 index F +GLIBC_2.32 inet6_opt_append F +GLIBC_2.32 inet6_opt_find F +GLIBC_2.32 inet6_opt_finish F +GLIBC_2.32 inet6_opt_get_val F +GLIBC_2.32 inet6_opt_init F +GLIBC_2.32 inet6_opt_next F +GLIBC_2.32 inet6_opt_set_val F +GLIBC_2.32 inet6_option_alloc F +GLIBC_2.32 inet6_option_append F +GLIBC_2.32 inet6_option_find F +GLIBC_2.32 inet6_option_init F +GLIBC_2.32 inet6_option_next F +GLIBC_2.32 inet6_option_space F +GLIBC_2.32 inet6_rth_add F +GLIBC_2.32 inet6_rth_getaddr F +GLIBC_2.32 inet6_rth_init F +GLIBC_2.32 inet6_rth_reverse F +GLIBC_2.32 inet6_rth_segments F +GLIBC_2.32 inet6_rth_space F +GLIBC_2.32 inet_addr F +GLIBC_2.32 inet_aton F +GLIBC_2.32 inet_lnaof F +GLIBC_2.32 inet_makeaddr F +GLIBC_2.32 inet_netof F +GLIBC_2.32 inet_network F +GLIBC_2.32 inet_nsap_addr F +GLIBC_2.32 inet_nsap_ntoa F +GLIBC_2.32 inet_ntoa F +GLIBC_2.32 inet_ntop F +GLIBC_2.32 inet_pton F +GLIBC_2.32 init_module F +GLIBC_2.32 initgroups F +GLIBC_2.32 initstate F +GLIBC_2.32 initstate_r F +GLIBC_2.32 innetgr F +GLIBC_2.32 inotify_add_watch F +GLIBC_2.32 inotify_init F +GLIBC_2.32 inotify_init1 F +GLIBC_2.32 inotify_rm_watch F +GLIBC_2.32 insque F +GLIBC_2.32 ioctl F +GLIBC_2.32 iruserok F +GLIBC_2.32 iruserok_af F +GLIBC_2.32 isalnum F +GLIBC_2.32 isalnum_l F +GLIBC_2.32 isalpha F +GLIBC_2.32 isalpha_l F +GLIBC_2.32 isascii F +GLIBC_2.32 isatty F +GLIBC_2.32 isblank F +GLIBC_2.32 isblank_l F +GLIBC_2.32 iscntrl F +GLIBC_2.32 iscntrl_l F +GLIBC_2.32 isctype F +GLIBC_2.32 isdigit F +GLIBC_2.32 isdigit_l F +GLIBC_2.32 isfdtype F +GLIBC_2.32 isgraph F +GLIBC_2.32 isgraph_l F +GLIBC_2.32 isinf F +GLIBC_2.32 isinff F +GLIBC_2.32 isinfl F +GLIBC_2.32 islower F +GLIBC_2.32 islower_l F +GLIBC_2.32 isnan F +GLIBC_2.32 isnanf F +GLIBC_2.32 isnanl F +GLIBC_2.32 isprint F +GLIBC_2.32 isprint_l F +GLIBC_2.32 ispunct F +GLIBC_2.32 ispunct_l F +GLIBC_2.32 isspace F +GLIBC_2.32 isspace_l F +GLIBC_2.32 isupper F +GLIBC_2.32 isupper_l F +GLIBC_2.32 iswalnum F +GLIBC_2.32 iswalnum_l F +GLIBC_2.32 iswalpha F +GLIBC_2.32 iswalpha_l F +GLIBC_2.32 iswblank F +GLIBC_2.32 iswblank_l F +GLIBC_2.32 iswcntrl F +GLIBC_2.32 iswcntrl_l F +GLIBC_2.32 iswctype F +GLIBC_2.32 iswctype_l F +GLIBC_2.32 iswdigit F +GLIBC_2.32 iswdigit_l F +GLIBC_2.32 iswgraph F +GLIBC_2.32 iswgraph_l F +GLIBC_2.32 iswlower F +GLIBC_2.32 iswlower_l F +GLIBC_2.32 iswprint F +GLIBC_2.32 iswprint_l F +GLIBC_2.32 iswpunct F +GLIBC_2.32 iswpunct_l F +GLIBC_2.32 iswspace F +GLIBC_2.32 iswspace_l F +GLIBC_2.32 iswupper F +GLIBC_2.32 iswupper_l F +GLIBC_2.32 iswxdigit F +GLIBC_2.32 iswxdigit_l F +GLIBC_2.32 isxdigit F +GLIBC_2.32 isxdigit_l F +GLIBC_2.32 jrand48 F +GLIBC_2.32 jrand48_r F +GLIBC_2.32 key_decryptsession F +GLIBC_2.32 key_decryptsession_pk F +GLIBC_2.32 key_encryptsession F +GLIBC_2.32 key_encryptsession_pk F +GLIBC_2.32 key_gendes F +GLIBC_2.32 key_get_conv F +GLIBC_2.32 key_secretkey_is_set F +GLIBC_2.32 key_setnet F +GLIBC_2.32 key_setsecret F +GLIBC_2.32 kill F +GLIBC_2.32 killpg F +GLIBC_2.32 klogctl F +GLIBC_2.32 l64a F +GLIBC_2.32 labs F +GLIBC_2.32 lchmod F +GLIBC_2.32 lchown F +GLIBC_2.32 lckpwdf F +GLIBC_2.32 lcong48 F +GLIBC_2.32 lcong48_r F +GLIBC_2.32 ldexp F +GLIBC_2.32 ldexpf F +GLIBC_2.32 ldexpl F +GLIBC_2.32 ldiv F +GLIBC_2.32 lfind F +GLIBC_2.32 lgetxattr F +GLIBC_2.32 link F +GLIBC_2.32 linkat F +GLIBC_2.32 listen F +GLIBC_2.32 listxattr F +GLIBC_2.32 llabs F +GLIBC_2.32 lldiv F +GLIBC_2.32 llistxattr F +GLIBC_2.32 localeconv F +GLIBC_2.32 localtime F +GLIBC_2.32 localtime_r F +GLIBC_2.32 lockf F +GLIBC_2.32 lockf64 F +GLIBC_2.32 longjmp F +GLIBC_2.32 lrand48 F +GLIBC_2.32 lrand48_r F +GLIBC_2.32 lremovexattr F +GLIBC_2.32 lsearch F +GLIBC_2.32 lseek F +GLIBC_2.32 lseek64 F +GLIBC_2.32 lsetxattr F +GLIBC_2.32 lutimes F +GLIBC_2.32 madvise F +GLIBC_2.32 makecontext F +GLIBC_2.32 mallinfo F +GLIBC_2.32 malloc F +GLIBC_2.32 malloc_info F +GLIBC_2.32 malloc_stats F +GLIBC_2.32 malloc_trim F +GLIBC_2.32 malloc_usable_size F +GLIBC_2.32 mallopt F +GLIBC_2.32 mallwatch D 0x4 +GLIBC_2.32 mblen F +GLIBC_2.32 mbrlen F +GLIBC_2.32 mbrtoc16 F +GLIBC_2.32 mbrtoc32 F +GLIBC_2.32 mbrtowc F +GLIBC_2.32 mbsinit F +GLIBC_2.32 mbsnrtowcs F +GLIBC_2.32 mbsrtowcs F +GLIBC_2.32 mbstowcs F +GLIBC_2.32 mbtowc F +GLIBC_2.32 mcheck F +GLIBC_2.32 mcheck_check_all F +GLIBC_2.32 mcheck_pedantic F +GLIBC_2.32 memalign F +GLIBC_2.32 memccpy F +GLIBC_2.32 memchr F +GLIBC_2.32 memcmp F +GLIBC_2.32 memcpy F +GLIBC_2.32 memfd_create F +GLIBC_2.32 memfrob F +GLIBC_2.32 memmem F +GLIBC_2.32 memmove F +GLIBC_2.32 mempcpy F +GLIBC_2.32 memrchr F +GLIBC_2.32 memset F +GLIBC_2.32 mincore F +GLIBC_2.32 mkdir F +GLIBC_2.32 mkdirat F +GLIBC_2.32 mkdtemp F +GLIBC_2.32 mkfifo F +GLIBC_2.32 mkfifoat F +GLIBC_2.32 mkostemp F +GLIBC_2.32 mkostemp64 F +GLIBC_2.32 mkostemps F +GLIBC_2.32 mkostemps64 F +GLIBC_2.32 mkstemp F +GLIBC_2.32 mkstemp64 F +GLIBC_2.32 mkstemps F +GLIBC_2.32 mkstemps64 F +GLIBC_2.32 mktemp F +GLIBC_2.32 mktime F +GLIBC_2.32 mlock F +GLIBC_2.32 mlock2 F +GLIBC_2.32 mlockall F +GLIBC_2.32 mmap F +GLIBC_2.32 mmap64 F +GLIBC_2.32 modf F +GLIBC_2.32 modff F +GLIBC_2.32 modfl F +GLIBC_2.32 moncontrol F +GLIBC_2.32 monstartup F +GLIBC_2.32 mount F +GLIBC_2.32 mprobe F +GLIBC_2.32 mprotect F +GLIBC_2.32 mrand48 F +GLIBC_2.32 mrand48_r F +GLIBC_2.32 mremap F +GLIBC_2.32 msgctl F +GLIBC_2.32 msgget F +GLIBC_2.32 msgrcv F +GLIBC_2.32 msgsnd F +GLIBC_2.32 msync F +GLIBC_2.32 mtrace F +GLIBC_2.32 munlock F +GLIBC_2.32 munlockall F +GLIBC_2.32 munmap F +GLIBC_2.32 muntrace F +GLIBC_2.32 name_to_handle_at F +GLIBC_2.32 nanosleep F +GLIBC_2.32 netname2host F +GLIBC_2.32 netname2user F +GLIBC_2.32 newlocale F +GLIBC_2.32 nftw F +GLIBC_2.32 nftw64 F +GLIBC_2.32 ngettext F +GLIBC_2.32 nice F +GLIBC_2.32 nl_langinfo F +GLIBC_2.32 nl_langinfo_l F +GLIBC_2.32 nrand48 F +GLIBC_2.32 nrand48_r F +GLIBC_2.32 ntohl F +GLIBC_2.32 ntohs F +GLIBC_2.32 ntp_adjtime F +GLIBC_2.32 ntp_gettime F +GLIBC_2.32 ntp_gettimex F +GLIBC_2.32 obstack_alloc_failed_handler D 0x4 +GLIBC_2.32 obstack_exit_failure D 0x4 +GLIBC_2.32 obstack_free F +GLIBC_2.32 obstack_printf F +GLIBC_2.32 obstack_vprintf F +GLIBC_2.32 on_exit F +GLIBC_2.32 open F +GLIBC_2.32 open64 F +GLIBC_2.32 open_by_handle_at F +GLIBC_2.32 open_memstream F +GLIBC_2.32 open_wmemstream F +GLIBC_2.32 openat F +GLIBC_2.32 openat64 F +GLIBC_2.32 opendir F +GLIBC_2.32 openlog F +GLIBC_2.32 optarg D 0x4 +GLIBC_2.32 opterr D 0x4 +GLIBC_2.32 optind D 0x4 +GLIBC_2.32 optopt D 0x4 +GLIBC_2.32 parse_printf_format F +GLIBC_2.32 passwd2des F +GLIBC_2.32 pathconf F +GLIBC_2.32 pause F +GLIBC_2.32 pclose F +GLIBC_2.32 perror F +GLIBC_2.32 personality F +GLIBC_2.32 pipe F +GLIBC_2.32 pipe2 F +GLIBC_2.32 pivot_root F +GLIBC_2.32 pkey_alloc F +GLIBC_2.32 pkey_free F +GLIBC_2.32 pkey_get F +GLIBC_2.32 pkey_mprotect F +GLIBC_2.32 pkey_set F +GLIBC_2.32 pmap_getmaps F +GLIBC_2.32 pmap_getport F +GLIBC_2.32 pmap_rmtcall F +GLIBC_2.32 pmap_set F +GLIBC_2.32 pmap_unset F +GLIBC_2.32 poll F +GLIBC_2.32 popen F +GLIBC_2.32 posix_fadvise F +GLIBC_2.32 posix_fadvise64 F +GLIBC_2.32 posix_fallocate F +GLIBC_2.32 posix_fallocate64 F +GLIBC_2.32 posix_madvise F +GLIBC_2.32 posix_memalign F +GLIBC_2.32 posix_openpt F +GLIBC_2.32 posix_spawn F +GLIBC_2.32 posix_spawn_file_actions_addchdir_np F +GLIBC_2.32 posix_spawn_file_actions_addclose F +GLIBC_2.32 posix_spawn_file_actions_adddup2 F +GLIBC_2.32 posix_spawn_file_actions_addfchdir_np F +GLIBC_2.32 posix_spawn_file_actions_addopen F +GLIBC_2.32 posix_spawn_file_actions_destroy F +GLIBC_2.32 posix_spawn_file_actions_init F +GLIBC_2.32 posix_spawnattr_destroy F +GLIBC_2.32 posix_spawnattr_getflags F +GLIBC_2.32 posix_spawnattr_getpgroup F +GLIBC_2.32 posix_spawnattr_getschedparam F +GLIBC_2.32 posix_spawnattr_getschedpolicy F +GLIBC_2.32 posix_spawnattr_getsigdefault F +GLIBC_2.32 posix_spawnattr_getsigmask F +GLIBC_2.32 posix_spawnattr_init F +GLIBC_2.32 posix_spawnattr_setflags F +GLIBC_2.32 posix_spawnattr_setpgroup F +GLIBC_2.32 posix_spawnattr_setschedparam F +GLIBC_2.32 posix_spawnattr_setschedpolicy F +GLIBC_2.32 posix_spawnattr_setsigdefault F +GLIBC_2.32 posix_spawnattr_setsigmask F +GLIBC_2.32 posix_spawnp F +GLIBC_2.32 ppoll F +GLIBC_2.32 prctl F +GLIBC_2.32 pread F +GLIBC_2.32 pread64 F +GLIBC_2.32 preadv F +GLIBC_2.32 preadv2 F +GLIBC_2.32 preadv64 F +GLIBC_2.32 preadv64v2 F +GLIBC_2.32 printf F +GLIBC_2.32 printf_size F +GLIBC_2.32 printf_size_info F +GLIBC_2.32 prlimit F +GLIBC_2.32 prlimit64 F +GLIBC_2.32 process_vm_readv F +GLIBC_2.32 process_vm_writev F +GLIBC_2.32 profil F +GLIBC_2.32 program_invocation_name D 0x4 +GLIBC_2.32 program_invocation_short_name D 0x4 +GLIBC_2.32 pselect F +GLIBC_2.32 psiginfo F +GLIBC_2.32 psignal F +GLIBC_2.32 pthread_attr_destroy F +GLIBC_2.32 pthread_attr_getdetachstate F +GLIBC_2.32 pthread_attr_getinheritsched F +GLIBC_2.32 pthread_attr_getschedparam F +GLIBC_2.32 pthread_attr_getschedpolicy F +GLIBC_2.32 pthread_attr_getscope F +GLIBC_2.32 pthread_attr_getsigmask_np F +GLIBC_2.32 pthread_attr_init F +GLIBC_2.32 pthread_attr_setaffinity_np F +GLIBC_2.32 pthread_attr_setdetachstate F +GLIBC_2.32 pthread_attr_setinheritsched F +GLIBC_2.32 pthread_attr_setschedparam F +GLIBC_2.32 pthread_attr_setschedpolicy F +GLIBC_2.32 pthread_attr_setscope F +GLIBC_2.32 pthread_attr_setsigmask_np F +GLIBC_2.32 pthread_cond_broadcast F +GLIBC_2.32 pthread_cond_destroy F +GLIBC_2.32 pthread_cond_init F +GLIBC_2.32 pthread_cond_signal F +GLIBC_2.32 pthread_cond_timedwait F +GLIBC_2.32 pthread_cond_wait F +GLIBC_2.32 pthread_condattr_destroy F +GLIBC_2.32 pthread_condattr_init F +GLIBC_2.32 pthread_equal F +GLIBC_2.32 pthread_exit F +GLIBC_2.32 pthread_getaffinity_np F +GLIBC_2.32 pthread_getattr_np F +GLIBC_2.32 pthread_getschedparam F +GLIBC_2.32 pthread_mutex_destroy F +GLIBC_2.32 pthread_mutex_init F +GLIBC_2.32 pthread_mutex_lock F +GLIBC_2.32 pthread_mutex_unlock F +GLIBC_2.32 pthread_self F +GLIBC_2.32 pthread_setcancelstate F +GLIBC_2.32 pthread_setcanceltype F +GLIBC_2.32 pthread_setschedparam F +GLIBC_2.32 pthread_sigmask F +GLIBC_2.32 ptrace F +GLIBC_2.32 ptsname F +GLIBC_2.32 ptsname_r F +GLIBC_2.32 putc F +GLIBC_2.32 putc_unlocked F +GLIBC_2.32 putchar F +GLIBC_2.32 putchar_unlocked F +GLIBC_2.32 putenv F +GLIBC_2.32 putgrent F +GLIBC_2.32 putpwent F +GLIBC_2.32 puts F +GLIBC_2.32 putsgent F +GLIBC_2.32 putspent F +GLIBC_2.32 pututline F +GLIBC_2.32 pututxline F +GLIBC_2.32 putw F +GLIBC_2.32 putwc F +GLIBC_2.32 putwc_unlocked F +GLIBC_2.32 putwchar F +GLIBC_2.32 putwchar_unlocked F +GLIBC_2.32 pvalloc F +GLIBC_2.32 pwrite F +GLIBC_2.32 pwrite64 F +GLIBC_2.32 pwritev F +GLIBC_2.32 pwritev2 F +GLIBC_2.32 pwritev64 F +GLIBC_2.32 pwritev64v2 F +GLIBC_2.32 qecvt F +GLIBC_2.32 qecvt_r F +GLIBC_2.32 qfcvt F +GLIBC_2.32 qfcvt_r F +GLIBC_2.32 qgcvt F +GLIBC_2.32 qsort F +GLIBC_2.32 qsort_r F +GLIBC_2.32 quick_exit F +GLIBC_2.32 quotactl F +GLIBC_2.32 raise F +GLIBC_2.32 rand F +GLIBC_2.32 rand_r F +GLIBC_2.32 random F +GLIBC_2.32 random_r F +GLIBC_2.32 rawmemchr F +GLIBC_2.32 rcmd F +GLIBC_2.32 rcmd_af F +GLIBC_2.32 re_comp F +GLIBC_2.32 re_compile_fastmap F +GLIBC_2.32 re_compile_pattern F +GLIBC_2.32 re_exec F +GLIBC_2.32 re_match F +GLIBC_2.32 re_match_2 F +GLIBC_2.32 re_search F +GLIBC_2.32 re_search_2 F +GLIBC_2.32 re_set_registers F +GLIBC_2.32 re_set_syntax F +GLIBC_2.32 re_syntax_options D 0x4 +GLIBC_2.32 read F +GLIBC_2.32 readahead F +GLIBC_2.32 readdir F +GLIBC_2.32 readdir64 F +GLIBC_2.32 readdir64_r F +GLIBC_2.32 readdir_r F +GLIBC_2.32 readlink F +GLIBC_2.32 readlinkat F +GLIBC_2.32 readv F +GLIBC_2.32 realloc F +GLIBC_2.32 reallocarray F +GLIBC_2.32 realpath F +GLIBC_2.32 reboot F +GLIBC_2.32 recv F +GLIBC_2.32 recvfrom F +GLIBC_2.32 recvmmsg F +GLIBC_2.32 recvmsg F +GLIBC_2.32 regcomp F +GLIBC_2.32 regerror F +GLIBC_2.32 regexec F +GLIBC_2.32 regfree F +GLIBC_2.32 register_printf_function F +GLIBC_2.32 register_printf_modifier F +GLIBC_2.32 register_printf_specifier F +GLIBC_2.32 register_printf_type F +GLIBC_2.32 registerrpc F +GLIBC_2.32 remap_file_pages F +GLIBC_2.32 remove F +GLIBC_2.32 removexattr F +GLIBC_2.32 remque F +GLIBC_2.32 rename F +GLIBC_2.32 renameat F +GLIBC_2.32 renameat2 F +GLIBC_2.32 revoke F +GLIBC_2.32 rewind F +GLIBC_2.32 rewinddir F +GLIBC_2.32 rexec F +GLIBC_2.32 rexec_af F +GLIBC_2.32 rexecoptions D 0x4 +GLIBC_2.32 rindex F +GLIBC_2.32 rmdir F +GLIBC_2.32 rpc_createerr D 0x10 +GLIBC_2.32 rpmatch F +GLIBC_2.32 rresvport F +GLIBC_2.32 rresvport_af F +GLIBC_2.32 rtime F +GLIBC_2.32 ruserok F +GLIBC_2.32 ruserok_af F +GLIBC_2.32 ruserpass F +GLIBC_2.32 sbrk F +GLIBC_2.32 scalbn F +GLIBC_2.32 scalbnf F +GLIBC_2.32 scalbnl F +GLIBC_2.32 scandir F +GLIBC_2.32 scandir64 F +GLIBC_2.32 scandirat F +GLIBC_2.32 scandirat64 F +GLIBC_2.32 scanf F +GLIBC_2.32 sched_get_priority_max F +GLIBC_2.32 sched_get_priority_min F +GLIBC_2.32 sched_getaffinity F +GLIBC_2.32 sched_getcpu F +GLIBC_2.32 sched_getparam F +GLIBC_2.32 sched_getscheduler F +GLIBC_2.32 sched_rr_get_interval F +GLIBC_2.32 sched_setaffinity F +GLIBC_2.32 sched_setparam F +GLIBC_2.32 sched_setscheduler F +GLIBC_2.32 sched_yield F +GLIBC_2.32 secure_getenv F +GLIBC_2.32 seed48 F +GLIBC_2.32 seed48_r F +GLIBC_2.32 seekdir F +GLIBC_2.32 select F +GLIBC_2.32 semctl F +GLIBC_2.32 semget F +GLIBC_2.32 semop F +GLIBC_2.32 semtimedop F +GLIBC_2.32 send F +GLIBC_2.32 sendfile F +GLIBC_2.32 sendfile64 F +GLIBC_2.32 sendmmsg F +GLIBC_2.32 sendmsg F +GLIBC_2.32 sendto F +GLIBC_2.32 setaliasent F +GLIBC_2.32 setbuf F +GLIBC_2.32 setbuffer F +GLIBC_2.32 setcontext F +GLIBC_2.32 setdomainname F +GLIBC_2.32 setegid F +GLIBC_2.32 setenv F +GLIBC_2.32 seteuid F +GLIBC_2.32 setfsent F +GLIBC_2.32 setfsgid F +GLIBC_2.32 setfsuid F +GLIBC_2.32 setgid F +GLIBC_2.32 setgrent F +GLIBC_2.32 setgroups F +GLIBC_2.32 sethostent F +GLIBC_2.32 sethostid F +GLIBC_2.32 sethostname F +GLIBC_2.32 setipv4sourcefilter F +GLIBC_2.32 setitimer F +GLIBC_2.32 setjmp F +GLIBC_2.32 setlinebuf F +GLIBC_2.32 setlocale F +GLIBC_2.32 setlogin F +GLIBC_2.32 setlogmask F +GLIBC_2.32 setmntent F +GLIBC_2.32 setnetent F +GLIBC_2.32 setnetgrent F +GLIBC_2.32 setns F +GLIBC_2.32 setpgid F +GLIBC_2.32 setpgrp F +GLIBC_2.32 setpriority F +GLIBC_2.32 setprotoent F +GLIBC_2.32 setpwent F +GLIBC_2.32 setregid F +GLIBC_2.32 setresgid F +GLIBC_2.32 setresuid F +GLIBC_2.32 setreuid F +GLIBC_2.32 setrlimit F +GLIBC_2.32 setrlimit64 F +GLIBC_2.32 setrpcent F +GLIBC_2.32 setservent F +GLIBC_2.32 setsgent F +GLIBC_2.32 setsid F +GLIBC_2.32 setsockopt F +GLIBC_2.32 setsourcefilter F +GLIBC_2.32 setspent F +GLIBC_2.32 setstate F +GLIBC_2.32 setstate_r F +GLIBC_2.32 settimeofday F +GLIBC_2.32 setttyent F +GLIBC_2.32 setuid F +GLIBC_2.32 setusershell F +GLIBC_2.32 setutent F +GLIBC_2.32 setutxent F +GLIBC_2.32 setvbuf F +GLIBC_2.32 setxattr F +GLIBC_2.32 sgetsgent F +GLIBC_2.32 sgetsgent_r F +GLIBC_2.32 sgetspent F +GLIBC_2.32 sgetspent_r F +GLIBC_2.32 shmat F +GLIBC_2.32 shmctl F +GLIBC_2.32 shmdt F +GLIBC_2.32 shmget F +GLIBC_2.32 shutdown F +GLIBC_2.32 sigabbrev_np F +GLIBC_2.32 sigaction F +GLIBC_2.32 sigaddset F +GLIBC_2.32 sigaltstack F +GLIBC_2.32 sigandset F +GLIBC_2.32 sigblock F +GLIBC_2.32 sigdelset F +GLIBC_2.32 sigdescr_np F +GLIBC_2.32 sigemptyset F +GLIBC_2.32 sigfillset F +GLIBC_2.32 siggetmask F +GLIBC_2.32 sighold F +GLIBC_2.32 sigignore F +GLIBC_2.32 siginterrupt F +GLIBC_2.32 sigisemptyset F +GLIBC_2.32 sigismember F +GLIBC_2.32 siglongjmp F +GLIBC_2.32 signal F +GLIBC_2.32 signalfd F +GLIBC_2.32 sigorset F +GLIBC_2.32 sigpause F +GLIBC_2.32 sigpending F +GLIBC_2.32 sigprocmask F +GLIBC_2.32 sigqueue F +GLIBC_2.32 sigrelse F +GLIBC_2.32 sigreturn F +GLIBC_2.32 sigset F +GLIBC_2.32 sigsetmask F +GLIBC_2.32 sigstack F +GLIBC_2.32 sigsuspend F +GLIBC_2.32 sigtimedwait F +GLIBC_2.32 sigwait F +GLIBC_2.32 sigwaitinfo F +GLIBC_2.32 sleep F +GLIBC_2.32 snprintf F +GLIBC_2.32 sockatmark F +GLIBC_2.32 socket F +GLIBC_2.32 socketpair F +GLIBC_2.32 splice F +GLIBC_2.32 sprintf F +GLIBC_2.32 sprofil F +GLIBC_2.32 srand F +GLIBC_2.32 srand48 F +GLIBC_2.32 srand48_r F +GLIBC_2.32 srandom F +GLIBC_2.32 srandom_r F +GLIBC_2.32 sscanf F +GLIBC_2.32 ssignal F +GLIBC_2.32 statfs F +GLIBC_2.32 statfs64 F +GLIBC_2.32 statvfs F +GLIBC_2.32 statvfs64 F +GLIBC_2.32 statx F +GLIBC_2.32 stderr D 0x4 +GLIBC_2.32 stdin D 0x4 +GLIBC_2.32 stdout D 0x4 +GLIBC_2.32 stpcpy F +GLIBC_2.32 stpncpy F +GLIBC_2.32 strcasecmp F +GLIBC_2.32 strcasecmp_l F +GLIBC_2.32 strcasestr F +GLIBC_2.32 strcat F +GLIBC_2.32 strchr F +GLIBC_2.32 strchrnul F +GLIBC_2.32 strcmp F +GLIBC_2.32 strcoll F +GLIBC_2.32 strcoll_l F +GLIBC_2.32 strcpy F +GLIBC_2.32 strcspn F +GLIBC_2.32 strdup F +GLIBC_2.32 strerror F +GLIBC_2.32 strerror_l F +GLIBC_2.32 strerror_r F +GLIBC_2.32 strerrordesc_np F +GLIBC_2.32 strerrorname_np F +GLIBC_2.32 strfmon F +GLIBC_2.32 strfmon_l F +GLIBC_2.32 strfromd F +GLIBC_2.32 strfromf F +GLIBC_2.32 strfromf128 F +GLIBC_2.32 strfromf32 F +GLIBC_2.32 strfromf32x F +GLIBC_2.32 strfromf64 F +GLIBC_2.32 strfromf64x F +GLIBC_2.32 strfroml F +GLIBC_2.32 strfry F +GLIBC_2.32 strftime F +GLIBC_2.32 strftime_l F +GLIBC_2.32 strlen F +GLIBC_2.32 strncasecmp F +GLIBC_2.32 strncasecmp_l F +GLIBC_2.32 strncat F +GLIBC_2.32 strncmp F +GLIBC_2.32 strncpy F +GLIBC_2.32 strndup F +GLIBC_2.32 strnlen F +GLIBC_2.32 strpbrk F +GLIBC_2.32 strptime F +GLIBC_2.32 strptime_l F +GLIBC_2.32 strrchr F +GLIBC_2.32 strsep F +GLIBC_2.32 strsignal F +GLIBC_2.32 strspn F +GLIBC_2.32 strstr F +GLIBC_2.32 strtod F +GLIBC_2.32 strtod_l F +GLIBC_2.32 strtof F +GLIBC_2.32 strtof128 F +GLIBC_2.32 strtof128_l F +GLIBC_2.32 strtof32 F +GLIBC_2.32 strtof32_l F +GLIBC_2.32 strtof32x F +GLIBC_2.32 strtof32x_l F +GLIBC_2.32 strtof64 F +GLIBC_2.32 strtof64_l F +GLIBC_2.32 strtof64x F +GLIBC_2.32 strtof64x_l F +GLIBC_2.32 strtof_l F +GLIBC_2.32 strtoimax F +GLIBC_2.32 strtok F +GLIBC_2.32 strtok_r F +GLIBC_2.32 strtol F +GLIBC_2.32 strtol_l F +GLIBC_2.32 strtold F +GLIBC_2.32 strtold_l F +GLIBC_2.32 strtoll F +GLIBC_2.32 strtoll_l F +GLIBC_2.32 strtoq F +GLIBC_2.32 strtoul F +GLIBC_2.32 strtoul_l F +GLIBC_2.32 strtoull F +GLIBC_2.32 strtoull_l F +GLIBC_2.32 strtoumax F +GLIBC_2.32 strtouq F +GLIBC_2.32 strverscmp F +GLIBC_2.32 strxfrm F +GLIBC_2.32 strxfrm_l F +GLIBC_2.32 stty F +GLIBC_2.32 svc_exit F +GLIBC_2.32 svc_fdset D 0x80 +GLIBC_2.32 svc_getreq F +GLIBC_2.32 svc_getreq_common F +GLIBC_2.32 svc_getreq_poll F +GLIBC_2.32 svc_getreqset F +GLIBC_2.32 svc_max_pollfd D 0x4 +GLIBC_2.32 svc_pollfd D 0x4 +GLIBC_2.32 svc_register F +GLIBC_2.32 svc_run F +GLIBC_2.32 svc_sendreply F +GLIBC_2.32 svc_unregister F +GLIBC_2.32 svcauthdes_stats D 0xc +GLIBC_2.32 svcerr_auth F +GLIBC_2.32 svcerr_decode F +GLIBC_2.32 svcerr_noproc F +GLIBC_2.32 svcerr_noprog F +GLIBC_2.32 svcerr_progvers F +GLIBC_2.32 svcerr_systemerr F +GLIBC_2.32 svcerr_weakauth F +GLIBC_2.32 svcfd_create F +GLIBC_2.32 svcraw_create F +GLIBC_2.32 svctcp_create F +GLIBC_2.32 svcudp_bufcreate F +GLIBC_2.32 svcudp_create F +GLIBC_2.32 svcudp_enablecache F +GLIBC_2.32 svcunix_create F +GLIBC_2.32 svcunixfd_create F +GLIBC_2.32 swab F +GLIBC_2.32 swapcontext F +GLIBC_2.32 swapoff F +GLIBC_2.32 swapon F +GLIBC_2.32 swprintf F +GLIBC_2.32 swscanf F +GLIBC_2.32 symlink F +GLIBC_2.32 symlinkat F +GLIBC_2.32 sync F +GLIBC_2.32 sync_file_range F +GLIBC_2.32 syncfs F +GLIBC_2.32 syscall F +GLIBC_2.32 sysconf F +GLIBC_2.32 sysinfo F +GLIBC_2.32 syslog F +GLIBC_2.32 system F +GLIBC_2.32 sysv_signal F +GLIBC_2.32 tcdrain F +GLIBC_2.32 tcflow F +GLIBC_2.32 tcflush F +GLIBC_2.32 tcgetattr F +GLIBC_2.32 tcgetpgrp F +GLIBC_2.32 tcgetsid F +GLIBC_2.32 tcsendbreak F +GLIBC_2.32 tcsetattr F +GLIBC_2.32 tcsetpgrp F +GLIBC_2.32 tdelete F +GLIBC_2.32 tdestroy F +GLIBC_2.32 tee F +GLIBC_2.32 telldir F +GLIBC_2.32 tempnam F +GLIBC_2.32 textdomain F +GLIBC_2.32 tfind F +GLIBC_2.32 tgkill F +GLIBC_2.32 thrd_current F +GLIBC_2.32 thrd_equal F +GLIBC_2.32 thrd_sleep F +GLIBC_2.32 thrd_yield F +GLIBC_2.32 time F +GLIBC_2.32 timegm F +GLIBC_2.32 timelocal F +GLIBC_2.32 timerfd_create F +GLIBC_2.32 timerfd_gettime F +GLIBC_2.32 timerfd_settime F +GLIBC_2.32 times F +GLIBC_2.32 timespec_get F +GLIBC_2.32 timezone D 0x4 +GLIBC_2.32 tmpfile F +GLIBC_2.32 tmpfile64 F +GLIBC_2.32 tmpnam F +GLIBC_2.32 tmpnam_r F +GLIBC_2.32 toascii F +GLIBC_2.32 tolower F +GLIBC_2.32 tolower_l F +GLIBC_2.32 toupper F +GLIBC_2.32 toupper_l F +GLIBC_2.32 towctrans F +GLIBC_2.32 towctrans_l F +GLIBC_2.32 towlower F +GLIBC_2.32 towlower_l F +GLIBC_2.32 towupper F +GLIBC_2.32 towupper_l F +GLIBC_2.32 tr_break F +GLIBC_2.32 truncate F +GLIBC_2.32 truncate64 F +GLIBC_2.32 tsearch F +GLIBC_2.32 ttyname F +GLIBC_2.32 ttyname_r F +GLIBC_2.32 ttyslot F +GLIBC_2.32 twalk F +GLIBC_2.32 twalk_r F +GLIBC_2.32 tzname D 0x8 +GLIBC_2.32 tzset F +GLIBC_2.32 ualarm F +GLIBC_2.32 ulckpwdf F +GLIBC_2.32 ulimit F +GLIBC_2.32 umask F +GLIBC_2.32 umount F +GLIBC_2.32 umount2 F +GLIBC_2.32 uname F +GLIBC_2.32 ungetc F +GLIBC_2.32 ungetwc F +GLIBC_2.32 unlink F +GLIBC_2.32 unlinkat F +GLIBC_2.32 unlockpt F +GLIBC_2.32 unsetenv F +GLIBC_2.32 unshare F +GLIBC_2.32 updwtmp F +GLIBC_2.32 updwtmpx F +GLIBC_2.32 uselocale F +GLIBC_2.32 user2netname F +GLIBC_2.32 usleep F +GLIBC_2.32 utime F +GLIBC_2.32 utimensat F +GLIBC_2.32 utimes F +GLIBC_2.32 utmpname F +GLIBC_2.32 utmpxname F +GLIBC_2.32 valloc F +GLIBC_2.32 vasprintf F +GLIBC_2.32 vdprintf F +GLIBC_2.32 verr F +GLIBC_2.32 verrx F +GLIBC_2.32 versionsort F +GLIBC_2.32 versionsort64 F +GLIBC_2.32 vfork F +GLIBC_2.32 vfprintf F +GLIBC_2.32 vfscanf F +GLIBC_2.32 vfwprintf F +GLIBC_2.32 vfwscanf F +GLIBC_2.32 vhangup F +GLIBC_2.32 vlimit F +GLIBC_2.32 vmsplice F +GLIBC_2.32 vprintf F +GLIBC_2.32 vscanf F +GLIBC_2.32 vsnprintf F +GLIBC_2.32 vsprintf F +GLIBC_2.32 vsscanf F +GLIBC_2.32 vswprintf F +GLIBC_2.32 vswscanf F +GLIBC_2.32 vsyslog F +GLIBC_2.32 vtimes F +GLIBC_2.32 vwarn F +GLIBC_2.32 vwarnx F +GLIBC_2.32 vwprintf F +GLIBC_2.32 vwscanf F +GLIBC_2.32 wait F +GLIBC_2.32 wait3 F +GLIBC_2.32 wait4 F +GLIBC_2.32 waitid F +GLIBC_2.32 waitpid F +GLIBC_2.32 warn F +GLIBC_2.32 warnx F +GLIBC_2.32 wcpcpy F +GLIBC_2.32 wcpncpy F +GLIBC_2.32 wcrtomb F +GLIBC_2.32 wcscasecmp F +GLIBC_2.32 wcscasecmp_l F +GLIBC_2.32 wcscat F +GLIBC_2.32 wcschr F +GLIBC_2.32 wcschrnul F +GLIBC_2.32 wcscmp F +GLIBC_2.32 wcscoll F +GLIBC_2.32 wcscoll_l F +GLIBC_2.32 wcscpy F +GLIBC_2.32 wcscspn F +GLIBC_2.32 wcsdup F +GLIBC_2.32 wcsftime F +GLIBC_2.32 wcsftime_l F +GLIBC_2.32 wcslen F +GLIBC_2.32 wcsncasecmp F +GLIBC_2.32 wcsncasecmp_l F +GLIBC_2.32 wcsncat F +GLIBC_2.32 wcsncmp F +GLIBC_2.32 wcsncpy F +GLIBC_2.32 wcsnlen F +GLIBC_2.32 wcsnrtombs F +GLIBC_2.32 wcspbrk F +GLIBC_2.32 wcsrchr F +GLIBC_2.32 wcsrtombs F +GLIBC_2.32 wcsspn F +GLIBC_2.32 wcsstr F +GLIBC_2.32 wcstod F +GLIBC_2.32 wcstod_l F +GLIBC_2.32 wcstof F +GLIBC_2.32 wcstof128 F +GLIBC_2.32 wcstof128_l F +GLIBC_2.32 wcstof32 F +GLIBC_2.32 wcstof32_l F +GLIBC_2.32 wcstof32x F +GLIBC_2.32 wcstof32x_l F +GLIBC_2.32 wcstof64 F +GLIBC_2.32 wcstof64_l F +GLIBC_2.32 wcstof64x F +GLIBC_2.32 wcstof64x_l F +GLIBC_2.32 wcstof_l F +GLIBC_2.32 wcstoimax F +GLIBC_2.32 wcstok F +GLIBC_2.32 wcstol F +GLIBC_2.32 wcstol_l F +GLIBC_2.32 wcstold F +GLIBC_2.32 wcstold_l F +GLIBC_2.32 wcstoll F +GLIBC_2.32 wcstoll_l F +GLIBC_2.32 wcstombs F +GLIBC_2.32 wcstoq F +GLIBC_2.32 wcstoul F +GLIBC_2.32 wcstoul_l F +GLIBC_2.32 wcstoull F +GLIBC_2.32 wcstoull_l F +GLIBC_2.32 wcstoumax F +GLIBC_2.32 wcstouq F +GLIBC_2.32 wcswcs F +GLIBC_2.32 wcswidth F +GLIBC_2.32 wcsxfrm F +GLIBC_2.32 wcsxfrm_l F +GLIBC_2.32 wctob F +GLIBC_2.32 wctomb F +GLIBC_2.32 wctrans F +GLIBC_2.32 wctrans_l F +GLIBC_2.32 wctype F +GLIBC_2.32 wctype_l F +GLIBC_2.32 wcwidth F +GLIBC_2.32 wmemchr F +GLIBC_2.32 wmemcmp F +GLIBC_2.32 wmemcpy F +GLIBC_2.32 wmemmove F +GLIBC_2.32 wmempcpy F +GLIBC_2.32 wmemset F +GLIBC_2.32 wordexp F +GLIBC_2.32 wordfree F +GLIBC_2.32 wprintf F +GLIBC_2.32 write F +GLIBC_2.32 writev F +GLIBC_2.32 wscanf F +GLIBC_2.32 xdecrypt F +GLIBC_2.32 xdr_accepted_reply F +GLIBC_2.32 xdr_array F +GLIBC_2.32 xdr_authdes_cred F +GLIBC_2.32 xdr_authdes_verf F +GLIBC_2.32 xdr_authunix_parms F +GLIBC_2.32 xdr_bool F +GLIBC_2.32 xdr_bytes F +GLIBC_2.32 xdr_callhdr F +GLIBC_2.32 xdr_callmsg F +GLIBC_2.32 xdr_char F +GLIBC_2.32 xdr_cryptkeyarg F +GLIBC_2.32 xdr_cryptkeyarg2 F +GLIBC_2.32 xdr_cryptkeyres F +GLIBC_2.32 xdr_des_block F +GLIBC_2.32 xdr_double F +GLIBC_2.32 xdr_enum F +GLIBC_2.32 xdr_float F +GLIBC_2.32 xdr_free F +GLIBC_2.32 xdr_getcredres F +GLIBC_2.32 xdr_hyper F +GLIBC_2.32 xdr_int F +GLIBC_2.32 xdr_int16_t F +GLIBC_2.32 xdr_int32_t F +GLIBC_2.32 xdr_int64_t F +GLIBC_2.32 xdr_int8_t F +GLIBC_2.32 xdr_key_netstarg F +GLIBC_2.32 xdr_key_netstres F +GLIBC_2.32 xdr_keybuf F +GLIBC_2.32 xdr_keystatus F +GLIBC_2.32 xdr_long F +GLIBC_2.32 xdr_longlong_t F +GLIBC_2.32 xdr_netnamestr F +GLIBC_2.32 xdr_netobj F +GLIBC_2.32 xdr_opaque F +GLIBC_2.32 xdr_opaque_auth F +GLIBC_2.32 xdr_pmap F +GLIBC_2.32 xdr_pmaplist F +GLIBC_2.32 xdr_pointer F +GLIBC_2.32 xdr_quad_t F +GLIBC_2.32 xdr_reference F +GLIBC_2.32 xdr_rejected_reply F +GLIBC_2.32 xdr_replymsg F +GLIBC_2.32 xdr_rmtcall_args F +GLIBC_2.32 xdr_rmtcallres F +GLIBC_2.32 xdr_short F +GLIBC_2.32 xdr_sizeof F +GLIBC_2.32 xdr_string F +GLIBC_2.32 xdr_u_char F +GLIBC_2.32 xdr_u_hyper F +GLIBC_2.32 xdr_u_int F +GLIBC_2.32 xdr_u_long F +GLIBC_2.32 xdr_u_longlong_t F +GLIBC_2.32 xdr_u_quad_t F +GLIBC_2.32 xdr_u_short F +GLIBC_2.32 xdr_uint16_t F +GLIBC_2.32 xdr_uint32_t F +GLIBC_2.32 xdr_uint64_t F +GLIBC_2.32 xdr_uint8_t F +GLIBC_2.32 xdr_union F +GLIBC_2.32 xdr_unixcred F +GLIBC_2.32 xdr_vector F +GLIBC_2.32 xdr_void F +GLIBC_2.32 xdr_wrapstring F +GLIBC_2.32 xdrmem_create F +GLIBC_2.32 xdrrec_create F +GLIBC_2.32 xdrrec_endofrecord F +GLIBC_2.32 xdrrec_eof F +GLIBC_2.32 xdrrec_skiprecord F +GLIBC_2.32 xdrstdio_create F +GLIBC_2.32 xencrypt F +GLIBC_2.32 xprt_register F +GLIBC_2.32 xprt_unregister F diff --git a/sysdeps/unix/sysv/linux/riscv/libcrypt.abilist b/sysdeps/unix/sysv/linux/riscv/libcrypt.abilist new file mode 100644 index 0000000000..6bd253453e --- /dev/null +++ b/sysdeps/unix/sysv/linux/riscv/libcrypt.abilist @@ -0,0 +1,2 @@ +GLIBC_2.32 crypt F +GLIBC_2.32 crypt_r F diff --git a/sysdeps/unix/sysv/linux/riscv/libdl.abilist b/sysdeps/unix/sysv/linux/riscv/libdl.abilist new file mode 100644 index 0000000000..bf20b0c404 --- /dev/null +++ b/sysdeps/unix/sysv/linux/riscv/libdl.abilist @@ -0,0 +1,9 @@ +GLIBC_2.32 dladdr F +GLIBC_2.32 dladdr1 F +GLIBC_2.32 dlclose F +GLIBC_2.32 dlerror F +GLIBC_2.32 dlinfo F +GLIBC_2.32 dlmopen F +GLIBC_2.32 dlopen F +GLIBC_2.32 dlsym F +GLIBC_2.32 dlvsym F diff --git a/sysdeps/unix/sysv/linux/riscv/libm.abilist b/sysdeps/unix/sysv/linux/riscv/libm.abilist new file mode 100644 index 0000000000..a79e180258 --- /dev/null +++ b/sysdeps/unix/sysv/linux/riscv/libm.abilist @@ -0,0 +1,940 @@ +GLIBC_2.32 __clog10 F +GLIBC_2.32 __clog10f F +GLIBC_2.32 __clog10l F +GLIBC_2.32 __finite F +GLIBC_2.32 __finitef F +GLIBC_2.32 __finitel F +GLIBC_2.32 __fpclassify F +GLIBC_2.32 __fpclassifyf F +GLIBC_2.32 __fpclassifyl F +GLIBC_2.32 __iseqsig F +GLIBC_2.32 __iseqsigf F +GLIBC_2.32 __iseqsigl F +GLIBC_2.32 __issignaling F +GLIBC_2.32 __issignalingf F +GLIBC_2.32 __issignalingl F +GLIBC_2.32 __signbit F +GLIBC_2.32 __signbitf F +GLIBC_2.32 __signbitl F +GLIBC_2.32 __signgam D 0x4 +GLIBC_2.32 acos F +GLIBC_2.32 acosf F +GLIBC_2.32 acosf128 F +GLIBC_2.32 acosf32 F +GLIBC_2.32 acosf32x F +GLIBC_2.32 acosf64 F +GLIBC_2.32 acosf64x F +GLIBC_2.32 acosh F +GLIBC_2.32 acoshf F +GLIBC_2.32 acoshf128 F +GLIBC_2.32 acoshf32 F +GLIBC_2.32 acoshf32x F +GLIBC_2.32 acoshf64 F +GLIBC_2.32 acoshf64x F +GLIBC_2.32 acoshl F +GLIBC_2.32 acosl F +GLIBC_2.32 asin F +GLIBC_2.32 asinf F +GLIBC_2.32 asinf128 F +GLIBC_2.32 asinf32 F +GLIBC_2.32 asinf32x F +GLIBC_2.32 asinf64 F +GLIBC_2.32 asinf64x F +GLIBC_2.32 asinh F +GLIBC_2.32 asinhf F +GLIBC_2.32 asinhf128 F +GLIBC_2.32 asinhf32 F +GLIBC_2.32 asinhf32x F +GLIBC_2.32 asinhf64 F +GLIBC_2.32 asinhf64x F +GLIBC_2.32 asinhl F +GLIBC_2.32 asinl F +GLIBC_2.32 atan F +GLIBC_2.32 atan2 F +GLIBC_2.32 atan2f F +GLIBC_2.32 atan2f128 F +GLIBC_2.32 atan2f32 F +GLIBC_2.32 atan2f32x F +GLIBC_2.32 atan2f64 F +GLIBC_2.32 atan2f64x F +GLIBC_2.32 atan2l F +GLIBC_2.32 atanf F +GLIBC_2.32 atanf128 F +GLIBC_2.32 atanf32 F +GLIBC_2.32 atanf32x F +GLIBC_2.32 atanf64 F +GLIBC_2.32 atanf64x F +GLIBC_2.32 atanh F +GLIBC_2.32 atanhf F +GLIBC_2.32 atanhf128 F +GLIBC_2.32 atanhf32 F +GLIBC_2.32 atanhf32x F +GLIBC_2.32 atanhf64 F +GLIBC_2.32 atanhf64x F +GLIBC_2.32 atanhl F +GLIBC_2.32 atanl F +GLIBC_2.32 cabs F +GLIBC_2.32 cabsf F +GLIBC_2.32 cabsf128 F +GLIBC_2.32 cabsf32 F +GLIBC_2.32 cabsf32x F +GLIBC_2.32 cabsf64 F +GLIBC_2.32 cabsf64x F +GLIBC_2.32 cabsl F +GLIBC_2.32 cacos F +GLIBC_2.32 cacosf F +GLIBC_2.32 cacosf128 F +GLIBC_2.32 cacosf32 F +GLIBC_2.32 cacosf32x F +GLIBC_2.32 cacosf64 F +GLIBC_2.32 cacosf64x F +GLIBC_2.32 cacosh F +GLIBC_2.32 cacoshf F +GLIBC_2.32 cacoshf128 F +GLIBC_2.32 cacoshf32 F +GLIBC_2.32 cacoshf32x F +GLIBC_2.32 cacoshf64 F +GLIBC_2.32 cacoshf64x F +GLIBC_2.32 cacoshl F +GLIBC_2.32 cacosl F +GLIBC_2.32 canonicalize F +GLIBC_2.32 canonicalizef F +GLIBC_2.32 canonicalizef128 F +GLIBC_2.32 canonicalizef32 F +GLIBC_2.32 canonicalizef32x F +GLIBC_2.32 canonicalizef64 F +GLIBC_2.32 canonicalizef64x F +GLIBC_2.32 canonicalizel F +GLIBC_2.32 carg F +GLIBC_2.32 cargf F +GLIBC_2.32 cargf128 F +GLIBC_2.32 cargf32 F +GLIBC_2.32 cargf32x F +GLIBC_2.32 cargf64 F +GLIBC_2.32 cargf64x F +GLIBC_2.32 cargl F +GLIBC_2.32 casin F +GLIBC_2.32 casinf F +GLIBC_2.32 casinf128 F +GLIBC_2.32 casinf32 F +GLIBC_2.32 casinf32x F +GLIBC_2.32 casinf64 F +GLIBC_2.32 casinf64x F +GLIBC_2.32 casinh F +GLIBC_2.32 casinhf F +GLIBC_2.32 casinhf128 F +GLIBC_2.32 casinhf32 F +GLIBC_2.32 casinhf32x F +GLIBC_2.32 casinhf64 F +GLIBC_2.32 casinhf64x F +GLIBC_2.32 casinhl F +GLIBC_2.32 casinl F +GLIBC_2.32 catan F +GLIBC_2.32 catanf F +GLIBC_2.32 catanf128 F +GLIBC_2.32 catanf32 F +GLIBC_2.32 catanf32x F +GLIBC_2.32 catanf64 F +GLIBC_2.32 catanf64x F +GLIBC_2.32 catanh F +GLIBC_2.32 catanhf F +GLIBC_2.32 catanhf128 F +GLIBC_2.32 catanhf32 F +GLIBC_2.32 catanhf32x F +GLIBC_2.32 catanhf64 F +GLIBC_2.32 catanhf64x F +GLIBC_2.32 catanhl F +GLIBC_2.32 catanl F +GLIBC_2.32 cbrt F +GLIBC_2.32 cbrtf F +GLIBC_2.32 cbrtf128 F +GLIBC_2.32 cbrtf32 F +GLIBC_2.32 cbrtf32x F +GLIBC_2.32 cbrtf64 F +GLIBC_2.32 cbrtf64x F +GLIBC_2.32 cbrtl F +GLIBC_2.32 ccos F +GLIBC_2.32 ccosf F +GLIBC_2.32 ccosf128 F +GLIBC_2.32 ccosf32 F +GLIBC_2.32 ccosf32x F +GLIBC_2.32 ccosf64 F +GLIBC_2.32 ccosf64x F +GLIBC_2.32 ccosh F +GLIBC_2.32 ccoshf F +GLIBC_2.32 ccoshf128 F +GLIBC_2.32 ccoshf32 F +GLIBC_2.32 ccoshf32x F +GLIBC_2.32 ccoshf64 F +GLIBC_2.32 ccoshf64x F +GLIBC_2.32 ccoshl F +GLIBC_2.32 ccosl F +GLIBC_2.32 ceil F +GLIBC_2.32 ceilf F +GLIBC_2.32 ceilf128 F +GLIBC_2.32 ceilf32 F +GLIBC_2.32 ceilf32x F +GLIBC_2.32 ceilf64 F +GLIBC_2.32 ceilf64x F +GLIBC_2.32 ceill F +GLIBC_2.32 cexp F +GLIBC_2.32 cexpf F +GLIBC_2.32 cexpf128 F +GLIBC_2.32 cexpf32 F +GLIBC_2.32 cexpf32x F +GLIBC_2.32 cexpf64 F +GLIBC_2.32 cexpf64x F +GLIBC_2.32 cexpl F +GLIBC_2.32 cimag F +GLIBC_2.32 cimagf F +GLIBC_2.32 cimagf128 F +GLIBC_2.32 cimagf32 F +GLIBC_2.32 cimagf32x F +GLIBC_2.32 cimagf64 F +GLIBC_2.32 cimagf64x F +GLIBC_2.32 cimagl F +GLIBC_2.32 clog F +GLIBC_2.32 clog10 F +GLIBC_2.32 clog10f F +GLIBC_2.32 clog10f128 F +GLIBC_2.32 clog10f32 F +GLIBC_2.32 clog10f32x F +GLIBC_2.32 clog10f64 F +GLIBC_2.32 clog10f64x F +GLIBC_2.32 clog10l F +GLIBC_2.32 clogf F +GLIBC_2.32 clogf128 F +GLIBC_2.32 clogf32 F +GLIBC_2.32 clogf32x F +GLIBC_2.32 clogf64 F +GLIBC_2.32 clogf64x F +GLIBC_2.32 clogl F +GLIBC_2.32 conj F +GLIBC_2.32 conjf F +GLIBC_2.32 conjf128 F +GLIBC_2.32 conjf32 F +GLIBC_2.32 conjf32x F +GLIBC_2.32 conjf64 F +GLIBC_2.32 conjf64x F +GLIBC_2.32 conjl F +GLIBC_2.32 copysign F +GLIBC_2.32 copysignf F +GLIBC_2.32 copysignf128 F +GLIBC_2.32 copysignf32 F +GLIBC_2.32 copysignf32x F +GLIBC_2.32 copysignf64 F +GLIBC_2.32 copysignf64x F +GLIBC_2.32 copysignl F +GLIBC_2.32 cos F +GLIBC_2.32 cosf F +GLIBC_2.32 cosf128 F +GLIBC_2.32 cosf32 F +GLIBC_2.32 cosf32x F +GLIBC_2.32 cosf64 F +GLIBC_2.32 cosf64x F +GLIBC_2.32 cosh F +GLIBC_2.32 coshf F +GLIBC_2.32 coshf128 F +GLIBC_2.32 coshf32 F +GLIBC_2.32 coshf32x F +GLIBC_2.32 coshf64 F +GLIBC_2.32 coshf64x F +GLIBC_2.32 coshl F +GLIBC_2.32 cosl F +GLIBC_2.32 cpow F +GLIBC_2.32 cpowf F +GLIBC_2.32 cpowf128 F +GLIBC_2.32 cpowf32 F +GLIBC_2.32 cpowf32x F +GLIBC_2.32 cpowf64 F +GLIBC_2.32 cpowf64x F +GLIBC_2.32 cpowl F +GLIBC_2.32 cproj F +GLIBC_2.32 cprojf F +GLIBC_2.32 cprojf128 F +GLIBC_2.32 cprojf32 F +GLIBC_2.32 cprojf32x F +GLIBC_2.32 cprojf64 F +GLIBC_2.32 cprojf64x F +GLIBC_2.32 cprojl F +GLIBC_2.32 creal F +GLIBC_2.32 crealf F +GLIBC_2.32 crealf128 F +GLIBC_2.32 crealf32 F +GLIBC_2.32 crealf32x F +GLIBC_2.32 crealf64 F +GLIBC_2.32 crealf64x F +GLIBC_2.32 creall F +GLIBC_2.32 csin F +GLIBC_2.32 csinf F +GLIBC_2.32 csinf128 F +GLIBC_2.32 csinf32 F +GLIBC_2.32 csinf32x F +GLIBC_2.32 csinf64 F +GLIBC_2.32 csinf64x F +GLIBC_2.32 csinh F +GLIBC_2.32 csinhf F +GLIBC_2.32 csinhf128 F +GLIBC_2.32 csinhf32 F +GLIBC_2.32 csinhf32x F +GLIBC_2.32 csinhf64 F +GLIBC_2.32 csinhf64x F +GLIBC_2.32 csinhl F +GLIBC_2.32 csinl F +GLIBC_2.32 csqrt F +GLIBC_2.32 csqrtf F +GLIBC_2.32 csqrtf128 F +GLIBC_2.32 csqrtf32 F +GLIBC_2.32 csqrtf32x F +GLIBC_2.32 csqrtf64 F +GLIBC_2.32 csqrtf64x F +GLIBC_2.32 csqrtl F +GLIBC_2.32 ctan F +GLIBC_2.32 ctanf F +GLIBC_2.32 ctanf128 F +GLIBC_2.32 ctanf32 F +GLIBC_2.32 ctanf32x F +GLIBC_2.32 ctanf64 F +GLIBC_2.32 ctanf64x F +GLIBC_2.32 ctanh F +GLIBC_2.32 ctanhf F +GLIBC_2.32 ctanhf128 F +GLIBC_2.32 ctanhf32 F +GLIBC_2.32 ctanhf32x F +GLIBC_2.32 ctanhf64 F +GLIBC_2.32 ctanhf64x F +GLIBC_2.32 ctanhl F +GLIBC_2.32 ctanl F +GLIBC_2.32 daddl F +GLIBC_2.32 ddivl F +GLIBC_2.32 dmull F +GLIBC_2.32 drem F +GLIBC_2.32 dremf F +GLIBC_2.32 dreml F +GLIBC_2.32 dsubl F +GLIBC_2.32 erf F +GLIBC_2.32 erfc F +GLIBC_2.32 erfcf F +GLIBC_2.32 erfcf128 F +GLIBC_2.32 erfcf32 F +GLIBC_2.32 erfcf32x F +GLIBC_2.32 erfcf64 F +GLIBC_2.32 erfcf64x F +GLIBC_2.32 erfcl F +GLIBC_2.32 erff F +GLIBC_2.32 erff128 F +GLIBC_2.32 erff32 F +GLIBC_2.32 erff32x F +GLIBC_2.32 erff64 F +GLIBC_2.32 erff64x F +GLIBC_2.32 erfl F +GLIBC_2.32 exp F +GLIBC_2.32 exp10 F +GLIBC_2.32 exp10f F +GLIBC_2.32 exp10f128 F +GLIBC_2.32 exp10f32 F +GLIBC_2.32 exp10f32x F +GLIBC_2.32 exp10f64 F +GLIBC_2.32 exp10f64x F +GLIBC_2.32 exp10l F +GLIBC_2.32 exp2 F +GLIBC_2.32 exp2f F +GLIBC_2.32 exp2f128 F +GLIBC_2.32 exp2f32 F +GLIBC_2.32 exp2f32x F +GLIBC_2.32 exp2f64 F +GLIBC_2.32 exp2f64x F +GLIBC_2.32 exp2l F +GLIBC_2.32 expf F +GLIBC_2.32 expf128 F +GLIBC_2.32 expf32 F +GLIBC_2.32 expf32x F +GLIBC_2.32 expf64 F +GLIBC_2.32 expf64x F +GLIBC_2.32 expl F +GLIBC_2.32 expm1 F +GLIBC_2.32 expm1f F +GLIBC_2.32 expm1f128 F +GLIBC_2.32 expm1f32 F +GLIBC_2.32 expm1f32x F +GLIBC_2.32 expm1f64 F +GLIBC_2.32 expm1f64x F +GLIBC_2.32 expm1l F +GLIBC_2.32 f32addf128 F +GLIBC_2.32 f32addf32x F +GLIBC_2.32 f32addf64 F +GLIBC_2.32 f32addf64x F +GLIBC_2.32 f32divf128 F +GLIBC_2.32 f32divf32x F +GLIBC_2.32 f32divf64 F +GLIBC_2.32 f32divf64x F +GLIBC_2.32 f32mulf128 F +GLIBC_2.32 f32mulf32x F +GLIBC_2.32 f32mulf64 F +GLIBC_2.32 f32mulf64x F +GLIBC_2.32 f32subf128 F +GLIBC_2.32 f32subf32x F +GLIBC_2.32 f32subf64 F +GLIBC_2.32 f32subf64x F +GLIBC_2.32 f32xaddf128 F +GLIBC_2.32 f32xaddf64 F +GLIBC_2.32 f32xaddf64x F +GLIBC_2.32 f32xdivf128 F +GLIBC_2.32 f32xdivf64 F +GLIBC_2.32 f32xdivf64x F +GLIBC_2.32 f32xmulf128 F +GLIBC_2.32 f32xmulf64 F +GLIBC_2.32 f32xmulf64x F +GLIBC_2.32 f32xsubf128 F +GLIBC_2.32 f32xsubf64 F +GLIBC_2.32 f32xsubf64x F +GLIBC_2.32 f64addf128 F +GLIBC_2.32 f64addf64x F +GLIBC_2.32 f64divf128 F +GLIBC_2.32 f64divf64x F +GLIBC_2.32 f64mulf128 F +GLIBC_2.32 f64mulf64x F +GLIBC_2.32 f64subf128 F +GLIBC_2.32 f64subf64x F +GLIBC_2.32 f64xaddf128 F +GLIBC_2.32 f64xdivf128 F +GLIBC_2.32 f64xmulf128 F +GLIBC_2.32 f64xsubf128 F +GLIBC_2.32 fabs F +GLIBC_2.32 fabsf F +GLIBC_2.32 fabsf128 F +GLIBC_2.32 fabsf32 F +GLIBC_2.32 fabsf32x F +GLIBC_2.32 fabsf64 F +GLIBC_2.32 fabsf64x F +GLIBC_2.32 fabsl F +GLIBC_2.32 fadd F +GLIBC_2.32 faddl F +GLIBC_2.32 fdim F +GLIBC_2.32 fdimf F +GLIBC_2.32 fdimf128 F +GLIBC_2.32 fdimf32 F +GLIBC_2.32 fdimf32x F +GLIBC_2.32 fdimf64 F +GLIBC_2.32 fdimf64x F +GLIBC_2.32 fdiml F +GLIBC_2.32 fdiv F +GLIBC_2.32 fdivl F +GLIBC_2.32 feclearexcept F +GLIBC_2.32 fedisableexcept F +GLIBC_2.32 feenableexcept F +GLIBC_2.32 fegetenv F +GLIBC_2.32 fegetexcept F +GLIBC_2.32 fegetexceptflag F +GLIBC_2.32 fegetmode F +GLIBC_2.32 fegetround F +GLIBC_2.32 feholdexcept F +GLIBC_2.32 feraiseexcept F +GLIBC_2.32 fesetenv F +GLIBC_2.32 fesetexcept F +GLIBC_2.32 fesetexceptflag F +GLIBC_2.32 fesetmode F +GLIBC_2.32 fesetround F +GLIBC_2.32 fetestexcept F +GLIBC_2.32 fetestexceptflag F +GLIBC_2.32 feupdateenv F +GLIBC_2.32 finite F +GLIBC_2.32 finitef F +GLIBC_2.32 finitel F +GLIBC_2.32 floor F +GLIBC_2.32 floorf F +GLIBC_2.32 floorf128 F +GLIBC_2.32 floorf32 F +GLIBC_2.32 floorf32x F +GLIBC_2.32 floorf64 F +GLIBC_2.32 floorf64x F +GLIBC_2.32 floorl F +GLIBC_2.32 fma F +GLIBC_2.32 fmaf F +GLIBC_2.32 fmaf128 F +GLIBC_2.32 fmaf32 F +GLIBC_2.32 fmaf32x F +GLIBC_2.32 fmaf64 F +GLIBC_2.32 fmaf64x F +GLIBC_2.32 fmal F +GLIBC_2.32 fmax F +GLIBC_2.32 fmaxf F +GLIBC_2.32 fmaxf128 F +GLIBC_2.32 fmaxf32 F +GLIBC_2.32 fmaxf32x F +GLIBC_2.32 fmaxf64 F +GLIBC_2.32 fmaxf64x F +GLIBC_2.32 fmaxl F +GLIBC_2.32 fmaxmag F +GLIBC_2.32 fmaxmagf F +GLIBC_2.32 fmaxmagf128 F +GLIBC_2.32 fmaxmagf32 F +GLIBC_2.32 fmaxmagf32x F +GLIBC_2.32 fmaxmagf64 F +GLIBC_2.32 fmaxmagf64x F +GLIBC_2.32 fmaxmagl F +GLIBC_2.32 fmin F +GLIBC_2.32 fminf F +GLIBC_2.32 fminf128 F +GLIBC_2.32 fminf32 F +GLIBC_2.32 fminf32x F +GLIBC_2.32 fminf64 F +GLIBC_2.32 fminf64x F +GLIBC_2.32 fminl F +GLIBC_2.32 fminmag F +GLIBC_2.32 fminmagf F +GLIBC_2.32 fminmagf128 F +GLIBC_2.32 fminmagf32 F +GLIBC_2.32 fminmagf32x F +GLIBC_2.32 fminmagf64 F +GLIBC_2.32 fminmagf64x F +GLIBC_2.32 fminmagl F +GLIBC_2.32 fmod F +GLIBC_2.32 fmodf F +GLIBC_2.32 fmodf128 F +GLIBC_2.32 fmodf32 F +GLIBC_2.32 fmodf32x F +GLIBC_2.32 fmodf64 F +GLIBC_2.32 fmodf64x F +GLIBC_2.32 fmodl F +GLIBC_2.32 fmul F +GLIBC_2.32 fmull F +GLIBC_2.32 frexp F +GLIBC_2.32 frexpf F +GLIBC_2.32 frexpf128 F +GLIBC_2.32 frexpf32 F +GLIBC_2.32 frexpf32x F +GLIBC_2.32 frexpf64 F +GLIBC_2.32 frexpf64x F +GLIBC_2.32 frexpl F +GLIBC_2.32 fromfp F +GLIBC_2.32 fromfpf F +GLIBC_2.32 fromfpf128 F +GLIBC_2.32 fromfpf32 F +GLIBC_2.32 fromfpf32x F +GLIBC_2.32 fromfpf64 F +GLIBC_2.32 fromfpf64x F +GLIBC_2.32 fromfpl F +GLIBC_2.32 fromfpx F +GLIBC_2.32 fromfpxf F +GLIBC_2.32 fromfpxf128 F +GLIBC_2.32 fromfpxf32 F +GLIBC_2.32 fromfpxf32x F +GLIBC_2.32 fromfpxf64 F +GLIBC_2.32 fromfpxf64x F +GLIBC_2.32 fromfpxl F +GLIBC_2.32 fsub F +GLIBC_2.32 fsubl F +GLIBC_2.32 gamma F +GLIBC_2.32 gammaf F +GLIBC_2.32 gammal F +GLIBC_2.32 getpayload F +GLIBC_2.32 getpayloadf F +GLIBC_2.32 getpayloadf128 F +GLIBC_2.32 getpayloadf32 F +GLIBC_2.32 getpayloadf32x F +GLIBC_2.32 getpayloadf64 F +GLIBC_2.32 getpayloadf64x F +GLIBC_2.32 getpayloadl F +GLIBC_2.32 hypot F +GLIBC_2.32 hypotf F +GLIBC_2.32 hypotf128 F +GLIBC_2.32 hypotf32 F +GLIBC_2.32 hypotf32x F +GLIBC_2.32 hypotf64 F +GLIBC_2.32 hypotf64x F +GLIBC_2.32 hypotl F +GLIBC_2.32 ilogb F +GLIBC_2.32 ilogbf F +GLIBC_2.32 ilogbf128 F +GLIBC_2.32 ilogbf32 F +GLIBC_2.32 ilogbf32x F +GLIBC_2.32 ilogbf64 F +GLIBC_2.32 ilogbf64x F +GLIBC_2.32 ilogbl F +GLIBC_2.32 j0 F +GLIBC_2.32 j0f F +GLIBC_2.32 j0f128 F +GLIBC_2.32 j0f32 F +GLIBC_2.32 j0f32x F +GLIBC_2.32 j0f64 F +GLIBC_2.32 j0f64x F +GLIBC_2.32 j0l F +GLIBC_2.32 j1 F +GLIBC_2.32 j1f F +GLIBC_2.32 j1f128 F +GLIBC_2.32 j1f32 F +GLIBC_2.32 j1f32x F +GLIBC_2.32 j1f64 F +GLIBC_2.32 j1f64x F +GLIBC_2.32 j1l F +GLIBC_2.32 jn F +GLIBC_2.32 jnf F +GLIBC_2.32 jnf128 F +GLIBC_2.32 jnf32 F +GLIBC_2.32 jnf32x F +GLIBC_2.32 jnf64 F +GLIBC_2.32 jnf64x F +GLIBC_2.32 jnl F +GLIBC_2.32 ldexp F +GLIBC_2.32 ldexpf F +GLIBC_2.32 ldexpf128 F +GLIBC_2.32 ldexpf32 F +GLIBC_2.32 ldexpf32x F +GLIBC_2.32 ldexpf64 F +GLIBC_2.32 ldexpf64x F +GLIBC_2.32 ldexpl F +GLIBC_2.32 lgamma F +GLIBC_2.32 lgamma_r F +GLIBC_2.32 lgammaf F +GLIBC_2.32 lgammaf128 F +GLIBC_2.32 lgammaf128_r F +GLIBC_2.32 lgammaf32 F +GLIBC_2.32 lgammaf32_r F +GLIBC_2.32 lgammaf32x F +GLIBC_2.32 lgammaf32x_r F +GLIBC_2.32 lgammaf64 F +GLIBC_2.32 lgammaf64_r F +GLIBC_2.32 lgammaf64x F +GLIBC_2.32 lgammaf64x_r F +GLIBC_2.32 lgammaf_r F +GLIBC_2.32 lgammal F +GLIBC_2.32 lgammal_r F +GLIBC_2.32 llogb F +GLIBC_2.32 llogbf F +GLIBC_2.32 llogbf128 F +GLIBC_2.32 llogbf32 F +GLIBC_2.32 llogbf32x F +GLIBC_2.32 llogbf64 F +GLIBC_2.32 llogbf64x F +GLIBC_2.32 llogbl F +GLIBC_2.32 llrint F +GLIBC_2.32 llrintf F +GLIBC_2.32 llrintf128 F +GLIBC_2.32 llrintf32 F +GLIBC_2.32 llrintf32x F +GLIBC_2.32 llrintf64 F +GLIBC_2.32 llrintf64x F +GLIBC_2.32 llrintl F +GLIBC_2.32 llround F +GLIBC_2.32 llroundf F +GLIBC_2.32 llroundf128 F +GLIBC_2.32 llroundf32 F +GLIBC_2.32 llroundf32x F +GLIBC_2.32 llroundf64 F +GLIBC_2.32 llroundf64x F +GLIBC_2.32 llroundl F +GLIBC_2.32 log F +GLIBC_2.32 log10 F +GLIBC_2.32 log10f F +GLIBC_2.32 log10f128 F +GLIBC_2.32 log10f32 F +GLIBC_2.32 log10f32x F +GLIBC_2.32 log10f64 F +GLIBC_2.32 log10f64x F +GLIBC_2.32 log10l F +GLIBC_2.32 log1p F +GLIBC_2.32 log1pf F +GLIBC_2.32 log1pf128 F +GLIBC_2.32 log1pf32 F +GLIBC_2.32 log1pf32x F +GLIBC_2.32 log1pf64 F +GLIBC_2.32 log1pf64x F +GLIBC_2.32 log1pl F +GLIBC_2.32 log2 F +GLIBC_2.32 log2f F +GLIBC_2.32 log2f128 F +GLIBC_2.32 log2f32 F +GLIBC_2.32 log2f32x F +GLIBC_2.32 log2f64 F +GLIBC_2.32 log2f64x F +GLIBC_2.32 log2l F +GLIBC_2.32 logb F +GLIBC_2.32 logbf F +GLIBC_2.32 logbf128 F +GLIBC_2.32 logbf32 F +GLIBC_2.32 logbf32x F +GLIBC_2.32 logbf64 F +GLIBC_2.32 logbf64x F +GLIBC_2.32 logbl F +GLIBC_2.32 logf F +GLIBC_2.32 logf128 F +GLIBC_2.32 logf32 F +GLIBC_2.32 logf32x F +GLIBC_2.32 logf64 F +GLIBC_2.32 logf64x F +GLIBC_2.32 logl F +GLIBC_2.32 lrint F +GLIBC_2.32 lrintf F +GLIBC_2.32 lrintf128 F +GLIBC_2.32 lrintf32 F +GLIBC_2.32 lrintf32x F +GLIBC_2.32 lrintf64 F +GLIBC_2.32 lrintf64x F +GLIBC_2.32 lrintl F +GLIBC_2.32 lround F +GLIBC_2.32 lroundf F +GLIBC_2.32 lroundf128 F +GLIBC_2.32 lroundf32 F +GLIBC_2.32 lroundf32x F +GLIBC_2.32 lroundf64 F +GLIBC_2.32 lroundf64x F +GLIBC_2.32 lroundl F +GLIBC_2.32 modf F +GLIBC_2.32 modff F +GLIBC_2.32 modff128 F +GLIBC_2.32 modff32 F +GLIBC_2.32 modff32x F +GLIBC_2.32 modff64 F +GLIBC_2.32 modff64x F +GLIBC_2.32 modfl F +GLIBC_2.32 nan F +GLIBC_2.32 nanf F +GLIBC_2.32 nanf128 F +GLIBC_2.32 nanf32 F +GLIBC_2.32 nanf32x F +GLIBC_2.32 nanf64 F +GLIBC_2.32 nanf64x F +GLIBC_2.32 nanl F +GLIBC_2.32 nearbyint F +GLIBC_2.32 nearbyintf F +GLIBC_2.32 nearbyintf128 F +GLIBC_2.32 nearbyintf32 F +GLIBC_2.32 nearbyintf32x F +GLIBC_2.32 nearbyintf64 F +GLIBC_2.32 nearbyintf64x F +GLIBC_2.32 nearbyintl F +GLIBC_2.32 nextafter F +GLIBC_2.32 nextafterf F +GLIBC_2.32 nextafterf128 F +GLIBC_2.32 nextafterf32 F +GLIBC_2.32 nextafterf32x F +GLIBC_2.32 nextafterf64 F +GLIBC_2.32 nextafterf64x F +GLIBC_2.32 nextafterl F +GLIBC_2.32 nextdown F +GLIBC_2.32 nextdownf F +GLIBC_2.32 nextdownf128 F +GLIBC_2.32 nextdownf32 F +GLIBC_2.32 nextdownf32x F +GLIBC_2.32 nextdownf64 F +GLIBC_2.32 nextdownf64x F +GLIBC_2.32 nextdownl F +GLIBC_2.32 nexttoward F +GLIBC_2.32 nexttowardf F +GLIBC_2.32 nexttowardl F +GLIBC_2.32 nextup F +GLIBC_2.32 nextupf F +GLIBC_2.32 nextupf128 F +GLIBC_2.32 nextupf32 F +GLIBC_2.32 nextupf32x F +GLIBC_2.32 nextupf64 F +GLIBC_2.32 nextupf64x F +GLIBC_2.32 nextupl F +GLIBC_2.32 pow F +GLIBC_2.32 powf F +GLIBC_2.32 powf128 F +GLIBC_2.32 powf32 F +GLIBC_2.32 powf32x F +GLIBC_2.32 powf64 F +GLIBC_2.32 powf64x F +GLIBC_2.32 powl F +GLIBC_2.32 remainder F +GLIBC_2.32 remainderf F +GLIBC_2.32 remainderf128 F +GLIBC_2.32 remainderf32 F +GLIBC_2.32 remainderf32x F +GLIBC_2.32 remainderf64 F +GLIBC_2.32 remainderf64x F +GLIBC_2.32 remainderl F +GLIBC_2.32 remquo F +GLIBC_2.32 remquof F +GLIBC_2.32 remquof128 F +GLIBC_2.32 remquof32 F +GLIBC_2.32 remquof32x F +GLIBC_2.32 remquof64 F +GLIBC_2.32 remquof64x F +GLIBC_2.32 remquol F +GLIBC_2.32 rint F +GLIBC_2.32 rintf F +GLIBC_2.32 rintf128 F +GLIBC_2.32 rintf32 F +GLIBC_2.32 rintf32x F +GLIBC_2.32 rintf64 F +GLIBC_2.32 rintf64x F +GLIBC_2.32 rintl F +GLIBC_2.32 round F +GLIBC_2.32 roundeven F +GLIBC_2.32 roundevenf F +GLIBC_2.32 roundevenf128 F +GLIBC_2.32 roundevenf32 F +GLIBC_2.32 roundevenf32x F +GLIBC_2.32 roundevenf64 F +GLIBC_2.32 roundevenf64x F +GLIBC_2.32 roundevenl F +GLIBC_2.32 roundf F +GLIBC_2.32 roundf128 F +GLIBC_2.32 roundf32 F +GLIBC_2.32 roundf32x F +GLIBC_2.32 roundf64 F +GLIBC_2.32 roundf64x F +GLIBC_2.32 roundl F +GLIBC_2.32 scalb F +GLIBC_2.32 scalbf F +GLIBC_2.32 scalbl F +GLIBC_2.32 scalbln F +GLIBC_2.32 scalblnf F +GLIBC_2.32 scalblnf128 F +GLIBC_2.32 scalblnf32 F +GLIBC_2.32 scalblnf32x F +GLIBC_2.32 scalblnf64 F +GLIBC_2.32 scalblnf64x F +GLIBC_2.32 scalblnl F +GLIBC_2.32 scalbn F +GLIBC_2.32 scalbnf F +GLIBC_2.32 scalbnf128 F +GLIBC_2.32 scalbnf32 F +GLIBC_2.32 scalbnf32x F +GLIBC_2.32 scalbnf64 F +GLIBC_2.32 scalbnf64x F +GLIBC_2.32 scalbnl F +GLIBC_2.32 setpayload F +GLIBC_2.32 setpayloadf F +GLIBC_2.32 setpayloadf128 F +GLIBC_2.32 setpayloadf32 F +GLIBC_2.32 setpayloadf32x F +GLIBC_2.32 setpayloadf64 F +GLIBC_2.32 setpayloadf64x F +GLIBC_2.32 setpayloadl F +GLIBC_2.32 setpayloadsig F +GLIBC_2.32 setpayloadsigf F +GLIBC_2.32 setpayloadsigf128 F +GLIBC_2.32 setpayloadsigf32 F +GLIBC_2.32 setpayloadsigf32x F +GLIBC_2.32 setpayloadsigf64 F +GLIBC_2.32 setpayloadsigf64x F +GLIBC_2.32 setpayloadsigl F +GLIBC_2.32 signgam D 0x4 +GLIBC_2.32 significand F +GLIBC_2.32 significandf F +GLIBC_2.32 significandl F +GLIBC_2.32 sin F +GLIBC_2.32 sincos F +GLIBC_2.32 sincosf F +GLIBC_2.32 sincosf128 F +GLIBC_2.32 sincosf32 F +GLIBC_2.32 sincosf32x F +GLIBC_2.32 sincosf64 F +GLIBC_2.32 sincosf64x F +GLIBC_2.32 sincosl F +GLIBC_2.32 sinf F +GLIBC_2.32 sinf128 F +GLIBC_2.32 sinf32 F +GLIBC_2.32 sinf32x F +GLIBC_2.32 sinf64 F +GLIBC_2.32 sinf64x F +GLIBC_2.32 sinh F +GLIBC_2.32 sinhf F +GLIBC_2.32 sinhf128 F +GLIBC_2.32 sinhf32 F +GLIBC_2.32 sinhf32x F +GLIBC_2.32 sinhf64 F +GLIBC_2.32 sinhf64x F +GLIBC_2.32 sinhl F +GLIBC_2.32 sinl F +GLIBC_2.32 sqrt F +GLIBC_2.32 sqrtf F +GLIBC_2.32 sqrtf128 F +GLIBC_2.32 sqrtf32 F +GLIBC_2.32 sqrtf32x F +GLIBC_2.32 sqrtf64 F +GLIBC_2.32 sqrtf64x F +GLIBC_2.32 sqrtl F +GLIBC_2.32 tan F +GLIBC_2.32 tanf F +GLIBC_2.32 tanf128 F +GLIBC_2.32 tanf32 F +GLIBC_2.32 tanf32x F +GLIBC_2.32 tanf64 F +GLIBC_2.32 tanf64x F +GLIBC_2.32 tanh F +GLIBC_2.32 tanhf F +GLIBC_2.32 tanhf128 F +GLIBC_2.32 tanhf32 F +GLIBC_2.32 tanhf32x F +GLIBC_2.32 tanhf64 F +GLIBC_2.32 tanhf64x F +GLIBC_2.32 tanhl F +GLIBC_2.32 tanl F +GLIBC_2.32 tgamma F +GLIBC_2.32 tgammaf F +GLIBC_2.32 tgammaf128 F +GLIBC_2.32 tgammaf32 F +GLIBC_2.32 tgammaf32x F +GLIBC_2.32 tgammaf64 F +GLIBC_2.32 tgammaf64x F +GLIBC_2.32 tgammal F +GLIBC_2.32 totalorder F +GLIBC_2.32 totalorderf F +GLIBC_2.32 totalorderf128 F +GLIBC_2.32 totalorderf32 F +GLIBC_2.32 totalorderf32x F +GLIBC_2.32 totalorderf64 F +GLIBC_2.32 totalorderf64x F +GLIBC_2.32 totalorderl F +GLIBC_2.32 totalordermag F +GLIBC_2.32 totalordermagf F +GLIBC_2.32 totalordermagf128 F +GLIBC_2.32 totalordermagf32 F +GLIBC_2.32 totalordermagf32x F +GLIBC_2.32 totalordermagf64 F +GLIBC_2.32 totalordermagf64x F +GLIBC_2.32 totalordermagl F +GLIBC_2.32 trunc F +GLIBC_2.32 truncf F +GLIBC_2.32 truncf128 F +GLIBC_2.32 truncf32 F +GLIBC_2.32 truncf32x F +GLIBC_2.32 truncf64 F +GLIBC_2.32 truncf64x F +GLIBC_2.32 truncl F +GLIBC_2.32 ufromfp F +GLIBC_2.32 ufromfpf F +GLIBC_2.32 ufromfpf128 F +GLIBC_2.32 ufromfpf32 F +GLIBC_2.32 ufromfpf32x F +GLIBC_2.32 ufromfpf64 F +GLIBC_2.32 ufromfpf64x F +GLIBC_2.32 ufromfpl F +GLIBC_2.32 ufromfpx F +GLIBC_2.32 ufromfpxf F +GLIBC_2.32 ufromfpxf128 F +GLIBC_2.32 ufromfpxf32 F +GLIBC_2.32 ufromfpxf32x F +GLIBC_2.32 ufromfpxf64 F +GLIBC_2.32 ufromfpxf64x F +GLIBC_2.32 ufromfpxl F +GLIBC_2.32 y0 F +GLIBC_2.32 y0f F +GLIBC_2.32 y0f128 F +GLIBC_2.32 y0f32 F +GLIBC_2.32 y0f32x F +GLIBC_2.32 y0f64 F +GLIBC_2.32 y0f64x F +GLIBC_2.32 y0l F +GLIBC_2.32 y1 F +GLIBC_2.32 y1f F +GLIBC_2.32 y1f128 F +GLIBC_2.32 y1f32 F +GLIBC_2.32 y1f32x F +GLIBC_2.32 y1f64 F +GLIBC_2.32 y1f64x F +GLIBC_2.32 y1l F +GLIBC_2.32 yn F +GLIBC_2.32 ynf F +GLIBC_2.32 ynf128 F +GLIBC_2.32 ynf32 F +GLIBC_2.32 ynf32x F +GLIBC_2.32 ynf64 F +GLIBC_2.32 ynf64x F +GLIBC_2.32 ynl F diff --git a/sysdeps/unix/sysv/linux/riscv/libpthread.abilist b/sysdeps/unix/sysv/linux/riscv/libpthread.abilist new file mode 100644 index 0000000000..1adcbecc2e --- /dev/null +++ b/sysdeps/unix/sysv/linux/riscv/libpthread.abilist @@ -0,0 +1,213 @@ +GLIBC_2.32 _IO_flockfile F +GLIBC_2.32 _IO_ftrylockfile F +GLIBC_2.32 _IO_funlockfile F +GLIBC_2.32 __close F +GLIBC_2.32 __connect F +GLIBC_2.32 __errno_location F +GLIBC_2.32 __h_errno_location F +GLIBC_2.32 __libc_allocate_rtsig F +GLIBC_2.32 __libc_current_sigrtmax F +GLIBC_2.32 __libc_current_sigrtmin F +GLIBC_2.32 __lseek F +GLIBC_2.32 __open F +GLIBC_2.32 __open64 F +GLIBC_2.32 __pread64 F +GLIBC_2.32 __pthread_cleanup_routine F +GLIBC_2.32 __pthread_getspecific F +GLIBC_2.32 __pthread_key_create F +GLIBC_2.32 __pthread_mutex_destroy F +GLIBC_2.32 __pthread_mutex_init F +GLIBC_2.32 __pthread_mutex_lock F +GLIBC_2.32 __pthread_mutex_trylock F +GLIBC_2.32 __pthread_mutex_unlock F +GLIBC_2.32 __pthread_mutexattr_destroy F +GLIBC_2.32 __pthread_mutexattr_init F +GLIBC_2.32 __pthread_mutexattr_settype F +GLIBC_2.32 __pthread_once F +GLIBC_2.32 __pthread_register_cancel F +GLIBC_2.32 __pthread_register_cancel_defer F +GLIBC_2.32 __pthread_rwlock_destroy F +GLIBC_2.32 __pthread_rwlock_init F +GLIBC_2.32 __pthread_rwlock_rdlock F +GLIBC_2.32 __pthread_rwlock_tryrdlock F +GLIBC_2.32 __pthread_rwlock_trywrlock F +GLIBC_2.32 __pthread_rwlock_unlock F +GLIBC_2.32 __pthread_rwlock_wrlock F +GLIBC_2.32 __pthread_setspecific F +GLIBC_2.32 __pthread_unregister_cancel F +GLIBC_2.32 __pthread_unregister_cancel_restore F +GLIBC_2.32 __pthread_unwind_next F +GLIBC_2.32 __pwrite64 F +GLIBC_2.32 __read F +GLIBC_2.32 __res_state F +GLIBC_2.32 __send F +GLIBC_2.32 __sigaction F +GLIBC_2.32 __write F +GLIBC_2.32 _pthread_cleanup_pop F +GLIBC_2.32 _pthread_cleanup_pop_restore F +GLIBC_2.32 _pthread_cleanup_push F +GLIBC_2.32 _pthread_cleanup_push_defer F +GLIBC_2.32 accept F +GLIBC_2.32 call_once F +GLIBC_2.32 close F +GLIBC_2.32 cnd_broadcast F +GLIBC_2.32 cnd_destroy F +GLIBC_2.32 cnd_init F +GLIBC_2.32 cnd_signal F +GLIBC_2.32 cnd_timedwait F +GLIBC_2.32 cnd_wait F +GLIBC_2.32 connect F +GLIBC_2.32 flockfile F +GLIBC_2.32 fsync F +GLIBC_2.32 ftrylockfile F +GLIBC_2.32 funlockfile F +GLIBC_2.32 lseek F +GLIBC_2.32 lseek64 F +GLIBC_2.32 msync F +GLIBC_2.32 mtx_destroy F +GLIBC_2.32 mtx_init F +GLIBC_2.32 mtx_lock F +GLIBC_2.32 mtx_timedlock F +GLIBC_2.32 mtx_trylock F +GLIBC_2.32 mtx_unlock F +GLIBC_2.32 open F +GLIBC_2.32 open64 F +GLIBC_2.32 pause F +GLIBC_2.32 pread F +GLIBC_2.32 pread64 F +GLIBC_2.32 pthread_attr_getaffinity_np F +GLIBC_2.32 pthread_attr_getguardsize F +GLIBC_2.32 pthread_attr_getstack F +GLIBC_2.32 pthread_attr_getstackaddr F +GLIBC_2.32 pthread_attr_getstacksize F +GLIBC_2.32 pthread_attr_setguardsize F +GLIBC_2.32 pthread_attr_setstack F +GLIBC_2.32 pthread_attr_setstackaddr F +GLIBC_2.32 pthread_attr_setstacksize F +GLIBC_2.32 pthread_barrier_destroy F +GLIBC_2.32 pthread_barrier_init F +GLIBC_2.32 pthread_barrier_wait F +GLIBC_2.32 pthread_barrierattr_destroy F +GLIBC_2.32 pthread_barrierattr_getpshared F +GLIBC_2.32 pthread_barrierattr_init F +GLIBC_2.32 pthread_barrierattr_setpshared F +GLIBC_2.32 pthread_cancel F +GLIBC_2.32 pthread_clockjoin_np F +GLIBC_2.32 pthread_cond_broadcast F +GLIBC_2.32 pthread_cond_clockwait F +GLIBC_2.32 pthread_cond_signal F +GLIBC_2.32 pthread_cond_timedwait F +GLIBC_2.32 pthread_cond_wait F +GLIBC_2.32 pthread_condattr_getclock F +GLIBC_2.32 pthread_condattr_getpshared F +GLIBC_2.32 pthread_condattr_setclock F +GLIBC_2.32 pthread_condattr_setpshared F +GLIBC_2.32 pthread_create F +GLIBC_2.32 pthread_detach F +GLIBC_2.32 pthread_exit F +GLIBC_2.32 pthread_getattr_default_np F +GLIBC_2.32 pthread_getconcurrency F +GLIBC_2.32 pthread_getcpuclockid F +GLIBC_2.32 pthread_getname_np F +GLIBC_2.32 pthread_getspecific F +GLIBC_2.32 pthread_join F +GLIBC_2.32 pthread_key_create F +GLIBC_2.32 pthread_key_delete F +GLIBC_2.32 pthread_kill F +GLIBC_2.32 pthread_kill_other_threads_np F +GLIBC_2.32 pthread_mutex_clocklock F +GLIBC_2.32 pthread_mutex_consistent F +GLIBC_2.32 pthread_mutex_consistent_np F +GLIBC_2.32 pthread_mutex_destroy F +GLIBC_2.32 pthread_mutex_getprioceiling F +GLIBC_2.32 pthread_mutex_init F +GLIBC_2.32 pthread_mutex_lock F +GLIBC_2.32 pthread_mutex_setprioceiling F +GLIBC_2.32 pthread_mutex_timedlock F +GLIBC_2.32 pthread_mutex_trylock F +GLIBC_2.32 pthread_mutex_unlock F +GLIBC_2.32 pthread_mutexattr_destroy F +GLIBC_2.32 pthread_mutexattr_getkind_np F +GLIBC_2.32 pthread_mutexattr_getprioceiling F +GLIBC_2.32 pthread_mutexattr_getprotocol F +GLIBC_2.32 pthread_mutexattr_getpshared F +GLIBC_2.32 pthread_mutexattr_getrobust F +GLIBC_2.32 pthread_mutexattr_getrobust_np F +GLIBC_2.32 pthread_mutexattr_gettype F +GLIBC_2.32 pthread_mutexattr_init F +GLIBC_2.32 pthread_mutexattr_setkind_np F +GLIBC_2.32 pthread_mutexattr_setprioceiling F +GLIBC_2.32 pthread_mutexattr_setprotocol F +GLIBC_2.32 pthread_mutexattr_setpshared F +GLIBC_2.32 pthread_mutexattr_setrobust F +GLIBC_2.32 pthread_mutexattr_setrobust_np F +GLIBC_2.32 pthread_mutexattr_settype F +GLIBC_2.32 pthread_once F +GLIBC_2.32 pthread_rwlock_clockrdlock F +GLIBC_2.32 pthread_rwlock_clockwrlock F +GLIBC_2.32 pthread_rwlock_destroy F +GLIBC_2.32 pthread_rwlock_init F +GLIBC_2.32 pthread_rwlock_rdlock F +GLIBC_2.32 pthread_rwlock_timedrdlock F +GLIBC_2.32 pthread_rwlock_timedwrlock F +GLIBC_2.32 pthread_rwlock_tryrdlock F +GLIBC_2.32 pthread_rwlock_trywrlock F +GLIBC_2.32 pthread_rwlock_unlock F +GLIBC_2.32 pthread_rwlock_wrlock F +GLIBC_2.32 pthread_rwlockattr_destroy F +GLIBC_2.32 pthread_rwlockattr_getkind_np F +GLIBC_2.32 pthread_rwlockattr_getpshared F +GLIBC_2.32 pthread_rwlockattr_init F +GLIBC_2.32 pthread_rwlockattr_setkind_np F +GLIBC_2.32 pthread_rwlockattr_setpshared F +GLIBC_2.32 pthread_setaffinity_np F +GLIBC_2.32 pthread_setattr_default_np F +GLIBC_2.32 pthread_setcancelstate F +GLIBC_2.32 pthread_setcanceltype F +GLIBC_2.32 pthread_setconcurrency F +GLIBC_2.32 pthread_setname_np F +GLIBC_2.32 pthread_setschedprio F +GLIBC_2.32 pthread_setspecific F +GLIBC_2.32 pthread_sigqueue F +GLIBC_2.32 pthread_spin_destroy F +GLIBC_2.32 pthread_spin_init F +GLIBC_2.32 pthread_spin_lock F +GLIBC_2.32 pthread_spin_trylock F +GLIBC_2.32 pthread_spin_unlock F +GLIBC_2.32 pthread_testcancel F +GLIBC_2.32 pthread_timedjoin_np F +GLIBC_2.32 pthread_tryjoin_np F +GLIBC_2.32 pthread_yield F +GLIBC_2.32 pwrite F +GLIBC_2.32 pwrite64 F +GLIBC_2.32 raise F +GLIBC_2.32 read F +GLIBC_2.32 recv F +GLIBC_2.32 recvfrom F +GLIBC_2.32 recvmsg F +GLIBC_2.32 sem_clockwait F +GLIBC_2.32 sem_close F +GLIBC_2.32 sem_destroy F +GLIBC_2.32 sem_getvalue F +GLIBC_2.32 sem_init F +GLIBC_2.32 sem_open F +GLIBC_2.32 sem_post F +GLIBC_2.32 sem_timedwait F +GLIBC_2.32 sem_trywait F +GLIBC_2.32 sem_unlink F +GLIBC_2.32 sem_wait F +GLIBC_2.32 send F +GLIBC_2.32 sendmsg F +GLIBC_2.32 sendto F +GLIBC_2.32 sigaction F +GLIBC_2.32 sigwait F +GLIBC_2.32 tcdrain F +GLIBC_2.32 thrd_create F +GLIBC_2.32 thrd_detach F +GLIBC_2.32 thrd_exit F +GLIBC_2.32 thrd_join F +GLIBC_2.32 tss_create F +GLIBC_2.32 tss_delete F +GLIBC_2.32 tss_get F +GLIBC_2.32 tss_set F +GLIBC_2.32 write F diff --git a/sysdeps/unix/sysv/linux/riscv/libresolv.abilist b/sysdeps/unix/sysv/linux/riscv/libresolv.abilist new file mode 100644 index 0000000000..c5edf99ea9 --- /dev/null +++ b/sysdeps/unix/sysv/linux/riscv/libresolv.abilist @@ -0,0 +1,79 @@ +GLIBC_2.32 __b64_ntop F +GLIBC_2.32 __b64_pton F +GLIBC_2.32 __dn_comp F +GLIBC_2.32 __dn_count_labels F +GLIBC_2.32 __dn_expand F +GLIBC_2.32 __dn_skipname F +GLIBC_2.32 __fp_nquery F +GLIBC_2.32 __fp_query F +GLIBC_2.32 __fp_resstat F +GLIBC_2.32 __hostalias F +GLIBC_2.32 __loc_aton F +GLIBC_2.32 __loc_ntoa F +GLIBC_2.32 __p_cdname F +GLIBC_2.32 __p_cdnname F +GLIBC_2.32 __p_class F +GLIBC_2.32 __p_class_syms D 0x54 +GLIBC_2.32 __p_fqname F +GLIBC_2.32 __p_fqnname F +GLIBC_2.32 __p_option F +GLIBC_2.32 __p_query F +GLIBC_2.32 __p_rcode F +GLIBC_2.32 __p_time F +GLIBC_2.32 __p_type F +GLIBC_2.32 __p_type_syms D 0x228 +GLIBC_2.32 __putlong F +GLIBC_2.32 __putshort F +GLIBC_2.32 __res_close F +GLIBC_2.32 __res_dnok F +GLIBC_2.32 __res_hnok F +GLIBC_2.32 __res_hostalias F +GLIBC_2.32 __res_isourserver F +GLIBC_2.32 __res_mailok F +GLIBC_2.32 __res_mkquery F +GLIBC_2.32 __res_nameinquery F +GLIBC_2.32 __res_nmkquery F +GLIBC_2.32 __res_nquery F +GLIBC_2.32 __res_nquerydomain F +GLIBC_2.32 __res_nsearch F +GLIBC_2.32 __res_nsend F +GLIBC_2.32 __res_ownok F +GLIBC_2.32 __res_queriesmatch F +GLIBC_2.32 __res_query F +GLIBC_2.32 __res_querydomain F +GLIBC_2.32 __res_search F +GLIBC_2.32 __res_send F +GLIBC_2.32 __sym_ntop F +GLIBC_2.32 __sym_ntos F +GLIBC_2.32 __sym_ston F +GLIBC_2.32 _getlong F +GLIBC_2.32 _getshort F +GLIBC_2.32 inet_net_ntop F +GLIBC_2.32 inet_net_pton F +GLIBC_2.32 inet_neta F +GLIBC_2.32 ns_datetosecs F +GLIBC_2.32 ns_format_ttl F +GLIBC_2.32 ns_get16 F +GLIBC_2.32 ns_get32 F +GLIBC_2.32 ns_initparse F +GLIBC_2.32 ns_makecanon F +GLIBC_2.32 ns_msg_getflag F +GLIBC_2.32 ns_name_compress F +GLIBC_2.32 ns_name_ntol F +GLIBC_2.32 ns_name_ntop F +GLIBC_2.32 ns_name_pack F +GLIBC_2.32 ns_name_pton F +GLIBC_2.32 ns_name_rollback F +GLIBC_2.32 ns_name_skip F +GLIBC_2.32 ns_name_uncompress F +GLIBC_2.32 ns_name_unpack F +GLIBC_2.32 ns_parse_ttl F +GLIBC_2.32 ns_parserr F +GLIBC_2.32 ns_put16 F +GLIBC_2.32 ns_put32 F +GLIBC_2.32 ns_samedomain F +GLIBC_2.32 ns_samename F +GLIBC_2.32 ns_skiprr F +GLIBC_2.32 ns_sprintrr F +GLIBC_2.32 ns_sprintrrf F +GLIBC_2.32 ns_subdomain F diff --git a/sysdeps/unix/sysv/linux/riscv/librt.abilist b/sysdeps/unix/sysv/linux/riscv/librt.abilist new file mode 100644 index 0000000000..fda2b20c01 --- /dev/null +++ b/sysdeps/unix/sysv/linux/riscv/librt.abilist @@ -0,0 +1,35 @@ +GLIBC_2.32 __mq_open_2 F +GLIBC_2.32 aio_cancel F +GLIBC_2.32 aio_cancel64 F +GLIBC_2.32 aio_error F +GLIBC_2.32 aio_error64 F +GLIBC_2.32 aio_fsync F +GLIBC_2.32 aio_fsync64 F +GLIBC_2.32 aio_init F +GLIBC_2.32 aio_read F +GLIBC_2.32 aio_read64 F +GLIBC_2.32 aio_return F +GLIBC_2.32 aio_return64 F +GLIBC_2.32 aio_suspend F +GLIBC_2.32 aio_suspend64 F +GLIBC_2.32 aio_write F +GLIBC_2.32 aio_write64 F +GLIBC_2.32 lio_listio F +GLIBC_2.32 lio_listio64 F +GLIBC_2.32 mq_close F +GLIBC_2.32 mq_getattr F +GLIBC_2.32 mq_notify F +GLIBC_2.32 mq_open F +GLIBC_2.32 mq_receive F +GLIBC_2.32 mq_send F +GLIBC_2.32 mq_setattr F +GLIBC_2.32 mq_timedreceive F +GLIBC_2.32 mq_timedsend F +GLIBC_2.32 mq_unlink F +GLIBC_2.32 shm_open F +GLIBC_2.32 shm_unlink F +GLIBC_2.32 timer_create F +GLIBC_2.32 timer_delete F +GLIBC_2.32 timer_getoverrun F +GLIBC_2.32 timer_gettime F +GLIBC_2.32 timer_settime F diff --git a/sysdeps/unix/sysv/linux/riscv/libthread_db.abilist b/sysdeps/unix/sysv/linux/riscv/libthread_db.abilist new file mode 100644 index 0000000000..dcbc4a8fbe --- /dev/null +++ b/sysdeps/unix/sysv/linux/riscv/libthread_db.abilist @@ -0,0 +1,40 @@ +GLIBC_2.32 td_init F +GLIBC_2.32 td_log F +GLIBC_2.32 td_symbol_list F +GLIBC_2.32 td_ta_clear_event F +GLIBC_2.32 td_ta_delete F +GLIBC_2.32 td_ta_enable_stats F +GLIBC_2.32 td_ta_event_addr F +GLIBC_2.32 td_ta_event_getmsg F +GLIBC_2.32 td_ta_get_nthreads F +GLIBC_2.32 td_ta_get_ph F +GLIBC_2.32 td_ta_get_stats F +GLIBC_2.32 td_ta_map_id2thr F +GLIBC_2.32 td_ta_map_lwp2thr F +GLIBC_2.32 td_ta_new F +GLIBC_2.32 td_ta_reset_stats F +GLIBC_2.32 td_ta_set_event F +GLIBC_2.32 td_ta_setconcurrency F +GLIBC_2.32 td_ta_thr_iter F +GLIBC_2.32 td_ta_tsd_iter F +GLIBC_2.32 td_thr_clear_event F +GLIBC_2.32 td_thr_dbresume F +GLIBC_2.32 td_thr_dbsuspend F +GLIBC_2.32 td_thr_event_enable F +GLIBC_2.32 td_thr_event_getmsg F +GLIBC_2.32 td_thr_get_info F +GLIBC_2.32 td_thr_getfpregs F +GLIBC_2.32 td_thr_getgregs F +GLIBC_2.32 td_thr_getxregs F +GLIBC_2.32 td_thr_getxregsize F +GLIBC_2.32 td_thr_set_event F +GLIBC_2.32 td_thr_setfpregs F +GLIBC_2.32 td_thr_setgregs F +GLIBC_2.32 td_thr_setprio F +GLIBC_2.32 td_thr_setsigpending F +GLIBC_2.32 td_thr_setxregs F +GLIBC_2.32 td_thr_sigsetmask F +GLIBC_2.32 td_thr_tls_get_addr F +GLIBC_2.32 td_thr_tlsbase F +GLIBC_2.32 td_thr_tsd F +GLIBC_2.32 td_thr_validate F diff --git a/sysdeps/unix/sysv/linux/riscv/libutil.abilist b/sysdeps/unix/sysv/linux/riscv/libutil.abilist new file mode 100644 index 0000000000..61f73bc34e --- /dev/null +++ b/sysdeps/unix/sysv/linux/riscv/libutil.abilist @@ -0,0 +1,6 @@ +GLIBC_2.32 forkpty F +GLIBC_2.32 login F +GLIBC_2.32 login_tty F +GLIBC_2.32 logout F +GLIBC_2.32 logwtmp F +GLIBC_2.32 openpty F From patchwork Sun Jul 12 15:47:55 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alistair Francis X-Patchwork-Id: 40056 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 3CDAC3851C26; Sun, 12 Jul 2020 15:57:30 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 3CDAC3851C26 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1594569450; bh=u7MRYnz/3WbragZTC+FhFf9XUtAR/MCqPUif7X1wGyw=; h=To:Subject:Date:In-Reply-To:References:List-Id:List-Unsubscribe: List-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:Cc: From; b=KdpAWg7dZA+nshl6hPA82umE71PMY1EAghdz1WfrGHbhxDSvw2BWvhEbz5qgbjXTg pY2a248CGwQLt6No/nhjxdF9ZmAhiHNwuFOGdDkHmvLVeJznr+x8Fmd1ZI+RYTdUEu F14TX9SPVWVk0J1w5uRABgG/MzmFfq4KiCgK1T7I= X-Original-To: libc-alpha@sourceware.org Delivered-To: libc-alpha@sourceware.org Received: from esa5.hgst.iphmx.com (esa5.hgst.iphmx.com [216.71.153.144]) by sourceware.org (Postfix) with ESMTPS id CD3BD3851C23 for ; Sun, 12 Jul 2020 15:57:26 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org CD3BD3851C23 IronPort-SDR: tYHqaucHLWdhMF6ywc2+702n0FPe2LCyVsbtQioslqceFyUIf39/EerIgL2Z3Q2Knm3RRxLui0 ZN/xhRjw0vecJ0EDPejm35XBRKzu+RXacy1yHusPoMSNdSEhqmveh9VLQ5JwGAWJTi04Vyqlp8 cOUXNGQEcnrDIuFki0BDNUcsepi0vaWRx+cPaOmIVvuQRw8NqhQnRsxmELfTzz8a/2QmWI5vL6 XB8eKZtCjDG3jGVERvL0xBKziDU2RIhUEt0PjYtiMuwQiCylXjZq+ZCmHmfO6JXRkMUAW/8l8M qp0= X-IronPort-AV: E=Sophos;i="5.75,344,1589212800"; d="scan'208";a="142401280" Received: from uls-op-cesaip01.wdc.com (HELO uls-op-cesaep01.wdc.com) ([199.255.45.14]) by ob1.hgst.iphmx.com with ESMTP; 12 Jul 2020 23:57:26 +0800 IronPort-SDR: v4Hqvmvw36a81BsmHXz9otYpFiDww6tmO26AB0As8NfFTz8x/21xQx9BKKT4r92FHGSm3tHKJR rRzwUln3B2YDW+AQ5xOB+8kRZtadIrIVU= Received: from uls-op-cesaip02.wdc.com ([10.248.3.37]) by uls-op-cesaep01.wdc.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 12 Jul 2020 08:45:56 -0700 IronPort-SDR: 9FXNgP/l2XB/DkUkAOSxVtwGoS9wGIGflXRgoyXZo1QtgcqCSdXgxBBwYPKFgALpBdQ5UoB4b+ Pso4Wo2YGvTQ== WDCIronportException: Internal Received: from usa002626.ad.shared (HELO risc6-mainframe.hgst.com) ([10.86.57.178]) by uls-op-cesaip02.wdc.com with ESMTP; 12 Jul 2020 08:57:25 -0700 To: libc-alpha@sourceware.org Subject: [PATCH v3 13/19] RISC-V: Add the RV32 libm-test-ulps Date: Sun, 12 Jul 2020 08:47:55 -0700 Message-Id: <6f6f811cb3453c1de41c8cb542aace23162f90a0.1594568655.git.alistair.francis@wdc.com> X-Mailer: git-send-email 2.27.0 In-Reply-To: References: MIME-Version: 1.0 X-Spam-Status: No, score=-14.7 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, SPF_HELO_PASS, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on server2.sourceware.org X-BeenThere: libc-alpha@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Libc-alpha mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Patchwork-Original-From: Alistair Francis via Libc-alpha From: Alistair Francis Reply-To: Alistair Francis Cc: alistair.francis@wdc.com Errors-To: libc-alpha-bounces@sourceware.org Sender: "Libc-alpha" Add a libm-test-ulps for RV32, this is the same as the RV64 one. This dosn't match what is generated by running `make regen-ulps` on RV32 QEMU, but the current in tree RV64 doesn't match that either. --- sysdeps/riscv/rv32/rvd/libm-test-ulps | 1402 ++++++++++++++++++++ sysdeps/riscv/rv32/rvd/libm-test-ulps-name | 1 + 2 files changed, 1403 insertions(+) create mode 100644 sysdeps/riscv/rv32/rvd/libm-test-ulps create mode 100644 sysdeps/riscv/rv32/rvd/libm-test-ulps-name diff --git a/sysdeps/riscv/rv32/rvd/libm-test-ulps b/sysdeps/riscv/rv32/rvd/libm-test-ulps new file mode 100644 index 0000000000..8e2971ce66 --- /dev/null +++ b/sysdeps/riscv/rv32/rvd/libm-test-ulps @@ -0,0 +1,1402 @@ +# Begin of automatic generation + +# Maximal error of functions: +Function: "acos": +float: 1 +ldouble: 1 + +Function: "acos_downward": +double: 1 +float: 1 +ldouble: 1 + +Function: "acos_towardzero": +double: 1 +float: 1 +ldouble: 1 + +Function: "acos_upward": +double: 1 +float: 1 +ldouble: 1 + +Function: "acosh": +double: 2 +float: 2 +ldouble: 2 + +Function: "acosh_downward": +double: 2 +float: 2 +ldouble: 3 + +Function: "acosh_towardzero": +double: 2 +float: 2 +ldouble: 2 + +Function: "acosh_upward": +double: 2 +float: 2 +ldouble: 2 + +Function: "asin": +float: 1 +ldouble: 1 + +Function: "asin_downward": +double: 1 +float: 1 +ldouble: 2 + +Function: "asin_towardzero": +double: 1 +float: 1 +ldouble: 1 + +Function: "asin_upward": +double: 1 +float: 1 +ldouble: 2 + +Function: "asinh": +double: 1 +float: 1 +ldouble: 3 + +Function: "asinh_downward": +double: 3 +float: 3 +ldouble: 4 + +Function: "asinh_towardzero": +double: 2 +float: 2 +ldouble: 2 + +Function: "asinh_upward": +double: 3 +float: 3 +ldouble: 4 + +Function: "atan": +float: 1 +ldouble: 1 + +Function: "atan2": +float: 1 +ldouble: 1 + +Function: "atan2_downward": +double: 1 +float: 2 +ldouble: 2 + +Function: "atan2_towardzero": +double: 1 +float: 2 +ldouble: 3 + +Function: "atan2_upward": +double: 1 +float: 1 +ldouble: 2 + +Function: "atan_downward": +double: 1 +float: 2 +ldouble: 2 + +Function: "atan_towardzero": +double: 1 +float: 1 +ldouble: 1 + +Function: "atan_upward": +double: 1 +float: 2 +ldouble: 2 + +Function: "atanh": +double: 2 +float: 2 +ldouble: 3 + +Function: "atanh_downward": +double: 3 +float: 3 +ldouble: 4 + +Function: "atanh_towardzero": +double: 2 +float: 2 +ldouble: 2 + +Function: "atanh_upward": +double: 3 +float: 3 +ldouble: 4 + +Function: "cabs": +double: 1 +ldouble: 1 + +Function: "cabs_downward": +double: 1 +ldouble: 1 + +Function: "cabs_towardzero": +double: 1 +ldouble: 1 + +Function: "cabs_upward": +double: 1 +ldouble: 1 + +Function: Real part of "cacos": +double: 1 +float: 2 +ldouble: 2 + +Function: Imaginary part of "cacos": +double: 2 +float: 2 +ldouble: 2 + +Function: Real part of "cacos_downward": +double: 3 +float: 2 +ldouble: 3 + +Function: Imaginary part of "cacos_downward": +double: 5 +float: 3 +ldouble: 6 + +Function: Real part of "cacos_towardzero": +double: 3 +float: 2 +ldouble: 3 + +Function: Imaginary part of "cacos_towardzero": +double: 4 +float: 2 +ldouble: 5 + +Function: Real part of "cacos_upward": +double: 2 +float: 2 +ldouble: 3 + +Function: Imaginary part of "cacos_upward": +double: 5 +float: 5 +ldouble: 7 + +Function: Real part of "cacosh": +double: 2 +float: 2 +ldouble: 2 + +Function: Imaginary part of "cacosh": +double: 1 +float: 2 +ldouble: 2 + +Function: Real part of "cacosh_downward": +double: 4 +float: 2 +ldouble: 5 + +Function: Imaginary part of "cacosh_downward": +double: 3 +float: 3 +ldouble: 4 + +Function: Real part of "cacosh_towardzero": +double: 4 +float: 2 +ldouble: 5 + +Function: Imaginary part of "cacosh_towardzero": +double: 3 +float: 2 +ldouble: 3 + +Function: Real part of "cacosh_upward": +double: 4 +float: 3 +ldouble: 6 + +Function: Imaginary part of "cacosh_upward": +double: 3 +float: 2 +ldouble: 4 + +Function: "carg": +float: 1 +ldouble: 2 + +Function: "carg_downward": +double: 1 +float: 2 +ldouble: 2 + +Function: "carg_towardzero": +double: 1 +float: 2 +ldouble: 3 + +Function: "carg_upward": +double: 1 +float: 1 +ldouble: 2 + +Function: Real part of "casin": +double: 1 +float: 1 +ldouble: 2 + +Function: Imaginary part of "casin": +double: 2 +float: 2 +ldouble: 2 + +Function: Real part of "casin_downward": +double: 3 +float: 2 +ldouble: 3 + +Function: Imaginary part of "casin_downward": +double: 5 +float: 3 +ldouble: 6 + +Function: Real part of "casin_towardzero": +double: 3 +float: 1 +ldouble: 3 + +Function: Imaginary part of "casin_towardzero": +double: 4 +float: 2 +ldouble: 5 + +Function: Real part of "casin_upward": +double: 3 +float: 2 +ldouble: 3 + +Function: Imaginary part of "casin_upward": +double: 5 +float: 5 +ldouble: 7 + +Function: Real part of "casinh": +double: 2 +float: 2 +ldouble: 2 + +Function: Imaginary part of "casinh": +double: 1 +float: 1 +ldouble: 2 + +Function: Real part of "casinh_downward": +double: 5 +float: 3 +ldouble: 6 + +Function: Imaginary part of "casinh_downward": +double: 3 +float: 2 +ldouble: 3 + +Function: Real part of "casinh_towardzero": +double: 4 +float: 2 +ldouble: 5 + +Function: Imaginary part of "casinh_towardzero": +double: 3 +float: 1 +ldouble: 3 + +Function: Real part of "casinh_upward": +double: 5 +float: 5 +ldouble: 7 + +Function: Imaginary part of "casinh_upward": +double: 3 +float: 2 +ldouble: 3 + +Function: Real part of "catan": +double: 1 +float: 1 +ldouble: 1 + +Function: Imaginary part of "catan": +double: 1 +float: 1 +ldouble: 1 + +Function: Real part of "catan_downward": +double: 1 +float: 2 +ldouble: 2 + +Function: Imaginary part of "catan_downward": +double: 2 +float: 2 +ldouble: 2 + +Function: Real part of "catan_towardzero": +double: 1 +float: 2 +ldouble: 2 + +Function: Imaginary part of "catan_towardzero": +double: 2 +float: 2 +ldouble: 2 + +Function: Real part of "catan_upward": +double: 1 +float: 1 +ldouble: 2 + +Function: Imaginary part of "catan_upward": +double: 2 +float: 2 +ldouble: 3 + +Function: Real part of "catanh": +double: 1 +float: 1 +ldouble: 1 + +Function: Imaginary part of "catanh": +double: 1 +float: 1 +ldouble: 1 + +Function: Real part of "catanh_downward": +double: 2 +float: 2 +ldouble: 2 + +Function: Imaginary part of "catanh_downward": +double: 1 +float: 2 +ldouble: 2 + +Function: Real part of "catanh_towardzero": +double: 2 +float: 2 +ldouble: 2 + +Function: Imaginary part of "catanh_towardzero": +double: 1 +float: 2 +ldouble: 2 + +Function: Real part of "catanh_upward": +double: 4 +float: 4 +ldouble: 4 + +Function: Imaginary part of "catanh_upward": +double: 1 +float: 1 +ldouble: 2 + +Function: "cbrt": +double: 3 +float: 1 +ldouble: 1 + +Function: "cbrt_downward": +double: 4 +float: 1 +ldouble: 1 + +Function: "cbrt_towardzero": +double: 3 +float: 1 +ldouble: 1 + +Function: "cbrt_upward": +double: 5 +float: 1 +ldouble: 1 + +Function: Real part of "ccos": +double: 1 +float: 1 +ldouble: 1 + +Function: Imaginary part of "ccos": +double: 1 +float: 1 +ldouble: 1 + +Function: Real part of "ccos_downward": +double: 1 +float: 1 +ldouble: 2 + +Function: Imaginary part of "ccos_downward": +double: 3 +float: 3 +ldouble: 2 + +Function: Real part of "ccos_towardzero": +double: 1 +float: 2 +ldouble: 2 + +Function: Imaginary part of "ccos_towardzero": +double: 3 +float: 3 +ldouble: 2 + +Function: Real part of "ccos_upward": +double: 1 +float: 2 +ldouble: 3 + +Function: Imaginary part of "ccos_upward": +double: 2 +float: 2 +ldouble: 2 + +Function: Real part of "ccosh": +double: 1 +float: 1 +ldouble: 1 + +Function: Imaginary part of "ccosh": +double: 1 +float: 1 +ldouble: 1 + +Function: Real part of "ccosh_downward": +double: 2 +float: 2 +ldouble: 2 + +Function: Imaginary part of "ccosh_downward": +double: 3 +float: 3 +ldouble: 2 + +Function: Real part of "ccosh_towardzero": +double: 2 +float: 3 +ldouble: 2 + +Function: Imaginary part of "ccosh_towardzero": +double: 3 +float: 3 +ldouble: 2 + +Function: Real part of "ccosh_upward": +double: 1 +float: 2 +ldouble: 3 + +Function: Imaginary part of "ccosh_upward": +double: 2 +float: 2 +ldouble: 2 + +Function: Real part of "cexp": +double: 2 +float: 1 +ldouble: 1 + +Function: Imaginary part of "cexp": +double: 1 +float: 2 +ldouble: 1 + +Function: Real part of "cexp_downward": +double: 2 +float: 2 +ldouble: 2 + +Function: Imaginary part of "cexp_downward": +double: 3 +float: 3 +ldouble: 2 + +Function: Real part of "cexp_towardzero": +double: 2 +float: 2 +ldouble: 2 + +Function: Imaginary part of "cexp_towardzero": +double: 3 +float: 3 +ldouble: 2 + +Function: Real part of "cexp_upward": +double: 1 +float: 2 +ldouble: 3 + +Function: Imaginary part of "cexp_upward": +double: 3 +float: 2 +ldouble: 3 + +Function: Real part of "clog": +double: 3 +float: 3 +ldouble: 2 + +Function: Imaginary part of "clog": +float: 1 +ldouble: 1 + +Function: Real part of "clog10": +double: 3 +float: 4 +ldouble: 2 + +Function: Imaginary part of "clog10": +double: 2 +float: 2 +ldouble: 2 + +Function: Real part of "clog10_downward": +double: 5 +float: 5 +ldouble: 3 + +Function: Imaginary part of "clog10_downward": +double: 2 +float: 4 +ldouble: 3 + +Function: Real part of "clog10_towardzero": +double: 5 +float: 5 +ldouble: 4 + +Function: Imaginary part of "clog10_towardzero": +double: 2 +float: 4 +ldouble: 3 + +Function: Real part of "clog10_upward": +double: 6 +float: 5 +ldouble: 4 + +Function: Imaginary part of "clog10_upward": +double: 2 +float: 4 +ldouble: 3 + +Function: Real part of "clog_downward": +double: 4 +float: 3 +ldouble: 3 + +Function: Imaginary part of "clog_downward": +double: 1 +float: 2 +ldouble: 2 + +Function: Real part of "clog_towardzero": +double: 4 +float: 4 +ldouble: 3 + +Function: Imaginary part of "clog_towardzero": +double: 1 +float: 3 +ldouble: 2 + +Function: Real part of "clog_upward": +double: 4 +float: 3 +ldouble: 4 + +Function: Imaginary part of "clog_upward": +double: 1 +float: 2 +ldouble: 2 + +Function: "cos": +double: 1 +ldouble: 1 + +Function: "cos_downward": +double: 1 +float: 1 +ldouble: 3 + +Function: "cos_towardzero": +double: 1 +float: 1 +ldouble: 1 + +Function: "cos_upward": +double: 1 +float: 1 +ldouble: 2 + +Function: "cosh": +double: 1 +float: 1 +ldouble: 1 + +Function: "cosh_downward": +double: 2 +float: 1 +ldouble: 2 + +Function: "cosh_towardzero": +double: 2 +float: 1 +ldouble: 2 + +Function: "cosh_upward": +double: 2 +float: 2 +ldouble: 3 + +Function: Real part of "cpow": +double: 2 +float: 5 +ldouble: 4 + +Function: Imaginary part of "cpow": +float: 2 +ldouble: 1 + +Function: Real part of "cpow_downward": +double: 5 +float: 8 +ldouble: 6 + +Function: Imaginary part of "cpow_downward": +double: 1 +float: 2 +ldouble: 2 + +Function: Real part of "cpow_towardzero": +double: 5 +float: 8 +ldouble: 6 + +Function: Imaginary part of "cpow_towardzero": +double: 1 +float: 2 +ldouble: 2 + +Function: Real part of "cpow_upward": +double: 4 +float: 1 +ldouble: 3 + +Function: Imaginary part of "cpow_upward": +double: 1 +float: 2 +ldouble: 2 + +Function: Real part of "csin": +double: 1 +float: 1 +ldouble: 1 + +Function: Imaginary part of "csin": +ldouble: 1 + +Function: Real part of "csin_downward": +double: 3 +float: 3 +ldouble: 2 + +Function: Imaginary part of "csin_downward": +double: 1 +float: 1 +ldouble: 2 + +Function: Real part of "csin_towardzero": +double: 3 +float: 3 +ldouble: 2 + +Function: Imaginary part of "csin_towardzero": +double: 1 +float: 1 +ldouble: 2 + +Function: Real part of "csin_upward": +double: 2 +float: 2 +ldouble: 2 + +Function: Imaginary part of "csin_upward": +double: 1 +float: 2 +ldouble: 3 + +Function: Real part of "csinh": +float: 1 +ldouble: 1 + +Function: Imaginary part of "csinh": +double: 1 +float: 1 +ldouble: 1 + +Function: Real part of "csinh_downward": +double: 2 +float: 1 +ldouble: 2 + +Function: Imaginary part of "csinh_downward": +double: 3 +float: 3 +ldouble: 2 + +Function: Real part of "csinh_towardzero": +double: 2 +float: 2 +ldouble: 2 + +Function: Imaginary part of "csinh_towardzero": +double: 3 +float: 3 +ldouble: 2 + +Function: Real part of "csinh_upward": +double: 1 +float: 2 +ldouble: 3 + +Function: Imaginary part of "csinh_upward": +double: 2 +float: 2 +ldouble: 2 + +Function: Real part of "csqrt": +double: 2 +float: 2 +ldouble: 2 + +Function: Imaginary part of "csqrt": +double: 2 +float: 2 +ldouble: 2 + +Function: Real part of "csqrt_downward": +double: 5 +float: 4 +ldouble: 4 + +Function: Imaginary part of "csqrt_downward": +double: 4 +float: 3 +ldouble: 3 + +Function: Real part of "csqrt_towardzero": +double: 4 +float: 3 +ldouble: 3 + +Function: Imaginary part of "csqrt_towardzero": +double: 4 +float: 3 +ldouble: 3 + +Function: Real part of "csqrt_upward": +double: 5 +float: 4 +ldouble: 4 + +Function: Imaginary part of "csqrt_upward": +double: 3 +float: 3 +ldouble: 3 + +Function: Real part of "ctan": +double: 1 +float: 1 +ldouble: 3 + +Function: Imaginary part of "ctan": +double: 2 +float: 2 +ldouble: 3 + +Function: Real part of "ctan_downward": +double: 6 +float: 5 +ldouble: 4 + +Function: Imaginary part of "ctan_downward": +double: 2 +float: 2 +ldouble: 5 + +Function: Real part of "ctan_towardzero": +double: 5 +float: 2 +ldouble: 4 + +Function: Imaginary part of "ctan_towardzero": +double: 2 +float: 2 +ldouble: 5 + +Function: Real part of "ctan_upward": +double: 2 +float: 4 +ldouble: 5 + +Function: Imaginary part of "ctan_upward": +double: 2 +float: 2 +ldouble: 5 + +Function: Real part of "ctanh": +double: 2 +float: 2 +ldouble: 3 + +Function: Imaginary part of "ctanh": +double: 2 +float: 1 +ldouble: 3 + +Function: Real part of "ctanh_downward": +double: 4 +float: 2 +ldouble: 5 + +Function: Imaginary part of "ctanh_downward": +double: 6 +float: 5 +ldouble: 4 + +Function: Real part of "ctanh_towardzero": +double: 2 +float: 2 +ldouble: 5 + +Function: Imaginary part of "ctanh_towardzero": +double: 5 +float: 2 +ldouble: 3 + +Function: Real part of "ctanh_upward": +double: 2 +float: 2 +ldouble: 5 + +Function: Imaginary part of "ctanh_upward": +double: 2 +float: 3 +ldouble: 5 + +Function: "erf": +double: 1 +float: 1 +ldouble: 1 + +Function: "erf_downward": +double: 1 +float: 1 +ldouble: 2 + +Function: "erf_towardzero": +double: 1 +float: 1 +ldouble: 1 + +Function: "erf_upward": +double: 1 +float: 1 +ldouble: 2 + +Function: "erfc": +double: 2 +float: 2 +ldouble: 2 + +Function: "erfc_downward": +double: 4 +float: 4 +ldouble: 5 + +Function: "erfc_towardzero": +double: 3 +float: 3 +ldouble: 4 + +Function: "erfc_upward": +double: 4 +float: 4 +ldouble: 5 + +Function: "exp": +ldouble: 1 + +Function: "exp10": +double: 2 +ldouble: 2 + +Function: "exp10_downward": +double: 3 +float: 1 +ldouble: 3 + +Function: "exp10_towardzero": +double: 3 +float: 1 +ldouble: 3 + +Function: "exp10_upward": +double: 2 +float: 1 +ldouble: 3 + +Function: "exp2": +double: 1 +ldouble: 1 + +Function: "exp2_downward": +double: 1 +ldouble: 1 + +Function: "exp2_towardzero": +double: 1 +ldouble: 1 + +Function: "exp2_upward": +double: 1 +float: 1 +ldouble: 2 + +Function: "exp_downward": +double: 1 +float: 1 + +Function: "exp_towardzero": +double: 1 +float: 1 + +Function: "exp_upward": +double: 1 +float: 1 + +Function: "expm1": +double: 1 +float: 1 +ldouble: 1 + +Function: "expm1_downward": +double: 1 +float: 1 +ldouble: 2 + +Function: "expm1_towardzero": +double: 1 +float: 2 +ldouble: 4 + +Function: "expm1_upward": +double: 1 +float: 1 +ldouble: 3 + +Function: "gamma": +double: 3 +float: 3 +ldouble: 5 + +Function: "gamma_downward": +double: 4 +float: 4 +ldouble: 8 + +Function: "gamma_towardzero": +double: 4 +float: 3 +ldouble: 5 + +Function: "gamma_upward": +double: 4 +float: 5 +ldouble: 8 + +Function: "hypot": +double: 1 +ldouble: 1 + +Function: "hypot_downward": +double: 1 +ldouble: 1 + +Function: "hypot_towardzero": +double: 1 +ldouble: 1 + +Function: "hypot_upward": +double: 1 +ldouble: 1 + +Function: "j0": +double: 2 +float: 2 +ldouble: 2 + +Function: "j0_downward": +double: 2 +float: 4 +ldouble: 4 + +Function: "j0_towardzero": +double: 2 +float: 1 +ldouble: 2 + +Function: "j0_upward": +double: 3 +float: 2 +ldouble: 5 + +Function: "j1": +double: 1 +float: 2 +ldouble: 4 + +Function: "j1_downward": +double: 3 +float: 2 +ldouble: 4 + +Function: "j1_towardzero": +double: 3 +float: 2 +ldouble: 4 + +Function: "j1_upward": +double: 3 +float: 4 +ldouble: 3 + +Function: "jn": +double: 4 +float: 4 +ldouble: 7 + +Function: "jn_downward": +double: 4 +float: 5 +ldouble: 8 + +Function: "jn_towardzero": +double: 4 +float: 5 +ldouble: 8 + +Function: "jn_upward": +double: 5 +float: 4 +ldouble: 7 + +Function: "lgamma": +double: 3 +float: 3 +ldouble: 5 + +Function: "lgamma_downward": +double: 4 +float: 4 +ldouble: 8 + +Function: "lgamma_towardzero": +double: 4 +float: 3 +ldouble: 5 + +Function: "lgamma_upward": +double: 4 +float: 5 +ldouble: 8 + +Function: "log": +ldouble: 1 + +Function: "log10": +double: 2 +float: 2 +ldouble: 1 + +Function: "log10_downward": +double: 2 +float: 3 +ldouble: 1 + +Function: "log10_towardzero": +double: 2 +float: 1 +ldouble: 1 + +Function: "log10_upward": +double: 2 +float: 2 +ldouble: 1 + +Function: "log1p": +double: 1 +float: 1 +ldouble: 2 + +Function: "log1p_downward": +double: 1 +float: 2 +ldouble: 3 + +Function: "log1p_towardzero": +double: 2 +float: 2 +ldouble: 3 + +Function: "log1p_upward": +double: 2 +float: 2 +ldouble: 2 + +Function: "log2": +double: 1 +float: 1 +ldouble: 2 + +Function: "log2_downward": +double: 3 +ldouble: 3 + +Function: "log2_towardzero": +double: 2 +ldouble: 1 + +Function: "log2_upward": +double: 3 +ldouble: 1 + +Function: "log_downward": +ldouble: 1 + +Function: "log_towardzero": +ldouble: 2 + +Function: "log_upward": +double: 1 +ldouble: 2 + +Function: "pow": +double: 1 +ldouble: 2 + +Function: "pow_downward": +double: 1 +float: 1 +ldouble: 2 + +Function: "pow_towardzero": +double: 1 +float: 1 +ldouble: 2 + +Function: "pow_upward": +double: 1 +float: 1 +ldouble: 2 + +Function: "sin": +double: 1 +ldouble: 1 + +Function: "sin_downward": +double: 1 +float: 1 +ldouble: 3 + +Function: "sin_towardzero": +double: 1 +float: 1 +ldouble: 2 + +Function: "sin_upward": +double: 1 +float: 1 +ldouble: 3 + +Function: "sincos": +double: 1 +ldouble: 1 + +Function: "sincos_downward": +double: 1 +float: 1 +ldouble: 3 + +Function: "sincos_towardzero": +double: 1 +float: 1 +ldouble: 2 + +Function: "sincos_upward": +double: 1 +float: 1 +ldouble: 3 + +Function: "sinh": +double: 2 +float: 2 +ldouble: 2 + +Function: "sinh_downward": +double: 3 +float: 3 +ldouble: 3 + +Function: "sinh_towardzero": +double: 2 +float: 2 +ldouble: 3 + +Function: "sinh_upward": +double: 3 +float: 3 +ldouble: 4 + +Function: "tan": +float: 1 +ldouble: 1 + +Function: "tan_downward": +double: 1 +float: 2 +ldouble: 1 + +Function: "tan_towardzero": +double: 1 +float: 1 +ldouble: 1 + +Function: "tan_upward": +double: 1 +float: 1 +ldouble: 1 + +Function: "tanh": +double: 2 +float: 2 +ldouble: 2 + +Function: "tanh_downward": +double: 3 +float: 3 +ldouble: 4 + +Function: "tanh_towardzero": +double: 2 +float: 2 +ldouble: 3 + +Function: "tanh_upward": +double: 3 +float: 3 +ldouble: 3 + +Function: "tgamma": +double: 5 +float: 4 +ldouble: 4 + +Function: "tgamma_downward": +double: 5 +float: 5 +ldouble: 5 + +Function: "tgamma_towardzero": +double: 5 +float: 4 +ldouble: 5 + +Function: "tgamma_upward": +double: 4 +float: 4 +ldouble: 4 + +Function: "y0": +double: 2 +float: 1 +ldouble: 3 + +Function: "y0_downward": +double: 3 +float: 4 +ldouble: 4 + +Function: "y0_towardzero": +double: 3 +float: 3 +ldouble: 3 + +Function: "y0_upward": +double: 2 +float: 5 +ldouble: 3 + +Function: "y1": +double: 3 +float: 2 +ldouble: 2 + +Function: "y1_downward": +double: 3 +float: 2 +ldouble: 4 + +Function: "y1_towardzero": +double: 3 +float: 2 +ldouble: 2 + +Function: "y1_upward": +double: 5 +float: 2 +ldouble: 5 + +Function: "yn": +double: 3 +float: 3 +ldouble: 5 + +Function: "yn_downward": +double: 3 +float: 4 +ldouble: 5 + +Function: "yn_towardzero": +double: 3 +float: 3 +ldouble: 5 + +Function: "yn_upward": +double: 4 +float: 5 +ldouble: 5 + +# end of automatic generation diff --git a/sysdeps/riscv/rv32/rvd/libm-test-ulps-name b/sysdeps/riscv/rv32/rvd/libm-test-ulps-name new file mode 100644 index 0000000000..827fcdca19 --- /dev/null +++ b/sysdeps/riscv/rv32/rvd/libm-test-ulps-name @@ -0,0 +1 @@ +RISC-V From patchwork Sun Jul 12 15:47:58 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alistair Francis X-Patchwork-Id: 40057 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id BD36F3860C37; Sun, 12 Jul 2020 15:57:31 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org BD36F3860C37 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1594569451; bh=0pCmMcDI3+/LGw5UyS9Wt50/Lr59AuFGv4JfsvobLcc=; h=To:Subject:Date:In-Reply-To:References:List-Id:List-Unsubscribe: List-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:Cc: From; b=jH9+ZkhYSqBifbgLIQIvkZwD3yZBRz5XlwX2ljCOX7mEZ0Ts0WirfbluD2/bbDP60 86EE9GNTG7XzM+bSCIBGKUhnGbsJuN6InhLNkJtMb9COEw4q5VOfUENRGc5rvh7c69 WBxv+mHKztxYRTLsdj5qSrGMBMRRTnTq4zvE8Iy0= X-Original-To: libc-alpha@sourceware.org Delivered-To: libc-alpha@sourceware.org Received: from esa5.hgst.iphmx.com (esa5.hgst.iphmx.com [216.71.153.144]) by sourceware.org (Postfix) with ESMTPS id 547CA3851C13 for ; Sun, 12 Jul 2020 15:57:29 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org 547CA3851C13 IronPort-SDR: ljzJyRsmbPiVCseHnkhEjE/h4wdS7+JmiMyJt18ujRoydtXo8qqm6vETnGzRbVFvO5f5Qy3QBs UpEmlaxUErsGNK36plGWW7AbBJRSNquEN/omo19T/UK5hkfIUApps9MPo2ffsUrzSpOsFjNZjz WKKVb1val7QMSgrUoKa9zfAJMo9iFsuckXQBSH8/bzzXL3GZfTHeM7MQmWMhYY6KOtJRtKcExa eIZFHk3GW95JjSylJdR7eFSz0icCSGEgb9fM8ddb0/lgcLq9dmPpMnbwVgt1YIycwxbLVELuz4 SEE= X-IronPort-AV: E=Sophos;i="5.75,344,1589212800"; d="scan'208";a="142401281" Received: from uls-op-cesaip01.wdc.com (HELO uls-op-cesaep01.wdc.com) ([199.255.45.14]) by ob1.hgst.iphmx.com with ESMTP; 12 Jul 2020 23:57:28 +0800 IronPort-SDR: q/zg4O53cuZDxraofFguy7XH8hDf/sXhf5q73esn/KSlekuttKtcicQbo7cgRjQtwn674xz2+A 3XQmEdvhbv5vf9pjMesjWspjYhjZv5QF8= Received: from uls-op-cesaip02.wdc.com ([10.248.3.37]) by uls-op-cesaep01.wdc.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 12 Jul 2020 08:45:59 -0700 IronPort-SDR: Awxaf/w4Bc24DJhlbGyTk6WdoKuyUBHIGwIBVWKeJdAhKUC/zxEVsTtOdniqg1/XsdEZGN0W2U 1ZDmrTj/Xo3g== WDCIronportException: Internal Received: from usa002626.ad.shared (HELO risc6-mainframe.hgst.com) ([10.86.57.178]) by uls-op-cesaip02.wdc.com with ESMTP; 12 Jul 2020 08:57:28 -0700 To: libc-alpha@sourceware.org Subject: [PATCH v3 14/19] RISC-V: Fix llrint and llround missing exceptions on RV32 Date: Sun, 12 Jul 2020 08:47:58 -0700 Message-Id: X-Mailer: git-send-email 2.27.0 In-Reply-To: References: MIME-Version: 1.0 X-Spam-Status: No, score=-14.4 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, KAM_NUMSUBJECT, KAM_SHORT, SPF_HELO_PASS, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on server2.sourceware.org X-BeenThere: libc-alpha@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Libc-alpha mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Patchwork-Original-From: Alistair Francis via Libc-alpha From: Alistair Francis Reply-To: Alistair Francis Cc: alistair.francis@wdc.com Errors-To: libc-alpha-bounces@sourceware.org Sender: "Libc-alpha" From: Zong Li Similar to the fix for MIPS, ARM and S/390, RV32 is missing correct exception on overflow from llrint and llround functions because cast from floating-point types to long long do not result in correct exceptions on overflow. --- .../riscv/rv32/fix-fp-int-convert-overflow.h | 38 +++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 sysdeps/riscv/rv32/fix-fp-int-convert-overflow.h diff --git a/sysdeps/riscv/rv32/fix-fp-int-convert-overflow.h b/sysdeps/riscv/rv32/fix-fp-int-convert-overflow.h new file mode 100644 index 0000000000..2ab1497587 --- /dev/null +++ b/sysdeps/riscv/rv32/fix-fp-int-convert-overflow.h @@ -0,0 +1,38 @@ +/* Fix for conversion of floating point to integer overflow. RISC-V version. + Copyright (C) 2020 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 FIX_FP_INT_CONVERT_OVERFLOW_H +#define FIX_FP_INT_CONVERT_OVERFLOW_H 1 + +/* The generic libgcc2.c conversions from floating point + to long long may not raise the correct exceptions on overflow (and + may raise spurious "inexact" exceptions even in non-overflow cases, + see ). */ +#define FIX_FLT_LONG_CONVERT_OVERFLOW 0 +#define FIX_FLT_LLONG_CONVERT_OVERFLOW 1 + +#define FIX_DBL_LONG_CONVERT_OVERFLOW 0 +#define FIX_DBL_LLONG_CONVERT_OVERFLOW 1 + +#define FIX_LDBL_LONG_CONVERT_OVERFLOW 0 +#define FIX_LDBL_LLONG_CONVERT_OVERFLOW 0 + +#define FIX_FLT128_LONG_CONVERT_OVERFLOW 0 +#define FIX_FLT128_LLONG_CONVERT_OVERFLOW 0 + +#endif /* fix-fp-int-convert-overflow.h */ From patchwork Sun Jul 12 15:48:00 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alistair Francis X-Patchwork-Id: 40060 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 8F1A1386100A; Sun, 12 Jul 2020 15:57:36 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 8F1A1386100A DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1594569456; bh=hl4OWQygWU/LOF3Lyc9jdnJuxev+IcnH29gVdZOdxxU=; h=To:Subject:Date:In-Reply-To:References:List-Id:List-Unsubscribe: List-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:Cc: From; b=VDbJ+5tJT1o4xo4dwVFWIxNhkWpbIbWkTCsLRccDO2p905iJpMYk8brAyrkFAdFle oPJXwemDFkOmN8uflbJ4lQ7/6izSgUJTa8SmofLG1FyOpryB9GCdA9YBDO8g0IOWQG /khbuZVpadakG9b25s5EdAHrUxMRKaouB7hoNRPs= X-Original-To: libc-alpha@sourceware.org Delivered-To: libc-alpha@sourceware.org Received: from esa5.hgst.iphmx.com (esa5.hgst.iphmx.com [216.71.153.144]) by sourceware.org (Postfix) with ESMTPS id 051C53851C23 for ; Sun, 12 Jul 2020 15:57:31 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org 051C53851C23 IronPort-SDR: lp2a7/hAIzGieBIdTFlBwDCpznBVkEeNY+9myAPxkSV0tRjE+QHbQmAWegzAnYlbGX1zRDhq3q D9CMiu9J4oiLumWUktOuWectQDQIUOKBUEhefr8n5ICxA3L/P4RQxnSRz2Zw24BqDPm8JTxz90 0bIOIoUPAE2so3Y7LqgHTzdrp57urSLm+i3rXcB3m+mFd7NeyaSubgC5dc6xyfQBpcLxW3ljLS iUA/5gLpL62JikV0CM2ynlz2EkKEKa5G8KDMrlpULVpZD//MaP0LyYU5QB2mDp/rP4ZgviPNsd kxE= X-IronPort-AV: E=Sophos;i="5.75,344,1589212800"; d="scan'208";a="142401283" Received: from uls-op-cesaip01.wdc.com (HELO uls-op-cesaep01.wdc.com) ([199.255.45.14]) by ob1.hgst.iphmx.com with ESMTP; 12 Jul 2020 23:57:31 +0800 IronPort-SDR: lbZLT+x4YSoQXZAcv4HvZE9hnuqqCyPR69XAWVgerX/tI6dI8VW3a7y8Ml7ffTaroXOj5g6T5Z mkbNwKlNJm7o71yTjamvJ/zeauutTNOa0= Received: from uls-op-cesaip01.wdc.com ([10.248.3.36]) by uls-op-cesaep01.wdc.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 12 Jul 2020 08:46:02 -0700 IronPort-SDR: CNdaYqyyUqqd7z/9QKiBxR7Pt20U8ldnLDNU45WuoNgA+4vOFLfbHvh3r1AWkEyHWGf8jFhVT4 357nzUpm7FrA== WDCIronportException: Internal Received: from usa002626.ad.shared (HELO risc6-mainframe.hgst.com) ([10.86.57.178]) by uls-op-cesaip01.wdc.com with ESMTP; 12 Jul 2020 08:57:32 -0700 To: libc-alpha@sourceware.org Subject: [PATCH v3 15/19] RISC-V: Build Infastructure for 32-bit Date: Sun, 12 Jul 2020 08:48:00 -0700 Message-Id: <3bc3074d7ae29928b90efd584f018cc9da3b42db.1594568655.git.alistair.francis@wdc.com> X-Mailer: git-send-email 2.27.0 In-Reply-To: References: MIME-Version: 1.0 X-Spam-Status: No, score=-14.6 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, SPF_HELO_PASS, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on server2.sourceware.org X-BeenThere: libc-alpha@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Libc-alpha mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Patchwork-Original-From: Alistair Francis via Libc-alpha From: Alistair Francis Reply-To: Alistair Francis Cc: alistair.francis@wdc.com Errors-To: libc-alpha-bounces@sourceware.org Sender: "Libc-alpha" From: Zong Li This patch lays out the top-level orginazition of the RISC-V 32-bit port. It contains all the Implies files as well as various other fragments of build infastructure for the RISC-V 32-bit port. --- sysdeps/riscv/preconfigure | 6 +-- sysdeps/riscv/rv32/Implies-after | 1 + sysdeps/riscv/rv32/rvd/Implies | 3 ++ sysdeps/riscv/rv32/rvf/Implies | 1 + sysdeps/unix/sysv/linux/riscv/Makefile | 4 +- sysdeps/unix/sysv/linux/riscv/configure | 39 ++++++++++++++++++++ sysdeps/unix/sysv/linux/riscv/configure.ac | 8 ++++ sysdeps/unix/sysv/linux/riscv/rv32/Implies | 3 ++ sysdeps/unix/sysv/linux/riscv/shlib-versions | 10 ++++- 9 files changed, 67 insertions(+), 8 deletions(-) create mode 100644 sysdeps/riscv/rv32/Implies-after create mode 100644 sysdeps/riscv/rv32/rvd/Implies create mode 100644 sysdeps/riscv/rv32/rvf/Implies create mode 100644 sysdeps/unix/sysv/linux/riscv/rv32/Implies diff --git a/sysdeps/riscv/preconfigure b/sysdeps/riscv/preconfigure index d9adb31b64..1ab5d20f0e 100644 --- a/sysdeps/riscv/preconfigure +++ b/sysdeps/riscv/preconfigure @@ -6,11 +6,7 @@ riscv*) atomic=`$CC $CFLAGS $CPPFLAGS -E -dM -xc /dev/null | grep '#define __riscv_atomic' | cut -d' ' -f2` case "$xlen" in - 32) - echo "glibc does not yet support 32-bit systems" >&2 - exit 1 - ;; - 64) + 64 | 32) ;; *) echo "Unable to determine XLEN" >&2 diff --git a/sysdeps/riscv/rv32/Implies-after b/sysdeps/riscv/rv32/Implies-after new file mode 100644 index 0000000000..39a34c5f57 --- /dev/null +++ b/sysdeps/riscv/rv32/Implies-after @@ -0,0 +1 @@ +wordsize-32 diff --git a/sysdeps/riscv/rv32/rvd/Implies b/sysdeps/riscv/rv32/rvd/Implies new file mode 100644 index 0000000000..1151214e8f --- /dev/null +++ b/sysdeps/riscv/rv32/rvd/Implies @@ -0,0 +1,3 @@ +riscv/rv32/rvf +riscv/rvd +riscv/rvf diff --git a/sysdeps/riscv/rv32/rvf/Implies b/sysdeps/riscv/rv32/rvf/Implies new file mode 100644 index 0000000000..66c401443b --- /dev/null +++ b/sysdeps/riscv/rv32/rvf/Implies @@ -0,0 +1 @@ +riscv/rvf diff --git a/sysdeps/unix/sysv/linux/riscv/Makefile b/sysdeps/unix/sysv/linux/riscv/Makefile index 301b082398..6c11f7fd9a 100644 --- a/sysdeps/unix/sysv/linux/riscv/Makefile +++ b/sysdeps/unix/sysv/linux/riscv/Makefile @@ -7,11 +7,13 @@ ifeq ($(subdir),stdlib) gen-as-const-headers += ucontext_i.sym endif -abi-variants := lp64 lp64d +abi-variants := ilp32 ilp32d lp64 lp64d ifeq (,$(filter $(default-abi),$(abi-variants))) $(error Unknown ABI $(default-abi), must be one of $(abi-variants)) endif +abi-ilp32-condition := !defined __LP64__ && defined __riscv_float_abi_soft +abi-ilp32d-condition := !defined __LP64__ && defined __riscv_float_abi_double abi-lp64-condition := defined __LP64__ && defined __riscv_float_abi_soft abi-lp64d-condition := defined __LP64__ && defined __riscv_float_abi_double diff --git a/sysdeps/unix/sysv/linux/riscv/configure b/sysdeps/unix/sysv/linux/riscv/configure index 3018ca8f1b..2b3c77f18c 100755 --- a/sysdeps/unix/sysv/linux/riscv/configure +++ b/sysdeps/unix/sysv/linux/riscv/configure @@ -147,6 +147,17 @@ if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | fi rm -f conftest* +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +__SIZEOF_INT__ __SIZEOF_LONG__ __SIZEOF_POINTER__ + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "4 4 4" >/dev/null 2>&1; then : + libc_cv_riscv_int_abi=ilp32 +fi +rm -f conftest* + if test $libc_cv_riscv_int_abi = no; then as_fn_error $? "Unable to determine integer ABI" "$LINENO" 5 fi @@ -214,6 +225,34 @@ case "$prefix" in ;; esac ;; +ilp32-riscv/rv32/*) + test -n "$libc_cv_slibdir" || +case "$prefix" in +/usr | /usr/) + libc_cv_slibdir='/lib32/ilp32' + libc_cv_rtlddir='/lib' + if test "$libdir" = '${exec_prefix}/lib'; then + libdir='${exec_prefix}/lib32/ilp32'; + # Locale data can be shared between 32-bit and 64-bit libraries. + libc_cv_complocaledir='${exec_prefix}/lib/locale' + fi + ;; +esac + ;; +ilp32d-riscv/rv32/*) + test -n "$libc_cv_slibdir" || +case "$prefix" in +/usr | /usr/) + libc_cv_slibdir='/lib32/ilp32d' + libc_cv_rtlddir='/lib' + if test "$libdir" = '${exec_prefix}/lib'; then + libdir='${exec_prefix}/lib32/ilp32d'; + # Locale data can be shared between 32-bit and 64-bit libraries. + libc_cv_complocaledir='${exec_prefix}/lib/locale' + fi + ;; +esac + ;; esac ldd_rewrite_script=sysdeps/unix/sysv/linux/riscv/ldd-rewrite.sed diff --git a/sysdeps/unix/sysv/linux/riscv/configure.ac b/sysdeps/unix/sysv/linux/riscv/configure.ac index d4819931ca..710d46afcd 100644 --- a/sysdeps/unix/sysv/linux/riscv/configure.ac +++ b/sysdeps/unix/sysv/linux/riscv/configure.ac @@ -7,6 +7,8 @@ arch_minimum_kernel=4.15.0 libc_cv_riscv_int_abi=no AC_EGREP_CPP(4 8 8, [__SIZEOF_INT__ __SIZEOF_LONG__ __SIZEOF_POINTER__ ], libc_cv_riscv_int_abi=lp64) +AC_EGREP_CPP(4 4 4, [__SIZEOF_INT__ __SIZEOF_LONG__ __SIZEOF_POINTER__ + ], libc_cv_riscv_int_abi=ilp32) if test $libc_cv_riscv_int_abi = no; then AC_MSG_ERROR([Unable to determine integer ABI]) fi @@ -33,6 +35,12 @@ lp64-riscv/rv64/*) lp64d-riscv/rv64/*) LIBC_SLIBDIR_RTLDDIR([lib64/lp64d], [lib]) ;; +ilp32-riscv/rv32/*) + LIBC_SLIBDIR_RTLDDIR([lib32/ilp32], [lib]) + ;; +ilp32d-riscv/rv32/*) + LIBC_SLIBDIR_RTLDDIR([lib32/ilp32d], [lib]) + ;; esac ldd_rewrite_script=sysdeps/unix/sysv/linux/riscv/ldd-rewrite.sed diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/Implies b/sysdeps/unix/sysv/linux/riscv/rv32/Implies new file mode 100644 index 0000000000..8b7deb33cd --- /dev/null +++ b/sysdeps/unix/sysv/linux/riscv/rv32/Implies @@ -0,0 +1,3 @@ +unix/sysv/linux/riscv +unix/sysv/linux/generic/wordsize-32 +unix/sysv/linux/generic diff --git a/sysdeps/unix/sysv/linux/riscv/shlib-versions b/sysdeps/unix/sysv/linux/riscv/shlib-versions index 98c9b29cc4..919c8ec1fd 100644 --- a/sysdeps/unix/sysv/linux/riscv/shlib-versions +++ b/sysdeps/unix/sysv/linux/riscv/shlib-versions @@ -1,9 +1,15 @@ -DEFAULT GLIBC_2.27 - %if RISCV_ABI_XLEN == 64 && RISCV_ABI_FLEN == 64 +DEFAULT GLIBC_2.27 ld=ld-linux-riscv64-lp64d.so.1 %elif RISCV_ABI_XLEN == 64 && RISCV_ABI_FLEN == 0 +DEFAULT GLIBC_2.27 ld=ld-linux-riscv64-lp64.so.1 +%elif RISCV_ABI_XLEN == 32 && RISCV_ABI_FLEN == 64 +DEFAULT GLIBC_2.32 +ld=ld-linux-riscv32-ilp32d.so.1 +%elif RISCV_ABI_XLEN == 32 && RISCV_ABI_FLEN == 0 +DEFAULT GLIBC_2.32 +ld=ld-linux-riscv32-ilp32.so.1 %else %error cannot determine ABI %endif From patchwork Sun Jul 12 15:48:03 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alistair Francis X-Patchwork-Id: 40059 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 1A0033861011; Sun, 12 Jul 2020 15:57:37 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 1A0033861011 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1594569457; bh=AYD/nQh/DrTDuLYhCAYdpIrrzMBAOCT4TBhS+E62uNs=; h=To:Subject:Date:In-Reply-To:References:List-Id:List-Unsubscribe: List-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:Cc: From; b=PaqCeFrvy1h61H0iDLoSjzYwszOUaTf9SLFuEgKes8qxFUFpQcOXnDit6rMACw3z4 D6cVpg7UmH6kF42TDU9RknzjYrz4PGMvpHrpswgrzCKHjDVdz9MgvEjKdbANeA0EnC 0mEGBwFotH+7AzgsHfLtdx/6CU3EPDS5sjbT+ssk= X-Original-To: libc-alpha@sourceware.org Delivered-To: libc-alpha@sourceware.org Received: from esa5.hgst.iphmx.com (esa5.hgst.iphmx.com [216.71.153.144]) by sourceware.org (Postfix) with ESMTPS id 0ED383851C13 for ; Sun, 12 Jul 2020 15:57:33 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org 0ED383851C13 IronPort-SDR: 1cyZ67EVydWJkGNO9pAVPCAc37c3EGEtG4flaTlNpGEnQgvr/HOGwumPkiV+7Ekq7WjplHCBpK tGsWkTylyvWY0mmYPjYl5uERZr9GH5+x6imFreoWBnvM9cwKRxnYoOIn3rYazlc4b6wWqdLDVb 77poC8yXY+Jr5FAcHFzj/fuEZox3P+HFYlWf4STd+0N30eWq2D6XHgPPwKim+ffnz3UZN6Kf2u 2NFSoMgMgzdrVdnYEL/ACDhJPMNA5zkZ+5h2N52bt02poZVOT71t9vzZCYHDyCFziIDylXWiTX tts= X-IronPort-AV: E=Sophos;i="5.75,344,1589212800"; d="scan'208";a="142401284" Received: from uls-op-cesaip01.wdc.com (HELO uls-op-cesaep01.wdc.com) ([199.255.45.14]) by ob1.hgst.iphmx.com with ESMTP; 12 Jul 2020 23:57:34 +0800 IronPort-SDR: Tzjyd8YRhVaUzotl/bCjUKTS/LJQTSNX6bvcQdAqvE7Ihp6YELJhm5uXNV8WatA9fV2xNhwz/i T+7MJ19CzZNJqiZO6wWXta0VUSuanPPRs= Received: from uls-op-cesaip02.wdc.com ([10.248.3.37]) by uls-op-cesaep01.wdc.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 12 Jul 2020 08:46:04 -0700 IronPort-SDR: /oLC4Ws4AjqR3zKb1zRFR/YPsvvo+HYMUft4UQ5jQSTBTqkGeKZ75VE3/qtRANHNUGHJKYuud8 jYyLDW6H9P/w== WDCIronportException: Internal Received: from usa002626.ad.shared (HELO risc6-mainframe.hgst.com) ([10.86.57.178]) by uls-op-cesaip02.wdc.com with ESMTP; 12 Jul 2020 08:57:33 -0700 To: libc-alpha@sourceware.org Subject: [PATCH v3 16/19] riscv32: Specify the arch_minimum_kernel as 5.4 Date: Sun, 12 Jul 2020 08:48:03 -0700 Message-Id: X-Mailer: git-send-email 2.27.0 In-Reply-To: References: MIME-Version: 1.0 X-Spam-Status: No, score=-14.3 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, KAM_NUMSUBJECT, SPF_HELO_PASS, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on server2.sourceware.org X-BeenThere: libc-alpha@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Libc-alpha mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Patchwork-Original-From: Alistair Francis via Libc-alpha From: Alistair Francis Reply-To: Alistair Francis Cc: alistair.francis@wdc.com Errors-To: libc-alpha-bounces@sourceware.org Sender: "Libc-alpha" --- sysdeps/unix/sysv/linux/riscv/configure | 4 ++++ sysdeps/unix/sysv/linux/riscv/configure.ac | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/sysdeps/unix/sysv/linux/riscv/configure b/sysdeps/unix/sysv/linux/riscv/configure index 2b3c77f18c..33139618e7 100755 --- a/sysdeps/unix/sysv/linux/riscv/configure +++ b/sysdeps/unix/sysv/linux/riscv/configure @@ -162,6 +162,10 @@ if test $libc_cv_riscv_int_abi = no; then as_fn_error $? "Unable to determine integer ABI" "$LINENO" 5 fi +if test $libc_cv_riscv_int_abi = ilp32; then + arch_minimum_kernel=5.4.0 +fi + libc_cv_riscv_float_abi=no cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ diff --git a/sysdeps/unix/sysv/linux/riscv/configure.ac b/sysdeps/unix/sysv/linux/riscv/configure.ac index 710d46afcd..9c736415f7 100644 --- a/sysdeps/unix/sysv/linux/riscv/configure.ac +++ b/sysdeps/unix/sysv/linux/riscv/configure.ac @@ -13,6 +13,10 @@ if test $libc_cv_riscv_int_abi = no; then AC_MSG_ERROR([Unable to determine integer ABI]) fi +if test $libc_cv_riscv_int_abi = ilp32; then + arch_minimum_kernel=5.4.0 +fi + libc_cv_riscv_float_abi=no AC_EGREP_CPP(yes, [#ifdef __riscv_float_abi_double yes From patchwork Sun Jul 12 15:48:05 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alistair Francis X-Patchwork-Id: 40061 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 99B193861003; Sun, 12 Jul 2020 15:57:39 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 99B193861003 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1594569459; bh=pXBeNDKMLkM5h3SVg4fKWz3LvFQ39AmZPYTiYWwJavY=; h=To:Subject:Date:In-Reply-To:References:List-Id:List-Unsubscribe: List-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:Cc: From; b=e23HBWFCA1g1tj7GicCZxYuPvTPKyklH1x4QdPKsSyX+w0r+tMWDA3k84NPcb5QtF PM22kuP2Pd2yW+YO9U1H2F+xC7jzhG2VT0neA4qHcmJU3JX56GDX9nmhv2KW4r7/cJ xoDzOliqzedbc3jX514KU3OYaPLULNn/3BK3wmJA= X-Original-To: libc-alpha@sourceware.org Delivered-To: libc-alpha@sourceware.org Received: from esa5.hgst.iphmx.com (esa5.hgst.iphmx.com [216.71.153.144]) by sourceware.org (Postfix) with ESMTPS id 3A8E03861015 for ; Sun, 12 Jul 2020 15:57:37 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org 3A8E03861015 IronPort-SDR: 6mQXawilZ404g7RsCzEPPpPByG61ugMnijv05OqQDGS69E6Bt2OOLzebTPyPD4NuWwGasM2NSA Q+hKqejfx2rHqk+DQS+rqzB+SoW3i6Sutxht8WlhDDWnRILffnvD07QJxwu69YNdG7x2I+0OJC KFNgNim69DMee0xCsXxiQT9NlYFOOR/gXRM80QT26OwEjkGBcErLiW0nLRkTgiAvR+xHBnlONu 1w2OjsQ3I+AKv4GwXEv+ROjeFhPN0RAdB7JQ9nYaftM3H+vDsGBa97o50z8FB/0IOTVZeji6X4 Q2o= X-IronPort-AV: E=Sophos;i="5.75,344,1589212800"; d="scan'208";a="142401286" Received: from uls-op-cesaip01.wdc.com (HELO uls-op-cesaep01.wdc.com) ([199.255.45.14]) by ob1.hgst.iphmx.com with ESMTP; 12 Jul 2020 23:57:36 +0800 IronPort-SDR: e0itKHgB9Jyas7kh5eLUjUep8IuYbkA8BlOm9ttJfxH4mVE8jnuqa0t8rRMphQQX6K4hMUDx0b dgxDUMQGgpCar9pZj9zwqMcVrlqAitFJU= Received: from uls-op-cesaip02.wdc.com ([10.248.3.37]) by uls-op-cesaep01.wdc.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 12 Jul 2020 08:46:07 -0700 IronPort-SDR: eR5yRTNMmkds5SabA2d3W+E0b6S/ZttncONSbPn6Qp/3eUwRUmqSj6bleXeLNt75OiKxhBSxlp rgWJcMMoFaLA== WDCIronportException: Internal Received: from usa002626.ad.shared (HELO risc6-mainframe.hgst.com) ([10.86.57.178]) by uls-op-cesaip02.wdc.com with ESMTP; 12 Jul 2020 08:57:36 -0700 To: libc-alpha@sourceware.org Subject: [PATCH v3 17/19] RISC-V: Add rv32 path to RTLDLIST in ldd Date: Sun, 12 Jul 2020 08:48:05 -0700 Message-Id: <3b9e6dd8baa53076ea5019f1e18d770ea47b58bb.1594568655.git.alistair.francis@wdc.com> X-Mailer: git-send-email 2.27.0 In-Reply-To: References: MIME-Version: 1.0 X-Spam-Status: No, score=-14.6 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, SPF_HELO_PASS, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on server2.sourceware.org X-BeenThere: libc-alpha@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Libc-alpha mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Patchwork-Original-From: Alistair Francis via Libc-alpha From: Alistair Francis Reply-To: Alistair Francis Cc: alistair.francis@wdc.com Errors-To: libc-alpha-bounces@sourceware.org Sender: "Libc-alpha" From: Zong Li --- sysdeps/unix/sysv/linux/riscv/ldd-rewrite.sed | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sysdeps/unix/sysv/linux/riscv/ldd-rewrite.sed b/sysdeps/unix/sysv/linux/riscv/ldd-rewrite.sed index 377a9c6ef4..bc0c4f51a1 100644 --- a/sysdeps/unix/sysv/linux/riscv/ldd-rewrite.sed +++ b/sysdeps/unix/sysv/linux/riscv/ldd-rewrite.sed @@ -1 +1 @@ -s_^\(RTLDLIST=\)\(.*lib/\)\(ld-linux\)-\(riscv64\)-\(lp64\)\(d*\)\(\.so\.[0-9.]*\)_\1"\2\3-\4-\5\7 \2\3-\4-\5d\7"_ +s_^\(RTLDLIST=\)\(.*lib\)\(/[^/]*\)\(64\|32\)\(-.*\)\(lp\)\(64\|32\)\(d*\)\(\.so\.[0-9.]*\)[ ]*$_\1"\2\364-\664\9 \2\364-\664\8\9 \2\332-i\632\9 \2\332-i\632\8\9"_ From patchwork Sun Jul 12 15:48:08 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alistair Francis X-Patchwork-Id: 40062 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 40F863860C3F; Sun, 12 Jul 2020 15:57:42 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 40F863860C3F DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1594569462; bh=qXlEngruLiNTaDeRV++ykrZ6GfPfYDQBCDInWz1ni5U=; h=To:Subject:Date:In-Reply-To:References:List-Id:List-Unsubscribe: List-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:Cc: From; b=LnJ663ppp6ZBLzUcypg++v6pwFednjwj8mRLB9IvzizmCLw5t8xzBj3xeiZhH2oVU NkcQXCiCT9eJqJaMxD7mEJLT2YLFnjxMwCEHHBQGSvHRSO6l9Cb6ZmIR1K6gD4DXsv ijugx2r+jRNE+vgqZd6qitpYmo6JPv2dzl3uPVzY= X-Original-To: libc-alpha@sourceware.org Delivered-To: libc-alpha@sourceware.org Received: from esa5.hgst.iphmx.com (esa5.hgst.iphmx.com [216.71.153.144]) by sourceware.org (Postfix) with ESMTPS id 52B713860C3C for ; Sun, 12 Jul 2020 15:57:39 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org 52B713860C3C IronPort-SDR: wiSLvAg9QncfwgSU/1s2ls2F5ut1HRCMkjL/cugDXanGfJbevmsE/Ytz01WuKxghzjCIqEC0h2 dqrHOP7SjtKT8YCmYo+ChIVCmx5C0lXOfLT8MGhV7xf/FW8bwpUm2MKCiOJOmIT6sunkxjPxz4 aH8Dvmez84ujMsQoTnda2K8VzmWqMTV8vmUzRmkGw8QvBu/16DcVQlnjgxY4elgryF0vF6o1VZ uy5JW4RAEDehVwfb48UkAyFN7wgnJMdI6aebjnCd7cBr1g+/4DhOO09b7RjBX8c9KE+I/b+6Vh AI0= X-IronPort-AV: E=Sophos;i="5.75,344,1589212800"; d="scan'208";a="142401287" Received: from uls-op-cesaip01.wdc.com (HELO uls-op-cesaep01.wdc.com) ([199.255.45.14]) by ob1.hgst.iphmx.com with ESMTP; 12 Jul 2020 23:57:39 +0800 IronPort-SDR: 8OeNOw/RYHc4zjlET/u77a3vSB6NxTThEGUd3q7pH1L+YLxqVsZqg+2YyoopS75GgrqjOwSBvm 2eZimZtR+vwqfPQssDF/dZhIttPh0pAB0= Received: from uls-op-cesaip02.wdc.com ([10.248.3.37]) by uls-op-cesaep01.wdc.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 12 Jul 2020 08:46:10 -0700 IronPort-SDR: 43b49funT3+UfVyly5+lJhF7KwFug4UGIEjYLmQruEqPIU2f9hc7LjwFA6JQ855MhZdpwG8tUu 86O+puihKx9w== WDCIronportException: Internal Received: from usa002626.ad.shared (HELO risc6-mainframe.hgst.com) ([10.86.57.178]) by uls-op-cesaip02.wdc.com with ESMTP; 12 Jul 2020 08:57:38 -0700 To: libc-alpha@sourceware.org Subject: [PATCH v3 18/19] Documentation for the RISC-V 32-bit port Date: Sun, 12 Jul 2020 08:48:08 -0700 Message-Id: X-Mailer: git-send-email 2.27.0 In-Reply-To: References: MIME-Version: 1.0 X-Spam-Status: No, score=-14.5 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, SPF_HELO_PASS, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on server2.sourceware.org X-BeenThere: libc-alpha@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Libc-alpha mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Patchwork-Original-From: Alistair Francis via Libc-alpha From: Alistair Francis Reply-To: Alistair Francis Cc: alistair.francis@wdc.com Errors-To: libc-alpha-bounces@sourceware.org Sender: "Libc-alpha" There is already RISC-V 64-bit port information in the documentation. Let's add some documentation entries for the RISC-V 32-bit as well. --- NEWS | 6 ++++++ README | 1 + 2 files changed, 7 insertions(+) diff --git a/NEWS b/NEWS index 92dcb77fef..958f676b6f 100644 --- a/NEWS +++ b/NEWS @@ -89,6 +89,12 @@ Major new features: support, otherwise runtime objects linked into user code will not be BTI compatible. +* Support RISC-V port for 32-bit. The ISA and ABI pairs supported as follows: + + - rv32imac ilp32 + - rv32imafdc ilp32 + - rv32imafdc ilp32d + Deprecated and removed features, and other changes affecting compatibility: * Remove configure option --enable-obsolete-nsl. libnsl is only built diff --git a/README b/README index 903f07e484..d0f0edb393 100644 --- a/README +++ b/README @@ -39,6 +39,7 @@ The GNU C Library supports these configurations for using Linux kernels: powerpc64*-*-linux-gnu Big-endian and little-endian. s390-*-linux-gnu s390x-*-linux-gnu + riscv32-*-linux-gnu riscv64-*-linux-gnu sh[34]-*-linux-gnu sparc*-*-linux-gnu From patchwork Sun Jul 12 15:48:11 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alistair Francis X-Patchwork-Id: 40063 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id C72FA3861001; Sun, 12 Jul 2020 15:57:43 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org C72FA3861001 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1594569463; bh=2dHUT2UtERVgAvFVekkMPo1zYIKHjWpEWHqtIgPEkDM=; h=To:Subject:Date:In-Reply-To:References:List-Id:List-Unsubscribe: List-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:Cc: From; b=baJssYpzQawieVb51iV/u61Gwwx7BifGFQLbFlTRfJU0x0z4wLbPqIzUSlI8Zv/Xr yDjzaa14w0PnhRuVwmFq2BT+aNAr3dprqc/VQaxzvfFlYhtTFqK5fBIkgKPdWPUDn7 bYv+F/uyZ7RMD2H7D9TN8sJhXpulbEKWfz4lc8Ug= X-Original-To: libc-alpha@sourceware.org Delivered-To: libc-alpha@sourceware.org Received: from esa5.hgst.iphmx.com (esa5.hgst.iphmx.com [216.71.153.144]) by sourceware.org (Postfix) with ESMTPS id 03A6F3851C13 for ; Sun, 12 Jul 2020 15:57:41 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org 03A6F3851C13 IronPort-SDR: 4jXLwX0Bm0EnZ/uee+YjgsXD61eN02+TLHntgJ+8OTbf8rTtpEU7urnkplDTidBmAL2DkXVEI/ ff54cwGNStGiiodfZ4+KrCmtsTlDjQTFPV3dJ253axUuMla8kSfwYZI99tpUjDh1ep2sYEQsKK DdpfvSIV8VO/maqBi8kqpaxY6k5PjqQ+0xFcN2D+Hb83+S83pNy5HlRq/F6OEchK9sGEMc1RMg 13lwzJmnZSLQmJ4TnilwvLwkR4g2rxZq3U+q/ROHS12y375S4pGyMhV33OkQ6aU/r6zTmBHshG vkw= X-IronPort-AV: E=Sophos;i="5.75,344,1589212800"; d="scan'208";a="142401289" Received: from uls-op-cesaip01.wdc.com (HELO uls-op-cesaep01.wdc.com) ([199.255.45.14]) by ob1.hgst.iphmx.com with ESMTP; 12 Jul 2020 23:57:42 +0800 IronPort-SDR: DuZWKCFEF4ylqNtgS4HxGzevp6Vdx0yNMqnsAiuAUq1wwHaD15Ic14W0kAPyzpvVpt5aJcNOAr P49hWGupC8CwDJQoNzUcvv033qbXVZpFU= Received: from uls-op-cesaip02.wdc.com ([10.248.3.37]) by uls-op-cesaep01.wdc.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 12 Jul 2020 08:46:12 -0700 IronPort-SDR: jEs/VE8xPQd4j3qW9r5ZKNVzKSKUkq6K7FXF1Z2fxY8YrKGz9z0A+ML/IDWEA3dnMkGVSbsBkE e9t5YMjXIe3g== WDCIronportException: Internal Received: from usa002626.ad.shared (HELO risc6-mainframe.hgst.com) ([10.86.57.178]) by uls-op-cesaip02.wdc.com with ESMTP; 12 Jul 2020 08:57:41 -0700 To: libc-alpha@sourceware.org Subject: [PATCH v3 19/19] Add RISC-V 32-bit target to build-many-glibcs.py Date: Sun, 12 Jul 2020 08:48:11 -0700 Message-Id: <0189f629b149cc35b201bee51b70d407a2e23fb5.1594568655.git.alistair.francis@wdc.com> X-Mailer: git-send-email 2.27.0 In-Reply-To: References: MIME-Version: 1.0 X-Spam-Status: No, score=-14.5 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, SPF_HELO_PASS, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on server2.sourceware.org X-BeenThere: libc-alpha@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Libc-alpha mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Patchwork-Original-From: Alistair Francis via Libc-alpha From: Alistair Francis Reply-To: Alistair Francis Cc: alistair.francis@wdc.com Errors-To: libc-alpha-bounces@sourceware.org Sender: "Libc-alpha" From: Zong Li Support building three variant of 32 bit RISC-V glibc as follows: - riscv32-linux-gnu-rv32imac-ilp32 - riscv32-linux-gnu-rv32imafdc-ilp32 - riscv32-linux-gnu-rv32imafdc-ilp32d --- scripts/build-many-glibcs.py | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/scripts/build-many-glibcs.py b/scripts/build-many-glibcs.py index 00ba6f6b11..b623c34f4b 100755 --- a/scripts/build-many-glibcs.py +++ b/scripts/build-many-glibcs.py @@ -347,6 +347,21 @@ class Context(object): self.add_config(arch='powerpc64le', os_name='linux-gnu', gcc_cfg=['--disable-multilib', '--enable-secureplt']) + self.add_config(arch='riscv32', + os_name='linux-gnu', + variant='rv32imac-ilp32', + gcc_cfg=['--with-arch=rv32imac', '--with-abi=ilp32', + '--disable-multilib']) + self.add_config(arch='riscv32', + os_name='linux-gnu', + variant='rv32imafdc-ilp32', + gcc_cfg=['--with-arch=rv32imafdc', '--with-abi=ilp32', + '--disable-multilib']) + self.add_config(arch='riscv32', + os_name='linux-gnu', + variant='rv32imafdc-ilp32d', + gcc_cfg=['--with-arch=rv32imafdc', '--with-abi=ilp32d', + '--disable-multilib']) self.add_config(arch='riscv64', os_name='linux-gnu', variant='rv64imac-lp64',