From patchwork Wed Jul 17 00:08:43 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alistair Francis X-Patchwork-Id: 1132995 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=sourceware.org (client-ip=209.132.180.131; helo=sourceware.org; envelope-from=libc-alpha-return-103685-incoming=patchwork.ozlabs.org@sourceware.org; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=wdc.com Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; secure) header.d=sourceware.org header.i=@sourceware.org header.b="JeZo96a9"; dkim=pass (2048-bit key; unprotected) header.d=wdc.com header.i=@wdc.com header.b="Empy0YN7"; dkim-atps=neutral Received: from sourceware.org (server1.sourceware.org [209.132.180.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 45pHkX1LdPz9s8m for ; Wed, 17 Jul 2019 10:11:47 +1000 (AEST) DomainKey-Signature: a=rsa-sha1; c=nofws; d=sourceware.org; h=list-id :list-unsubscribe:list-subscribe:list-archive:list-post :list-help:sender:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; q=dns; s= default; b=C7X8P3VyNrdF1oI++5ri70HeyvhKKCCNDEfnvuQTq40F9JSRvHPGQ RJjtSN8DXQSlYYwdguhpM+v0p/ZGSB0SU1GgJt6lIq/e9vNQEKudAx7d2PNG5lx9 Y57wtQNFZoNoElM4bissw4kahU6+pNgqyV4D+ulAa7uC68ORgjuEx8= DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=sourceware.org; h=list-id :list-unsubscribe:list-subscribe:list-archive:list-post :list-help:sender:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; s=default; bh=8g+0/h8mLKZCWyLEh0P07g9Mb9A=; b=JeZo96a9hEwuhPM7Wrt9XeQ9hUEG 9kndBiccqR+qqtbPi2V9Q7BiAIdMJHRHg6kNJ/NL6Ig8y5EzLnGz5rvESpefTSu3 cQVZAdmQoQfXN7Vw25BrWjLlK2fuxmKOAU1xiKJjXKtHO5u+7+xezEW4lJeSp3dF 3zY5wnxvvkoloD0= Received: (qmail 14785 invoked by alias); 17 Jul 2019 00:11:40 -0000 Mailing-List: contact libc-alpha-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: libc-alpha-owner@sourceware.org Delivered-To: mailing list libc-alpha@sourceware.org Received: (qmail 14767 invoked by uid 89); 17 Jul 2019 00:11:38 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-26.6 required=5.0 tests=AWL, BAYES_00, GIT_PATCH_0, GIT_PATCH_1, GIT_PATCH_2, GIT_PATCH_3 autolearn=ham version=3.3.1 spammy=avaliable, Francis, pause, francis X-HELO: esa4.hgst.iphmx.com DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=wdc.com; i=@wdc.com; q=dns/txt; s=dkim.wdc.com; t=1563322297; x=1594858297; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=0dA53qlHz+2rqewls7hbShXS/hBmFT/UjFXAzSa+7WY=; b=Empy0YN7kSQzseEMD59FKLMOyRvk9CTDNl8iqKUKuk9MtYHWem/SFK1S DCtTQcnuqTXO9FCvJKr8mqhJGnMuhxECj5mx8hhgfDZfH914acv3zQ2LW IOYIZ4ymlvSjdXOMOWKOwtfJREfDoN6NJ8ksgYKytgus29UMbq1xPoORe mbwCnAKkMGdVO27iwJ5BQu+q46971DIEgHRZ7K/1/cw6fZPQdt24zuxnm Z5+J0hUQjGtVtifSaTX+016OCIAPbjARTx2TCCLFQ+kWYUz0jaDlGQIaE n/8AOE0St6ECRl87B5Xa+bRkgV6lAkAkfCTdMJy7PtoaumV/TD3qp6pNK Q==; IronPort-SDR: pNX1HFqDOgCVMqihFd40AElSNa35zdySPqe3N8n8mI0uuX4KzNZwoQhWNVcy/rAymdIL2WjCkI EOCOH/aDSK508bikIzxZp5lhCoEraj/K4d4iTUsYqgNYVTZ2dMzcuFV5JOpUwb0T5nh1Fg1yme cZICq3sdXkq6C/si6VhrJm6f9TD5fK+9r1Adsmf6JWTp88z4sat9l2/WmyXosykr1iNAJZ+fzs 16ks3HlvxTZq7ljNyB1XTOmznsK8cHnLxEdPX5Q0P5zqySybgUo2A3xI32YfL9MNm4I96127sD 8tY= IronPort-SDR: 6rtPU0S3+ZOg3Q94WXHyfPtpdXM8beXu5trBjR44Fg7IPzzICEOyTt9MwxlYR+VJ/mop//7Wm8 467Z9JnpvJai7jtvRz9DaDhc2Hl0ATNg5O6IguP1jYXZEI9HPqUR9sseqX5NQtLQJE3MLb9Myb O5YQDbecocQ6wJn2Cg5wAwDKYZE4ppWKkHh6IHqNwPWmEtWh6MtlOzOxPmAIaizXuAKBN4qZpi 26WOqNLjR+4haFpw4QZFsYYe8UESOq+03JPLwAFZMm5/n530k6atCZoUgCDkBFmpz01KVcqGMS wdC6MD3aPA+0AYqbUhf3xUFy IronPort-SDR: qVDLEMOUSy9JMbTwf5dQkwGBhTsceKUWSPBSaPDnih6s20e8fdhiktf5Fl9O/F2SHJEdXsFQOG I1SIsGWYNMJuPeTCSbSRupAL2BTS6/O5VvI6t3er+Tt4IaB2KcwQpQmxImt9GgmWj/4uB7x/1L /g6/uXPHOYRbqvFgdWZFTZktyW4oED5eaYGLurjzto+9YMmYur0WwVSzkAcipGzWsXBRk2iNf3 OvIcJuszN4VXbvi3NRCxZo3txEjDfFXzIIi5OwhuoxQA0Eq2pfEs1lmRXoGhPQ3NFoDV2NCmBh XKo= From: Alistair Francis To: libc-alpha@sourceware.org Cc: arnd@arndb.de, adhemerval.zanella@linaro.org, fweimer@redhat.com, palmer@sifive.com, macro@wdc.com, zongbox@gmail.com, alistair.francis@wdc.com, alistair23@gmail.com Subject: [RFC v3 01/23] sysdeps/nanosleep: Use clock_nanosleep_time64 if avaliable Date: Tue, 16 Jul 2019 17:08:43 -0700 Message-Id: In-Reply-To: References: MIME-Version: 1.0 The nanosleep syscall is not supported on newer 32-bit platforms (such as RV32). To fix this issue let's use clock_nanosleep_time64 if it is avaliable. Let's use CLOCK_REALTIME when calling clock_nanosleep_time64 as the Linux specification says: "POSIX.1 specifies that nanosleep() should measure time against the CLOCK_REALTIME clock. However, Linux measures the time using the CLOCK_MONOTONIC clock. This probably does not matter, since the POSIX.1 specification for clock_settime(2) says that discontinuous changes in CLOCK_REALTIME should not affect nanosleep()" Signed-off-by: Alistair Francis --- ChangeLog | 6 +++ nptl/thrd_sleep.c | 41 +++++++++++++++- sysdeps/unix/sysv/linux/clock_nanosleep.c | 42 +++++++++++++++- sysdeps/unix/sysv/linux/nanosleep.c | 50 ++++++++++++++++++++ sysdeps/unix/sysv/linux/nanosleep_nocancel.c | 11 +++++ 5 files changed, 147 insertions(+), 3 deletions(-) diff --git a/ChangeLog b/ChangeLog index bd57a815b0..477b9b49b3 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1023,6 +1023,12 @@ * support/xtime.h: Add xclock_now() helper function. +2019-06-21 Alistair Francis + + * nptl/thrd_sleep.c: Use clock_nanosleep_time64 instead of nanosleep. + * sysdeps/unix/sysv/linux/nanosleep.c: Likewise. + * sysdeps/unix/sysv/linux/nanosleep_nocancel.c: Likewise. + 2019-06-20 Dmitry V. Levin Florian Weimer diff --git a/nptl/thrd_sleep.c b/nptl/thrd_sleep.c index 07a51808df..e7873a7170 100644 --- a/nptl/thrd_sleep.c +++ b/nptl/thrd_sleep.c @@ -21,11 +21,50 @@ #include "thrd_priv.h" +#if __TIMESIZE == 32 +struct timespec64 +{ + long int tv_sec; /* Seconds. */ + long int tv_nsec; /* Nanoseconds. */ +}; +#endif + int thrd_sleep (const struct timespec* time_point, struct timespec* remaining) { INTERNAL_SYSCALL_DECL (err); - int ret = INTERNAL_SYSCALL_CANCEL (nanosleep, err, time_point, remaining); + int ret; + +#ifdef __ASSUME_TIME64_SYSCALLS + ret = INTERNAL_SYSCALL_CANCEL (clock_nanosleep_time64, err, CLOCK_REALTIME, + 0, time_point, remaining); +#else +# ifdef __NR_clock_nanosleep_time64 +# if __TIMESIZE == 64 + long int ret_64; + + ret_64 = INTERNAL_SYSCALL_CANCEL (clock_nanosleep_time64, err, CLOCK_REALTIME, + 0, time_point, remaining); + + if (ret_64 == 0 || errno != ENOSYS) + ret = ret_64; +# else + timespec64 ts; + + ret = INTERNAL_SYSCALL_CANCEL (clock_nanosleep_time64, err, + CLOCK_REALTIME, 0, time_point, + ts); + + if (ret == 0 || errno != ENOSYS) { + remaining->tv_sec = ts.tv_sec; + remaining->tv_nsec = ts.tv_nsec; + return ret; + } +# endif +# endif + ret = INTERNAL_SYSCALL_CANCEL (nanosleep, err, time_point, remaining); +#endif + if (INTERNAL_SYSCALL_ERROR_P (ret, err)) { /* C11 states thrd_sleep function returns -1 if it has been interrupted diff --git a/sysdeps/unix/sysv/linux/clock_nanosleep.c b/sysdeps/unix/sysv/linux/clock_nanosleep.c index 0cb6614dc9..84bd5f8afc 100644 --- a/sysdeps/unix/sysv/linux/clock_nanosleep.c +++ b/sysdeps/unix/sysv/linux/clock_nanosleep.c @@ -21,6 +21,13 @@ #include #include "kernel-posix-cpu-timers.h" +#if __TIMESIZE == 32 +struct timespec64 +{ + long int tv_sec; /* Seconds. */ + long int tv_nsec; /* Nanoseconds. */ +}; +#endif /* We can simply use the syscall. The CPU clocks are not supported with this function. */ @@ -28,6 +35,8 @@ int __clock_nanosleep (clockid_t clock_id, int flags, const struct timespec *req, struct timespec *rem) { + int r; + if (clock_id == CLOCK_THREAD_CPUTIME_ID) return EINVAL; if (clock_id == CLOCK_PROCESS_CPUTIME_ID) @@ -36,8 +45,37 @@ __clock_nanosleep (clockid_t clock_id, int flags, const struct timespec *req, /* If the call is interrupted by a signal handler or encounters an error, it returns a positive value similar to errno. */ INTERNAL_SYSCALL_DECL (err); - int r = INTERNAL_SYSCALL_CANCEL (clock_nanosleep, err, clock_id, flags, - req, rem); + +#ifdef __ASSUME_TIME64_SYSCALLS + r = INTERNAL_SYSCALL_CANCEL (clock_nanosleep_time64, err, clock_id, + flags, req, rem); +#else +# ifdef __NR_clock_nanosleep_time64 +# if __TIMESIZE == 64 + long int ret_64; + + ret_64 = INTERNAL_SYSCALL_CANCEL (clock_nanosleep_time64, err, clock_id, + flags, req, rem); + + if (ret_64 == 0 || errno != ENOSYS) + r = ret_64; +# else + timespec64 ts; + + r = INTERNAL_SYSCALL_CANCEL (clock_nanosleep_time64, err, + clock_id, flags, req, + ts); + + if (r == 0 || errno != ENOSYS) { + rem->tv_sec = ts.tv_sec; + rem->tv_nsec = ts.tv_nsec; + return r; + } +# endif +# endif + r = INTERNAL_SYSCALL_CANCEL (clock_nanosleep, err, req, rem); +#endif + return (INTERNAL_SYSCALL_ERROR_P (r, err) ? INTERNAL_SYSCALL_ERRNO (r, err) : 0); } diff --git a/sysdeps/unix/sysv/linux/nanosleep.c b/sysdeps/unix/sysv/linux/nanosleep.c index f14ae565af..0c54f21e07 100644 --- a/sysdeps/unix/sysv/linux/nanosleep.c +++ b/sysdeps/unix/sysv/linux/nanosleep.c @@ -20,12 +20,62 @@ #include #include +#if defined(__ASSUME_TIME64_SYSCALLS) || defined(__NR_clock_nanosleep_time64) +static int +__nanosleep_time64_64 (const struct timespec *requested_time, + struct timespec *remaining) +{ + return SYSCALL_CANCEL (clock_nanosleep_time64, CLOCK_REALTIME, 0, + requested_time, remaining); +} + +#if __TIMESIZE == 32 +struct timespec64 +{ + long int tv_sec; /* Seconds. */ + long int tv_nsec; /* Nanoseconds. */ +}; + +static int +__nanosleep_time64_32 (const struct timespec *requested_time, + struct timespec *remaining) +{ + timespec64 ts; + + long int ret = SYSCALL_CANCEL (clock_nanosleep_time64, CLOCK_REALTIME, 0, + requested_time, &ts); + + remaining->tv_sec = ts.tv_sec; + remaining->tv_nsec = ts.tv_nsec; + + return ret; +} +#endif +#endif + /* Pause execution for a number of nanoseconds. */ int __nanosleep (const struct timespec *requested_time, struct timespec *remaining) { +#ifdef __ASSUME_TIME64_SYSCALLS + return __nanosleep_time64_64 (requested_time, remaining); +#else +# ifdef __NR_clock_nanosleep_time64 +# if __TIMESIZE == 64 + long int ret = __nanosleep_time64_64 (requested_time, remaining); + + if (ret == 0 || errno != ENOSYS) + return ret; +# else + long int ret = __nanosleep_time64_32 (requested_time, remaining); + + if (ret == 0 || errno != ENOSYS) + return ret; +# endif +# endif return SYSCALL_CANCEL (nanosleep, requested_time, remaining); +#endif } hidden_def (__nanosleep) weak_alias (__nanosleep, nanosleep) diff --git a/sysdeps/unix/sysv/linux/nanosleep_nocancel.c b/sysdeps/unix/sysv/linux/nanosleep_nocancel.c index 122ba627ff..f411a1c6c2 100644 --- a/sysdeps/unix/sysv/linux/nanosleep_nocancel.c +++ b/sysdeps/unix/sysv/linux/nanosleep_nocancel.c @@ -24,6 +24,17 @@ int __nanosleep_nocancel (const struct timespec *requested_time, struct timespec *remaining) { +#ifdef __ASSUME_TIME64_SYSCALLS + return INLINE_SYSCALL_CALL (clock_nanosleep_time64, CLOCK_REALTIME, 0, + requested_time, remaining); +#else +# ifdef __NR_clock_nanosleep_time64 + long int ret = INLINE_SYSCALL_CALL (clock_nanosleep_time64, CLOCK_REALTIME, 0, + requested_time, remaining); + if (ret == 0 || errno != ENOSYS) + return ret; +# endif return INLINE_SYSCALL_CALL (nanosleep, requested_time, remaining); +#endif } hidden_def (__nanosleep_nocancel) From patchwork Wed Jul 17 00:08:46 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alistair Francis X-Patchwork-Id: 1132996 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=sourceware.org (client-ip=209.132.180.131; helo=sourceware.org; envelope-from=libc-alpha-return-103686-incoming=patchwork.ozlabs.org@sourceware.org; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=wdc.com Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; secure) header.d=sourceware.org header.i=@sourceware.org header.b="v8Tq/Ftl"; dkim=pass (2048-bit key; unprotected) header.d=wdc.com header.i=@wdc.com header.b="jx2zbNfq"; dkim-atps=neutral Received: from sourceware.org (server1.sourceware.org [209.132.180.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 45pHkh4Szwz9s8m for ; Wed, 17 Jul 2019 10:11:56 +1000 (AEST) DomainKey-Signature: a=rsa-sha1; c=nofws; d=sourceware.org; h=list-id :list-unsubscribe:list-subscribe:list-archive:list-post :list-help:sender:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; q=dns; s= default; b=N5D/6mG2sqOSFf+N7QljpFCyVKYcVlsMUZJqycaxFt1EpakHbFbQx hBu/nveYGSmM9D2PHRN9BIhcFsgH0vCpOAqx9npOmPOA1XZZp8gmXJJHLGA4XUGg N6AoUtUgDfCr4fniso74/ezAzojXlybJuHEYmgHt0lHAgIUdHlAYus= DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=sourceware.org; h=list-id :list-unsubscribe:list-subscribe:list-archive:list-post :list-help:sender:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; s=default; bh=1VagezMIhmfRU4tBnczNt4cXQGE=; b=v8Tq/FtlV3R5UpeIHqXyKyBgi0Yg oTjtr25wy+XzIUBT3v9FTl0qSRsJxQOoOo/lYnWS/eJVeuVeBR3sdHwUU9pAe1yR 6fLf1npKqxmQK8Jca5M08/meIimNJ1XMwDMQvZmEdjywu55Gm5fp/c8qaKfaOVud H6Aia7mOeAE3WEc= Received: (qmail 14937 invoked by alias); 17 Jul 2019 00:11:41 -0000 Mailing-List: contact libc-alpha-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: libc-alpha-owner@sourceware.org Delivered-To: mailing list libc-alpha@sourceware.org Received: (qmail 14866 invoked by uid 89); 17 Jul 2019 00:11:40 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-26.6 required=5.0 tests=AWL, BAYES_00, GIT_PATCH_0, GIT_PATCH_1, GIT_PATCH_2, GIT_PATCH_3 autolearn=ham version=3.3.1 spammy= X-HELO: esa4.hgst.iphmx.com DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=wdc.com; i=@wdc.com; q=dns/txt; s=dkim.wdc.com; t=1563322300; x=1594858300; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=7BcjHw/mfXm4bJKMMV4PVboGHVo7TskTMkdOq7F4FCE=; b=jx2zbNfqOn2A0dJUWyc5SukvNM1e3gBidGsRRaTg1mWvtBYVXMbPe9n/ +Fm+kCN1Mseh729z7PmbltogL5fjkeuluwm3BNZ4QOAEMi1jAXTNT7H9C t7jmCQsqQp32S8nHJR0oEiZNGgJLACaHwnbBfVLmdkYdcDUf9B9zDD8Lt 8C1GRU8HsF8D/FB1TORCQ1i0rv0Qlp70dJK6GuEJKa344mGrwtGHfQqg0 xMVFK579EuGQwkdEVcka1ytEoNe7FBVYnVVdQa0H6NkNQN5JTMjK/Ev0l 3K6ymsncz+aKdPDfQYcqQBAvLRpmPp4laYbbCGqKU9zVFuoURGrvpYcPW A==; IronPort-SDR: ydN58vf940vYSBeGucRj31qNqhBJuL4hXh2u5/7vASmLKubULXp1AXJ91402gGeZSTTGcRw0Ij pTkfTzg02I8tto3vqsJ/IIAO4dFy4jqzQweeonZfUh/lV+gPP2iMsvA44koV3af+l6YjuxUrW7 VjHhcAOTXbBCfUE3lZ7ysAOWaXze9EOkNfP9ZoKSh1Nb+u4p1NTl9h158psprzfYS98yM1JHGD bztMs1PXU6oCmYMNqHmj7vZqv4Oxp0sM51oG6GBPcOyAH9ZmRLt5jLqxj/mX/c/YMwX90MtSeo Jq4= IronPort-SDR: DSl3dJ5+6OU6cyqt3E5hrlx9z36sdEQ553L6BCZBt0WhyHNqPoNBOlWLntzgF0hP/Roqqmo7IM 7DqT/Hmt/IHqMQNq6sgSVGrvdebINrfhpAQxf+2ViGLJY9n9qHeHNDBehZhoGa7FKdlAxmzZHJ iezwQ9s4x4i97WqNhPXzsNBnW2Xh14rrHIGNPt/4ndgyRaM0GJ6bZ7Z3957DimxWz7J1bNsTMW SK6JfPm68YUgfKgB2Q7HqjQGdFH5ZX2wt4Kp0D9mr3RaIEVYbdqjlx2OkwM/pdUZwp/32ZKCCC +ZM2SW4u/d2qwbPLQUdocmEQ IronPort-SDR: Y2E4wkGxn9Gc9u98z798jGhO7depKPTcb1xcsz4Q3CFdRYUyuHtgb1YXHDyRJOj3FBfYcbqUEh tUKZSfVXMkt7ZJDETnITsNIlBCOOQj+RAZoDgXXtJ7WIZKAcFBbWkwTQMT8d2+ZqyLWKXRzdi6 9JAp4rSrw1OX62sVXC/RGU81aS60XFQe8BDVKm/bcgLoKRa4cX0HbkSer3alogqQ4n4I37OIro BYmWhF1n0/SWntC2GqH2OQWh0j3ZJRsOM2ctQdobBR+guM42X5xufZ8A6NRLQ4cR2lKSTq2pqD 7vM= From: Alistair Francis To: libc-alpha@sourceware.org Cc: arnd@arndb.de, adhemerval.zanella@linaro.org, fweimer@redhat.com, palmer@sifive.com, macro@wdc.com, zongbox@gmail.com, alistair.francis@wdc.com, alistair23@gmail.com Subject: [RFC v3 02/23] sysdeps/gettimeofday: Use clock_gettime64 if avaliable Date: Tue, 16 Jul 2019 17:08:46 -0700 Message-Id: In-Reply-To: References: MIME-Version: 1.0 Not all architectures support the obsolete gettimeofday so use the newer clock_gettime64 syscall if it is avaliable. This fixes RV32 build issues. Signed-off-by: Alistair Francis --- ChangeLog | 1 + sysdeps/unix/sysv/linux/gettimeofday.c | 28 ++++++++++++++++++++++++++ 2 files changed, 29 insertions(+) diff --git a/ChangeLog b/ChangeLog index 477b9b49b3..9ca390a9c3 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1028,6 +1028,7 @@ * nptl/thrd_sleep.c: Use clock_nanosleep_time64 instead of nanosleep. * sysdeps/unix/sysv/linux/nanosleep.c: Likewise. * sysdeps/unix/sysv/linux/nanosleep_nocancel.c: Likewise. + * sysdeps/unix/sysv/linux/gettimeofday.c: Use clock_gettime64 syscall for gettimeofday. 2019-06-20 Dmitry V. Levin Florian Weimer diff --git a/sysdeps/unix/sysv/linux/gettimeofday.c b/sysdeps/unix/sysv/linux/gettimeofday.c index a74f03825a..151b1e606c 100644 --- a/sysdeps/unix/sysv/linux/gettimeofday.c +++ b/sysdeps/unix/sysv/linux/gettimeofday.c @@ -32,7 +32,35 @@ int __gettimeofday (struct timeval *tv, struct timezone *tz) { +#ifdef __ASSUME_TIME64_SYSCALLS + int ret; + struct __timespec64 now; + + ret = INLINE_VSYSCALL (clock_gettime64, 2, CLOCK_REALTIME, + &now); + + /* Convert from timespec to timeval */ + tv->tv_sec = now.tv_sec; + tv->tv_usec = now.tv_nsec / 1000; + + return ret; +#else +# ifdef __NR_clock_gettime64 + long int ret; + struct __timespec64 now; + + ret = INLINE_VSYSCALL (clock_gettime64, 2, CLOCK_REALTIME, + &now); + + /* Convert from timespec to timeval */ + tv->tv_sec = now.tv_sec; + tv->tv_usec = now.tv_nsec / 1000; + + if (ret == 0 || errno != ENOSYS) + return ret; +# endif return INLINE_VSYSCALL (gettimeofday, 2, tv, tz); +#endif } libc_hidden_def (__gettimeofday) weak_alias (__gettimeofday, gettimeofday) From patchwork Wed Jul 17 00:08:48 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alistair Francis X-Patchwork-Id: 1132998 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=sourceware.org (client-ip=209.132.180.131; helo=sourceware.org; envelope-from=libc-alpha-return-103688-incoming=patchwork.ozlabs.org@sourceware.org; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=wdc.com Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; secure) header.d=sourceware.org header.i=@sourceware.org header.b="PNWtOq4Q"; dkim=pass (2048-bit key; unprotected) header.d=wdc.com header.i=@wdc.com header.b="jw0WTDYi"; dkim-atps=neutral Received: from sourceware.org (server1.sourceware.org [209.132.180.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 45pHl35MlCz9s8m for ; Wed, 17 Jul 2019 10:12:15 +1000 (AEST) DomainKey-Signature: a=rsa-sha1; c=nofws; d=sourceware.org; h=list-id :list-unsubscribe:list-subscribe:list-archive:list-post :list-help:sender:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; q=dns; s= default; b=QfYPNe4bul6tBbkYFJ6L2Rxez/BwDAS0yPHOM6Gf0JZ3gm6qozy5d pCPq8/98PVTeyemAxHj3kZCYS3lbVWowzmWYj/gC0Rj4v7ZoN6PcHNFhWczWwrQZ 8d0TVOOukXpxAiCmKZ6UNF7d8I4IuBW/e5RrurN/ZCIw6FFMO8wn1Y= DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=sourceware.org; h=list-id :list-unsubscribe:list-subscribe:list-archive:list-post :list-help:sender:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; s=default; bh=gmuE5Q/UKRLQUUn0dp+45HNUFcU=; b=PNWtOq4QWlLocuxxHCW6P+PJ9BiX TFsJz8t3VAvtQIBu/ganOYPh3K88kysZpMIe7Ie1XK+57xeIFX+pp26lncLoXGYl nf6U6SNL6Jqmet2BZGv190zCk04UEUEMyeoBjUS+07kXdGqzHYJNwAWK1EH5Xqzb mGFqMfYVeN6Ifew= Received: (qmail 15410 invoked by alias); 17 Jul 2019 00:11:44 -0000 Mailing-List: contact libc-alpha-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: libc-alpha-owner@sourceware.org Delivered-To: mailing list libc-alpha@sourceware.org Received: (qmail 15343 invoked by uid 89); 17 Jul 2019 00:11:44 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-26.6 required=5.0 tests=AWL, BAYES_00, GIT_PATCH_0, GIT_PATCH_1, GIT_PATCH_2, GIT_PATCH_3 autolearn=ham version=3.3.1 spammy= X-HELO: esa4.hgst.iphmx.com DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=wdc.com; i=@wdc.com; q=dns/txt; s=dkim.wdc.com; t=1563322302; x=1594858302; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=00LbqPsdvkw74T6RToVbCkXSCGVFV+R5sW8+kXLhU3M=; b=jw0WTDYitFAMdBmZhjherd0owMjKKdhiJr2h86W7omwpA//4BAhNoAui dJvaRZVAelmQb5QF2VSccBvNz9Ty5ZYJlehNtjL/I/FMQD7O9TP4Hj/mN zZ5FfZ/tLkpbj+e542hkOhjKz0+HG64br6XUlXtyx1mRSdBZXAHhP8uN3 Gyyyojr3rTJjOSxkC7U9g/nYWhEGdZ4raOYLkeuekbslv2wPmv4hZDT2Q cQmdsDOeshB0DudJwSR38gR/BkazUvKO7ffEfFE5Im7oIcW1XOWq592hC zJH4d1mMmRsOoVwMhEf/JxDXLwma6GR9R/HQGmOOvSXJzKkrErCM9wi1q w==; IronPort-SDR: zdtOI8kTyLtRLu5DjNogbXukzBqr+hLGv/qZhC6ZWOBki37HBO5CFyHfZg/jklqS2b7oKXvQ2S B5ArXV7G/tx6k8evIqwE1VbPiUY7aqNawDCjWkqDP1gmzGdsq5O2kibZyP1i//NCChSKlunYOB saBnJCgcYzjZheBnOGDd6fSkHCqq4w52YHpxv0q8seDBSUPMps6Qmx6YkbpX0CXxITg9HY/aiF WFNVZoYS5YmLuLtxEIi310kbEJ9ci4ZUxCDeQqUK0U07coJeCC8uhflCDPsEFXSio3J7kz+rf0 xeY= IronPort-SDR: OiN5TeQX/F/d7r9I8obZhZVzQw0Ig6oNLYzHonFKjk1aJDrneE5PfotikSWzlLohpYyvdT3GMz h39YMHNDABbQprQia2uudutYHnybNyL4Iv/BLx0WOIdiXZqe/0G0g2/dTARVbikxVkdd1acs9a SwZId1cMvU7fRj3+89n857yZwl+KonTZTzwvcAYUJTCyGi3m3uw9Z74w9tHxidfPTcVXsxh8/v GoqAARtnfUwipPXgUkgX5TIA+0FX8wrxtK67cu9SSqaupCL1e+/OQDMSlh6VyNtehZWjIhoMoV OJxd8HL8TBZrgI2vJZQ7481T IronPort-SDR: FAPTc9BP5JB/PsM85LGB9rV0+QSPmeS4WwQ3jh3CW/nsvsjgyeW/rEbvdeoQdOUvnka75Vn+CM hxvfwhe+su0KpAAH+QZGg002yzMgr4fPwGSRiUijmmzkQSmDF6IvCcfeKlgv1C9CHZG8Vf1PEl p9BYDi2r+A8snvgKJx3jlroJX3sKrH4Tl6GlLNLfS8+hYnbMSb7KgMwTA5Lk4xcrM5fIJuvipf WlZ0VE72IpfDmjXIn+NKo+gxFpD8sOdDzkODAx8Dzy35a1k2jDBhdP/ylflxsNxsYEnJr+i/jU MYo= From: Alistair Francis To: libc-alpha@sourceware.org Cc: arnd@arndb.de, adhemerval.zanella@linaro.org, fweimer@redhat.com, palmer@sifive.com, macro@wdc.com, zongbox@gmail.com, alistair.francis@wdc.com, alistair23@gmail.com Subject: [RFC v3 03/23] sysdeps/wait: Use waitid if avaliable Date: Tue, 16 Jul 2019 17:08:48 -0700 Message-Id: <2d3359a195633b85e01f83bf536330d72f7bc8aa.1563321715.git.alistair.francis@wdc.com> In-Reply-To: References: MIME-Version: 1.0 If the waitid syscall is avaliable let's use that as waitpid and wait4 aren't always avaliable (they aren't avaliable on RV32). Unfortunately waitid is substantially differnt to waitpid and wait4, so the conversion ends up being complex. Signed-off-by: Alistair Francis Signed-off-by: "Eric W. Biederman" --- ChangeLog | 3 ++ sysdeps/unix/sysv/linux/wait.c | 39 ++++++++++++++++-- sysdeps/unix/sysv/linux/waitpid.c | 46 ++++++++++++++++++++++ sysdeps/unix/sysv/linux/waitpid_nocancel.c | 45 +++++++++++++++++++++ 4 files changed, 130 insertions(+), 3 deletions(-) diff --git a/ChangeLog b/ChangeLog index 9ca390a9c3..fb54a4aa61 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1029,6 +1029,9 @@ * sysdeps/unix/sysv/linux/nanosleep.c: Likewise. * sysdeps/unix/sysv/linux/nanosleep_nocancel.c: Likewise. * sysdeps/unix/sysv/linux/gettimeofday.c: Use clock_gettime64 syscall for gettimeofday. + * sysdeps/unix/sysv/linux/wait.c: Use __NR_waitid if avaliable. + * sysdeps/unix/sysv/linux/waitpid.c: Likewise. + * sysdeps/unix/sysv/linux/waitpid_nocancel.c: Likewise. 2019-06-20 Dmitry V. Levin Florian Weimer diff --git a/sysdeps/unix/sysv/linux/wait.c b/sysdeps/unix/sysv/linux/wait.c index 498bd1c095..e727afa14b 100644 --- a/sysdeps/unix/sysv/linux/wait.c +++ b/sysdeps/unix/sysv/linux/wait.c @@ -26,9 +26,42 @@ pid_t __libc_wait (int *stat_loc) { - pid_t result = SYSCALL_CANCEL (wait4, WAIT_ANY, stat_loc, 0, - (struct rusage *) NULL); - return result; +#ifdef __NR_waitid + siginfo_t infop; + __pid_t ret; + + ret = SYSCALL_CANCEL (waitid, P_ALL, 0, &infop, WEXITED, NULL); + + if (ret < 0) { + return ret; + } + + if (stat_loc) { + *stat_loc = 0; + switch (infop.si_code) { + case CLD_EXITED: + *stat_loc = infop.si_status << 8; + break; + case CLD_DUMPED: + *stat_loc = 0x80; + case CLD_KILLED: + *stat_loc |= infop.si_status; + break; + case CLD_TRAPPED: + case CLD_STOPPED: + *stat_loc = infop.si_status << 8 | 0x7f; + break; + case CLD_CONTINUED: + *stat_loc = 0xffff; + break; + } + } + + return infop.si_pid; +#else + return SYSCALL_CANCEL (wait4, WAIT_ANY, stat_loc, 0, + (struct rusage *) NULL); +#endif } weak_alias (__libc_wait, __wait) diff --git a/sysdeps/unix/sysv/linux/waitpid.c b/sysdeps/unix/sysv/linux/waitpid.c index f0897574c0..7d4e0bb77d 100644 --- a/sysdeps/unix/sysv/linux/waitpid.c +++ b/sysdeps/unix/sysv/linux/waitpid.c @@ -20,12 +20,58 @@ #include #include #include +#include __pid_t __waitpid (__pid_t pid, int *stat_loc, int options) { #ifdef __NR_waitpid return SYSCALL_CANCEL (waitpid, pid, stat_loc, options); +#elif defined(__NR_waitid) + __pid_t ret; + idtype_t idtype = P_PID; + siginfo_t infop; + + if (pid < -1) { + idtype = P_PGID; + pid *= -1; + } else if (pid == -1) { + idtype = P_ALL; + } else if (pid == 0) { + idtype = P_PGID; + pid = getpgrp(); + } + + options |= WEXITED; + + ret = SYSCALL_CANCEL (waitid, idtype, pid, &infop, options, NULL); + + if (ret < 0) { + return ret; + } + + if (stat_loc) { + *stat_loc = 0; + switch (infop.si_code) { + case CLD_EXITED: + *stat_loc = infop.si_status << 8; + break; + case CLD_DUMPED: + *stat_loc = 0x80; + case CLD_KILLED: + *stat_loc |= infop.si_status; + break; + case CLD_TRAPPED: + case CLD_STOPPED: + *stat_loc = infop.si_status << 8 | 0x7f; + break; + case CLD_CONTINUED: + *stat_loc = 0xffff; + break; + } + } + + return infop.si_pid; #else return SYSCALL_CANCEL (wait4, pid, stat_loc, options, NULL); #endif diff --git a/sysdeps/unix/sysv/linux/waitpid_nocancel.c b/sysdeps/unix/sysv/linux/waitpid_nocancel.c index 89e36a5c0b..c92f05421b 100644 --- a/sysdeps/unix/sysv/linux/waitpid_nocancel.c +++ b/sysdeps/unix/sysv/linux/waitpid_nocancel.c @@ -27,6 +27,51 @@ __waitpid_nocancel (__pid_t pid, int *stat_loc, int options) { #ifdef __NR_waitpid return INLINE_SYSCALL_CALL (waitpid, pid, stat_loc, options); +#elif defined(__NR_waitid) + __pid_t ret; + idtype_t idtype = P_PID; + siginfo_t infop; + + if (pid < -1) { + idtype = P_PGID; + pid *= -1; + } else if (pid == -1) { + idtype = P_ALL; + } else if (pid == 0) { + idtype = P_PGID; + pid = getpgrp(); + } + + options |= WEXITED; + + ret = INLINE_SYSCALL_CALL (waitid, idtype, pid, &infop, options, NULL); + + if (ret < 0) { + return ret; + } + + if (stat_loc) { + *stat_loc = 0; + switch (infop.si_code) { + case CLD_EXITED: + *stat_loc = infop.si_status << 8; + break; + case CLD_DUMPED: + *stat_loc = 0x80; + case CLD_KILLED: + *stat_loc |= infop.si_status; + break; + case CLD_TRAPPED: + case CLD_STOPPED: + *stat_loc = infop.si_status << 8 | 0x7f; + break; + case CLD_CONTINUED: + *stat_loc = 0xffff; + break; + } + } + + return infop.si_pid; #else return INLINE_SYSCALL_CALL (wait4, pid, stat_loc, options, NULL); #endif From patchwork Wed Jul 17 00:08:51 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alistair Francis X-Patchwork-Id: 1132999 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=sourceware.org (client-ip=209.132.180.131; helo=sourceware.org; envelope-from=libc-alpha-return-103689-incoming=patchwork.ozlabs.org@sourceware.org; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=wdc.com Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; secure) header.d=sourceware.org header.i=@sourceware.org header.b="BO9ITD7l"; dkim=pass (2048-bit key; unprotected) header.d=wdc.com header.i=@wdc.com header.b="UhC89DK4"; dkim-atps=neutral Received: from sourceware.org (server1.sourceware.org [209.132.180.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 45pHlF5RFkz9sMr for ; Wed, 17 Jul 2019 10:12:25 +1000 (AEST) DomainKey-Signature: a=rsa-sha1; c=nofws; d=sourceware.org; h=list-id :list-unsubscribe:list-subscribe:list-archive:list-post :list-help:sender:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; q=dns; s= default; b=ZL6YP+SaYMQIqD1EZpGN4vP65OzTuGNxzKbDLUQ1A+lgoxXJ1KLoN JfJ6htc5RQsLxw7++DmRKLDGUxr1pGiud5bYCnCym1+gkMbAGWh9TFW796L/GQ4x i22HpaY5ljnPt3g/VmNCdYa0HzIPKqFQUM7/KbtP7OP7v3Es5M9FRA= DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=sourceware.org; h=list-id :list-unsubscribe:list-subscribe:list-archive:list-post :list-help:sender:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; s=default; bh=nnFWuIx6MgLTUWJB3Yytcpvj8sM=; b=BO9ITD7lQuc9CBehVMqR1eKcP1Ps xAVywDSQMgiM6VPD5ixhI/YEHubJpcpzfAYKSdIVxbwN0JJVOAWNNxLDQcuB3tHf SWgVyAQ/AnvrTsSUrSS3Bgilf6ZXwsaLYoaqJEmsQ8MQzhoYKZ3hyVS1kzGxMNyY /yK+eCyPMz+RvZE= Received: (qmail 15570 invoked by alias); 17 Jul 2019 00:11:45 -0000 Mailing-List: contact libc-alpha-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: libc-alpha-owner@sourceware.org Delivered-To: mailing list libc-alpha@sourceware.org Received: (qmail 15494 invoked by uid 89); 17 Jul 2019 00:11:45 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-26.6 required=5.0 tests=AWL, BAYES_00, GIT_PATCH_0, GIT_PATCH_1, GIT_PATCH_2, GIT_PATCH_3 autolearn=ham version=3.3.1 spammy=Delay X-HELO: esa4.hgst.iphmx.com DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=wdc.com; i=@wdc.com; q=dns/txt; s=dkim.wdc.com; t=1563322304; x=1594858304; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=Ja+hgOQfjiA3Bk/oGNBYwkRBNPtZqBH6L2JpULdsFbY=; b=UhC89DK47958lUnY15AHON0B21k5e8HIRNrmwHDYy0r3GWodGeqXj7ZW t6GbR3vFhMN6ZyIVSWgnXmWcvvfdLDcc0nCg2vbVoggdyAAYxM/hLvJUs s7y9vycEADZDWo6dNvxoZf2AuKsJ5WaiGRD4mwET6zv61jDIjmO6A6kIZ nZAz+a49NOtC4NorVYJEiGkSgsHpoczO+dFplOzBGGEQ0qzWYRnkq9R79 rdBalcdLytO9NfFahfGwX/IujhG0fvv8rVo5ydnyfUOm6mq0nL4QGHOtR tdBaRu88tOD8Q6TXJ6L7pzpksCDhWlWmZ8VaKw1dLnjl5WNDYzLgO8lPY w==; IronPort-SDR: AEmiGnllEmj0W/yQ0md8/Lh/aV7tmMvQEnCiSx6znzVPGxhE4lNNOmvC45VQHh9K7Jdr9vEz5w Di+p2tOtfXV4Kvvo8Aitu/H8XPqSVzi1LmDsRAEO8NFJeZ8WQDtNqmryjANF5HHEubSd0dT1xB gQxYiF9iMZNcCgJz+TkTH644oMjQiGV9ZmI9TsPr/M6OcJcidxwL1THZZ9ErSOKTUCc/6pJNWc /f3i97NVrHlB73X+m4F9Rfx56BjEuJj2dgcU3QL2FURX7f7zlg5wQJfzItVxYo0mBNyBPrKrSs RV0= IronPort-SDR: Gl6mXgwMymifJdbyb7ZkkosaoKtS8SR5Eygh1J1/yLhk0B7E4nCtwAW/mR61jWvujPqkW466JE qFJNjzlaRKT4lmorhaw2GIR9tllHCuwaHBVFeS9KR354ge4crGmT8MK/1o64UUxMYyZsMG4rmq 1sdH4aDBRf84WwnAZcXLkoqaJGrLjdVhzCGGcvC9uvlhwf/9wIqVyANhg1p/rvxLKl3wrdtw/y 1ozo9K+g4QXw0Vy0WZm6a2v+qYGmi+CsHjAZDVEA9/T4IUcUVb7fazQO+wgktpLwZBhAscfo2Q Xdxz1g2TRRdaxepK1WhaPMAN IronPort-SDR: 9DZs/PNUDNHwl/8E8QB7KTSXg3p1dPJQGzBLborV10Z7e9QDpv3bN/50E5WI3gwIF6JvTGlwMQ dbxl5pY0qujBG+iGvlK4VG9xHUb9mdgBae7stXy04DotdFzPf4DOswv4xSRz+1vFqT1CJYNnp1 Owdz0j7XXrRme5h2eQyvS0Tykr/Gw1Ryr3896PAnyHYtLOcrZa+mtN4E+Si1hluAasCCNYWNFX rMNfjqnIgKdVlzKNsDhDrnBoVljmgZ7Sx7HX/Dp0OI2/1viqwrYp1QIIsUOBLP0ZFBSvCbTHFU Hso= From: Alistair Francis To: libc-alpha@sourceware.org Cc: arnd@arndb.de, adhemerval.zanella@linaro.org, fweimer@redhat.com, palmer@sifive.com, macro@wdc.com, zongbox@gmail.com, alistair.francis@wdc.com, alistair23@gmail.com Subject: [RFC v3 04/23] sysdeps/clock_gettime: Use clock_gettime64 if avaliable Date: Tue, 16 Jul 2019 17:08:51 -0700 Message-Id: <1f589e5a3fcaa4c103bc83169fffcdea9e1a6b2d.1563321715.git.alistair.francis@wdc.com> In-Reply-To: References: MIME-Version: 1.0 Signed-off-by: Alistair Francis --- nptl/pthread_mutex_timedlock.c | 7 ++++++ sysdeps/unix/sysv/linux/clock_gettime.c | 30 +++++++++++++++++++++++++ 2 files changed, 37 insertions(+) diff --git a/nptl/pthread_mutex_timedlock.c b/nptl/pthread_mutex_timedlock.c index 52c258e33d..8d9cae7d87 100644 --- a/nptl/pthread_mutex_timedlock.c +++ b/nptl/pthread_mutex_timedlock.c @@ -402,10 +402,17 @@ __pthread_mutex_clocklock_common (pthread_mutex_t *mutex, /* Delay the thread until the timeout is reached. Then return ETIMEDOUT. */ struct timespec reltime; +#ifdef __NR_clock_gettime64 + struct __timespec64 now; + + INTERNAL_SYSCALL (clock_gettime64, __err, 2, CLOCK_REALTIME, + &now); +#else struct timespec now; INTERNAL_SYSCALL (clock_gettime, __err, 2, clockid, &now); +#endif reltime.tv_sec = abstime->tv_sec - now.tv_sec; reltime.tv_nsec = abstime->tv_nsec - now.tv_nsec; if (reltime.tv_nsec < 0) diff --git a/sysdeps/unix/sysv/linux/clock_gettime.c b/sysdeps/unix/sysv/linux/clock_gettime.c index 5fc47fb7dc..4832069c34 100644 --- a/sysdeps/unix/sysv/linux/clock_gettime.c +++ b/sysdeps/unix/sysv/linux/clock_gettime.c @@ -27,10 +27,40 @@ #include /* Get current value of CLOCK and store it in TP. */ + +#if __WORDSIZE == 32 +int +__clock_gettime (clockid_t clock_id, struct timespec *tp) +{ + int ret; + +#ifdef __NR_clock_gettime64 + struct __timespec64 tp64; + ret = INLINE_VSYSCALL (clock_gettime64, 2, clock_id, &tp64); + + tp->tv_sec = tp64.tv_sec; + tp->tv_nsec = tp64.tv_nsec; + + if (! in_time_t_range (tp->tv_sec)) + { + __set_errno (EOVERFLOW); + return -1; + } +#endif + +#ifndef __ASSUME_TIME64_SYSCALLS + ret = INLINE_VSYSCALL (clock_gettime, 2, clock_id, tp); +#endif + + return ret; +} +#else int __clock_gettime (clockid_t clock_id, struct timespec *tp) { return INLINE_VSYSCALL (clock_gettime, 2, clock_id, tp); } +#endif + weak_alias (__clock_gettime, clock_gettime) libc_hidden_def (__clock_gettime) From patchwork Wed Jul 17 00:08:54 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alistair Francis X-Patchwork-Id: 1133000 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=sourceware.org (client-ip=209.132.180.131; helo=sourceware.org; envelope-from=libc-alpha-return-103690-incoming=patchwork.ozlabs.org@sourceware.org; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=wdc.com Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; secure) header.d=sourceware.org header.i=@sourceware.org header.b="Hjh3BN/Q"; dkim=pass (2048-bit key; unprotected) header.d=wdc.com header.i=@wdc.com header.b="PnCnSSSM"; dkim-atps=neutral Received: from sourceware.org (server1.sourceware.org [209.132.180.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 45pHlR6KwGz9sMr for ; Wed, 17 Jul 2019 10:12:35 +1000 (AEST) DomainKey-Signature: a=rsa-sha1; c=nofws; d=sourceware.org; h=list-id :list-unsubscribe:list-subscribe:list-archive:list-post :list-help:sender:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; q=dns; s= default; b=T0u9Mjz/4itIa8tJu83WS+xzRTKxb7K9cjrM1PgFFlc5taqIZx6xe wa/j8BxMEZ/VH7wG5unmfdLNcU/b8T4Zkx78TgsvbnnP6GFASldyb0ogb9T7meTv RLgEKssYAtZ3bRF6LdI1NkqfbLH8P/XfTsN/6NqBn1nNoQM92Q7Ni0= DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=sourceware.org; h=list-id :list-unsubscribe:list-subscribe:list-archive:list-post :list-help:sender:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; s=default; bh=tSflFzGexrK8c6uPmfwYF9O1MQc=; b=Hjh3BN/QgtsQaUA3poK1LXS4HRjS XTfl4ZZ47e8GIjSuoC5PHY1CgVUj5h16aY+Ya65u61JLlpSsk25h2wXF4/1Gdn8u bjPzlO0ZejDDzyDCrI2GtYite6asOhfgcH6JzGYn3oPAqyAP0RML9/aJ6rJXBcLD skVSpX8w+jXqI3g= Received: (qmail 16039 invoked by alias); 17 Jul 2019 00:11:49 -0000 Mailing-List: contact libc-alpha-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: libc-alpha-owner@sourceware.org Delivered-To: mailing list libc-alpha@sourceware.org Received: (qmail 15961 invoked by uid 89); 17 Jul 2019 00:11:49 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-26.6 required=5.0 tests=AWL, BAYES_00, GIT_PATCH_0, GIT_PATCH_1, GIT_PATCH_2, GIT_PATCH_3 autolearn=ham version=3.3.1 spammy=HContent-Transfer-Encoding:8bit X-HELO: esa6.hgst.iphmx.com DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=wdc.com; i=@wdc.com; q=dns/txt; s=dkim.wdc.com; t=1563322307; x=1594858307; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=2F0gXE8d/IJZUfdsPOVd/1Mkf2NF7LjAcRIoRsZ/x+8=; b=PnCnSSSMA89n2gZqVZftTxg9E+HTBm5hxuVpt1jFE4m1hEm/MTC+Z1en HMpj0A84frpUY/ZJatNsq47oH42svYwzB/0+Jy3bYl+DeaPW+25pCv9Gr aJe1gaDykH7gig/iDsdwIUboynkiH/ihqghx0eUTBuIGWKkNY9ltt/mV6 DlJ97kmjdfCl4WcxeJzap/abrNZhmwZSs7gFCt9od09N5MZyS7vdrJ0lH dyVKtB0SETIaojNN8wQM5HgbdQS6TM4sgrwQk6coH1WKKMgvFCWANd1fF 3gTQYiwSgjgUmtb2eGr4MyqPINrP2qpLXHF6awJ77imBgLUsmKjDibj/a g==; IronPort-SDR: KLwANiBuvC9iVQQd4PqrFchgck1F2OsfYuU609qnnofLAyEuDgJ1oXc0CkpvI8MKvcTZ08sdvp RRUpsLP9SMeGWgXyZ965DPGpksPDUzyt+ryfFiYH6ozyz/O6vnedTSWf8bb9GJdlAzVkLMysM0 Q4/kont825l/47yrggG2Y+fj3DlvhjdRC9w4C9pGtcEbKldH7BgoLJJcSdwtnGK5NmXqsZ1zp5 j3kWP6ye+QqU1t9oUBTl4ZKx02qsktf7PJj1hoJZAnJDhyetD59HSVt2qC8/B4A6XJ67Uai40Z +9M= IronPort-SDR: FKFhDpTqdT0/BeGNwjzI7heC1fQKjAc4dISQS3xLCnH04b3Xy+oI334fgLaKyiLIV6ILjunj9f nCFHtiCqi/GnAL7T1tCb4/9gSdCk180khI/lhzPHd17Xj00JeqMX7JSAGTZD6Pxbk06aTcpkjS WrIQ7sYl/Q77e4O5Hhei6GHmkgaYLNNcabvP/8ZaZ+OgnglKlPpJH34tWOdt4pN+TkvvCr2niw h9S07JAeLod8iyns2n2Jt52svZgT/0rgtdifhQhiVm9A3s6IcsmaAl337Bk+H11CJOjn558C4T OOitvPBUEOqhoxh8kBpTa9/I IronPort-SDR: JsvQtufBrxEKnc1ZyF2B66/N4hCh3eNTYSmcwZ53RiV/FgZBSs/wEnSzx2Vnh4Q881GYyNV1eB PtAvN7WL7a9wK7ixOvOszQHuhM1bL6Wpel/wSjQDs4FpaU4nDP68xwOaRLmo0p6EKgLX1CgCa2 9mM/ijThfGF3IgWjuoVEo92RpEgMD/kl7xF+qjNt6+nrFnfeofEBDe16PUF8hKqIFp9QTq0ZSn dxShnVMaE7Fgb50NFVpCJOTY5vSs0dTBvRSjmUN7HIGiCulpJ89Am2TLlbQMMGXs10RytCygRG NGo= From: Alistair Francis To: libc-alpha@sourceware.org Cc: arnd@arndb.de, adhemerval.zanella@linaro.org, fweimer@redhat.com, palmer@sifive.com, macro@wdc.com, zongbox@gmail.com, alistair.francis@wdc.com, alistair23@gmail.com Subject: [RFC v3 05/23] sysdeps/timespec_get: Use clock_gettime64 if avaliable Date: Tue, 16 Jul 2019 17:08:54 -0700 Message-Id: <0d116a8faab58db1952a256c6cb75e7b0f9af444.1563321715.git.alistair.francis@wdc.com> In-Reply-To: References: MIME-Version: 1.0 This will break other 32-bit targets Signed-off-by: Alistair Francis --- sysdeps/unix/sysv/linux/timespec_get.c | 37 +++++++++++++++++++++++++- 1 file changed, 36 insertions(+), 1 deletion(-) diff --git a/sysdeps/unix/sysv/linux/timespec_get.c b/sysdeps/unix/sysv/linux/timespec_get.c index 52080ddf08..78fa2aba1b 100644 --- a/sysdeps/unix/sysv/linux/timespec_get.c +++ b/sysdeps/unix/sysv/linux/timespec_get.c @@ -24,6 +24,36 @@ #endif #include + +#if __WORDSIZE == 32 +int +__timespec_get (struct timespec *ts, int base) +{ + int ret; + +#ifdef __NR_clock_gettime64 + struct __timespec64 ts64; + ret = INTERNAL_VSYSCALL (clock_gettime64, err, 2, CLOCK_REALTIME, &ts64); + + ts->tv_sec = ts64.tv_sec; + ts->tv_nsec = ts64.tv_nsec; + + if (! in_time_t_range (ts->tv_sec)) + { + __set_errno (EOVERFLOW); + return -1; + } +#endif + +#ifndef __ASSUME_TIME64_SYSCALLS + ret = INTERNAL_VSYSCALL (clock_gettime, err, 2, CLOCK_REALTIME, ts); +#endif + + return ret; +} + +#else + /* Set TS to calendar time based in time base BASE. */ int timespec_get (struct timespec *ts, int base) @@ -33,9 +63,13 @@ timespec_get (struct timespec *ts, int base) int res; INTERNAL_SYSCALL_DECL (err); case TIME_UTC: +#if __WORDSIZE == 32 + res = __timespec_get (*ts, base); +#else res = INTERNAL_VSYSCALL (clock_gettime, err, 2, CLOCK_REALTIME, ts); +#endif if (INTERNAL_SYSCALL_ERROR_P (res, err)) - return 0; + return 0; break; default: @@ -44,3 +78,4 @@ timespec_get (struct timespec *ts, int base) return base; } +#endif From patchwork Wed Jul 17 00:08:56 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alistair Francis X-Patchwork-Id: 1133001 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=sourceware.org (client-ip=209.132.180.131; helo=sourceware.org; envelope-from=libc-alpha-return-103691-incoming=patchwork.ozlabs.org@sourceware.org; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=wdc.com Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; secure) header.d=sourceware.org header.i=@sourceware.org header.b="WugaobDq"; dkim=pass (2048-bit key; unprotected) header.d=wdc.com header.i=@wdc.com header.b="Tek5PLP6"; dkim-atps=neutral Received: from sourceware.org (server1.sourceware.org [209.132.180.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 45pHlf11Vpz9sMr for ; Wed, 17 Jul 2019 10:12:45 +1000 (AEST) DomainKey-Signature: a=rsa-sha1; c=nofws; d=sourceware.org; h=list-id :list-unsubscribe:list-subscribe:list-archive:list-post :list-help:sender:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; q=dns; s= default; b=ga6op6Xole/aYo828ED4S6y1vBUsSKW2f9PsbFAB//nqSLbGr17YD rY96Qsb29Ax7q/Y6MsSVR9h29ZAmiC1yRfNkeR8bhKVEV8WZRqht65+wEvOwTecS p61PDYPQ340Wfh34+9XxsCuDMi7s2bkEGDHf/0V8lOOyZSYJKDvwQQ= DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=sourceware.org; h=list-id :list-unsubscribe:list-subscribe:list-archive:list-post :list-help:sender:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; s=default; bh=ZcBeJJ5RsTgwv8GiVexH6ZFdiyY=; b=WugaobDqDpwxQdQ5vFkWdVL+sY+t //SYiFXHWOusUURASiLNGbHIY76aw/0pmvaA7vEUJlpECXHXXP5wy3ffrK68x2g8 7zjUf9iCGHPkAQCTIfOKmBgTD6EijbXrVvZnVBWq4UQgUqFhcpyv9rURDgk78ZWn Lq5g8pd1e32R4XQ= Received: (qmail 16240 invoked by alias); 17 Jul 2019 00:11:51 -0000 Mailing-List: contact libc-alpha-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: libc-alpha-owner@sourceware.org Delivered-To: mailing list libc-alpha@sourceware.org Received: (qmail 16198 invoked by uid 89); 17 Jul 2019 00:11:50 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-26.6 required=5.0 tests=AWL, BAYES_00, GIT_PATCH_0, GIT_PATCH_1, GIT_PATCH_2, GIT_PATCH_3 autolearn=ham version=3.3.1 spammy=documentations, HContent-Transfer-Encoding:8bit X-HELO: esa6.hgst.iphmx.com DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=wdc.com; i=@wdc.com; q=dns/txt; s=dkim.wdc.com; t=1563322309; x=1594858309; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=xhcdoIMV2gCMtyDrrD7etowJSmLclGjOdrweO5zBVv8=; b=Tek5PLP61QnpihuwzNPOag5kHhVui5+ILbPKT3hLQeH7IybYPsR+bCxv x9APMtLXGM9rpsBRUw6CkUlUgfqiz0yEYP4yAlCLn5gIyMUYPGh44dmCh gQfZiIf//BdU7FNJdi97EAbWO3K96zgZudAYg381xNhTD/Uy6qcD4tPpC RcQGJQJPQQJRUviFTEEZrYpcylJLp7OouG3+r4LVvVMTKcrJQjZLNNkJg EHaCeKd14v3MOSS9muIOxAmX1vTXP4G3t8j6DIBf0bV5GCP19FkvI4xHN b26VKuusTNiB5ODzppq5WJ+8zE+b1Kqu4YNSpuF7Vu2PjFptv9cCYBX2Q w==; IronPort-SDR: QuWGGJxpGZLKB/I+rQ5PKEQSePHj1vc6qSHnt+KMNxvYJ63lCaUIPTyxFZ9WmKFfCBGDyWENST tjeJi7foz+pYEnj+j3Yf8b7yZveXHN9Gx6MK0+VN0JRcqk8uFERf8naEAZop3oM9ERazlMoZJs KX/E6m8DNMyJa8Di1ZRMOlL+i4tSVFPLfVXciFsdAUsdJB7as7HAe5G7rq8jn4dxyvA0ShaTl1 TZfJK+hyp8bBT+wLPDVemuGkMhuk+5llCoErXN8a11sfKhbX8s32bv/SDMa6K3FQ+QKBPpEu3N N7I= IronPort-SDR: HIelqxvcPITEhI2hXo3RYeMhqwdrycc718SumQCrqwhwm3YP+cnJ4IbJft8vMGnt9muFurbM0m +ka/hu1kTy/kfNSk+5czZm98LxjNtl9yG4MPoqorjTm300euAuCLYayHKhkkPy05V0JWtJcmCm 57boKNJ/XuYsmALSXFXWoTALTAGX5zoSOWe+1QfU+ggGpfbQNh/6wiW5Qt4aWXKI6JLZcPtIay Aenq6omQ5FiKDg//u30+AIhLmrVc8vi5S+BOj/FZjsvRKV7aB9n8HpD2EhaFI3uCqHDPc06yoX otOQ+PfuwFTbkScUyjOSHrbM IronPort-SDR: ZcJ7krM8WMV4wD2eke+KKe05lss5AuhdjAdtvM38Ifk0w584w2sEDxmENmBcNEvPoFZEZRooFC DnCuL1Pi6qFMrhuu8RivNfuOKAc614OTmsi5Kx3DSshyKYXQqeZ+eMRrguemi2l5MhNQhDIgxS 12r5NtnqVmDvkUF7HyeHIJZg2fkZYNp0NWXph7FBvvYoCFvnVyBA8jJlVOIh4VHbktHUMOGxcE zkKBZwl5pmUfhcrZ6w/3GIBt8l3iGta4nAkkFqQeDkQiFI1cTS1l4nSTe2ApBwAlvTRZ5wuno4 4Jw= From: Alistair Francis To: libc-alpha@sourceware.org Cc: arnd@arndb.de, adhemerval.zanella@linaro.org, fweimer@redhat.com, palmer@sifive.com, macro@wdc.com, zongbox@gmail.com, alistair.francis@wdc.com, alistair23@gmail.com Subject: [RFC v3 06/23] Documentation for the RISC-V 32-bit port Date: Tue, 16 Jul 2019 17:08:56 -0700 Message-Id: <1940e5dcde7e22c4cbb2312561b2f8210937e013.1563321715.git.alistair.francis@wdc.com> In-Reply-To: References: MIME-Version: 1.0 From: Zong Li There are RISC-V 64-bit port information in these documentations. I add the small documentation entries about the RISC-V 32-bit port together. --- NEWS | 6 ++++++ README | 1 + 2 files changed, 7 insertions(+) diff --git a/NEWS b/NEWS index 6d731b156d..7a897e2110 100644 --- a/NEWS +++ b/NEWS @@ -177,6 +177,12 @@ Major new features: "%EY" to control how the year number is formatted; they have the same effect that they would on "%Ey". +* 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: * The glibc.tune tunable namespace has been renamed to glibc.cpu and the diff --git a/README b/README index eb9b0b34a3..2dc80d0062 100644 --- a/README +++ b/README @@ -38,6 +38,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 Wed Jul 17 00:08:59 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alistair Francis X-Patchwork-Id: 1133003 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=sourceware.org (client-ip=209.132.180.131; helo=sourceware.org; envelope-from=libc-alpha-return-103693-incoming=patchwork.ozlabs.org@sourceware.org; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=wdc.com Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; secure) header.d=sourceware.org header.i=@sourceware.org header.b="s1JJAmjT"; dkim=pass (2048-bit key; unprotected) header.d=wdc.com header.i=@wdc.com header.b="EOxxZE73"; dkim-atps=neutral Received: from sourceware.org (server1.sourceware.org [209.132.180.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 45pHm220ydz9s8m for ; Wed, 17 Jul 2019 10:13:06 +1000 (AEST) DomainKey-Signature: a=rsa-sha1; c=nofws; d=sourceware.org; h=list-id :list-unsubscribe:list-subscribe:list-archive:list-post :list-help:sender:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; q=dns; s= default; b=Jdl5W8BciPShbQXKWFuqqer9cJ9nHEoCgFV7gMyeXAXvMpctUoDqh EYFwyfT3EYd5Hsh/tddCLCP0jaeetmcgPPCJe8S+56oAM52cBpn/RYvG62WV1xG2 G9Si0MRH1EgLScgSWxBPdVZcCqX4LbSaL/5gKPEBOj5cooFWWUsVwQ= DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=sourceware.org; h=list-id :list-unsubscribe:list-subscribe:list-archive:list-post :list-help:sender:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; s=default; bh=NWJ0jbEiKtpx6GeAXeNWPmZJows=; b=s1JJAmjTNUWcdy9KCM1RcSiphXTV A/KTFOZBlOzNjKvOe3EaXdATuJnPBkKNvU/vcWNY8jpn7kFBXmPgTShKnr4a4ebq tvKXDjtKqyvV3Sf6DXVdDa2zeZ8AFuQEQ5MaDrRGg2rmxDeiTFbQFztgVm6SNhk1 gA+tgYur6Sz4HuU= Received: (qmail 17042 invoked by alias); 17 Jul 2019 00:11:57 -0000 Mailing-List: contact libc-alpha-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: libc-alpha-owner@sourceware.org Delivered-To: mailing list libc-alpha@sourceware.org Received: (qmail 16993 invoked by uid 89); 17 Jul 2019 00:11:57 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-26.4 required=5.0 tests=AWL, BAYES_00, GIT_PATCH_0, GIT_PATCH_1, GIT_PATCH_2, GIT_PATCH_3, KAM_NUMSUBJECT, KAM_SHORT autolearn=ham version=3.3.1 spammy= X-HELO: esa3.hgst.iphmx.com DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=wdc.com; i=@wdc.com; q=dns/txt; s=dkim.wdc.com; t=1563322313; x=1594858313; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=F2XE5cw0DTeECf1H3FvKAfOeIMHbOcpavuP0KTgGils=; b=EOxxZE731l8GNYt+WQhYKrYhVyy/gYdDTnrNCdmhh+NmjTO3XeW1PXHe SlKX0p2po6w4OC+MrY678PUknDcb4PiVM0E55mJKq21Iu+o5ghVe+5wGv D6NYcD2rP6gIgSwLYOj1YDwzxsn59Nu3yg6P3xQFMTj19Vvas8V/kphOH 6CJi/2OPtsOYiP2nJ69S0E6QUGEu5aUA2Kv4hZR9SkEtyDuJhHsuNGHWN 1IycJeDFPCEwGxzEACSuNDzNx1Gk/hqKgyQ4TwltVirvEZ7ytp2yiRQbh NHLd/dUzO3JUz/S6CQEv1raeN5xf+MvxKOnR7CwksvaavcRqbTOyLqG+S A==; IronPort-SDR: DEDatfFxwgn86sLJbxsC72Ly30uMNyN/q6lNABXAkZGsKBFQNW1bQ1hVw4Uoij5HCkeo+7o4rD CgRATTwxhWVtiHChBwaWPnUJpli20L4q+hxEbx3axtAC3ULL/6uHpnU3UxlFJwU7pyQXoy7yoz YZ6wzs/EbXLs8vTWj2xQeCdciXOT3MTsfvovWiO1A/zW4/ZePxBlk6Tahdpzpf1npuUAynhzJI UZn6csokHss0BmXtIbCB5786GFxOyWC8VJ4NdWm6g/FgYP8fiftyshsJfI7oESK70hMJ0683s4 sTo= IronPort-SDR: LyEOhxH6Qqn9MzSixw8E31lsdRT1Dw5xfblLZBX0MJ1PW48eyWhKK5XRblzhdNK7rnhfL175np d4dHTNqwWRJ9y11P3JTQHVcik45K7qvT6/viOkV8SDGdclg6N0wmD7EISDzMECvXZUllL3S8sx 4MEjqbUL8QZ2rxYIq3a/CTAF/59WOvg17Bmo2oMfu5l5Fclim6dEVLuW4wtOFdrjC7v5BbN/wE f3zYuy8jWPwbaF+f2u/E0lw3eDRasxmzQ3LwGilfHiAE6LYCPpeIdDWbEqYgQhScJ0O/4+NDmJ l9+c98nnTIDbyxvUb36rcuNh IronPort-SDR: 5u2w2Ubu0fACZjdlXxOep6PlDe82zsaYafCMXUO3mcTczF4dZgRC2qqzxknOC962QWN+0j3dq0 Ye9sDW0XhdxPamwhUQ0sSLbqyIHy8/xhirfWkKa6c5hhoZQ/UHwMqNXx4LazSYQbTjEPCTjpPi CJ4tOGUTmpQnsPBeF0arEs4rQ4eq7cBm3ARk0VJXSqX7Lkja8dVCpNMzJ+fQg9citt8/ARxfBn XiiQtet6fgrJwlELm6kN1z0JOxxVJ5HJaaDabGzuFAyAMpLXnZfAU5iBWGtaFCulbjNcAjezcw e1E= From: Alistair Francis To: libc-alpha@sourceware.org Cc: arnd@arndb.de, adhemerval.zanella@linaro.org, fweimer@redhat.com, palmer@sifive.com, macro@wdc.com, zongbox@gmail.com, alistair.francis@wdc.com, alistair23@gmail.com Subject: [RFC v3 07/23] RISC-V: Use 64-bit time_t and off_t for RV32 and RV64 Date: Tue, 16 Jul 2019 17:08:59 -0700 Message-Id: In-Reply-To: References: MIME-Version: 1.0 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. Signed-off-by: Alistair Francis --- ChangeLog | 4 + .../unix/sysv/linux/riscv/bits/environments.h | 85 +++++++++++++++++++ sysdeps/unix/sysv/linux/riscv/bits/time64.h | 36 ++++++++ sysdeps/unix/sysv/linux/riscv/bits/timesize.h | 22 +++++ .../unix/sysv/linux/riscv/bits/typesizes.h | 84 ++++++++++++++++++ 5 files changed, 231 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/bits/typesizes.h diff --git a/ChangeLog b/ChangeLog index fb54a4aa61..ec07b3ff27 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1032,6 +1032,10 @@ * sysdeps/unix/sysv/linux/wait.c: Use __NR_waitid if avaliable. * sysdeps/unix/sysv/linux/waitpid.c: Likewise. * sysdeps/unix/sysv/linux/waitpid_nocancel.c: Likewise. + * sysdeps/unix/sysv/linux/riscv/bits/environments.h: Use 64-bit time_t and off_t for RV32 and RV64. + * sysdeps/unix/sysv/linux/riscv/bits/time64.h: Likewise. + * sysdeps/unix/sysv/linux/riscv/bits/timesize.h: Likewise. + * sysdeps/unix/sysv/linux/riscv/bits/typesizes.h: Likewise. 2019-06-20 Dmitry V. Levin Florian Weimer 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..bdbf18fca0 --- /dev/null +++ b/sysdeps/unix/sysv/linux/riscv/bits/environments.h @@ -0,0 +1,85 @@ +/* Copyright (C) 1999-2019 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 + # undef _POSIX_V7_ILP32_OFF32 + # undef _POSIX_V6_ILP32_OFF32 + # undef _XBS5_ILP32_OFF32 + */ + +# 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 + +/* CFLAGS. */ +#define __ILP32_OFFBIG_CFLAGS "-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64" + +#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..4be26d32d4 --- /dev/null +++ b/sysdeps/unix/sysv/linux/riscv/bits/time64.h @@ -0,0 +1,36 @@ +/* bits/time64.h -- underlying types for __time64_t. Generic version. + Copyright (C) 2018-2019 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..150af80f86 --- /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, general case. + Copyright (C) 2018-2019 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/bits/typesizes.h b/sysdeps/unix/sysv/linux/riscv/bits/typesizes.h new file mode 100644 index 0000000000..221811b72e --- /dev/null +++ b/sysdeps/unix/sysv/linux/riscv/bits/typesizes.h @@ -0,0 +1,84 @@ +/* bits/typesizes.h -- underlying types for *_t. Generic version. + Copyright (C) 2002-2019 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_TYPESIZES_H +#define _BITS_TYPESIZES_H 1 + +/* See for the meaning of these macros. This file exists so + that need not vary across different GNU platforms. */ +#define __DEV_T_TYPE __UQUAD_TYPE +#define __UID_T_TYPE __U32_TYPE +#define __GID_T_TYPE __U32_TYPE +#define __INO_T_TYPE __UQUAD_TYPE +#define __INO64_T_TYPE __UQUAD_TYPE +#define __MODE_T_TYPE __U32_TYPE +#define __NLINK_T_TYPE __U32_TYPE +#define __OFF_T_TYPE __SQUAD_TYPE +#define __OFF64_T_TYPE __SQUAD_TYPE +#define __PID_T_TYPE __S32_TYPE +#define __RLIM_T_TYPE __UQUAD_TYPE +#define __RLIM64_T_TYPE __UQUAD_TYPE +#define __BLKCNT_T_TYPE __SQUAD_TYPE +#define __BLKCNT64_T_TYPE __SQUAD_TYPE +#define __FSBLKCNT_T_TYPE __UQUAD_TYPE +#define __FSBLKCNT64_T_TYPE __UQUAD_TYPE +#define __FSFILCNT_T_TYPE __UQUAD_TYPE +#define __FSFILCNT64_T_TYPE __UQUAD_TYPE +#define __FSWORD_T_TYPE __SWORD_TYPE +#define __ID_T_TYPE __U32_TYPE +#define __CLOCK_T_TYPE __SLONGWORD_TYPE +#define __TIME_T_TYPE __SQUAD_TYPE +#define __USECONDS_T_TYPE __U32_TYPE +#define __SUSECONDS_T_TYPE __SQUAD_TYPE +#define __DADDR_T_TYPE __S32_TYPE +#define __KEY_T_TYPE __S32_TYPE +#define __CLOCKID_T_TYPE __S32_TYPE +#define __TIMER_T_TYPE void * +#define __BLKSIZE_T_TYPE __S32_TYPE +#define __FSID_T_TYPE struct { int __val[2]; } +#define __SSIZE_T_TYPE __SWORD_TYPE +#define __SYSCALL_SLONG_TYPE __SQUAD_TYPE +#define __SYSCALL_ULONG_TYPE __UQUAD_TYPE +#define __CPU_MASK_TYPE __UQUAD_TYPE + +/* Tell the libc code that off_t and off64_t are actually the same type + for all ABI purposes, even if possibly expressed as different base types + for C type-checking purposes. */ +# define __OFF_T_MATCHES_OFF64_T 1 + +/* Same for ino_t and ino64_t. */ +# define __INO_T_MATCHES_INO64_T 1 + +/* And for rlim_t and rlim64_t. */ +# define __RLIM_T_MATCHES_RLIM64_T 1 + +/* Define these as RV32 requires 64-bit syscall. */ +#if __riscv_xlen == 32 +#define __ASSUME_TIME64_SYSCALLS 1 +#define __ASSUME_RLIM64_SYSCALLS 1 +#endif + +/* Number of descriptors that can fit in an `fd_set'. */ +#define __FD_SETSIZE 1024 + + +#endif /* bits/typesizes.h */ From patchwork Wed Jul 17 00:09:02 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alistair Francis X-Patchwork-Id: 1133002 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=sourceware.org (client-ip=209.132.180.131; helo=sourceware.org; envelope-from=libc-alpha-return-103692-incoming=patchwork.ozlabs.org@sourceware.org; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=wdc.com Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; secure) header.d=sourceware.org header.i=@sourceware.org header.b="a2bogb4a"; dkim=pass (2048-bit key; unprotected) header.d=wdc.com header.i=@wdc.com header.b="XAOSZLPn"; dkim-atps=neutral Received: from sourceware.org (server1.sourceware.org [209.132.180.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 45pHlq4G90z9sND for ; Wed, 17 Jul 2019 10:12:55 +1000 (AEST) DomainKey-Signature: a=rsa-sha1; c=nofws; d=sourceware.org; h=list-id :list-unsubscribe:list-subscribe:list-archive:list-post :list-help:sender:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; q=dns; s= default; b=tY774uG8fxrXzgiqTrAgluv03jmc/Drgd+XKayGZyPpVpJlTkGVwo otDc2Sq26+V49k1MH36svh13Lg6p1P0Kx7eZYFAkTU470oNNlSTR/J+WvJqTU5KG skFlBwt6zaC7Q91FpxYViZVXlK21860PpgOHDL+fT213rVTbku/Bqw= DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=sourceware.org; h=list-id :list-unsubscribe:list-subscribe:list-archive:list-post :list-help:sender:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; s=default; bh=ccykg0qZcpnkOXs/QpIly21tExI=; b=a2bogb4aKJGKxWQFtd0lqRFB6Bh3 jP2l6fXFfZ4XWfBo7vGJpTwNgQfHDrqSOnJx44WT0mtbH+4m3Uc6/r30jlkpqp4t 9SIzMZHF+OV9kvuWFsoQvYLrfojjgiaauJGr8nX7HsFrRJK1ngRFNjmO1PQZOptK fDeFA/k0b/Qeb78= Received: (qmail 17026 invoked by alias); 17 Jul 2019 00:11:57 -0000 Mailing-List: contact libc-alpha-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: libc-alpha-owner@sourceware.org Delivered-To: mailing list libc-alpha@sourceware.org Received: (qmail 16951 invoked by uid 89); 17 Jul 2019 00:11:56 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-26.6 required=5.0 tests=AWL, BAYES_00, GIT_PATCH_0, GIT_PATCH_1, GIT_PATCH_2, GIT_PATCH_3 autolearn=ham version=3.3.1 spammy=HX-Languages-Length:861, HContent-Transfer-Encoding:8bit X-HELO: esa3.hgst.iphmx.com DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=wdc.com; i=@wdc.com; q=dns/txt; s=dkim.wdc.com; t=1563322315; x=1594858315; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=bU5tS22Q8JSY0YoKrI6LSaAPyxvbkx/Sy88xDzul7zo=; b=XAOSZLPnHR1Rh/VUWbDr/VWjEg0Y6uGjWsZbpzwVguL+qruoagB3gBBq +npM1fzjUjYr65oqZT60bK0G/4HUFCcs/PmsjMOgYBcx7cd2UFrASTUWL szU91g5xEqZ4scgJYUjEc9Ng2sKFuahImmU6jaw1vNQOYGLH3ZuO5mrTK z8vEigsn5IDNMblbofenax8ZE9UjdVGQfEXZSNqOCIbVkmieh27l/T/YD 7KXq2uIDGE7NCZ6m8IFmUMqPe4Luxyp9Rp40g8jpVnAV3CdqeVA3uCDoC TzXHQGY/fBPRvMDffI0xkXVtDGWkIo7zzUesKrInHcad3VSPYF46pd3Fq w==; IronPort-SDR: WNz5DYpSh08dQFnHHsbEBeRCRq2xRaJvxp801LfWo1Vz3fr76ZW+jqpff7k9MM/qr6vErAj5M0 ZwSUoQv4jvwjpH4DstlmlnGyfQKeOGO5mzOkNxNm3nRF38c3Ygm4BOK9glG+XpcFMsbp0ndC8x THcR6EVs72QGiBFP0iQf3AFf6f0EYu31zcqq6yjkk8keAmAOUICFHPEjX4aBd5tc1aYP3Xn42d inqnYTTmbmfcMs25VT6S8scyjgRqgpUUbEZ+WW+dnKIRw4q1w6lfkbQzR083H2zipO6nbj70IP L5A= IronPort-SDR: AnHk+IPN1u18IS3JilLPtreMyCJB8ZoETzW50K7/J67xgV9xCHVECVt0AbTG3etv71dSgIGrv6 6nR1J5/K3OlDdBk9rBNEJTBfbISDRyNcW5A15JbnlHGKwEDZI5jzjClR0aXRyM/u82wdXkhMWk 66YIkMHaNBdH2VL2/iJEuaSLrV4xkiNJusg1WDAOaQXLGkaiYBKTPjFq8D2SQZpqsu9ooCql4F TOrGYdertfZlKbPbz2x2DwIlkfk4UMTqE/egUIOIZffVOReuECrfazws2CWcR4Med6erYNwZxx SMg72dzeOs/cXaDzAEK3RytF IronPort-SDR: Crq/s2Ip75lvKaCwyXOs5BineEhwwrH2gbQHaLz/4Gmi5o6z2TCKy9qX/CZJjZotscVMLWpiEM Ca6kxGxPUGdkCnPm2NFkQfiUc3e8YK+qowtX7PmmylVmblEclK+5guwbRbO5/83wBLL3zufHt6 xz8bh7TZRlg/UVJbZxpNsLp7l1/37WUOoCKBYlXgIEezRuokPyqWSQ2MevrXoRxcOZK4q9qjqY cQs+LV1DXk7bKAcI9dZ3tiYAz9kCaaxm09ofcGJAH4iiqUd/iWvF/sqMOntT5sClI+S031sdI3 K0U= From: Alistair Francis To: libc-alpha@sourceware.org Cc: arnd@arndb.de, adhemerval.zanella@linaro.org, fweimer@redhat.com, palmer@sifive.com, macro@wdc.com, zongbox@gmail.com, alistair.francis@wdc.com, alistair23@gmail.com Subject: [RFC v3 08/23] RISC-V: define __NR_futex as __NR_futex_time64 for 32-bit Date: Tue, 16 Jul 2019 17:09:02 -0700 Message-Id: <81e1f1f6afe13b81d0c98b38299e7c852ee6903a.1563321715.git.alistair.francis@wdc.com> In-Reply-To: References: MIME-Version: 1.0 The futex syscall isn't avaliable on R32 so let's define it to be futex_time64 instead. Signed-off-by: Alistair Francis --- sysdeps/unix/sysv/linux/riscv/sysdep.h | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/sysdeps/unix/sysv/linux/riscv/sysdep.h b/sysdeps/unix/sysv/linux/riscv/sysdep.h index 5470ea3d2a..b7607ef9f1 100644 --- a/sysdeps/unix/sysv/linux/riscv/sysdep.h +++ b/sysdeps/unix/sysv/linux/riscv/sysdep.h @@ -116,6 +116,15 @@ #include +#if __riscv_xlen == 32 +/* Define the __NR_futex as __NR_futex64 as RV32 doesn't have a + * __NR_futex syscall. + */ +# ifndef __NR_futex +# define __NR_futex __NR_futex_time64 +# endif +#endif + #undef SYS_ify #define SYS_ify(syscall_name) __NR_##syscall_name From patchwork Wed Jul 17 00:09:04 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alistair Francis X-Patchwork-Id: 1133004 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=sourceware.org (client-ip=209.132.180.131; helo=sourceware.org; envelope-from=libc-alpha-return-103694-incoming=patchwork.ozlabs.org@sourceware.org; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=wdc.com Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; secure) header.d=sourceware.org header.i=@sourceware.org header.b="ZEP/ucOE"; dkim=pass (2048-bit key; unprotected) header.d=wdc.com header.i=@wdc.com header.b="ZipRJrme"; dkim-atps=neutral Received: from sourceware.org (server1.sourceware.org [209.132.180.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 45pHmC4fgHz9s8m for ; Wed, 17 Jul 2019 10:13:15 +1000 (AEST) DomainKey-Signature: a=rsa-sha1; c=nofws; d=sourceware.org; h=list-id :list-unsubscribe:list-subscribe:list-archive:list-post :list-help:sender:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; q=dns; s= default; b=Mkyg/pBkPOKSPoAQSiR69laYcmXPvOxLacG3uYVWBL2lfhUJ0b1/4 Fukgv4osrA8IsBiN96wdqnXi0VGHm6IpXkqcqZx3M3nm1LUcmRFf5Sdpy9m5ajeS SCJBw8aURn+APvh6v0EBi3oQ9bDfWTpz7qjrJiZryuVl2yoiOnQt84= DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=sourceware.org; h=list-id :list-unsubscribe:list-subscribe:list-archive:list-post :list-help:sender:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; s=default; bh=h3Ap1xo9P0198t/vKNYfOEg3EeA=; b=ZEP/ucOE/cwx+4Xadk4W9Gj3zgeK lYdiFi6wxo5WezJrPLvBJlHdHsWau2+Hc4gPcJt8W5psen1VXZZ9RNuoUs8dbj+k FpuEz8I9yppHw4gcYuf+7srr/nHNNVAQ5Y2eMuo53xw5Ftt7LDvduUhTqCbmsjxL D4vCVGxQhHWjKNA= Received: (qmail 17336 invoked by alias); 17 Jul 2019 00:11:59 -0000 Mailing-List: contact libc-alpha-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: libc-alpha-owner@sourceware.org Delivered-To: mailing list libc-alpha@sourceware.org Received: (qmail 17258 invoked by uid 89); 17 Jul 2019 00:11:58 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-26.6 required=5.0 tests=AWL, BAYES_00, GIT_PATCH_0, GIT_PATCH_1, GIT_PATCH_2, GIT_PATCH_3 autolearn=ham version=3.3.1 spammy=HContent-Transfer-Encoding:8bit X-HELO: esa3.hgst.iphmx.com DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=wdc.com; i=@wdc.com; q=dns/txt; s=dkim.wdc.com; t=1563322317; x=1594858317; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=c86iZFLWPZ9CZvK1GGCKB5rOOd9+0Vn+3fQk60MfbgQ=; b=ZipRJrmejE9qbrgdSHKF9kEnge1USbKj/kqXYs3/4AhkNcyF3R/Ma32+ XDUSXuRPEOhg7dEkQ8XF7yVJAdflhSXs76UsiKZdyKfaCHvYqjw5sudCV HLcwkaEzikL62h449QUWd4A3SP52TBoq6q6p7Hu8xSF7CgCyWg5MyD1Sl ZYE2K96KntLvEuQnI/LlQ79kk4F4o/3Wk8niYU7J9+tbSlXPm/8O1ApUv zt5A+y9fntQazXy4Yv3FpbX2XS5SWLMqQ1J+q2GWQJwNGpWXGfSofgfuU 5F340VhvAad6h3nSnN+4V3sq+yquCdrwYuKjdumrUr+BEAtEC/am8M7IV Q==; IronPort-SDR: DUdK5Ps7KmRrOwk7W5u7nfYOTr9haEMSS3rk9E1KHo3rWoDDzbvKCPopo85PWbKZr7en30sDMR Eaj7TnxIkq1qo07zV8NX7yWPo/Fit1GvRgui7T6ybMTbV1UcMkCdtCi2WHL3jPQ4qvHx3S7uUy WZ3SZYdNUFrf/qiJ7dez7fqMixpwzsZJc82LatwJwEmTmeVwlTb7KVerk1IInaUNwaju3ECjiG JhxAf9wkqOdClM475Ekbg/4l9T8LBzJsOGry1um0W3GOy5JBgxpclILYZP9JPaADyMgPS/84eg TCs= IronPort-SDR: RpwFGwnqOPNj29ctlgJJz2UnWzWECcQCFFuK1cZFcrc9Z9X348lf1ZLizh0j84foC3V2r/Q4Kq yDHs6CsTJykrSk5TTycxeEUyqaHG8YN3yR4NH1BTFjVBESsT4dHqDyO679sNMkeuBjQqWNEa/2 XZEQ8HQ6ExSrjGKSOuDi95PFBbvjuMa/Xfioo346ksvyOiOIbMwNpgcaHJfHWCmt3OOo/Kof6X E3+JPqxXa8zym9cbglCpW4Y36EYMPyFzgLUBR2UAsuq/W85vrjIZfLjgCRU9Ng7wA9zxsf9dRA W5w1H0SFHp6n9vSMBJ3MtDts IronPort-SDR: hnxfgmH85N0ohcOXjZNZDjhIiHVKEZtHsaNPsltkO6HJHNcW8qsRAX8MCLSng+z4R5ffm6qniT R/5IZnKGT5vBRkSgfU+UTi3RIs+TcOIt+d5bf6+9zZRm7eErJ98OiJQ0RoWFsiGiKdhOMjkg3v 5lBBIu/fomxG5ZxQ7zdj8lSeWKGuWK6q6zqaYig1QQ354HrrCi/uC+ydkkKr/AUXvW8xSoAL4d mevq2IZnpnjLAP5SrS19nSRsF34oNjwJdEMVrpMY24kgTPNJtvzBTU5XbE8DKuxtzst7zd6vU5 67A= From: Alistair Francis To: libc-alpha@sourceware.org Cc: arnd@arndb.de, adhemerval.zanella@linaro.org, fweimer@redhat.com, palmer@sifive.com, macro@wdc.com, zongbox@gmail.com, alistair.francis@wdc.com, alistair23@gmail.com Subject: [RFC v3 09/23] RISC-V: define __NR_* as __NR_*_time64/64 for 32-bit Date: Tue, 16 Jul 2019 17:09:04 -0700 Message-Id: In-Reply-To: References: MIME-Version: 1.0 Signed-off-by: Alistair Francis --- sysdeps/unix/sysv/linux/riscv/sysdep.h | 42 +++++++++++++++++++++++++- 1 file changed, 41 insertions(+), 1 deletion(-) diff --git a/sysdeps/unix/sysv/linux/riscv/sysdep.h b/sysdeps/unix/sysv/linux/riscv/sysdep.h index b7607ef9f1..2c06706701 100644 --- a/sysdeps/unix/sysv/linux/riscv/sysdep.h +++ b/sysdeps/unix/sysv/linux/riscv/sysdep.h @@ -123,7 +123,47 @@ # ifndef __NR_futex # define __NR_futex __NR_futex_time64 # endif -#endif + +# ifndef __NR_rt_sigtimedwait +# define __NR_rt_sigtimedwait __NR_rt_sigtimedwait_time64 +# endif + +# ifndef __NR_ppoll +# define __NR_ppoll __NR_ppoll_time64 +# endif + +# ifndef __NR_utimensat +# define __NR_utimensat __NR_utimensat_time64 +# endif + +# ifndef __NR_pselect6 +# define __NR_pselect6 __NR_pselect6_time64 +# endif + +# ifndef __NR_recvmmsg +# define __NR_recvmmsg __NR_recvmmsg_time64 +# endif + +# ifndef __NR_semtimedop +# define __NR_semtimedop __NR_semtimedop_time64 +# endif + +# ifndef __NR_mq_timedreceive +# define __NR_mq_timedreceive __NR_mq_timedreceive_time64 +# endif + +# ifndef __NR_mq_timedsend +# define __NR_mq_timedsend __NR_mq_timedsend_time64 +# endif + +# ifndef __NR_timer_gettime +# define __NR_timer_gettime __NR_timer_gettime64 +# endif + +# ifndef __NR_timer_settime +# define __NR_timer_settime __NR_timer_settime64 +# endif +#endif /* __riscv_xlen == 32 */ #undef SYS_ify #define SYS_ify(syscall_name) __NR_##syscall_name From patchwork Wed Jul 17 00:09:07 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alistair Francis X-Patchwork-Id: 1133005 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=sourceware.org (client-ip=209.132.180.131; helo=sourceware.org; envelope-from=libc-alpha-return-103695-incoming=patchwork.ozlabs.org@sourceware.org; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=wdc.com Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; secure) header.d=sourceware.org header.i=@sourceware.org header.b="DssX/tPF"; dkim=pass (2048-bit key; unprotected) header.d=wdc.com header.i=@wdc.com header.b="JRzjSwzY"; dkim-atps=neutral Received: from sourceware.org (server1.sourceware.org [209.132.180.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 45pHmP12Vpz9s8m for ; Wed, 17 Jul 2019 10:13:24 +1000 (AEST) DomainKey-Signature: a=rsa-sha1; c=nofws; d=sourceware.org; h=list-id :list-unsubscribe:list-subscribe:list-archive:list-post :list-help:sender:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; q=dns; s= default; b=IcuaVZS1Oj4HwO95J7Qwcu9y28QeG8/YgC6CX5gwqIlNOs6bDjRgz ajCzwBo0mXRW111IfpiDJ3rFf9CLo7mSXlKBNBU2d3deE8D5IhuVDJ6IY8stipT1 30MGWS6jZno622KsfC8TopvasG6JItuyboXeW5iVtCpErHLqTA0pPs= DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=sourceware.org; h=list-id :list-unsubscribe:list-subscribe:list-archive:list-post :list-help:sender:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; s=default; bh=B2iqDeoygYfBMNuSKNHT53f1T5Y=; b=DssX/tPF8UWJCyeZxN/WanzncOZG WvOVFtW+JkbGpJBoAByUecCgNJu903S3+4Up2bvoLBf6GKSMPbTaPMV0CBdyZxrX nj6dKbuo+VEntESt7p9Bu3O9rooeVne1DtD21MZkenO7PJ2mQkQsjSxkid8A5boA hqzb3A4EXV+tLiQ= Received: (qmail 17931 invoked by alias); 17 Jul 2019 00:12:04 -0000 Mailing-List: contact libc-alpha-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: libc-alpha-owner@sourceware.org Delivered-To: mailing list libc-alpha@sourceware.org Received: (qmail 17865 invoked by uid 89); 17 Jul 2019 00:12:03 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-26.7 required=5.0 tests=AWL, BAYES_00, GIT_PATCH_0, GIT_PATCH_1, GIT_PATCH_2, GIT_PATCH_3 autolearn=ham version=3.3.1 spammy=HContent-Transfer-Encoding:8bit X-HELO: esa4.hgst.iphmx.com DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=wdc.com; i=@wdc.com; q=dns/txt; s=dkim.wdc.com; t=1563322323; x=1594858323; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=Lfxy4qeFk7gmqlAduxMpNL8+BOQ7rGdnp7YklFK4y/4=; b=JRzjSwzYCHDyJvD8siFCjsoEo2zJ4cz6utFAiNavBQXPSLmzcD6ZtU5h EtskRd/eWDlmZ/2uGTITRotDS7o1JFzERmWUj9kJKwc7Ng8IRnIjCIlMj o0g65k0VzRIB/rRWmNHKnakvTDoONfngTwjSsNvcWMhjVHJS6V2nYco9f 8miihuYKIhcGi/oJYi8Sw9VetC/YRL7shNT0PTLuZC+mbEgjS0/KVz2Yl C6SY3rgz9vnWjlNy2bagMP72RNIZh37lrL10VrrrzDj6IgoMkkquY1m5K UKXCsy49lB0WwXnBAhrFbwMgM3FIwv3qdrXegZDUrIut2yhACmuTjSUX3 A==; IronPort-SDR: 1yhQPYR2B14lW9BQKQg9uCwvZmURgzhBO4c7iEGPBkQkFdnCWZde1cw8mJJExKidaHfRcxUvC0 Bd9E5f+TtAM5if648HEBUNX0jW6SFMWEBYt5Pv6nrEZgZ+Jq9JXo4JjK5TTiouPZrEuaQW/UVH EEctqv7u67/8mT3V7Bk74H+5WHpSHpXI8V/1mNBxwjt4hzjiavysmKkOL9hMY85zmTHFf1yJI1 dRCHTw0L6Kn9aIGOZYIaW+vbhbWlgKldO3X3pF1vQcmkFBaboZmkPbCCSKr/0BEomKq53eqGrf qdY= IronPort-SDR: aPSOQbMVL0P6GVg5dXxisqnKr0djLPo3Vk6oZIsQguS739GdbpeG1MNURbWwX/rZVQQ0BW3zb4 mvDooDqGDA5mAWa2pueH+QQ8JH8KayoplLUOA5fIasmSGW1Xc/j66P7TkNoSwbpvLp/sQ3QwgI 4ifgK9y51ckUoyuMlqcTrtB/sEKk8nG6Q3cAC2B1q7FIbR/tJlWQvXy2Ev7vjd/S701DLaLlVB /geBTI4nHPuvhV71ZfTvWI8mTPtvsMnNNbOzb/SYzJMAwlDHqa8ew/iSK5JliCrPNR/xhcTiin KwbKn4ftOpJAITahN1Iro7Tp IronPort-SDR: zOtjEGoVxOhf5tWihdkRP0cQeeKQqtCw4tJkiM+5H7U0UtZuw5ojQr8UDL5tUpLrykjeSV7bcT w6pNUzfBPi1TRiM1e7rtPLX1OSb0MWYl2H0GhkVcVHDMTTIkoO/BV5PeSTNoY1eeLl3/91nN99 Nwd2/xACx+0tbbapWC2x41BVHbqFSsfraAE5GaKtbYXFvBq30gdfVoH8oC8OVy2KrNS5VVOah2 T7loyiKf3k9TvErYRa5L4uUVa9q7oxiM6MmRccDOh/DHpBm1vL/m/dnUbhtqOuej87BboBCXmB B3E= From: Alistair Francis To: libc-alpha@sourceware.org Cc: arnd@arndb.de, adhemerval.zanella@linaro.org, fweimer@redhat.com, palmer@sifive.com, macro@wdc.com, zongbox@gmail.com, alistair.francis@wdc.com, alistair23@gmail.com Subject: [RFC v3 10/23] RISC-V: define __NR_clock_getres as __NR_*_time64 for 32-bit Date: Tue, 16 Jul 2019 17:09:07 -0700 Message-Id: <9a1d691b6ee58f1b723d140791b1f179eb179611.1563321715.git.alistair.francis@wdc.com> In-Reply-To: References: MIME-Version: 1.0 Signed-off-by: Alistair Francis --- sysdeps/unix/sysv/linux/riscv/sysdep.h | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/sysdeps/unix/sysv/linux/riscv/sysdep.h b/sysdeps/unix/sysv/linux/riscv/sysdep.h index 2c06706701..9e07edfed3 100644 --- a/sysdeps/unix/sysv/linux/riscv/sysdep.h +++ b/sysdeps/unix/sysv/linux/riscv/sysdep.h @@ -163,6 +163,10 @@ # ifndef __NR_timer_settime # define __NR_timer_settime __NR_timer_settime64 # endif + +# ifndef __NR_clock_getres +# define __NR_clock_getres __NR_clock_getres_time64 +# endif #endif /* __riscv_xlen == 32 */ #undef SYS_ify From patchwork Wed Jul 17 00:09:10 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alistair Francis X-Patchwork-Id: 1133006 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=sourceware.org (client-ip=209.132.180.131; helo=sourceware.org; envelope-from=libc-alpha-return-103696-incoming=patchwork.ozlabs.org@sourceware.org; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=wdc.com Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; secure) header.d=sourceware.org header.i=@sourceware.org header.b="ivb3N/Ep"; dkim=pass (2048-bit key; unprotected) header.d=wdc.com header.i=@wdc.com header.b="HuRRIhV9"; dkim-atps=neutral Received: from sourceware.org (server1.sourceware.org [209.132.180.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 45pHmZ4rL0z9s8m for ; Wed, 17 Jul 2019 10:13:34 +1000 (AEST) DomainKey-Signature: a=rsa-sha1; c=nofws; d=sourceware.org; h=list-id :list-unsubscribe:list-subscribe:list-archive:list-post :list-help:sender:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; q=dns; s= default; b=oSB7Y4/ohBlvCOb2szjgbj1uuOmDj/gCgmY720bYQaYMclu3mHtWj 5EzkMXh5UTzHKhxlkeeM9qVaRamLGZsz3mPYxvyjf+M4tWbupykWv2egqacwK1Yd PSjkuoCDzU8DNvjGA2Vrz404t0hSsSc1OpS6Ics3/dI2Yw7Fv6cPEY= DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=sourceware.org; h=list-id :list-unsubscribe:list-subscribe:list-archive:list-post :list-help:sender:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; s=default; bh=Zs/93xuBtiHn3JJbkwth0OlyufY=; b=ivb3N/EpWFflFEDyNePqLSbhdiLG Xj4tL0UYkTAwj9xGh0Hf0D43m2SkF7UtVC1Qh1R/8h43NUeZRSakZbZpLhPkU/Ka ywHLrEjLr0NZE2eEty0Hx2sUgS8t4SoEZ25MoZVSgqmGZyrQouwfq/9FZAQA+3sh OPMBzeMCRxHox90= Received: (qmail 18112 invoked by alias); 17 Jul 2019 00:12:05 -0000 Mailing-List: contact libc-alpha-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: libc-alpha-owner@sourceware.org Delivered-To: mailing list libc-alpha@sourceware.org Received: (qmail 18027 invoked by uid 89); 17 Jul 2019 00:12:04 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-26.7 required=5.0 tests=AWL, BAYES_00, GIT_PATCH_0, GIT_PATCH_1, GIT_PATCH_2, GIT_PATCH_3 autolearn=ham version=3.3.1 spammy=HContent-Transfer-Encoding:8bit X-HELO: esa4.hgst.iphmx.com DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=wdc.com; i=@wdc.com; q=dns/txt; s=dkim.wdc.com; t=1563322324; x=1594858324; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=toQvuNFZDzBfx2AgZ/cBsYw8LSuinQxcIFfES+HqFeQ=; b=HuRRIhV9cPwPJ/5SrngwvDW/uEHP6grqKjROyPNLUJn2CtWkQT4W96al KC4pOMeHqWUiEjI1yKIlfI4jyFEEpWrYSqrxJX/bryQ0BawfuAm1cu9wu bD3Ny+A20z9OeppTQTbvBJ8flHp8ENVUBtHaEKPvitvUWT5+jmew6nCLG vcEwDHPbjlIt9hiclSfXsBTmE06M9B4tFZeWLsRuI5m3Y+zOkLvfBw7a4 bUJCPsxJkuHtmTSrUQ22/bxjoHhnmfZ1c0qwCmMSorzwRVLv8yJ5GsRtO eXSZdQJy2w5P4DqeNQzw9t3efssCUuA6ddrZef+DG+93KW+VreDAxVJYX w==; IronPort-SDR: EHj9JTp1d8UskKWOR5/XP9w4YNeYORS3T6vMIguuALDNfZnBLjb42Ewdl1CbOaSmIUORVFlO7+ soGJGarsCnd88ECwVL2CpuLWzEmudbQQv7i7DJajG7HgQxq9xUWZJwYiqn+FT7MiTzcvP/sODG OHZKqLM4MeaOcJvMHOQOx6FfFUZsp+IrdUKpKuQeEgFkoWJ64zTSxATkJOirDyHr7/alPS0ZjY ozydlDryPz9LJ7yHcMY5A9wtni4pIws7uy3pg62bpDKQieRboeG22PlyWQ0hicUK9x2to6tLsY sMU= IronPort-SDR: m150Tp/QkOrpP+ObrGbFV2jPQBEOJGTV6ZQMOCNNVvbXRuTDDTCt9UyeP3Mz+zooubmajfWi6b AR1NnnEewwfhUpLf7posfWbTPJQtqtw8fjLlZ9GJTOJeVs9YHFkLWbwOAYo49vTZLZyx8LeCQC nrNbldYFx8bljUhvrsqwMLqogbVBwgFQEsjp2U8wzaC4tzLGmgeOfG/m/8VX+2/7iMZbv1Vo9x 3gaIjyNhYF6C1ItlB6cNBj8wMvN0QpoAmeMMPcAMYKMAmfhiB1VlDkEB9pgSTMkKsMBy545oFl CrVHAQclFQ+6dCIHv1xzvwcn IronPort-SDR: sZiPlFnvmYir9lVDzCoHpt5wDETu+pBAXJlDf4lBXCg/0BkoRvuGKY/Korh6iMD9fenORwrN1U PNwgJ+B0QZv8ARDR7nNcLvgIcsWRWIObXbCMcXToPhZsNv5di7Taixyj1x4HPKsqlS8UhA4LXB rVLTEm59IHOaeNHnYqlcDm+lWskmXtU3j4C9P6lT1zBGCkeNwnJ4sNtlUCtWxJRyQCe//e5Pql EEtk+MdVeAVb//sLneRFBCKaM6GV5GV4JomTnWQ3+jfTa8qKhaO/88C5b6H9OcTjmj1AXQHlP+ MKI= From: Alistair Francis To: libc-alpha@sourceware.org Cc: arnd@arndb.de, adhemerval.zanella@linaro.org, fweimer@redhat.com, palmer@sifive.com, macro@wdc.com, zongbox@gmail.com, alistair.francis@wdc.com, alistair23@gmail.com Subject: [RFC v3 11/23] RISC-V: define __vdso_clock_getres as __vdso_clock_getres_time64 for 32-bit Date: Tue, 16 Jul 2019 17:09:10 -0700 Message-Id: <3670feac14e3a144c1adf55bdfed8d193aa926c6.1563321715.git.alistair.francis@wdc.com> In-Reply-To: References: MIME-Version: 1.0 Signed-off-by: Alistair Francis --- sysdeps/unix/sysv/linux/riscv/sysdep.h | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/sysdeps/unix/sysv/linux/riscv/sysdep.h b/sysdeps/unix/sysv/linux/riscv/sysdep.h index 9e07edfed3..e66e9f032a 100644 --- a/sysdeps/unix/sysv/linux/riscv/sysdep.h +++ b/sysdeps/unix/sysv/linux/riscv/sysdep.h @@ -167,6 +167,10 @@ # ifndef __NR_clock_getres # define __NR_clock_getres __NR_clock_getres_time64 # endif + +# ifndef __vdso_clock_getres +# define __vdso_clock_getres __vdso_clock_getres_time64 +# endif #endif /* __riscv_xlen == 32 */ #undef SYS_ify From patchwork Wed Jul 17 00:09:12 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alistair Francis X-Patchwork-Id: 1133007 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=sourceware.org (client-ip=209.132.180.131; helo=sourceware.org; envelope-from=libc-alpha-return-103697-incoming=patchwork.ozlabs.org@sourceware.org; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=wdc.com Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; secure) header.d=sourceware.org header.i=@sourceware.org header.b="vFK3zgwD"; dkim=pass (2048-bit key; unprotected) header.d=wdc.com header.i=@wdc.com header.b="KLIMmDr3"; dkim-atps=neutral Received: from sourceware.org (server1.sourceware.org [209.132.180.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 45pHml6rb9z9s8m for ; Wed, 17 Jul 2019 10:13:43 +1000 (AEST) DomainKey-Signature: a=rsa-sha1; c=nofws; d=sourceware.org; h=list-id :list-unsubscribe:list-subscribe:list-archive:list-post :list-help:sender:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; q=dns; s= default; b=b4R+wWMQIjbWbotLxp2cLfq7HgYHAUQCb5cMzaSro7c1e728ELuCZ ihYzdsY2BbhhRoLNQo9u/cMGAnEA9bXBm+fde1kYCXt3OymHLcgKL9wqWJOm+MLn kC5rf03ZNlGXwWOt1OkJRMJ3vYrk2aDLxllr+MKubk4dAkuXmQjCb0= DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=sourceware.org; h=list-id :list-unsubscribe:list-subscribe:list-archive:list-post :list-help:sender:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; s=default; bh=YjoGP51s4GYi144bdhN4poCTtM4=; b=vFK3zgwDVEEG4/0LgprZFxKwobaE THLuVgtfXLoGhMWT6XwvkuJdU+DxICWPLMYoJHCFDb5bpWXOUlmc1TAw3iBRjDiR DfMjp/5WdzCE/ZnyG4Va1YiI0lYIav6rlsy7FOs5iVarJadrWrhTcuzNm0SfDzuM wE5El4/NdcpmnJ4= Received: (qmail 18328 invoked by alias); 17 Jul 2019 00:12:06 -0000 Mailing-List: contact libc-alpha-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: libc-alpha-owner@sourceware.org Delivered-To: mailing list libc-alpha@sourceware.org Received: (qmail 18270 invoked by uid 89); 17 Jul 2019 00:12:06 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-26.7 required=5.0 tests=AWL, BAYES_00, GIT_PATCH_0, GIT_PATCH_1, GIT_PATCH_2, GIT_PATCH_3 autolearn=ham version=3.3.1 spammy=HContent-Transfer-Encoding:8bit X-HELO: esa4.hgst.iphmx.com DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=wdc.com; i=@wdc.com; q=dns/txt; s=dkim.wdc.com; t=1563322325; x=1594858325; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=i+B3lI3a7gYjsZ4OWUfC+Q58cEyAVEkifAEkj1YvwGw=; b=KLIMmDr3KTh3+OLwl+x1tkX2jPvknJqV+rUa7lHJ485VPeaIovmwQQiv nT89N5mnF4thd1AKkhlHmXt5PSaSi45+9pzF68xS34N5IhwiWlUVW7nsE t2/y5vAxBXViyc09o0whU/IJpaj3ptlLxpY/q1/hWHmj//ZppK10+ewwQ KxAvlTfgFA95NLkT2GYGzShounaMtegOYQFBwiu6//O7UrM0PgJcqZAkL uLum0rvHYHtGTgksTwXi6x/hwAkvDAwq0eF5IrtA2rs5GdhR+U1TCqxs4 xZ6VdAjQRzbZojG8EKutU3TZwqTSWe2FfoZ0zRpgqVLVb0wq3jInUR1LM A==; IronPort-SDR: 2I2wYh2x+/8sX7xZG4jwSSECZlfVjnqmBwA5Xxv9Lec0BZKcWK4CcaGp5IbMaymYRHgffxSt/L 0BeMkbxYs0Mlv2Izea4CSzA+vwczEbIy4L+QAR+OWQ88z2s+Z0ObpYS/Pfstl/kSDOxmRqByDC LlVamN0UUltobhVptR6LhCSAhMvKxz9Dcd0A20Q4vrvzUq8nukQ6ct2eeGNOpC3a/SJal8rdoK B6JYXje6Wf1BF5SysUx0ZFKOJl7QRP+InqI4985rRRtDsi4/8wFDhvpwunXH/wcLC9anAcrJZc EDM= IronPort-SDR: wQpuCQLl+2BUd8MujciPUQQjgpruVY8AGsoxEAWcZG/XkaoUZV3TDey7r8u+RYBRvV4qi9A5y8 Suwcns2sLtYCx1INuYJKdeympcRLjDOFKVEImEBwxgE6Vbj0LXVXOJU0Vm3GfPm9wlmYi8cfd3 Tp65MiiiWvlz3ss06OQV5qwKc64iA89adATU2urR/lXuzCHqnOuJFIoXLF9slXDh89aNOML4rc XrGM3dLQj9gwi9IjIA9ptjLDfNyRpZl6/h3GUN8GYaFS3ZG2ryiAq8aQTJnlhHoNdQjXtUB7VZ 1ZxLvKci1HHddtPH16wKPGgN IronPort-SDR: Pm8mOtFvbS5h2QIb1Hkhv3E+Db8fkmnuT/4H20UsvyxyGmn6UvtB4451WiLw7cSue1ThHWN+Tx LZFgXh6V3XcQmSrR/I5fTOvlFvlGwwtcc5BM/np1f1tAMndD3JqwihBpBa/HTFRr1CiXtH/KKY wtEPeNAUU+d0PTnK01VAblVSEkvTiK1GNZDDt9NRqxQYZLakpJgTFiehq+ItWrZu7ImN8t8sxx ZctxTFE3sAEUZH1bHp7uSvdT8XEztZhlxWRYbznPJ11NmCdPkGRo4cGuqonxT6Mu7O3L+X1GXY 9Gk= From: Alistair Francis To: libc-alpha@sourceware.org Cc: arnd@arndb.de, adhemerval.zanella@linaro.org, fweimer@redhat.com, palmer@sifive.com, macro@wdc.com, zongbox@gmail.com, alistair.francis@wdc.com, alistair23@gmail.com Subject: [RFC v3 12/23] RISC-V: define __vdso_clock_gettime as __vdso_clock_gettime64 for 32-bit Date: Tue, 16 Jul 2019 17:09:12 -0700 Message-Id: <2b21e47e43bdfb90c035b76e8a2f245e991a1718.1563321715.git.alistair.francis@wdc.com> In-Reply-To: References: MIME-Version: 1.0 Signed-off-by: Alistair Francis --- sysdeps/unix/sysv/linux/riscv/sysdep.h | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/sysdeps/unix/sysv/linux/riscv/sysdep.h b/sysdeps/unix/sysv/linux/riscv/sysdep.h index e66e9f032a..ea47b9b82c 100644 --- a/sysdeps/unix/sysv/linux/riscv/sysdep.h +++ b/sysdeps/unix/sysv/linux/riscv/sysdep.h @@ -171,6 +171,10 @@ # ifndef __vdso_clock_getres # define __vdso_clock_getres __vdso_clock_getres_time64 # endif + +# ifndef __vdso_clock_gettime +# define __vdso_clock_gettime __vdso_clock_gettime64 +# endif #endif /* __riscv_xlen == 32 */ #undef SYS_ify From patchwork Wed Jul 17 00:09:15 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alistair Francis X-Patchwork-Id: 1133008 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=sourceware.org (client-ip=209.132.180.131; helo=sourceware.org; envelope-from=libc-alpha-return-103698-incoming=patchwork.ozlabs.org@sourceware.org; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=wdc.com Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; secure) header.d=sourceware.org header.i=@sourceware.org header.b="vaLrU1Qc"; dkim=pass (2048-bit key; unprotected) header.d=wdc.com header.i=@wdc.com header.b="N6imL+cF"; dkim-atps=neutral Received: from sourceware.org (server1.sourceware.org [209.132.180.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 45pHmx3b1Qz9s8m for ; Wed, 17 Jul 2019 10:13:53 +1000 (AEST) DomainKey-Signature: a=rsa-sha1; c=nofws; d=sourceware.org; h=list-id :list-unsubscribe:list-subscribe:list-archive:list-post :list-help:sender:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; q=dns; s= default; b=ZOsNOVrmUopfRYW1rYjaffY517cj1aYWJJ+Uf87evm0nOD+MFxYqH qrxbSxz/rzMtf9JpQ1/s6MD/h+jw/GCiXvVNm6lmRu+l1Eau9kWOdRegM7AkgmNc Ew9IBEs8Crn+C4zvaVD3HHhMVMyBUJJYFeQp6AgdCPm66kUYJvyMcU= DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=sourceware.org; h=list-id :list-unsubscribe:list-subscribe:list-archive:list-post :list-help:sender:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; s=default; bh=miFzFFdB6cZ2/z/qPS2WGtPNvDk=; b=vaLrU1Qci24cTlKBYVnRTYwy3gJQ zBM4+ngHJvK4iQqxy5Hvs+XT/xeoGJN+r+nwLopW8wVH6gA/xPzEfMpzEdq0dif/ aAamTrUtmQcvIMqqwD+t+AakbTEYSdLg50+FLtkJhIEb+2B3xEdnGSzRpELFZLSH olX88YQCBfVnK7M= Received: (qmail 18870 invoked by alias); 17 Jul 2019 00:12:11 -0000 Mailing-List: contact libc-alpha-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: libc-alpha-owner@sourceware.org Delivered-To: mailing list libc-alpha@sourceware.org Received: (qmail 18790 invoked by uid 89); 17 Jul 2019 00:12:10 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-26.7 required=5.0 tests=AWL, BAYES_00, GIT_PATCH_0, GIT_PATCH_1, GIT_PATCH_2, GIT_PATCH_3 autolearn=ham version=3.3.1 spammy=HContent-Transfer-Encoding:8bit X-HELO: esa4.hgst.iphmx.com DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=wdc.com; i=@wdc.com; q=dns/txt; s=dkim.wdc.com; t=1563322329; x=1594858329; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=qjpqZieGh2NKyOZOaNKTU0SuemUWsFrjF8mRMk15kg8=; b=N6imL+cFA/vl0yZNOgvp/pW6caVXr8rU0YVOq5WxIYejtwsB/M1HhQak k7Vh4F2ZbiBZf4dj2P4RWeKI8Ib7MZG28lpqO7eIsh47An+1eX3x8fm2K HXkIQPt7T4VOq2swdGkHoQWAY0XVGbVk2QOjuXTmHQCesj4lKEnkAw8cj 9gtgr/PoTUyZXS1KAgdTFiHdHZeUzyczbbdh2eSUFxhQwJd3FGM0wQR5N e+xbSDjATh4XotTUOo4XKH3+ixfAxD+zxO1JAJCCN7IJKimNpkkEO1qsk logOR+r8efCAGI8ypKT71qcfrzbFxbRYd/n62nE1vPtXBwE470L5BPBmT Q==; IronPort-SDR: AXLVi/iAJc92/E5C3UEpM0ghymVbaDrD3UAfdFHiK/1PGR0p8F5usT+Ywe5WhU7tOTApvaF+NI jtAUJCts6j9ywLP3VMPm/VR0g3wDR+xfIimaVIeZvWF7ZZjQzzJSouss3CLRMsIssJEV7OQkME MfGsCuGMq1AdmeJ2hOgNUgT5eh2xAf/RJk0S6nPFKKC3vCzy17zTfXcTo6UIqXYudh0U0U+iI/ 1AB55WVxtn5loZ69xQ92pARSjDdRTLdtO6Pgp6EdwpHH+yn/Z1ImOA1j2OfQJGs+3Nz1j7/EJg ytQ= IronPort-SDR: zfmMAcjAzro5g2SQTX2n+foo5OVsScJENgogJTxcXe9sSOaGdAPnVHi8a74+6qsHpqvTYYCGv6 3lrwQNq65DldWj+85MPbUEcpokdoblCwaQ4Q0t6ybMv0hJzewJv+Yvyw34CGzLVabduiRG5V50 jy3DriYk2YSh2wf5/WY91aH7s+qOqgAXLB/CeycU3VnV5co5eVb4VrNn+YLUUH7wV+riOPlQTh jVDV4YROKm8XZT3fivXYuTDCWXDoMMycjWle4fxUpgbIszceebQ3k7fPAcYfegPZ9rk+fIpvwz ppCArqJSknIiqEebcSaxzF8g IronPort-SDR: l8fmYCc3vWaEUSuKu61T1s3Owv9aF+e8B4RqwOr6UUVuD9XacGHTGGNn6C32w3HWZmOhJ+3bhz wnSBvuSAMd0rHkVd1rvV2BER4PuZQ69bkpqT4suquCJFYMiuI1brZYRwto9KhualiK92fF/TUQ r2MbfxNXHPuPtpsZamFav93fO0Q+ep/KM73Ioq5McLat+jPbLycO/2H/UzXC012tIX7/QLxio3 ib2xPDKc5BcTr7uKtcpB6kg5zzf8bAt/GwnMIrrKskKmASCmZ+CcSnJWkHEPs9LNsqvku5MoDT E3w= From: Alistair Francis To: libc-alpha@sourceware.org Cc: arnd@arndb.de, adhemerval.zanella@linaro.org, fweimer@redhat.com, palmer@sifive.com, macro@wdc.com, zongbox@gmail.com, alistair.francis@wdc.com, alistair23@gmail.com Subject: [RFC v3 13/23] RISC-V: Use 64-bit timespec in clock_gettime vdso calls Date: Tue, 16 Jul 2019 17:09:15 -0700 Message-Id: In-Reply-To: References: MIME-Version: 1.0 Signed-off-by: Alistair Francis --- sysdeps/unix/sysv/linux/riscv/init-first.c | 2 +- sysdeps/unix/sysv/linux/riscv/libc-vdso.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/sysdeps/unix/sysv/linux/riscv/init-first.c b/sysdeps/unix/sysv/linux/riscv/init-first.c index 8134c79695..155a4a2c0c 100644 --- a/sysdeps/unix/sysv/linux/riscv/init-first.c +++ b/sysdeps/unix/sysv/linux/riscv/init-first.c @@ -25,7 +25,7 @@ long int (*VDSO_SYMBOL (getcpu)) (unsigned int *, unsigned int *, void *) attribute_hidden; long int (*VDSO_SYMBOL (gettimeofday)) (struct timeval *, void *) attribute_hidden; -long int (*VDSO_SYMBOL (clock_gettime)) (clockid_t, struct timespec *) +long int (*VDSO_SYMBOL (clock_gettime)) (clockid_t, struct __timespec64 *) attribute_hidden; long int (*VDSO_SYMBOL (clock_getres)) (clockid_t, struct timespec *) attribute_hidden; diff --git a/sysdeps/unix/sysv/linux/riscv/libc-vdso.h b/sysdeps/unix/sysv/linux/riscv/libc-vdso.h index b0c46f3cb7..406801746f 100644 --- a/sysdeps/unix/sysv/linux/riscv/libc-vdso.h +++ b/sysdeps/unix/sysv/linux/riscv/libc-vdso.h @@ -28,7 +28,7 @@ extern long int (*VDSO_SYMBOL (getcpu)) (unsigned int *, unsigned int *, void *) attribute_hidden; extern long int (*VDSO_SYMBOL (gettimeofday)) (struct timeval *, void *) attribute_hidden; -extern long int (*VDSO_SYMBOL (clock_gettime)) (clockid_t, struct timespec *) +extern long int (*VDSO_SYMBOL (clock_gettime)) (clockid_t, struct __timespec64 *) attribute_hidden; extern long int (*VDSO_SYMBOL (clock_getres)) (clockid_t, struct timespec *) attribute_hidden; From patchwork Wed Jul 17 00:09:18 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alistair Francis X-Patchwork-Id: 1133009 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=sourceware.org (client-ip=209.132.180.131; helo=sourceware.org; envelope-from=libc-alpha-return-103699-incoming=patchwork.ozlabs.org@sourceware.org; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=wdc.com Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; secure) header.d=sourceware.org header.i=@sourceware.org header.b="epCWBm4x"; dkim=pass (2048-bit key; unprotected) header.d=wdc.com header.i=@wdc.com header.b="fUZSUmSw"; dkim-atps=neutral Received: from sourceware.org (server1.sourceware.org [209.132.180.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 45pHn60TPWz9s8m for ; Wed, 17 Jul 2019 10:14:01 +1000 (AEST) DomainKey-Signature: a=rsa-sha1; c=nofws; d=sourceware.org; h=list-id :list-unsubscribe:list-subscribe:list-archive:list-post :list-help:sender:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; q=dns; s= default; b=A8RuaMMjoysrJbym9AfpBx57Yw79wZZumEn/SdNHJfHLQ767cmlrf 2m4iCqIduNRKSCbXD+z13EjqH++ZZxIDB/MYYKx2CNgsmrayET+qjIPFAS46QY1h GRQAoHLlQBGGLE3lc9joUCM9u8mE0+NDIatVliNKWUCGnuitBfFgik= DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=sourceware.org; h=list-id :list-unsubscribe:list-subscribe:list-archive:list-post :list-help:sender:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; s=default; bh=obEW8/EaEYGhj6XT+YhwPQmw85w=; b=epCWBm4xErsak0hzgz0wqPJqSd+x hVf1Cih4g83RSS5CpyaTpghlM4MtB2QH5tqgQoqW4bufKOVLxZwzqoeeJ8S6ZpX2 3guShhJ0VFiUpFynZlFL4h3zWtbDgYdfeufj5/LPauVhX8a1v2tXnUrXJUxlOZnt xq1LiUr0E01dYG4= Received: (qmail 19116 invoked by alias); 17 Jul 2019 00:12:13 -0000 Mailing-List: contact libc-alpha-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: libc-alpha-owner@sourceware.org Delivered-To: mailing list libc-alpha@sourceware.org Received: (qmail 19040 invoked by uid 89); 17 Jul 2019 00:12:12 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-26.7 required=5.0 tests=AWL, BAYES_00, GIT_PATCH_0, GIT_PATCH_1, GIT_PATCH_2, GIT_PATCH_3 autolearn=ham version=3.3.1 spammy= X-HELO: esa4.hgst.iphmx.com DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=wdc.com; i=@wdc.com; q=dns/txt; s=dkim.wdc.com; t=1563322331; x=1594858331; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=4LFTSttC8uoxBGY/9zOC3kYQhkatRQ5iiv3goIC2tL8=; b=fUZSUmSwiCLPwnnXocgbcZziQSsX/LD3o/7cxotE3msjH0u5x1zRP2i8 QuVxUb5akGtAkWzU5XnUz5smuTd9CdxWKmHV7J+nsYGJ1lxg5x+V84Ipu Qxcm6SlxG2ACEtS0xwSutrvYtXMS3OSV2KpTyKaBxufj3VX4t1huQBX69 KhI7GsWazdgBJBNCQQMiE1IBOjOQ/QlzD8Q+35A1jzVactfUa2n4vmurN r5koQ/LUoCyIDqH3NlHvhS0XKQ7Y21TPkBYP+MiSapHB8KOu/ey+nwwut Q4cDlguDfyayfsbWv4IdB5wcAUtON0NZQqZ2w+I4AFVrKfF/a1bbBLECn g==; IronPort-SDR: DTBHxsie8O9wEx8aSFQaqhfiNFvEjVXndAQvZo6RSm46IJuoW5ug0bRLf04AfzB4/tE21ZlP8E +7SVdwokhephas9MqwiQ129OCqXO+sE43499l8GfOkAzyTG3iLHGkBvdDM80e+5yP24QYzwYev 4jCtdzuCYkWIMsyX4Lrz37NY6VIxyKGDLLSzvP5jOV6IFAeWYy6OTL7h9JeK0JdMkUMfG4Bod4 gJOyjDGtt5ZleofgSK+G1YQ3Aw8EnF35YXQjbrJyc4B6oXXrJH/eh6gLJVVo2KUJyyk64FpsmJ Kr4= IronPort-SDR: XV9aWw9+oDwPIViNCus6Gl6Vb4BGfI7qX5rgSnOmn82oHfFyJU+HKQTVfXl/MA4xP1sIyy8GtG qKjbp3Oy/hVrPhkg8ydlIgxkbKdodBECxexEba4NXU6vqxrWRlzIFIhx3C/3IMHFZIGeBu5P4i qdJ8ZTD+vls5fZnwDeH2JbBfx0q46bloQYN7G3WFbSjKrkbNM5A1qSmn54BX+dGVEmctGpxBw1 eIpH2I/DvLuashdpzBbbAqWpsfc8YFnwSSV4Ar/0TPzXRutOfzyZT3xZ80EJIG2jXIXuSUQlhk i5h8RozxI3R6fUmo2vS3q2E5 IronPort-SDR: iAMDuubt+Lum4bxeN3fBqkky0oK0vrYk35qkrXXHaJj2bguLihR5v0KytcwXNcrKbsa2kGNFi6 7Plzd7pTJlEA8TURo+2qjFkszCP4367qQJN0+VQYFeRraslw9Qgpt4E+qqVIKb1OiKLNRpTese 9UD046CCi06pMrNuzAVhMj12ECFjoWx48nAWIGOFE0hpmIFYzwfeNtyyzGJpfO137JZDReKFvT PGm5GaZfUJ0zynR3sNHIvM8p5cI3E42LkwGkvaOQd03ytbiWObdGNuyfUeJgBurElcfuLx4/wM 5C8= From: Alistair Francis To: libc-alpha@sourceware.org Cc: arnd@arndb.de, adhemerval.zanella@linaro.org, fweimer@redhat.com, palmer@sifive.com, macro@wdc.com, zongbox@gmail.com, alistair.francis@wdc.com, alistair23@gmail.com Subject: [RFC v3 14/23] RISC-V: Support dynamic loader for the 32-bit Date: Tue, 16 Jul 2019 17:09:18 -0700 Message-Id: <0f8a0b4a459ae315ab31e2de8c7f033debdfdaed.1563321715.git.alistair.francis@wdc.com> In-Reply-To: References: MIME-Version: 1.0 From: Zong Li Add the LD_SO_ABI definition for RISC-V 32-bit. 2018-11-29 Zong Li * sysdeps/unix/sysv/linux/riscv/ldconfig.h (LD_SO_ABI): Support rv32. --- ChangeLog | 4 ++++ sysdeps/unix/sysv/linux/riscv/ldconfig.h | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index ec07b3ff27..940db8b92e 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1037,6 +1037,10 @@ * sysdeps/unix/sysv/linux/riscv/bits/timesize.h: Likewise. * sysdeps/unix/sysv/linux/riscv/bits/typesizes.h: Likewise. +2018-06-20 Zong Li + + * sysdeps/unix/sysv/linux/riscv/ldconfig.h (LD_SO_ABI): Support rv32. + 2019-06-20 Dmitry V. Levin Florian Weimer diff --git a/sysdeps/unix/sysv/linux/riscv/ldconfig.h b/sysdeps/unix/sysv/linux/riscv/ldconfig.h index 20fbd16c59..360f35fb28 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 Wed Jul 17 00:09:20 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alistair Francis X-Patchwork-Id: 1133013 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=sourceware.org (client-ip=209.132.180.131; helo=sourceware.org; envelope-from=libc-alpha-return-103703-incoming=patchwork.ozlabs.org@sourceware.org; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=wdc.com Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; secure) header.d=sourceware.org header.i=@sourceware.org header.b="xnYXQbmo"; dkim=pass (2048-bit key; unprotected) header.d=wdc.com header.i=@wdc.com header.b="KsYfRRLF"; dkim-atps=neutral Received: from sourceware.org (server1.sourceware.org [209.132.180.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 45pHnv5S1bz9s8m for ; Wed, 17 Jul 2019 10:14:43 +1000 (AEST) DomainKey-Signature: a=rsa-sha1; c=nofws; d=sourceware.org; h=list-id :list-unsubscribe:list-subscribe:list-archive:list-post :list-help:sender:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; q=dns; s= default; b=RHRVMMz6QpzNkZ58p4PjsBZOekDPpzrzYqIYLR8VIn15gXOSvqE4s T39brb1Be5oK6QYoEsOKIXcEIALAQ+QNEuHvUvgN5SoZLSA9peucxDVLwQBwukKX +xFz0YYBOpb9DhPFkg6nLJfEqZOKzxVXs4AyenEE9o0ZWyJ5PzqAek= DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=sourceware.org; h=list-id :list-unsubscribe:list-subscribe:list-archive:list-post :list-help:sender:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; s=default; bh=8hOmMsp9zvLBQKkgDLs/NPVA0Lc=; b=xnYXQbmo+DOJJUu1dAaOC4ohiHiY oqqG61DAgTWFtQKOSIUMbtbYa8m9Tvh06pmwdXY/90QNHXAAwndESOhF3rpy6kdU yHa9TDrj4/uIcLPfW2o6cKHffGcaWDl0O2Dxz9j0QjxuyVU8HKX97FCDxJ3lH+Sa z0iB83ss8g/zLME= Received: (qmail 21161 invoked by alias); 17 Jul 2019 00:12:29 -0000 Mailing-List: contact libc-alpha-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: libc-alpha-owner@sourceware.org Delivered-To: mailing list libc-alpha@sourceware.org Received: (qmail 21100 invoked by uid 89); 17 Jul 2019 00:12:29 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-26.7 required=5.0 tests=AWL, BAYES_00, GIT_PATCH_0, GIT_PATCH_1, GIT_PATCH_2, GIT_PATCH_3 autolearn=ham version=3.3.1 spammy= X-HELO: esa5.hgst.iphmx.com DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=wdc.com; i=@wdc.com; q=dns/txt; s=dkim.wdc.com; t=1563322347; x=1594858347; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=J34MLK4VneYU2svLRz8bF6R2WAAhqR5kB/NtHL5cP14=; b=KsYfRRLFN8g2zFo/E3g1HsIrGvsMkKL1fBVBk5NDedwsdVx9SkfyFu4R vJ/TTKzWC8Trzz65IYn9UxVgKeV/Pyo50AZp/ebOS+w0/Umv1WaMH3CcO qnM0BwB4RUF85c7rawAl1TTEx3eRL6OhvRpIG1c9tyBA/DtjO/HMQCc2f hCGuST8jkOsls5r6itWbAF5GaIv0spQpGu5/8u/sY2HvXuqsnk8cBj4hZ 8HzIVBr6xjKCpUs1cLPEGstpv+AY26LaSgmivmErIdjiYh5WoW/EIaPNF asy3eKLrmLbNo49qQX6dnjlRWu1ZijRnt8h5NX5tvoF0kgc787ji/f+j+ Q==; IronPort-SDR: m0+uiIVsE1dUgUhTTVdLMhGuBllmoT0J2zUSXpIs4YlE1gRWCCE1Nb+3vnKa2EebIWaXnfs8oZ R0m8dJLsxu6lkrPgpRq/WPn7QLuhROsFmO4B9drDeFDiUpmDkuGcGRQmlpcN32j2b4IrSDe89o 1dawZmftnJokTZtcmVkIdMsL5UBuml37QW6Us2B2cBmO4xYIsgJ9a/wNyH5nFynq4Ml3x0Rxck YoceTBBAKPcS2WVnhoIDSN8Cn1/JdsJt4F1vKawHKi0AiWTMgBNlzrYwIoHSRu1IpNLFvJIpw+ EzE= IronPort-SDR: wIWlLsAGgtDIKjMo9i8GN5Xgb73ik325pOnUJpPst9rCfperbOqvdMC8ZqxXmCqLal/5EWeXbw 1EWI2CRamfO5ndqHKH6kaz4u3cq3/Y/kGnZW2K1EjOlY0IPONT4p92rk6MOTdm+7DEbmaol4In qO/vvAVrJWaYGHhE1Jw+2p7H6ZbVh0PpcqqVPcPy9M8KUVzTT8PTzzZUucQSmtNCJA2mokf3nM 191Ol+MvmhPsJZq1eAsGSiJ5gu2EDAOCCTLJbXWl4U/jSveAIz1VrJoK54KN3zEGj39tgHrUBk IEhbpz2NN7Dd8CJKpCQ0vOHR IronPort-SDR: Aw/sqYvTEGf3LRNLwiI8HGrmY6P9k9xkB7wJHyccSGLPCRkChHVc8w4lR9EM1Dse53cv+Z1Qqc wm3+xTWCB+hyKTdGMo9a8hs6jiF/ACLDOnt7yzD3qf6aYQm5wmDvp1OjnO1ZEdt6UKwOEM413h 7gP3dL90YHFGdDmI4hc+QJPFwRdQ/xeHyPDW/KAPgpB4Nm45lyJcUYbMfYmlITwsIOC4rqCI68 v4qw0I9DSK+P0IPOJ3XlC9hbnDyPB2eYRBfcrMKUN10EMYO58bp8IY7PSIjjNPRFLlKZj5Rops nTg= From: Alistair Francis To: libc-alpha@sourceware.org Cc: arnd@arndb.de, adhemerval.zanella@linaro.org, fweimer@redhat.com, palmer@sifive.com, macro@wdc.com, zongbox@gmail.com, alistair.francis@wdc.com, alistair23@gmail.com Subject: [RFC v3 15/23] RISC-V: Add path of library directories for the 32-bit Date: Tue, 16 Jul 2019 17:09:20 -0700 Message-Id: In-Reply-To: References: MIME-Version: 1.0 From: Zong Li For the recommand of 64 bit version, we add the libraries path of 32 bit in this patch. This includes a fix to avoid an out of bound array check when building with GCC 8.2. 2018-11-29 Zong Li * sysdeps/unix/sysv/linux/riscv/dl-cache.h (add_system_dir): Add libraries path for rv32. [ Changes by AF: - Fix bound array check when building with GCC 8.2 ] Signed-off-by: Alistair Francis --- ChangeLog | 3 +++ sysdeps/unix/sysv/linux/riscv/dl-cache.h | 17 +++++++++++++++-- 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index 940db8b92e..4155ead682 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1040,6 +1040,9 @@ 2018-06-20 Zong Li * sysdeps/unix/sysv/linux/riscv/ldconfig.h (LD_SO_ABI): Support rv32. + * sysdeps/unix/sysv/linux/riscv/ldconfig.h (LD_SO_ABI): Support rv32. + * sysdeps/unix/sysv/linux/riscv/dl-cache.h (add_system_dir): Add + libraries path for rv32. 2019-06-20 Dmitry V. Levin Florian Weimer diff --git a/sysdeps/unix/sysv/linux/riscv/dl-cache.h b/sysdeps/unix/sysv/linux/riscv/dl-cache.h index 2a15e28e3b..5943060536 100644 --- a/sysdeps/unix/sysv/linux/riscv/dl-cache.h +++ b/sysdeps/unix/sysv/linux/riscv/dl-cache.h @@ -34,6 +34,8 @@ 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. @@ -49,9 +51,16 @@ do \ { \ 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)) \ + if (len >= 13 && ! memcmp(path + len - 13, "/lib32/ilp32d", 13)) \ + { \ + len -= 9; \ + path[len] = '\0'; \ + } \ + if (len >= 12 \ + && (! memcmp(path + len - 12, "/lib32/ilp32", 12) \ + || ! memcmp(path + len - 12, "/lib64/lp64d", 12))) \ { \ len -= 8; \ path[len] = '\0'; \ @@ -64,6 +73,10 @@ 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 Wed Jul 17 00:09:23 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alistair Francis X-Patchwork-Id: 1133010 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=sourceware.org (client-ip=209.132.180.131; helo=sourceware.org; envelope-from=libc-alpha-return-103700-incoming=patchwork.ozlabs.org@sourceware.org; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=wdc.com Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; secure) header.d=sourceware.org header.i=@sourceware.org header.b="Fy3M6zfO"; dkim=pass (2048-bit key; unprotected) header.d=wdc.com header.i=@wdc.com header.b="cLAQSSHR"; dkim-atps=neutral Received: from sourceware.org (server1.sourceware.org [209.132.180.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 45pHnJ1mn6z9s8m for ; Wed, 17 Jul 2019 10:14:12 +1000 (AEST) DomainKey-Signature: a=rsa-sha1; c=nofws; d=sourceware.org; h=list-id :list-unsubscribe:list-subscribe:list-archive:list-post :list-help:sender:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; q=dns; s= default; b=WNxslPf275Zg4261Bi53ITdVJ0jCKUwi+hm5icjOyDvGSU9pl+JhP y5os82Z8amewNMPvkqxS/EdzV28dk4k+E5KlkAFb6ZcV5ijWTLXdc73lLeu9uyZm iWrdJSRTqRwP1eEykJons6GQfkWoe4AxumKJuGQevlI88lwt2JH0eM= DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=sourceware.org; h=list-id :list-unsubscribe:list-subscribe:list-archive:list-post :list-help:sender:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; s=default; bh=kxwqLXYCClAramCgtzZoIbysanM=; b=Fy3M6zfOwrLNna+IENjEuLYE6DSC eZPuwnNU+uWN4gCatcZZ9uo6cNW1x/avQZoSAh06aOn0zDsGTOhuqwh1RXA0Q1RU JBE7FnV70/q0gpE23Y7JaghUFqsU4tFcAJmhQLunG6aQI/F0Vzsa+7KxU1Cn6HO3 hbTzIFYJVlZe5l4= Received: (qmail 20288 invoked by alias); 17 Jul 2019 00:12:22 -0000 Mailing-List: contact libc-alpha-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: libc-alpha-owner@sourceware.org Delivered-To: mailing list libc-alpha@sourceware.org Received: (qmail 20010 invoked by uid 89); 17 Jul 2019 00:12:20 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-26.7 required=5.0 tests=AWL, BAYES_00, GIT_PATCH_0, GIT_PATCH_1, GIT_PATCH_2, GIT_PATCH_3, KAM_SHORT autolearn=ham version=3.3.1 spammy=288 X-HELO: esa1.hgst.iphmx.com DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=wdc.com; i=@wdc.com; q=dns/txt; s=dkim.wdc.com; t=1563322337; x=1594858337; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=bnjVP11/IGE/cU/+KlZsl8LZeRjoEXDJp+SYOdWglt0=; b=cLAQSSHRP2nZ3iKbSV4fQVwA250YpFSmXLHUVaxfAX7S2YbYNn/qffQD DUIc2sKYtichIrpJ/QPVmWnJl8vC8excGWJSVbhiCkp0Ktq2NeQcTHICI YD/+XP7/fytmPpbUughw0ROyFSpciwX6QlPD4qc264Y4y+UrU2UhRngSZ dINXQJIMME8WjEiJGeTxEO9n6a9jcH2/QI/JSbvA+R+WuKThVWUcGEC0W BFjqWZ8w4bDR5c78NrOdU3Zb8RWBN1ZznY9KlY3afi0JfAqscoxJXRXWP B2/QfrHtavvxtfI3mj2ypf8wotf0NPSwtH7m12JI4GOHvM5QsTLs2tLJB g==; IronPort-SDR: KKD/fPsrXetcAYztJT/YLljemIU9QkAwXmU32Gm/w6bHCGk+rsxzaZ9le794LV5gV/lqaj2LEb Oxw8Ijmgug2CADhqzhFvViVNR0KxdARzv1/oUyXOu/4JGwBgvGG81ne+0mKRUl3ZA7herIp06E RRiQv3ffxcdZPsvX6zYiaMHSlM8gbQRSFi5B/bIm8tnY/Vzh+SvSIqA+g//Jge1dtuzWnvBIMk oMXwh+rwz2gVPJtsSlK4i6DKBuVsWmovdgP/PYL9w+8AlwWY7hau03qzabvs1iWfRpk8odVYqQ 0Vk= IronPort-SDR: HFdcV4I14yXSj53Gp+ijeek3Zs+wGTCzLjfDQGFV+txSD5cSEX3aDOsYuFqfvWaq0W//a3BVlq 3DVLLMscpHRrCCdC7BBMcKfdGVfqVPHPqfvcgYYN1KFaJFTBAZLwCL5OnQjsR5xsOg61OtUz8W s/6Ry45giULY1kn4tKv2bZTukkBwmUkQUjThdhga75cbSKzBVFV/PH109KCMJfu9nZm9tSIiFa ks6FK5vUx+qdfWXNsq6T1e55hXj4BEw+zGd3yukxSPi70vikcsFNRT+hGIEmtkcUrxROTHjiNf KVXePvik5Qp3WU36umm1WaHJ IronPort-SDR: +Nbnbc5HLt/4z32TWeA2owAeiCdqNjhT2qC6p9ZwUTv8UMycQjW2bLl+SeC8oxWvxS+Y9qgdtP 9cjTTpC6BsnIZeqIuLSyeLUFzLc2ninyjw+I1Ssq5OqLNM88xPuOdXElCbOi2KJxyDN5m459oG QzJImLA1sbM9UXi/8VPsQoD9dP9G2Qn3se6mFk/pTPrzRObuc0c5rU5/21BFYCKCkbVnlnR1Wh bgbeeUlDU6yuTGjdQwN2TP909vZgAPI7d5ZxZkWtiMRrBsVEppCiRmGUUXZg3Q6c6okJi6zZyo qGQ= From: Alistair Francis To: libc-alpha@sourceware.org Cc: arnd@arndb.de, adhemerval.zanella@linaro.org, fweimer@redhat.com, palmer@sifive.com, macro@wdc.com, zongbox@gmail.com, alistair.francis@wdc.com, alistair23@gmail.com Subject: [RFC v3 16/23] RISC-V: The ABI implementation for the 32-bit Date: Tue, 16 Jul 2019 17:09:23 -0700 Message-Id: <22d27f4b485ad713e982e4786859678ec7a97219.1563321716.git.alistair.francis@wdc.com> In-Reply-To: References: MIME-Version: 1.0 From: Zong Li This patch adds the ABI implementation about 32 bit version. It contains the Linux-specific and RISC-V architecture code, I've collected here. 2018-11-29 Zong Li * sysdeps/riscv/bits/wordsize.h: Supprt rv32. * sysdeps/riscv/nptl/bits/pthreadtypes-arch.h: Likewise. * sysdeps/riscv/sfp-machine.h: Likewise. * sysdeps/riscv/sys/asm.h: Likewise. * sysdeps/unix/sysv/linux/riscv/rv32/jmp_buf-macros.h: New file. [ Changes by AF: - Remove lock64.c ] Signed-off-by: Alistair Francis --- ChangeLog | 8 +++ sysdeps/riscv/bits/wordsize.h | 4 +- sysdeps/riscv/nptl/bits/pthreadtypes-arch.h | 25 ++++++++- sysdeps/riscv/sfp-machine.h | 27 +++++++++- sysdeps/riscv/sys/asm.h | 5 +- .../sysv/linux/riscv/rv32/jmp_buf-macros.h | 53 +++++++++++++++++++ 6 files changed, 118 insertions(+), 4 deletions(-) create mode 100644 sysdeps/unix/sysv/linux/riscv/rv32/jmp_buf-macros.h diff --git a/ChangeLog b/ChangeLog index 4155ead682..e0446d70a0 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1043,6 +1043,14 @@ * sysdeps/unix/sysv/linux/riscv/ldconfig.h (LD_SO_ABI): Support rv32. * sysdeps/unix/sysv/linux/riscv/dl-cache.h (add_system_dir): Add libraries path for rv32. + * sysdeps/unix/sysv/linux/riscv/ldconfig.h (LD_SO_ABI): Support rv32. + * sysdeps/unix/sysv/linux/riscv/dl-cache.h (add_system_dir): Add + libraries path for rv32. + * sysdeps/riscv/bits/wordsize.h: Supprt rv32. + * sysdeps/riscv/nptl/bits/pthreadtypes-arch.h: Likewise. + * sysdeps/riscv/sfp-machine.h: Likewise. + * sysdeps/riscv/sys/asm.h: Likewise. + * sysdeps/unix/sysv/linux/riscv/rv32/jmp_buf-macros.h: New file. 2019-06-20 Dmitry V. Levin Florian Weimer diff --git a/sysdeps/riscv/bits/wordsize.h b/sysdeps/riscv/bits/wordsize.h index 0b8cd8fefd..f10be0144c 100644 --- a/sysdeps/riscv/bits/wordsize.h +++ b/sysdeps/riscv/bits/wordsize.h @@ -25,5 +25,7 @@ #if __riscv_xlen == 64 # define __WORDSIZE_TIME64_COMPAT32 1 #else -# error "rv32i-based targets are not supported" +# define __WORDSIZE_TIME64_COMPAT32 0 +# 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 e3fecc3208..4b08f7c692 100644 --- a/sysdeps/riscv/nptl/bits/pthreadtypes-arch.h +++ b/sysdeps/riscv/nptl/bits/pthreadtypes-arch.h @@ -32,7 +32,15 @@ # 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_MUTEXATTR_T 4 +# define __SIZEOF_PTHREAD_COND_T 48 +# define __SIZEOF_PTHREAD_CONDATTR_T 4 +# define __SIZEOF_PTHREAD_RWLOCK_T 48 +# define __SIZEOF_PTHREAD_RWLOCKATTR_T 8 +# define __SIZEOF_PTHREAD_BARRIER_T 20 +# define __SIZEOF_PTHREAD_BARRIERATTR_T 4 #endif #define __PTHREAD_COMPAT_PADDING_MID @@ -56,11 +64,26 @@ struct __pthread_rwlock_arch_t unsigned int __writers_futex; unsigned int __pad3; unsigned int __pad4; +#if __riscv_xlen == 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_ELISION_EXTRA 0 diff --git a/sysdeps/riscv/sfp-machine.h b/sysdeps/riscv/sfp-machine.h index fa0b8fa41a..98e1f84370 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 b8f90a44ce..7ea34afd6d 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/rv32/jmp_buf-macros.h b/sysdeps/unix/sysv/linux/riscv/rv32/jmp_buf-macros.h new file mode 100644 index 0000000000..e0042b9f01 --- /dev/null +++ b/sysdeps/unix/sysv/linux/riscv/rv32/jmp_buf-macros.h @@ -0,0 +1,53 @@ +/* jump buffer constants for RISC-V + Copyright (C) 2017-2018 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 Wed Jul 17 00:09:26 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alistair Francis X-Patchwork-Id: 1133011 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=sourceware.org (client-ip=209.132.180.131; helo=sourceware.org; envelope-from=libc-alpha-return-103701-incoming=patchwork.ozlabs.org@sourceware.org; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=wdc.com Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; secure) header.d=sourceware.org header.i=@sourceware.org header.b="QQ5s1RGs"; dkim=pass (2048-bit key; unprotected) header.d=wdc.com header.i=@wdc.com header.b="XNnl5Ltn"; dkim-atps=neutral Received: from sourceware.org (server1.sourceware.org [209.132.180.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 45pHnV1PmLz9s8m for ; Wed, 17 Jul 2019 10:14:22 +1000 (AEST) DomainKey-Signature: a=rsa-sha1; c=nofws; d=sourceware.org; h=list-id :list-unsubscribe:list-subscribe:list-archive:list-post :list-help:sender:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; q=dns; s= default; b=KZc2bIcQJBrzrCoPtdNOeznB7+FM05s4+Gv3SCDOh+5iexC5po85s 5u3iW/malG0iRGVpvW4JqEqXC2kYZztYjF8HWMplpLoQ0MpVGAj/vN89+8nqZNXZ oXTrD/jnsLG3+yKDTxB14ny92j4v23Zg/jOXTHNbCavKSny2rSjwhU= DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=sourceware.org; h=list-id :list-unsubscribe:list-subscribe:list-archive:list-post :list-help:sender:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; s=default; bh=txqaLKcGROAzq/ILMQROA8kOjTo=; b=QQ5s1RGsDxalPVeeJN4hXF9L/Pic UXA7fjLewI5gf7INuwuh7vT3BK6s5o4C2LpWJrf/r1l4qImWWMg78mSvMU+NTsJI WEdeijKbUB9gwGRzylJ33xPeHBw1i7/RKNoS47SiZaLL1ZfaKNvZChK/loYhjpJO skj1AXFpzKXwtvI= Received: (qmail 20466 invoked by alias); 17 Jul 2019 00:12:24 -0000 Mailing-List: contact libc-alpha-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: libc-alpha-owner@sourceware.org Delivered-To: mailing list libc-alpha@sourceware.org Received: (qmail 20369 invoked by uid 89); 17 Jul 2019 00:12:23 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-26.7 required=5.0 tests=AWL, BAYES_00, GIT_PATCH_0, GIT_PATCH_1, GIT_PATCH_2, GIT_PATCH_3, KAM_SHORT autolearn=ham version=3.3.1 spammy= X-HELO: esa6.hgst.iphmx.com DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=wdc.com; i=@wdc.com; q=dns/txt; s=dkim.wdc.com; t=1563322340; x=1594858340; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=UW4838tq7ILqH4/YEJS1gZhfCT3QI97q/egFGpctKI8=; b=XNnl5LtnRxv8s9YKYvJjxc52MRkAT+gikFyjtxvfTjWdQXzndp9fsaPt UJP+xG15g4ATqxfesZuo/2sI7WNvomzVTiF7CUiAWJpznVcC/0Rt5H5PL XPKluuf1Qkcusz1UC4yw5sftURFTQparzISQYcqyQ9VjoXUAtYxVYVoE7 1uTkl44H7nCdglV+ASYTO11u9XHYpaBkm8FI24bon4P3182jeEmtBziOx JP3GahIFiyWYp8rDS06jNs20TOKoxKtPuBZioU1i7e2eH6TimUSDznW+a 9gG4vqLWE9H80TR6zuubl2FH2xWmBILEw1/IJtNiNe/H+qpHhSc2Q3K2I A==; IronPort-SDR: EZwDuvK2B2I1wj4lWFXU2dGn+/Af13lZOViWJvCrpWCW0jtF0HHL8R7rCMaPKRKDH3k6AqXiBK Wj+7DJGt3Luf0JIGluG86ncw0IAdkVu4ouGS+cJmJdiex8lOUmu+LqzKBxpFW4F5wcM2uPswWg V5rrSXF0GAzYFjFJT5JD4oFde4r0hUGIsxABSrQzOtcRLItiB8x5PxU+/dTZ6gPdEUH/d9gnyV UGjExZlWgiitXd+FTBeQr4rqaN2JOHGdX4K9+1zhCaxIpTbmNL9lwLvHQZwNltXyEpSqMVL34m B/k= IronPort-SDR: tDXr8U3FkkSPz7qJgdIFRw8VRQ5xTH6ZngVYiU4sbmKkmYdCBjqMCETIC+OsYJ1YaWT18iJXF3 ghmNghjHutXy2/g0o2Wh3EahxO1xHdnJtNEAC/oA27qEPFLjN7eLLquhXYEP1GMaQU5+YvEdB9 OKWOOFvdB6pu5sknlHUrnEloQ5Vf46nga2KHdGUAbix5JSwXASq8d6tyjCs3HM0pzoaN/JkmFM OqQu0eDupkaFcEZJpr5inSgNAzqXRsdH07xj2LfDnjaEKz+gQZDcj341BoUx3BDonrDgGtS9vn IcK8BUKzLKlM1BDL9zNjF2Zz IronPort-SDR: wPd8w0s4SwKt1+rHJ7kjN7ioL26dZqIZk2OoTna4azNpuB8IsHKiiqE+V7KWngQt12a7YafKiE VPhppoaalrDWNhoLqyQtWruGYQ3woLNmAX5f5zr3qGr3SiPM4egsna6HnGUxWw1c7tvcHOOQ5R kApKKCqTUiDRhouwetAnyUuOYYoVIymlQg/2uUR9MK/cqyh6kOKnaIQtmTLX57Qan2DEnpoGHa Vvrt92ArWxZbjdcNLTL/kLXoGnN/9WhvBsvxpJWGx8YiGzshgdwxVjtT3rMBM3ZpePm9hGV4jS mgM= From: Alistair Francis To: libc-alpha@sourceware.org Cc: arnd@arndb.de, adhemerval.zanella@linaro.org, fweimer@redhat.com, palmer@sifive.com, macro@wdc.com, zongbox@gmail.com, alistair.francis@wdc.com, alistair23@gmail.com Subject: [RFC v3 17/23] RISC-V: Hard float support for the 32 bit Date: Tue, 16 Jul 2019 17:09:26 -0700 Message-Id: <06af644b9e498dd7496b06cda922650ffa1c90b0.1563321716.git.alistair.francis@wdc.com> In-Reply-To: References: MIME-Version: 1.0 From: Zong Li This patch contains hardware floating-point support for the RV32IF and RV32IFD 2018-11-29 Zong Li * sysdeps/riscv/rv32/rvd/s_lrint.c: New file. * sysdeps/riscv/rv32/rvd/s_lround.c: Likewise. * sysdeps/riscv/rv32/rvf/s_lrintf.c: Likewise. * sysdeps/riscv/rv32/rvf/s_lroundf.c: Likewise. --- ChangeLog | 4 ++++ 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 ++++++++++++++++++++++++++++++ 5 files changed, 128 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/ChangeLog b/ChangeLog index e0446d70a0..9c61de6470 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1051,6 +1051,10 @@ * sysdeps/riscv/sfp-machine.h: Likewise. * sysdeps/riscv/sys/asm.h: Likewise. * sysdeps/unix/sysv/linux/riscv/rv32/jmp_buf-macros.h: New file. + * sysdeps/riscv/rv32/rvd/s_lrint.c: New file. + * sysdeps/riscv/rv32/rvd/s_lround.c: Likewise. + * sysdeps/riscv/rv32/rvf/s_lrintf.c: Likewise. + * sysdeps/riscv/rv32/rvf/s_lroundf.c: Likewise. 2019-06-20 Dmitry V. Levin Florian Weimer diff --git a/sysdeps/riscv/rv32/rvd/s_lrint.c b/sysdeps/riscv/rv32/rvd/s_lrint.c new file mode 100644 index 0000000000..4d5bdbc200 --- /dev/null +++ b/sysdeps/riscv/rv32/rvd/s_lrint.c @@ -0,0 +1,31 @@ +/* lrint(). RISC-V version. + Copyright (C) 2017-2018 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..f5d9cf2e07 --- /dev/null +++ b/sysdeps/riscv/rv32/rvd/s_lround.c @@ -0,0 +1,31 @@ +/* lround(). RISC-V version. + Copyright (C) 2017-2018 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..08d44fa738 --- /dev/null +++ b/sysdeps/riscv/rv32/rvf/s_lrintf.c @@ -0,0 +1,31 @@ +/* lrintf(). RISC-V version. + Copyright (C) 2017-2018 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..f31b432936 --- /dev/null +++ b/sysdeps/riscv/rv32/rvf/s_lroundf.c @@ -0,0 +1,31 @@ +/* lroundf(). RISC-V version. + Copyright (C) 2017-2018 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 Wed Jul 17 00:09:28 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alistair Francis X-Patchwork-Id: 1133012 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=sourceware.org (client-ip=209.132.180.131; helo=sourceware.org; envelope-from=libc-alpha-return-103702-incoming=patchwork.ozlabs.org@sourceware.org; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=wdc.com Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; secure) header.d=sourceware.org header.i=@sourceware.org header.b="bmYOzn39"; dkim=pass (2048-bit key; unprotected) header.d=wdc.com header.i=@wdc.com header.b="LglLbtSq"; dkim-atps=neutral Received: from sourceware.org (server1.sourceware.org [209.132.180.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 45pHng2xrrz9s8m for ; Wed, 17 Jul 2019 10:14:31 +1000 (AEST) DomainKey-Signature: a=rsa-sha1; c=nofws; d=sourceware.org; h=list-id :list-unsubscribe:list-subscribe:list-archive:list-post :list-help:sender:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; q=dns; s= default; b=TlMmiIDmcyG0+f48iOnUPHSz5fMg77//H7dx7Ysw1jW1kMfYmPf7W BsYc95d9zNQGX2fyku2DAPIZv6rEyra3SLfoYlvVVnxghGCa/pOMpdk8vaK6ZZEB DaPmajpezGT1UzRZd96sTUffNqouVAZCJTBRuoOWY67y10opYJuN9c= DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=sourceware.org; h=list-id :list-unsubscribe:list-subscribe:list-archive:list-post :list-help:sender:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; s=default; bh=Qg5H4T+aCRSMoKwQc5seXmXtNh8=; b=bmYOzn39ydvtsCFLGoyorKdekwS/ 4EeKmhtTSVtm63PYB8nxQqXN9JyAb6g5F0u3QRptsxoZseAq9Xy+C4OORrBmcyeG /aA/jtUaqWVVNmzzzbiKZC8FPJz6verLSvM68DgipeHvv9kDWQwlCWeduRtyrU9j DcW0mhePOQTvTt0= Received: (qmail 20604 invoked by alias); 17 Jul 2019 00:12:25 -0000 Mailing-List: contact libc-alpha-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: libc-alpha-owner@sourceware.org Delivered-To: mailing list libc-alpha@sourceware.org Received: (qmail 20502 invoked by uid 89); 17 Jul 2019 00:12:24 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-26.7 required=5.0 tests=AWL, BAYES_00, GIT_PATCH_0, GIT_PATCH_1, GIT_PATCH_2, GIT_PATCH_3 autolearn=ham version=3.3.1 spammy=HX-Languages-Length:5451 X-HELO: esa6.hgst.iphmx.com DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=wdc.com; i=@wdc.com; q=dns/txt; s=dkim.wdc.com; t=1563322342; x=1594858342; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=ltR++2ftvnNTbBx5Xdp8H4UUq/fN5Br/EjcZe8Uohbo=; b=LglLbtSqWLdYQ4Sh3DtReU9JcxEUIdru2jGHsO4oe7+7amDSzHVtt78A guMQYu3IAyYEtPSL6w2ZnYrS/x1EycL4bh6Mk5/XeqldoTxnIJcXU9Vrg PBt4jmqp2MB7QfWuelsUZdOCr4tqsIgpEYnWIFeTu10vU1Eq1Zhdff4jO 8DPrJlSYcqxmPa5pd4t1tBL1jUVaCuk4xePRn/lM+R5H/ET3a4Ddaca5S UB5dGu89IXqB5Ko2eMPLgfX+eL8rvqqR8X8ZEOY8R4DMCsZCyrNG/lIRG zMKhBg2mXOIKop0vfFAashlxxcThsnym+42JmtXCIxUIuPtb8l8foQ3nZ w==; IronPort-SDR: /+pQTvAHjmLBISFADNDJeUVbAxD6GTaQx/EvfPFPoutYGPWMec+NYwRqgwyDqLFElL9Zr2NMTC E4xj5YS+ho/8ADTtlg98k420Anm8OUHS6GPKJwc6OJHPvHkCp2DAZmHV258US0uHzKeoyVSOlH A3T8W9VQsVlVrDxzUf/tkXV6Hd8g1W0QMx1jfi8tNPYQSjdtQiLVLnC+RjwxiCfJMcBYTMEohu /BbtXZcPbmAN2x0KWZDgj0iJmcQ+4s+wPnFqtolYTVh4GUUJZNDH1y87a64nbpoCPH9kcIeN5Z CO4= IronPort-SDR: cEvGYP/LtAA/XLLM3HIATU+nIDXH1kGh3o3wy7L93XPmz1PBKxNRzIkBvCP3za5b3EsUQSPOAu NFfp3N+IOyDJTJB4YPB1MCXyV5BEnGZI/G3t12qzoo1AIp+KkvlubngrR9S9SxZk8APieD+qFm Io1xs6ar6Dh9jaHPhBUAre5ymLXiLzElSas898M4/8H4CZlURjGYVuvFDk1yWe5nhI7fICBKZt M38pg9r1XBluIUDeB8iJYd1bZ4yPeB3AfY4x9Fqgha4GvRxMawJvmOCgU0CWDKCuGXK3pm1ICn /r7pGXIZWM9pDnQEs4Wdzajn IronPort-SDR: bkeu/25SJtxiRcKAfBNw8TnphGTofdEAfOicOltTepDUr0MpGl8Vs2okruF9G1U7RjQ4BwxpP4 Er3Vl9J4ex89oTe7ypEPas9THDRX5/qxz9rvEeNzgKM9B2CQoVdwR1NFklpIxcVN8oL5YcPrgy gPwd+JPrr/68Hy0rH9DHkdgbStMUxkHahmioYKgHfl2X5Cxg4Mw5HhiIQBNdPlNN2is1R7D9a5 ZZYVO1cJzAh1adJB+GXXHaB7rdYApfR/kT8iccjv3WsBJgcxH1rU/CdCIMjvF2y8tkn26oXsSo CaE= From: Alistair Francis To: libc-alpha@sourceware.org Cc: arnd@arndb.de, adhemerval.zanella@linaro.org, fweimer@redhat.com, palmer@sifive.com, macro@wdc.com, zongbox@gmail.com, alistair.francis@wdc.com, alistair23@gmail.com Subject: [RFC v3 18/23] RISC-V: Regenerate ULPs of RISC-V Date: Tue, 16 Jul 2019 17:09:28 -0700 Message-Id: In-Reply-To: References: MIME-Version: 1.0 From: Zong Li Use the regen-ulp to generate the ulp files of rvd and nofpu. The RV32 and RV64 use the same ulps. 2018-11-29 Zong Li * sysdeps/riscv/nofpu/libm-test-ulps: Regenerate. * sysdeps/riscv/rvd/libm-test-ulps: New file. * sysdeps/riscv/rvd/libm-test-ulps-name: New file. * sysdeps/riscv/rv64/rvd/libm-test-ulps: Remove file. * sysdeps/riscv/rv64/rvd/libm-test-ulps-name: Remove file. --- ChangeLog | 18 ++++++ sysdeps/riscv/nofpu/libm-test-ulps | 16 +++--- sysdeps/riscv/{rv64 => }/rvd/libm-test-ulps | 56 +++++++++---------- .../riscv/{rv64 => }/rvd/libm-test-ulps-name | 0 4 files changed, 54 insertions(+), 36 deletions(-) rename sysdeps/riscv/{rv64 => }/rvd/libm-test-ulps (98%) rename sysdeps/riscv/{rv64 => }/rvd/libm-test-ulps-name (100%) diff --git a/ChangeLog b/ChangeLog index 9c61de6470..8f2224ee93 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1055,6 +1055,24 @@ * sysdeps/riscv/rv32/rvd/s_lround.c: Likewise. * sysdeps/riscv/rv32/rvf/s_lrintf.c: Likewise. * sysdeps/riscv/rv32/rvf/s_lroundf.c: Likewise. + * sysdeps/unix/sysv/linux/riscv/ldconfig.h (LD_SO_ABI): Support rv32. + * sysdeps/unix/sysv/linux/riscv/dl-cache.h (add_system_dir): Add + libraries path for rv32. + * sysdeps/riscv/bits/wordsize.h: Supprt rv32. + * sysdeps/riscv/nptl/bits/pthreadtypes-arch.h: Likewise. + * sysdeps/riscv/sfp-machine.h: Likewise. + * sysdeps/riscv/sys/asm.h: Likewise. + * sysdeps/unix/sysv/linux/riscv/rv32/jmp_buf-macros.h: New file. + * sysdeps/unix/sysv/linux/riscv/rv32/lockf64.c: Likewise. + * sysdeps/riscv/rv32/rvd/s_lrint.c: New file. + * sysdeps/riscv/rv32/rvd/s_lround.c: Likewise. + * sysdeps/riscv/rv32/rvf/s_lrintf.c: Likewise. + * sysdeps/riscv/rv32/rvf/s_lroundf.c: Likewise. + * sysdeps/riscv/nofpu/libm-test-ulps: Regenerate. + * sysdeps/riscv/rvd/libm-test-ulps: New file. + * sysdeps/riscv/rvd/libm-test-ulps-name: New file. + * sysdeps/riscv/rv64/rvd/libm-test-ulps: Remove file. + * sysdeps/riscv/rv64/rvd/libm-test-ulps-name: Remove file. 2019-06-20 Dmitry V. Levin Florian Weimer diff --git a/sysdeps/riscv/nofpu/libm-test-ulps b/sysdeps/riscv/nofpu/libm-test-ulps index 700772a5bf..102144a428 100644 --- a/sysdeps/riscv/nofpu/libm-test-ulps +++ b/sysdeps/riscv/nofpu/libm-test-ulps @@ -532,16 +532,16 @@ double: 1 float: 1 idouble: 1 ifloat: 1 -ildouble: 1 -ldouble: 1 +ildouble: 8 +ldouble: 8 Function: Imaginary part of "catan": double: 1 float: 1 idouble: 1 ifloat: 1 -ildouble: 1 -ldouble: 1 +ildouble: 4 +ldouble: 4 Function: Real part of "catan_downward": double: 1 @@ -596,16 +596,16 @@ double: 1 float: 1 idouble: 1 ifloat: 1 -ildouble: 1 -ldouble: 1 +ildouble: 4 +ldouble: 4 Function: Imaginary part of "catanh": double: 1 float: 1 idouble: 1 ifloat: 1 -ildouble: 1 -ldouble: 1 +ildouble: 8 +ldouble: 8 Function: Real part of "catanh_downward": double: 2 diff --git a/sysdeps/riscv/rv64/rvd/libm-test-ulps b/sysdeps/riscv/rvd/libm-test-ulps similarity index 98% rename from sysdeps/riscv/rv64/rvd/libm-test-ulps rename to sysdeps/riscv/rvd/libm-test-ulps index 971373d87d..aff168f7bd 100644 --- a/sysdeps/riscv/rv64/rvd/libm-test-ulps +++ b/sysdeps/riscv/rvd/libm-test-ulps @@ -532,56 +532,56 @@ double: 1 float: 1 idouble: 1 ifloat: 1 -ildouble: 1 -ldouble: 1 +ildouble: 8 +ldouble: 8 Function: Imaginary part of "catan": double: 1 float: 1 idouble: 1 ifloat: 1 -ildouble: 1 -ldouble: 1 +ildouble: 4 +ldouble: 4 Function: Real part of "catan_downward": double: 1 float: 2 idouble: 1 ifloat: 2 -ildouble: 2 -ldouble: 2 +ildouble: 9 +ldouble: 9 Function: Imaginary part of "catan_downward": double: 2 float: 2 idouble: 2 ifloat: 2 -ildouble: 2 -ldouble: 2 +ildouble: 3 +ldouble: 3 Function: Real part of "catan_towardzero": double: 1 float: 2 idouble: 1 ifloat: 2 -ildouble: 2 -ldouble: 2 +ildouble: 9 +ldouble: 9 Function: Imaginary part of "catan_towardzero": double: 2 float: 2 idouble: 2 ifloat: 2 -ildouble: 2 -ldouble: 2 +ildouble: 3 +ldouble: 3 Function: Real part of "catan_upward": double: 1 float: 1 idouble: 1 ifloat: 1 -ildouble: 2 -ldouble: 2 +ildouble: 8 +ldouble: 8 Function: Imaginary part of "catan_upward": double: 2 @@ -596,48 +596,48 @@ double: 1 float: 1 idouble: 1 ifloat: 1 -ildouble: 1 -ldouble: 1 +ildouble: 4 +ldouble: 4 Function: Imaginary part of "catanh": double: 1 float: 1 idouble: 1 ifloat: 1 -ildouble: 1 -ldouble: 1 +ildouble: 8 +ldouble: 8 Function: Real part of "catanh_downward": double: 2 float: 2 idouble: 2 ifloat: 2 -ildouble: 2 -ldouble: 2 +ildouble: 3 +ldouble: 3 Function: Imaginary part of "catanh_downward": double: 1 float: 2 idouble: 1 ifloat: 2 -ildouble: 2 -ldouble: 2 +ildouble: 9 +ldouble: 9 Function: Real part of "catanh_towardzero": double: 2 float: 2 idouble: 2 ifloat: 2 -ildouble: 2 -ldouble: 2 +ildouble: 3 +ldouble: 3 Function: Imaginary part of "catanh_towardzero": double: 1 float: 2 idouble: 1 ifloat: 2 -ildouble: 2 -ldouble: 2 +ildouble: 9 +ldouble: 9 Function: Real part of "catanh_upward": double: 4 @@ -652,8 +652,8 @@ double: 1 float: 1 idouble: 1 ifloat: 1 -ildouble: 2 -ldouble: 2 +ildouble: 8 +ldouble: 8 Function: "cbrt": double: 3 diff --git a/sysdeps/riscv/rv64/rvd/libm-test-ulps-name b/sysdeps/riscv/rvd/libm-test-ulps-name similarity index 100% rename from sysdeps/riscv/rv64/rvd/libm-test-ulps-name rename to sysdeps/riscv/rvd/libm-test-ulps-name From patchwork Wed Jul 17 00:09:31 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alistair Francis X-Patchwork-Id: 1133018 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=sourceware.org (client-ip=209.132.180.131; helo=sourceware.org; envelope-from=libc-alpha-return-103708-incoming=patchwork.ozlabs.org@sourceware.org; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=wdc.com Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; secure) header.d=sourceware.org header.i=@sourceware.org header.b="YfJySezB"; dkim=pass (2048-bit key; unprotected) header.d=wdc.com header.i=@wdc.com header.b="iYkHDltm"; dkim-atps=neutral Received: from sourceware.org (server1.sourceware.org [209.132.180.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 45pHq52B2fz9sMr for ; Wed, 17 Jul 2019 10:15:45 +1000 (AEST) DomainKey-Signature: a=rsa-sha1; c=nofws; d=sourceware.org; h=list-id :list-unsubscribe:list-subscribe:list-archive:list-post :list-help:sender:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; q=dns; s= default; b=gjAcySgaB0HsQZulVLYfwAxbYhqN09NtC1EOA07Bv5sHOqVfCaNjN 1F/A49KnCPyCU+sJ6tAfDKRRn3x0ArqMEWduis0tMugZi00W/Fw3vzOSnhzxQnp+ DTfMZzzEdBLZxXd4g0ZpX3upHnOwTo9A9dJmREj30Dsv5qaha1FNmE= DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=sourceware.org; h=list-id :list-unsubscribe:list-subscribe:list-archive:list-post :list-help:sender:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; s=default; bh=hrN0sxFNzxtk3vkYSAR93eZOL4Q=; b=YfJySezBat1QMDcZ7l9ExhiYlGbL z3nS1mbQ8jiC4BeAVMn/IqS5exHfEFxuCuL7euzjSXiCXw0Oo6MLmI4oVCQWh427 LNssd+eyaTA1eWVyF6/fEYccjt+z/ZnlBWqbEfCaiZ96LzqoyYzPa4W4tzbwJjc4 lvqH+u23AvWj9W0= Received: (qmail 23006 invoked by alias); 17 Jul 2019 00:12:44 -0000 Mailing-List: contact libc-alpha-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: libc-alpha-owner@sourceware.org Delivered-To: mailing list libc-alpha@sourceware.org Received: (qmail 22904 invoked by uid 89); 17 Jul 2019 00:12:43 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-26.7 required=5.0 tests=AWL, BAYES_00, GIT_PATCH_0, GIT_PATCH_1, GIT_PATCH_2, GIT_PATCH_3 autolearn=ham version=3.3.1 spammy=swab, profil X-HELO: esa1.hgst.iphmx.com DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=wdc.com; i=@wdc.com; q=dns/txt; s=dkim.wdc.com; t=1563322344; x=1594858344; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=h2cP7vTOhkxhIG9XC3wMrTugdr7qFWQQW5rfC2DfVxA=; b=iYkHDltmQfRWQIPNGj28Alf21HGWGLC8BYeN+d3oD6obMZdxE57QS0RL /C3EUvQVTZghs0X/Nx+2kLZgSmswFoMCRNKEJkw0SH28auhvn42PRn0AX ytBRSYzS15hgkXGgMxj9kODwxxfx5bIvjm+UxIAmX4DS298STTkJVs/FP rOyiUKBDpOFAEKxeONORgVLGT6GGNTAeB+RGWf7MinXlX9VG1EdUZXwIv K7r9te2xxeWxJb6S9GWBA9p8Q7jMULA/RhRVUAwRbDeGNypqOvRInAj6i ov6wZnWaN+CogtAIChX9Pjunuoyzq1CeIzD80C9TX2mOSu+r8C0Z1MkP8 Q==; IronPort-SDR: BGZqBeZhKIbZacHS9h9yTEs8sUmtZgkhzoRynu5FFimgwlEurL8WievplZ6j66SuZ92rovEgUt CMbqKXwV8mLENYNmg1oifJ61x8phAK8yQKJnq41c2gmsQekqTHHhLcUmBEDbl51EhdhaORnASr +F8qvjGTBkgDtLUwNJ5VUSbvHF769no+kJeAjDWgvRy3VkpOlx8M0B+8n24DY6XO4HKjnSPg7i nfUwMnpgqbFgGawePJFU+MQmGDXAtR+4ZR366y5syA/pGkVXXF7aQg0yGK5XlTSaD1iw+h4+PO HnE= IronPort-SDR: 62tKasL6oCnD0WPiMSyrRsBQ3FmV7tO4/MJSzDuoVDHkHrCrqQXwymOHEuuzuujsCoQ4YIFIOC lsexqcfc3NOtGyMKwjgFPj2NUMFz4I3Db2idS9jgQRONCayz0NDzXRZpQlZjwfgGjoaDe5AmaO aTcoe9JGIGuaAN6R8rdOpqLzW/oKiojvpd39WjhYJ7NTDQrXpc8jYJrOrWyxJIJMw1pR/Jqfh2 m9Zy4dHZOMMFPMkxEtkuLaRuBHdWrg5kpO/BYt2aPCT050+WabG0zAQahqHOvfTnMl34aD8t7o HrwlHcZyqv5aj+LFjArVDp3p IronPort-SDR: gLrbWjg/PZkjyazI+wcCfxBw+doTWQ5+leXB2V0MgE1CHHe8aOURVf47wxNS7ebBg7oW2QUx5a 47buFlQlobBmGt6a7XsT5JWVe5HCO/B4nlEGyL7/GTWP5CsvXcUUum9ICNesMN8l/7CTmoxZL1 mOREuDRSlfrtRZI7nzquPFP3an67OLwekd0z4STuXuNK//nkllLMQ06A0lXuBxIi9hXSbIDejF O+16ty5ht5WjA+qYIg6b6eA9Fc9OHyVST/+x1khGueATsA3LBBz3VrXKhNN8lSefB8UC6/Stwg aiI= From: Alistair Francis To: libc-alpha@sourceware.org Cc: arnd@arndb.de, adhemerval.zanella@linaro.org, fweimer@redhat.com, palmer@sifive.com, macro@wdc.com, zongbox@gmail.com, alistair.francis@wdc.com, alistair23@gmail.com Subject: [RFC v3 19/23] RISC-V: Add ABI lists Date: Tue, 16 Jul 2019 17:09:31 -0700 Message-Id: <19dda37a4965d61e0b6de631900044afb401ffab.1563321716.git.alistair.francis@wdc.com> In-Reply-To: References: MIME-Version: 1.0 From: Zong Li Use the check-api and update-abi to generate the abilist for rv32. 2018-11-29 Zong Li * sysdeps/unix/sysv/linux/riscv/rv32/c++-types.data: New file. * sysdeps/unix/sysv/linux/riscv/rv32/ld.abilist: Likewise. * sysdeps/unix/sysv/linux/riscv/rv32/libanl.abilist: Likewise. * sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/riscv/rv32/libcrypt.abilist: Likewise. * sysdeps/unix/sysv/linux/riscv/rv32/libdl.abilist: Likewise. * sysdeps/unix/sysv/linux/riscv/rv32/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist: Likewise. * sysdeps/unix/sysv/linux/riscv/rv32/libresolv.abilist: Likewise. * sysdeps/unix/sysv/linux/riscv/rv32/librt.abilist: Likewise. * sysdeps/unix/sysv/linux/riscv/rv32/libthread_db.abilist: Likewise. * sysdeps/unix/sysv/linux/riscv/rv32/libutil.abilist: Likewise. * sysdeps/unix/sysv/linux/riscv/rv32/libBrokenLocale.abilist: Likewise. --- ChangeLog | 32 + .../unix/sysv/linux/riscv/rv32/c++-types.data | 67 + sysdeps/unix/sysv/linux/riscv/rv32/ld.abilist | 9 + .../linux/riscv/rv32/libBrokenLocale.abilist | 1 + .../unix/sysv/linux/riscv/rv32/libanl.abilist | 4 + .../unix/sysv/linux/riscv/rv32/libc.abilist | 2101 +++++++++++++++++ .../sysv/linux/riscv/rv32/libcrypt.abilist | 2 + .../unix/sysv/linux/riscv/rv32/libdl.abilist | 9 + .../unix/sysv/linux/riscv/rv32/libm.abilist | 1021 ++++++++ .../sysv/linux/riscv/rv32/libpthread.abilist | 235 ++ .../sysv/linux/riscv/rv32/libresolv.abilist | 79 + .../unix/sysv/linux/riscv/rv32/librt.abilist | 35 + .../linux/riscv/rv32/libthread_db.abilist | 40 + .../sysv/linux/riscv/rv32/libutil.abilist | 6 + 14 files changed, 3641 insertions(+) create mode 100644 sysdeps/unix/sysv/linux/riscv/rv32/c++-types.data create mode 100644 sysdeps/unix/sysv/linux/riscv/rv32/ld.abilist create mode 100644 sysdeps/unix/sysv/linux/riscv/rv32/libBrokenLocale.abilist create mode 100644 sysdeps/unix/sysv/linux/riscv/rv32/libanl.abilist create mode 100644 sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist create mode 100644 sysdeps/unix/sysv/linux/riscv/rv32/libcrypt.abilist create mode 100644 sysdeps/unix/sysv/linux/riscv/rv32/libdl.abilist create mode 100644 sysdeps/unix/sysv/linux/riscv/rv32/libm.abilist create mode 100644 sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist create mode 100644 sysdeps/unix/sysv/linux/riscv/rv32/libresolv.abilist create mode 100644 sysdeps/unix/sysv/linux/riscv/rv32/librt.abilist create mode 100644 sysdeps/unix/sysv/linux/riscv/rv32/libthread_db.abilist create mode 100644 sysdeps/unix/sysv/linux/riscv/rv32/libutil.abilist diff --git a/ChangeLog b/ChangeLog index 8f2224ee93..c31e2dff87 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1073,6 +1073,38 @@ * sysdeps/riscv/rvd/libm-test-ulps-name: New file. * sysdeps/riscv/rv64/rvd/libm-test-ulps: Remove file. * sysdeps/riscv/rv64/rvd/libm-test-ulps-name: Remove file. + * sysdeps/unix/sysv/linux/riscv/ldconfig.h (LD_SO_ABI): Support rv32. + * sysdeps/unix/sysv/linux/riscv/dl-cache.h (add_system_dir): Add + libraries path for rv32. + * sysdeps/riscv/bits/wordsize.h: Supprt rv32. + * sysdeps/riscv/nptl/bits/pthreadtypes-arch.h: Likewise. + * sysdeps/riscv/sfp-machine.h: Likewise. + * sysdeps/riscv/sys/asm.h: Likewise. + * sysdeps/unix/sysv/linux/riscv/rv32/jmp_buf-macros.h: New file. + * sysdeps/unix/sysv/linux/riscv/rv32/lockf64.c: Likewise. + * sysdeps/riscv/rv32/rvd/s_lrint.c: New file. + * sysdeps/riscv/rv32/rvd/s_lround.c: Likewise. + * sysdeps/riscv/rv32/rvf/s_lrintf.c: Likewise. + * sysdeps/riscv/rv32/rvf/s_lroundf.c: Likewise. + * sysdeps/riscv/nofpu/libm-test-ulps: Regenerate. + * sysdeps/riscv/rvd/libm-test-ulps: New file. + * sysdeps/riscv/rvd/libm-test-ulps-name: New file. + * sysdeps/riscv/rv64/rvd/libm-test-ulps: Remove file. + * sysdeps/riscv/rv64/rvd/libm-test-ulps-name: Remove file. + * sysdeps/unix/sysv/linux/riscv/rv32/c++-types.data: New file. + * sysdeps/unix/sysv/linux/riscv/rv32/ld.abilist: Likewise. + * sysdeps/unix/sysv/linux/riscv/rv32/libanl.abilist: Likewise. + * sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist: Likewise. + * sysdeps/unix/sysv/linux/riscv/rv32/libcrypt.abilist: Likewise. + * sysdeps/unix/sysv/linux/riscv/rv32/libdl.abilist: Likewise. + * sysdeps/unix/sysv/linux/riscv/rv32/libm.abilist: Likewise. + * sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist: Likewise. + * sysdeps/unix/sysv/linux/riscv/rv32/libresolv.abilist: Likewise. + * sysdeps/unix/sysv/linux/riscv/rv32/librt.abilist: Likewise. + * sysdeps/unix/sysv/linux/riscv/rv32/libthread_db.abilist: Likewise. + * sysdeps/unix/sysv/linux/riscv/rv32/libutil.abilist: Likewise. + * sysdeps/unix/sysv/linux/riscv/rv32/libBrokenLocale.abilist: + Likewise. 2019-06-20 Dmitry V. Levin Florian Weimer diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/c++-types.data b/sysdeps/unix/sysv/linux/riscv/rv32/c++-types.data new file mode 100644 index 0000000000..303f4570c8 --- /dev/null +++ b/sysdeps/unix/sysv/linux/riscv/rv32/c++-types.data @@ -0,0 +1,67 @@ +blkcnt64_t:x +blkcnt_t:l +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:m +fsfilcnt64_t:y +fsfilcnt_t:m +fsid_t:8__fsid_t +gid_t:j +id_t:j +ino64_t:y +ino_t:m +int16_t:s +int32_t:i +int64_t:x +int8_t:a +intptr_t:i +key_t:i +loff_t:x +mode_t:j +nlink_t:j +off64_t:x +off_t:l +pid_t:i +pthread_attr_t:14pthread_attr_t +pthread_barrier_t:17pthread_barrier_t +pthread_barrierattr_t:21pthread_barrierattr_t +pthread_cond_t:14pthread_cond_t +pthread_condattr_t:18pthread_condattr_t +pthread_key_t:j +pthread_mutex_t:15pthread_mutex_t +pthread_mutexattr_t:19pthread_mutexattr_t +pthread_once_t:i +pthread_rwlock_t:16pthread_rwlock_t +pthread_rwlockattr_t:20pthread_rwlockattr_t +pthread_spinlock_t:i +pthread_t:m +quad_t:x +register_t:i +rlim64_t:y +rlim_t:m +sigset_t:10__sigset_t +size_t:j +socklen_t:j +ssize_t:i +suseconds_t:l +time_t:l +u_char:h +uid_t:j +uint:j +u_int:j +u_int16_t:t +u_int32_t:j +u_int64_t:y +u_int8_t:h +ulong:m +u_long:m +u_quad_t:y +useconds_t:j +ushort:t +u_short:t diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/ld.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/ld.abilist new file mode 100644 index 0000000000..71576160ed --- /dev/null +++ b/sysdeps/unix/sysv/linux/riscv/rv32/ld.abilist @@ -0,0 +1,9 @@ +GLIBC_2.29 __libc_stack_end D 0x4 +GLIBC_2.29 __stack_chk_guard D 0x4 +GLIBC_2.29 __tls_get_addr F +GLIBC_2.29 _dl_mcount F +GLIBC_2.29 _r_debug D 0x14 +GLIBC_2.29 calloc F +GLIBC_2.29 free F +GLIBC_2.29 malloc F +GLIBC_2.29 realloc F diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libBrokenLocale.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libBrokenLocale.abilist new file mode 100644 index 0000000000..96b4163a25 --- /dev/null +++ b/sysdeps/unix/sysv/linux/riscv/rv32/libBrokenLocale.abilist @@ -0,0 +1 @@ +GLIBC_2.29 __ctype_get_mb_cur_max F diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libanl.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libanl.abilist new file mode 100644 index 0000000000..416a6f8ddb --- /dev/null +++ b/sysdeps/unix/sysv/linux/riscv/rv32/libanl.abilist @@ -0,0 +1,4 @@ +GLIBC_2.29 gai_cancel F +GLIBC_2.29 gai_error F +GLIBC_2.29 gai_suspend F +GLIBC_2.29 getaddrinfo_a F diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist new file mode 100644 index 0000000000..d8035d72b2 --- /dev/null +++ b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist @@ -0,0 +1,2101 @@ +GLIBC_2.29 _Exit F +GLIBC_2.29 _IO_2_1_stderr_ D 0xa0 +GLIBC_2.29 _IO_2_1_stdin_ D 0xa0 +GLIBC_2.29 _IO_2_1_stdout_ D 0xa0 +GLIBC_2.29 _IO_adjust_column F +GLIBC_2.29 _IO_adjust_wcolumn F +GLIBC_2.29 _IO_default_doallocate F +GLIBC_2.29 _IO_default_finish F +GLIBC_2.29 _IO_default_pbackfail F +GLIBC_2.29 _IO_default_uflow F +GLIBC_2.29 _IO_default_xsgetn F +GLIBC_2.29 _IO_default_xsputn F +GLIBC_2.29 _IO_do_write F +GLIBC_2.29 _IO_doallocbuf F +GLIBC_2.29 _IO_fclose F +GLIBC_2.29 _IO_fdopen F +GLIBC_2.29 _IO_feof F +GLIBC_2.29 _IO_ferror F +GLIBC_2.29 _IO_fflush F +GLIBC_2.29 _IO_fgetpos F +GLIBC_2.29 _IO_fgetpos64 F +GLIBC_2.29 _IO_fgets F +GLIBC_2.29 _IO_file_attach F +GLIBC_2.29 _IO_file_close F +GLIBC_2.29 _IO_file_close_it F +GLIBC_2.29 _IO_file_doallocate F +GLIBC_2.29 _IO_file_finish F +GLIBC_2.29 _IO_file_fopen F +GLIBC_2.29 _IO_file_init F +GLIBC_2.29 _IO_file_jumps D 0x54 +GLIBC_2.29 _IO_file_open F +GLIBC_2.29 _IO_file_overflow F +GLIBC_2.29 _IO_file_read F +GLIBC_2.29 _IO_file_seek F +GLIBC_2.29 _IO_file_seekoff F +GLIBC_2.29 _IO_file_setbuf F +GLIBC_2.29 _IO_file_stat F +GLIBC_2.29 _IO_file_sync F +GLIBC_2.29 _IO_file_underflow F +GLIBC_2.29 _IO_file_write F +GLIBC_2.29 _IO_file_xsputn F +GLIBC_2.29 _IO_flockfile F +GLIBC_2.29 _IO_flush_all F +GLIBC_2.29 _IO_flush_all_linebuffered F +GLIBC_2.29 _IO_fopen F +GLIBC_2.29 _IO_fprintf F +GLIBC_2.29 _IO_fputs F +GLIBC_2.29 _IO_fread F +GLIBC_2.29 _IO_free_backup_area F +GLIBC_2.29 _IO_free_wbackup_area F +GLIBC_2.29 _IO_fsetpos F +GLIBC_2.29 _IO_fsetpos64 F +GLIBC_2.29 _IO_ftell F +GLIBC_2.29 _IO_ftrylockfile F +GLIBC_2.29 _IO_funlockfile F +GLIBC_2.29 _IO_fwrite F +GLIBC_2.29 _IO_getc F +GLIBC_2.29 _IO_getline F +GLIBC_2.29 _IO_getline_info F +GLIBC_2.29 _IO_gets F +GLIBC_2.29 _IO_init F +GLIBC_2.29 _IO_init_marker F +GLIBC_2.29 _IO_init_wmarker F +GLIBC_2.29 _IO_iter_begin F +GLIBC_2.29 _IO_iter_end F +GLIBC_2.29 _IO_iter_file F +GLIBC_2.29 _IO_iter_next F +GLIBC_2.29 _IO_least_wmarker F +GLIBC_2.29 _IO_link_in F +GLIBC_2.29 _IO_list_all D 0x4 +GLIBC_2.29 _IO_list_lock F +GLIBC_2.29 _IO_list_resetlock F +GLIBC_2.29 _IO_list_unlock F +GLIBC_2.29 _IO_marker_delta F +GLIBC_2.29 _IO_marker_difference F +GLIBC_2.29 _IO_padn F +GLIBC_2.29 _IO_peekc_locked F +GLIBC_2.29 _IO_popen F +GLIBC_2.29 _IO_printf F +GLIBC_2.29 _IO_proc_close F +GLIBC_2.29 _IO_proc_open F +GLIBC_2.29 _IO_putc F +GLIBC_2.29 _IO_puts F +GLIBC_2.29 _IO_remove_marker F +GLIBC_2.29 _IO_seekmark F +GLIBC_2.29 _IO_seekoff F +GLIBC_2.29 _IO_seekpos F +GLIBC_2.29 _IO_seekwmark F +GLIBC_2.29 _IO_setb F +GLIBC_2.29 _IO_setbuffer F +GLIBC_2.29 _IO_setvbuf F +GLIBC_2.29 _IO_sgetn F +GLIBC_2.29 _IO_sprintf F +GLIBC_2.29 _IO_sputbackc F +GLIBC_2.29 _IO_sputbackwc F +GLIBC_2.29 _IO_sscanf F +GLIBC_2.29 _IO_str_init_readonly F +GLIBC_2.29 _IO_str_init_static F +GLIBC_2.29 _IO_str_overflow F +GLIBC_2.29 _IO_str_pbackfail F +GLIBC_2.29 _IO_str_seekoff F +GLIBC_2.29 _IO_str_underflow F +GLIBC_2.29 _IO_sungetc F +GLIBC_2.29 _IO_sungetwc F +GLIBC_2.29 _IO_switch_to_get_mode F +GLIBC_2.29 _IO_switch_to_main_wget_area F +GLIBC_2.29 _IO_switch_to_wbackup_area F +GLIBC_2.29 _IO_switch_to_wget_mode F +GLIBC_2.29 _IO_un_link F +GLIBC_2.29 _IO_ungetc F +GLIBC_2.29 _IO_unsave_markers F +GLIBC_2.29 _IO_unsave_wmarkers F +GLIBC_2.29 _IO_vfprintf F +GLIBC_2.29 _IO_vsprintf F +GLIBC_2.29 _IO_wdefault_doallocate F +GLIBC_2.29 _IO_wdefault_finish F +GLIBC_2.29 _IO_wdefault_pbackfail F +GLIBC_2.29 _IO_wdefault_uflow F +GLIBC_2.29 _IO_wdefault_xsgetn F +GLIBC_2.29 _IO_wdefault_xsputn F +GLIBC_2.29 _IO_wdo_write F +GLIBC_2.29 _IO_wdoallocbuf F +GLIBC_2.29 _IO_wfile_jumps D 0x54 +GLIBC_2.29 _IO_wfile_overflow F +GLIBC_2.29 _IO_wfile_seekoff F +GLIBC_2.29 _IO_wfile_sync F +GLIBC_2.29 _IO_wfile_underflow F +GLIBC_2.29 _IO_wfile_xsputn F +GLIBC_2.29 _IO_wmarker_delta F +GLIBC_2.29 _IO_wsetb F +GLIBC_2.29 ___brk_addr D 0x4 +GLIBC_2.29 __adjtimex F +GLIBC_2.29 __after_morecore_hook D 0x4 +GLIBC_2.29 __argz_count F +GLIBC_2.29 __argz_next F +GLIBC_2.29 __argz_stringify F +GLIBC_2.29 __asprintf F +GLIBC_2.29 __asprintf_chk F +GLIBC_2.29 __assert F +GLIBC_2.29 __assert_fail F +GLIBC_2.29 __assert_perror_fail F +GLIBC_2.29 __backtrace F +GLIBC_2.29 __backtrace_symbols F +GLIBC_2.29 __backtrace_symbols_fd F +GLIBC_2.29 __bsd_getpgrp F +GLIBC_2.29 __bzero F +GLIBC_2.29 __check_rhosts_file D 0x4 +GLIBC_2.29 __chk_fail F +GLIBC_2.29 __clone F +GLIBC_2.29 __close F +GLIBC_2.29 __cmsg_nxthdr F +GLIBC_2.29 __confstr_chk F +GLIBC_2.29 __connect F +GLIBC_2.29 __ctype_b_loc F +GLIBC_2.29 __ctype_get_mb_cur_max F +GLIBC_2.29 __ctype_tolower_loc F +GLIBC_2.29 __ctype_toupper_loc F +GLIBC_2.29 __curbrk D 0x4 +GLIBC_2.29 __cxa_at_quick_exit F +GLIBC_2.29 __cxa_atexit F +GLIBC_2.29 __cxa_finalize F +GLIBC_2.29 __cxa_thread_atexit_impl F +GLIBC_2.29 __cyg_profile_func_enter F +GLIBC_2.29 __cyg_profile_func_exit F +GLIBC_2.29 __daylight D 0x4 +GLIBC_2.29 __dcgettext F +GLIBC_2.29 __default_morecore F +GLIBC_2.29 __dgettext F +GLIBC_2.29 __dprintf_chk F +GLIBC_2.29 __dup2 F +GLIBC_2.29 __duplocale F +GLIBC_2.29 __endmntent F +GLIBC_2.29 __environ D 0x4 +GLIBC_2.29 __errno_location F +GLIBC_2.29 __explicit_bzero_chk F +GLIBC_2.29 __fbufsize F +GLIBC_2.29 __fcntl F +GLIBC_2.29 __fdelt_chk F +GLIBC_2.29 __fdelt_warn F +GLIBC_2.29 __ffs F +GLIBC_2.29 __fgets_chk F +GLIBC_2.29 __fgets_unlocked_chk F +GLIBC_2.29 __fgetws_chk F +GLIBC_2.29 __fgetws_unlocked_chk F +GLIBC_2.29 __finite F +GLIBC_2.29 __finitef F +GLIBC_2.29 __finitel F +GLIBC_2.29 __flbf F +GLIBC_2.29 __fork F +GLIBC_2.29 __fpending F +GLIBC_2.29 __fprintf_chk F +GLIBC_2.29 __fpu_control D 0x4 +GLIBC_2.29 __fpurge F +GLIBC_2.29 __fread_chk F +GLIBC_2.29 __fread_unlocked_chk F +GLIBC_2.29 __freadable F +GLIBC_2.29 __freading F +GLIBC_2.29 __free_hook D 0x4 +GLIBC_2.29 __freelocale F +GLIBC_2.29 __fsetlocking F +GLIBC_2.29 __fwprintf_chk F +GLIBC_2.29 __fwritable F +GLIBC_2.29 __fwriting F +GLIBC_2.29 __fxstat F +GLIBC_2.29 __fxstat64 F +GLIBC_2.29 __fxstatat F +GLIBC_2.29 __fxstatat64 F +GLIBC_2.29 __getauxval F +GLIBC_2.29 __getcwd_chk F +GLIBC_2.29 __getdelim F +GLIBC_2.29 __getdomainname_chk F +GLIBC_2.29 __getgroups_chk F +GLIBC_2.29 __gethostname_chk F +GLIBC_2.29 __getlogin_r_chk F +GLIBC_2.29 __getmntent_r F +GLIBC_2.29 __getpagesize F +GLIBC_2.29 __getpgid F +GLIBC_2.29 __getpid F +GLIBC_2.29 __gets_chk F +GLIBC_2.29 __gettimeofday F +GLIBC_2.29 __getwd_chk F +GLIBC_2.29 __gmtime_r F +GLIBC_2.29 __h_errno_location F +GLIBC_2.29 __isalnum_l F +GLIBC_2.29 __isalpha_l F +GLIBC_2.29 __isascii_l F +GLIBC_2.29 __isblank_l F +GLIBC_2.29 __iscntrl_l F +GLIBC_2.29 __isctype F +GLIBC_2.29 __isdigit_l F +GLIBC_2.29 __isgraph_l F +GLIBC_2.29 __isinf F +GLIBC_2.29 __isinff F +GLIBC_2.29 __isinfl F +GLIBC_2.29 __islower_l F +GLIBC_2.29 __isnan F +GLIBC_2.29 __isnanf F +GLIBC_2.29 __isnanl F +GLIBC_2.29 __isoc99_fscanf F +GLIBC_2.29 __isoc99_fwscanf F +GLIBC_2.29 __isoc99_scanf F +GLIBC_2.29 __isoc99_sscanf F +GLIBC_2.29 __isoc99_swscanf F +GLIBC_2.29 __isoc99_vfscanf F +GLIBC_2.29 __isoc99_vfwscanf F +GLIBC_2.29 __isoc99_vscanf F +GLIBC_2.29 __isoc99_vsscanf F +GLIBC_2.29 __isoc99_vswscanf F +GLIBC_2.29 __isoc99_vwscanf F +GLIBC_2.29 __isoc99_wscanf F +GLIBC_2.29 __isprint_l F +GLIBC_2.29 __ispunct_l F +GLIBC_2.29 __isspace_l F +GLIBC_2.29 __isupper_l F +GLIBC_2.29 __iswalnum_l F +GLIBC_2.29 __iswalpha_l F +GLIBC_2.29 __iswblank_l F +GLIBC_2.29 __iswcntrl_l F +GLIBC_2.29 __iswctype F +GLIBC_2.29 __iswctype_l F +GLIBC_2.29 __iswdigit_l F +GLIBC_2.29 __iswgraph_l F +GLIBC_2.29 __iswlower_l F +GLIBC_2.29 __iswprint_l F +GLIBC_2.29 __iswpunct_l F +GLIBC_2.29 __iswspace_l F +GLIBC_2.29 __iswupper_l F +GLIBC_2.29 __iswxdigit_l F +GLIBC_2.29 __isxdigit_l F +GLIBC_2.29 __ivaliduser F +GLIBC_2.29 __key_decryptsession_pk_LOCAL D 0x4 +GLIBC_2.29 __key_encryptsession_pk_LOCAL D 0x4 +GLIBC_2.29 __key_gendes_LOCAL D 0x4 +GLIBC_2.29 __libc_allocate_rtsig F +GLIBC_2.29 __libc_calloc F +GLIBC_2.29 __libc_current_sigrtmax F +GLIBC_2.29 __libc_current_sigrtmin F +GLIBC_2.29 __libc_free F +GLIBC_2.29 __libc_freeres F +GLIBC_2.29 __libc_init_first F +GLIBC_2.29 __libc_mallinfo F +GLIBC_2.29 __libc_malloc F +GLIBC_2.29 __libc_mallopt F +GLIBC_2.29 __libc_memalign F +GLIBC_2.29 __libc_pvalloc F +GLIBC_2.29 __libc_realloc F +GLIBC_2.29 __libc_sa_len F +GLIBC_2.29 __libc_start_main F +GLIBC_2.29 __libc_valloc F +GLIBC_2.29 __longjmp_chk F +GLIBC_2.29 __lseek F +GLIBC_2.29 __lxstat F +GLIBC_2.29 __lxstat64 F +GLIBC_2.29 __malloc_hook D 0x4 +GLIBC_2.29 __mbrlen F +GLIBC_2.29 __mbrtowc F +GLIBC_2.29 __mbsnrtowcs_chk F +GLIBC_2.29 __mbsrtowcs_chk F +GLIBC_2.29 __mbstowcs_chk F +GLIBC_2.29 __memalign_hook D 0x4 +GLIBC_2.29 __memcpy_chk F +GLIBC_2.29 __memmove_chk F +GLIBC_2.29 __mempcpy F +GLIBC_2.29 __mempcpy_chk F +GLIBC_2.29 __memset_chk F +GLIBC_2.29 __monstartup F +GLIBC_2.29 __morecore D 0x4 +GLIBC_2.29 __nanosleep F +GLIBC_2.29 __newlocale F +GLIBC_2.29 __nl_langinfo_l F +GLIBC_2.29 __nss_configure_lookup F +GLIBC_2.29 __nss_database_lookup F +GLIBC_2.29 __nss_hostname_digits_dots F +GLIBC_2.29 __nss_next F +GLIBC_2.29 __obstack_printf_chk F +GLIBC_2.29 __obstack_vprintf_chk F +GLIBC_2.29 __open F +GLIBC_2.29 __open64 F +GLIBC_2.29 __open64_2 F +GLIBC_2.29 __open_2 F +GLIBC_2.29 __openat64_2 F +GLIBC_2.29 __openat_2 F +GLIBC_2.29 __overflow F +GLIBC_2.29 __pipe F +GLIBC_2.29 __poll F +GLIBC_2.29 __poll_chk F +GLIBC_2.29 __posix_getopt F +GLIBC_2.29 __ppoll_chk F +GLIBC_2.29 __pread64 F +GLIBC_2.29 __pread64_chk F +GLIBC_2.29 __pread_chk F +GLIBC_2.29 __printf_chk F +GLIBC_2.29 __printf_fp F +GLIBC_2.29 __profile_frequency F +GLIBC_2.29 __progname D 0x4 +GLIBC_2.29 __progname_full D 0x4 +GLIBC_2.29 __ptsname_r_chk F +GLIBC_2.29 __pwrite64 F +GLIBC_2.29 __rawmemchr F +GLIBC_2.29 __rcmd_errstr D 0x4 +GLIBC_2.29 __read F +GLIBC_2.29 __read_chk F +GLIBC_2.29 __readlink_chk F +GLIBC_2.29 __readlinkat_chk F +GLIBC_2.29 __realloc_hook D 0x4 +GLIBC_2.29 __realpath_chk F +GLIBC_2.29 __recv_chk F +GLIBC_2.29 __recvfrom_chk F +GLIBC_2.29 __register_atfork F +GLIBC_2.29 __res_init F +GLIBC_2.29 __res_nclose F +GLIBC_2.29 __res_ninit F +GLIBC_2.29 __res_randomid F +GLIBC_2.29 __res_state F +GLIBC_2.29 __riscv_flush_icache F +GLIBC_2.29 __rpc_thread_createerr F +GLIBC_2.29 __rpc_thread_svc_fdset F +GLIBC_2.29 __rpc_thread_svc_max_pollfd F +GLIBC_2.29 __rpc_thread_svc_pollfd F +GLIBC_2.29 __sbrk F +GLIBC_2.29 __sched_cpualloc F +GLIBC_2.29 __sched_cpucount F +GLIBC_2.29 __sched_cpufree F +GLIBC_2.29 __sched_get_priority_max F +GLIBC_2.29 __sched_get_priority_min F +GLIBC_2.29 __sched_getparam F +GLIBC_2.29 __sched_getscheduler F +GLIBC_2.29 __sched_setscheduler F +GLIBC_2.29 __sched_yield F +GLIBC_2.29 __select F +GLIBC_2.29 __send F +GLIBC_2.29 __setmntent F +GLIBC_2.29 __setpgid F +GLIBC_2.29 __sigaction F +GLIBC_2.29 __signbit F +GLIBC_2.29 __signbitf F +GLIBC_2.29 __signbitl F +GLIBC_2.29 __sigpause F +GLIBC_2.29 __sigsetjmp F +GLIBC_2.29 __sigsuspend F +GLIBC_2.29 __snprintf_chk F +GLIBC_2.29 __sprintf_chk F +GLIBC_2.29 __stack_chk_fail F +GLIBC_2.29 __statfs F +GLIBC_2.29 __stpcpy F +GLIBC_2.29 __stpcpy_chk F +GLIBC_2.29 __stpncpy F +GLIBC_2.29 __stpncpy_chk F +GLIBC_2.29 __strcasecmp F +GLIBC_2.29 __strcasecmp_l F +GLIBC_2.29 __strcasestr F +GLIBC_2.29 __strcat_chk F +GLIBC_2.29 __strcoll_l F +GLIBC_2.29 __strcpy_chk F +GLIBC_2.29 __strdup F +GLIBC_2.29 __strerror_r F +GLIBC_2.29 __strfmon_l F +GLIBC_2.29 __strftime_l F +GLIBC_2.29 __strncasecmp_l F +GLIBC_2.29 __strncat_chk F +GLIBC_2.29 __strncpy_chk F +GLIBC_2.29 __strndup F +GLIBC_2.29 __strsep_g F +GLIBC_2.29 __strtod_internal F +GLIBC_2.29 __strtod_l F +GLIBC_2.29 __strtof_internal F +GLIBC_2.29 __strtof_l F +GLIBC_2.29 __strtok_r F +GLIBC_2.29 __strtol_internal F +GLIBC_2.29 __strtol_l F +GLIBC_2.29 __strtold_internal F +GLIBC_2.29 __strtold_l F +GLIBC_2.29 __strtoll_internal F +GLIBC_2.29 __strtoll_l F +GLIBC_2.29 __strtoul_internal F +GLIBC_2.29 __strtoul_l F +GLIBC_2.29 __strtoull_internal F +GLIBC_2.29 __strtoull_l F +GLIBC_2.29 __strverscmp F +GLIBC_2.29 __strxfrm_l F +GLIBC_2.29 __swprintf_chk F +GLIBC_2.29 __sysconf F +GLIBC_2.29 __syslog_chk F +GLIBC_2.29 __sysv_signal F +GLIBC_2.29 __timezone D 0x4 +GLIBC_2.29 __toascii_l F +GLIBC_2.29 __tolower_l F +GLIBC_2.29 __toupper_l F +GLIBC_2.29 __towctrans F +GLIBC_2.29 __towctrans_l F +GLIBC_2.29 __towlower_l F +GLIBC_2.29 __towupper_l F +GLIBC_2.29 __ttyname_r_chk F +GLIBC_2.29 __tzname D 0x8 +GLIBC_2.29 __uflow F +GLIBC_2.29 __underflow F +GLIBC_2.29 __uselocale F +GLIBC_2.29 __vasprintf_chk F +GLIBC_2.29 __vdprintf_chk F +GLIBC_2.29 __vfork F +GLIBC_2.29 __vfprintf_chk F +GLIBC_2.29 __vfscanf F +GLIBC_2.29 __vfwprintf_chk F +GLIBC_2.29 __vprintf_chk F +GLIBC_2.29 __vsnprintf F +GLIBC_2.29 __vsnprintf_chk F +GLIBC_2.29 __vsprintf_chk F +GLIBC_2.29 __vsscanf F +GLIBC_2.29 __vswprintf_chk F +GLIBC_2.29 __vsyslog_chk F +GLIBC_2.29 __vwprintf_chk F +GLIBC_2.29 __wait F +GLIBC_2.29 __waitpid F +GLIBC_2.29 __wcpcpy_chk F +GLIBC_2.29 __wcpncpy_chk F +GLIBC_2.29 __wcrtomb_chk F +GLIBC_2.29 __wcscasecmp_l F +GLIBC_2.29 __wcscat_chk F +GLIBC_2.29 __wcscoll_l F +GLIBC_2.29 __wcscpy_chk F +GLIBC_2.29 __wcsftime_l F +GLIBC_2.29 __wcsncasecmp_l F +GLIBC_2.29 __wcsncat_chk F +GLIBC_2.29 __wcsncpy_chk F +GLIBC_2.29 __wcsnrtombs_chk F +GLIBC_2.29 __wcsrtombs_chk F +GLIBC_2.29 __wcstod_internal F +GLIBC_2.29 __wcstod_l F +GLIBC_2.29 __wcstof_internal F +GLIBC_2.29 __wcstof_l F +GLIBC_2.29 __wcstol_internal F +GLIBC_2.29 __wcstol_l F +GLIBC_2.29 __wcstold_internal F +GLIBC_2.29 __wcstold_l F +GLIBC_2.29 __wcstoll_internal F +GLIBC_2.29 __wcstoll_l F +GLIBC_2.29 __wcstombs_chk F +GLIBC_2.29 __wcstoul_internal F +GLIBC_2.29 __wcstoul_l F +GLIBC_2.29 __wcstoull_internal F +GLIBC_2.29 __wcstoull_l F +GLIBC_2.29 __wcsxfrm_l F +GLIBC_2.29 __wctomb_chk F +GLIBC_2.29 __wctrans_l F +GLIBC_2.29 __wctype_l F +GLIBC_2.29 __wmemcpy_chk F +GLIBC_2.29 __wmemmove_chk F +GLIBC_2.29 __wmempcpy_chk F +GLIBC_2.29 __wmemset_chk F +GLIBC_2.29 __woverflow F +GLIBC_2.29 __wprintf_chk F +GLIBC_2.29 __write F +GLIBC_2.29 __wuflow F +GLIBC_2.29 __wunderflow F +GLIBC_2.29 __xmknod F +GLIBC_2.29 __xmknodat F +GLIBC_2.29 __xpg_basename F +GLIBC_2.29 __xpg_sigpause F +GLIBC_2.29 __xpg_strerror_r F +GLIBC_2.29 __xstat F +GLIBC_2.29 __xstat64 F +GLIBC_2.29 _authenticate F +GLIBC_2.29 _dl_mcount_wrapper F +GLIBC_2.29 _dl_mcount_wrapper_check F +GLIBC_2.29 _environ D 0x4 +GLIBC_2.29 _exit F +GLIBC_2.29 _flushlbf F +GLIBC_2.29 _libc_intl_domainname D 0x5 +GLIBC_2.29 _longjmp F +GLIBC_2.29 _mcleanup F +GLIBC_2.29 _mcount F +GLIBC_2.29 _nl_default_dirname D 0x12 +GLIBC_2.29 _nl_domain_bindings D 0x4 +GLIBC_2.29 _nl_msg_cat_cntr D 0x4 +GLIBC_2.29 _null_auth D 0xc +GLIBC_2.29 _obstack_allocated_p F +GLIBC_2.29 _obstack_begin F +GLIBC_2.29 _obstack_begin_1 F +GLIBC_2.29 _obstack_free F +GLIBC_2.29 _obstack_memory_used F +GLIBC_2.29 _obstack_newchunk F +GLIBC_2.29 _res D 0x200 +GLIBC_2.29 _res_hconf D 0x30 +GLIBC_2.29 _rpc_dtablesize F +GLIBC_2.29 _seterr_reply F +GLIBC_2.29 _setjmp F +GLIBC_2.29 _sys_errlist D 0x21c +GLIBC_2.29 _sys_nerr D 0x4 +GLIBC_2.29 _sys_siglist D 0x104 +GLIBC_2.29 _tolower F +GLIBC_2.29 _toupper F +GLIBC_2.29 a64l F +GLIBC_2.29 abort F +GLIBC_2.29 abs F +GLIBC_2.29 accept F +GLIBC_2.29 accept4 F +GLIBC_2.29 access F +GLIBC_2.29 acct F +GLIBC_2.29 addmntent F +GLIBC_2.29 addseverity F +GLIBC_2.29 adjtime F +GLIBC_2.29 adjtimex F +GLIBC_2.29 alarm F +GLIBC_2.29 aligned_alloc F +GLIBC_2.29 alphasort F +GLIBC_2.29 alphasort64 F +GLIBC_2.29 argp_err_exit_status D 0x4 +GLIBC_2.29 argp_error F +GLIBC_2.29 argp_failure F +GLIBC_2.29 argp_help F +GLIBC_2.29 argp_parse F +GLIBC_2.29 argp_program_bug_address D 0x4 +GLIBC_2.29 argp_program_version D 0x4 +GLIBC_2.29 argp_program_version_hook D 0x4 +GLIBC_2.29 argp_state_help F +GLIBC_2.29 argp_usage F +GLIBC_2.29 argz_add F +GLIBC_2.29 argz_add_sep F +GLIBC_2.29 argz_append F +GLIBC_2.29 argz_count F +GLIBC_2.29 argz_create F +GLIBC_2.29 argz_create_sep F +GLIBC_2.29 argz_delete F +GLIBC_2.29 argz_extract F +GLIBC_2.29 argz_insert F +GLIBC_2.29 argz_next F +GLIBC_2.29 argz_replace F +GLIBC_2.29 argz_stringify F +GLIBC_2.29 asctime F +GLIBC_2.29 asctime_r F +GLIBC_2.29 asprintf F +GLIBC_2.29 atof F +GLIBC_2.29 atoi F +GLIBC_2.29 atol F +GLIBC_2.29 atoll F +GLIBC_2.29 authdes_create F +GLIBC_2.29 authdes_getucred F +GLIBC_2.29 authdes_pk_create F +GLIBC_2.29 authnone_create F +GLIBC_2.29 authunix_create F +GLIBC_2.29 authunix_create_default F +GLIBC_2.29 backtrace F +GLIBC_2.29 backtrace_symbols F +GLIBC_2.29 backtrace_symbols_fd F +GLIBC_2.29 basename F +GLIBC_2.29 bcmp F +GLIBC_2.29 bcopy F +GLIBC_2.29 bind F +GLIBC_2.29 bind_textdomain_codeset F +GLIBC_2.29 bindresvport F +GLIBC_2.29 bindtextdomain F +GLIBC_2.29 brk F +GLIBC_2.29 bsd_signal F +GLIBC_2.29 bsearch F +GLIBC_2.29 btowc F +GLIBC_2.29 bzero F +GLIBC_2.29 c16rtomb F +GLIBC_2.29 c32rtomb F +GLIBC_2.29 calloc F +GLIBC_2.29 callrpc F +GLIBC_2.29 canonicalize_file_name F +GLIBC_2.29 capget F +GLIBC_2.29 capset F +GLIBC_2.29 catclose F +GLIBC_2.29 catgets F +GLIBC_2.29 catopen F +GLIBC_2.29 cbc_crypt F +GLIBC_2.29 cfgetispeed F +GLIBC_2.29 cfgetospeed F +GLIBC_2.29 cfmakeraw F +GLIBC_2.29 cfsetispeed F +GLIBC_2.29 cfsetospeed F +GLIBC_2.29 cfsetspeed F +GLIBC_2.29 chdir F +GLIBC_2.29 chflags F +GLIBC_2.29 chmod F +GLIBC_2.29 chown F +GLIBC_2.29 chroot F +GLIBC_2.29 clearenv F +GLIBC_2.29 clearerr F +GLIBC_2.29 clearerr_unlocked F +GLIBC_2.29 clnt_broadcast F +GLIBC_2.29 clnt_create F +GLIBC_2.29 clnt_pcreateerror F +GLIBC_2.29 clnt_perrno F +GLIBC_2.29 clnt_perror F +GLIBC_2.29 clnt_spcreateerror F +GLIBC_2.29 clnt_sperrno F +GLIBC_2.29 clnt_sperror F +GLIBC_2.29 clntraw_create F +GLIBC_2.29 clnttcp_create F +GLIBC_2.29 clntudp_bufcreate F +GLIBC_2.29 clntudp_create F +GLIBC_2.29 clntunix_create F +GLIBC_2.29 clock F +GLIBC_2.29 clock_adjtime F +GLIBC_2.29 clock_getcpuclockid F +GLIBC_2.29 clock_getres F +GLIBC_2.29 clock_gettime F +GLIBC_2.29 clock_nanosleep F +GLIBC_2.29 clock_settime F +GLIBC_2.29 clone F +GLIBC_2.29 close F +GLIBC_2.29 closedir F +GLIBC_2.29 closelog F +GLIBC_2.29 confstr F +GLIBC_2.29 connect F +GLIBC_2.29 copy_file_range F +GLIBC_2.29 copysign F +GLIBC_2.29 copysignf F +GLIBC_2.29 copysignl F +GLIBC_2.29 creat F +GLIBC_2.29 creat64 F +GLIBC_2.29 ctermid F +GLIBC_2.29 ctime F +GLIBC_2.29 ctime_r F +GLIBC_2.29 cuserid F +GLIBC_2.29 daemon F +GLIBC_2.29 daylight D 0x4 +GLIBC_2.29 dcgettext F +GLIBC_2.29 dcngettext F +GLIBC_2.29 delete_module F +GLIBC_2.29 des_setparity F +GLIBC_2.29 dgettext F +GLIBC_2.29 difftime F +GLIBC_2.29 dirfd F +GLIBC_2.29 dirname F +GLIBC_2.29 div F +GLIBC_2.29 dl_iterate_phdr F +GLIBC_2.29 dngettext F +GLIBC_2.29 dprintf F +GLIBC_2.29 drand48 F +GLIBC_2.29 drand48_r F +GLIBC_2.29 dup F +GLIBC_2.29 dup2 F +GLIBC_2.29 dup3 F +GLIBC_2.29 duplocale F +GLIBC_2.29 dysize F +GLIBC_2.29 eaccess F +GLIBC_2.29 ecb_crypt F +GLIBC_2.29 ecvt F +GLIBC_2.29 ecvt_r F +GLIBC_2.29 endaliasent F +GLIBC_2.29 endfsent F +GLIBC_2.29 endgrent F +GLIBC_2.29 endhostent F +GLIBC_2.29 endmntent F +GLIBC_2.29 endnetent F +GLIBC_2.29 endnetgrent F +GLIBC_2.29 endprotoent F +GLIBC_2.29 endpwent F +GLIBC_2.29 endrpcent F +GLIBC_2.29 endservent F +GLIBC_2.29 endsgent F +GLIBC_2.29 endspent F +GLIBC_2.29 endttyent F +GLIBC_2.29 endusershell F +GLIBC_2.29 endutent F +GLIBC_2.29 endutxent F +GLIBC_2.29 environ D 0x4 +GLIBC_2.29 envz_add F +GLIBC_2.29 envz_entry F +GLIBC_2.29 envz_get F +GLIBC_2.29 envz_merge F +GLIBC_2.29 envz_remove F +GLIBC_2.29 envz_strip F +GLIBC_2.29 epoll_create F +GLIBC_2.29 epoll_create1 F +GLIBC_2.29 epoll_ctl F +GLIBC_2.29 epoll_pwait F +GLIBC_2.29 epoll_wait F +GLIBC_2.29 erand48 F +GLIBC_2.29 erand48_r F +GLIBC_2.29 err F +GLIBC_2.29 error F +GLIBC_2.29 error_at_line F +GLIBC_2.29 error_message_count D 0x4 +GLIBC_2.29 error_one_per_line D 0x4 +GLIBC_2.29 error_print_progname D 0x4 +GLIBC_2.29 errx F +GLIBC_2.29 ether_aton F +GLIBC_2.29 ether_aton_r F +GLIBC_2.29 ether_hostton F +GLIBC_2.29 ether_line F +GLIBC_2.29 ether_ntoa F +GLIBC_2.29 ether_ntoa_r F +GLIBC_2.29 ether_ntohost F +GLIBC_2.29 euidaccess F +GLIBC_2.29 eventfd F +GLIBC_2.29 eventfd_read F +GLIBC_2.29 eventfd_write F +GLIBC_2.29 execl F +GLIBC_2.29 execle F +GLIBC_2.29 execlp F +GLIBC_2.29 execv F +GLIBC_2.29 execve F +GLIBC_2.29 execvp F +GLIBC_2.29 execvpe F +GLIBC_2.29 exit F +GLIBC_2.29 explicit_bzero F +GLIBC_2.29 faccessat F +GLIBC_2.29 fallocate F +GLIBC_2.29 fallocate64 F +GLIBC_2.29 fanotify_init F +GLIBC_2.29 fanotify_mark F +GLIBC_2.29 fattach F +GLIBC_2.29 fchdir F +GLIBC_2.29 fchflags F +GLIBC_2.29 fchmod F +GLIBC_2.29 fchmodat F +GLIBC_2.29 fchown F +GLIBC_2.29 fchownat F +GLIBC_2.29 fclose F +GLIBC_2.29 fcloseall F +GLIBC_2.29 fcntl F +GLIBC_2.29 fcntl64 F +GLIBC_2.29 fcvt F +GLIBC_2.29 fcvt_r F +GLIBC_2.29 fdatasync F +GLIBC_2.29 fdetach F +GLIBC_2.29 fdopen F +GLIBC_2.29 fdopendir F +GLIBC_2.29 feof F +GLIBC_2.29 feof_unlocked F +GLIBC_2.29 ferror F +GLIBC_2.29 ferror_unlocked F +GLIBC_2.29 fexecve F +GLIBC_2.29 fflush F +GLIBC_2.29 fflush_unlocked F +GLIBC_2.29 ffs F +GLIBC_2.29 ffsl F +GLIBC_2.29 ffsll F +GLIBC_2.29 fgetc F +GLIBC_2.29 fgetc_unlocked F +GLIBC_2.29 fgetgrent F +GLIBC_2.29 fgetgrent_r F +GLIBC_2.29 fgetpos F +GLIBC_2.29 fgetpos64 F +GLIBC_2.29 fgetpwent F +GLIBC_2.29 fgetpwent_r F +GLIBC_2.29 fgets F +GLIBC_2.29 fgets_unlocked F +GLIBC_2.29 fgetsgent F +GLIBC_2.29 fgetsgent_r F +GLIBC_2.29 fgetspent F +GLIBC_2.29 fgetspent_r F +GLIBC_2.29 fgetwc F +GLIBC_2.29 fgetwc_unlocked F +GLIBC_2.29 fgetws F +GLIBC_2.29 fgetws_unlocked F +GLIBC_2.29 fgetxattr F +GLIBC_2.29 fileno F +GLIBC_2.29 fileno_unlocked F +GLIBC_2.29 finite F +GLIBC_2.29 finitef F +GLIBC_2.29 finitel F +GLIBC_2.29 flistxattr F +GLIBC_2.29 flock F +GLIBC_2.29 flockfile F +GLIBC_2.29 fmemopen F +GLIBC_2.29 fmtmsg F +GLIBC_2.29 fnmatch F +GLIBC_2.29 fopen F +GLIBC_2.29 fopen64 F +GLIBC_2.29 fopencookie F +GLIBC_2.29 fork F +GLIBC_2.29 fpathconf F +GLIBC_2.29 fprintf F +GLIBC_2.29 fputc F +GLIBC_2.29 fputc_unlocked F +GLIBC_2.29 fputs F +GLIBC_2.29 fputs_unlocked F +GLIBC_2.29 fputwc F +GLIBC_2.29 fputwc_unlocked F +GLIBC_2.29 fputws F +GLIBC_2.29 fputws_unlocked F +GLIBC_2.29 fread F +GLIBC_2.29 fread_unlocked F +GLIBC_2.29 free F +GLIBC_2.29 freeaddrinfo F +GLIBC_2.29 freeifaddrs F +GLIBC_2.29 freelocale F +GLIBC_2.29 fremovexattr F +GLIBC_2.29 freopen F +GLIBC_2.29 freopen64 F +GLIBC_2.29 frexp F +GLIBC_2.29 frexpf F +GLIBC_2.29 frexpl F +GLIBC_2.29 fscanf F +GLIBC_2.29 fseek F +GLIBC_2.29 fseeko F +GLIBC_2.29 fseeko64 F +GLIBC_2.29 fsetpos F +GLIBC_2.29 fsetpos64 F +GLIBC_2.29 fsetxattr F +GLIBC_2.29 fstatfs F +GLIBC_2.29 fstatfs64 F +GLIBC_2.29 fstatvfs F +GLIBC_2.29 fstatvfs64 F +GLIBC_2.29 fsync F +GLIBC_2.29 ftell F +GLIBC_2.29 ftello F +GLIBC_2.29 ftello64 F +GLIBC_2.29 ftime F +GLIBC_2.29 ftok F +GLIBC_2.29 ftruncate F +GLIBC_2.29 ftruncate64 F +GLIBC_2.29 ftrylockfile F +GLIBC_2.29 fts64_children F +GLIBC_2.29 fts64_close F +GLIBC_2.29 fts64_open F +GLIBC_2.29 fts64_read F +GLIBC_2.29 fts64_set F +GLIBC_2.29 fts_children F +GLIBC_2.29 fts_close F +GLIBC_2.29 fts_open F +GLIBC_2.29 fts_read F +GLIBC_2.29 fts_set F +GLIBC_2.29 ftw F +GLIBC_2.29 ftw64 F +GLIBC_2.29 funlockfile F +GLIBC_2.29 futimens F +GLIBC_2.29 futimes F +GLIBC_2.29 futimesat F +GLIBC_2.29 fwide F +GLIBC_2.29 fwprintf F +GLIBC_2.29 fwrite F +GLIBC_2.29 fwrite_unlocked F +GLIBC_2.29 fwscanf F +GLIBC_2.29 gai_strerror F +GLIBC_2.29 gcvt F +GLIBC_2.29 get_avphys_pages F +GLIBC_2.29 get_current_dir_name F +GLIBC_2.29 get_myaddress F +GLIBC_2.29 get_nprocs F +GLIBC_2.29 get_nprocs_conf F +GLIBC_2.29 get_phys_pages F +GLIBC_2.29 getaddrinfo F +GLIBC_2.29 getaliasbyname F +GLIBC_2.29 getaliasbyname_r F +GLIBC_2.29 getaliasent F +GLIBC_2.29 getaliasent_r F +GLIBC_2.29 getauxval F +GLIBC_2.29 getc F +GLIBC_2.29 getc_unlocked F +GLIBC_2.29 getchar F +GLIBC_2.29 getchar_unlocked F +GLIBC_2.29 getcontext F +GLIBC_2.29 getcpu F +GLIBC_2.29 getcwd F +GLIBC_2.29 getdate F +GLIBC_2.29 getdate_err D 0x4 +GLIBC_2.29 getdate_r F +GLIBC_2.29 getdelim F +GLIBC_2.29 getdirentries F +GLIBC_2.29 getdirentries64 F +GLIBC_2.29 getdomainname F +GLIBC_2.29 getdtablesize F +GLIBC_2.29 getegid F +GLIBC_2.29 getentropy F +GLIBC_2.29 getenv F +GLIBC_2.29 geteuid F +GLIBC_2.29 getfsent F +GLIBC_2.29 getfsfile F +GLIBC_2.29 getfsspec F +GLIBC_2.29 getgid F +GLIBC_2.29 getgrent F +GLIBC_2.29 getgrent_r F +GLIBC_2.29 getgrgid F +GLIBC_2.29 getgrgid_r F +GLIBC_2.29 getgrnam F +GLIBC_2.29 getgrnam_r F +GLIBC_2.29 getgrouplist F +GLIBC_2.29 getgroups F +GLIBC_2.29 gethostbyaddr F +GLIBC_2.29 gethostbyaddr_r F +GLIBC_2.29 gethostbyname F +GLIBC_2.29 gethostbyname2 F +GLIBC_2.29 gethostbyname2_r F +GLIBC_2.29 gethostbyname_r F +GLIBC_2.29 gethostent F +GLIBC_2.29 gethostent_r F +GLIBC_2.29 gethostid F +GLIBC_2.29 gethostname F +GLIBC_2.29 getifaddrs F +GLIBC_2.29 getipv4sourcefilter F +GLIBC_2.29 getitimer F +GLIBC_2.29 getline F +GLIBC_2.29 getloadavg F +GLIBC_2.29 getlogin F +GLIBC_2.29 getlogin_r F +GLIBC_2.29 getmntent F +GLIBC_2.29 getmntent_r F +GLIBC_2.29 getmsg F +GLIBC_2.29 getnameinfo F +GLIBC_2.29 getnetbyaddr F +GLIBC_2.29 getnetbyaddr_r F +GLIBC_2.29 getnetbyname F +GLIBC_2.29 getnetbyname_r F +GLIBC_2.29 getnetent F +GLIBC_2.29 getnetent_r F +GLIBC_2.29 getnetgrent F +GLIBC_2.29 getnetgrent_r F +GLIBC_2.29 getnetname F +GLIBC_2.29 getopt F +GLIBC_2.29 getopt_long F +GLIBC_2.29 getopt_long_only F +GLIBC_2.29 getpagesize F +GLIBC_2.29 getpass F +GLIBC_2.29 getpeername F +GLIBC_2.29 getpgid F +GLIBC_2.29 getpgrp F +GLIBC_2.29 getpid F +GLIBC_2.29 getpmsg F +GLIBC_2.29 getppid F +GLIBC_2.29 getpriority F +GLIBC_2.29 getprotobyname F +GLIBC_2.29 getprotobyname_r F +GLIBC_2.29 getprotobynumber F +GLIBC_2.29 getprotobynumber_r F +GLIBC_2.29 getprotoent F +GLIBC_2.29 getprotoent_r F +GLIBC_2.29 getpt F +GLIBC_2.29 getpublickey F +GLIBC_2.29 getpw F +GLIBC_2.29 getpwent F +GLIBC_2.29 getpwent_r F +GLIBC_2.29 getpwnam F +GLIBC_2.29 getpwnam_r F +GLIBC_2.29 getpwuid F +GLIBC_2.29 getpwuid_r F +GLIBC_2.29 getrandom F +GLIBC_2.29 getresgid F +GLIBC_2.29 getresuid F +GLIBC_2.29 getrlimit F +GLIBC_2.29 getrlimit64 F +GLIBC_2.29 getrpcbyname F +GLIBC_2.29 getrpcbyname_r F +GLIBC_2.29 getrpcbynumber F +GLIBC_2.29 getrpcbynumber_r F +GLIBC_2.29 getrpcent F +GLIBC_2.29 getrpcent_r F +GLIBC_2.29 getrpcport F +GLIBC_2.29 getrusage F +GLIBC_2.29 gets F +GLIBC_2.29 getsecretkey F +GLIBC_2.29 getservbyname F +GLIBC_2.29 getservbyname_r F +GLIBC_2.29 getservbyport F +GLIBC_2.29 getservbyport_r F +GLIBC_2.29 getservent F +GLIBC_2.29 getservent_r F +GLIBC_2.29 getsgent F +GLIBC_2.29 getsgent_r F +GLIBC_2.29 getsgnam F +GLIBC_2.29 getsgnam_r F +GLIBC_2.29 getsid F +GLIBC_2.29 getsockname F +GLIBC_2.29 getsockopt F +GLIBC_2.29 getsourcefilter F +GLIBC_2.29 getspent F +GLIBC_2.29 getspent_r F +GLIBC_2.29 getspnam F +GLIBC_2.29 getspnam_r F +GLIBC_2.29 getsubopt F +GLIBC_2.29 gettext F +GLIBC_2.29 gettimeofday F +GLIBC_2.29 getttyent F +GLIBC_2.29 getttynam F +GLIBC_2.29 getuid F +GLIBC_2.29 getusershell F +GLIBC_2.29 getutent F +GLIBC_2.29 getutent_r F +GLIBC_2.29 getutid F +GLIBC_2.29 getutid_r F +GLIBC_2.29 getutline F +GLIBC_2.29 getutline_r F +GLIBC_2.29 getutmp F +GLIBC_2.29 getutmpx F +GLIBC_2.29 getutxent F +GLIBC_2.29 getutxid F +GLIBC_2.29 getutxline F +GLIBC_2.29 getw F +GLIBC_2.29 getwc F +GLIBC_2.29 getwc_unlocked F +GLIBC_2.29 getwchar F +GLIBC_2.29 getwchar_unlocked F +GLIBC_2.29 getwd F +GLIBC_2.29 getxattr F +GLIBC_2.29 glob F +GLIBC_2.29 glob64 F +GLIBC_2.29 glob_pattern_p F +GLIBC_2.29 globfree F +GLIBC_2.29 globfree64 F +GLIBC_2.29 gmtime F +GLIBC_2.29 gmtime_r F +GLIBC_2.29 gnu_dev_major F +GLIBC_2.29 gnu_dev_makedev F +GLIBC_2.29 gnu_dev_minor F +GLIBC_2.29 gnu_get_libc_release F +GLIBC_2.29 gnu_get_libc_version F +GLIBC_2.29 grantpt F +GLIBC_2.29 group_member F +GLIBC_2.29 gsignal F +GLIBC_2.29 gtty F +GLIBC_2.29 h_errlist D 0x14 +GLIBC_2.29 h_nerr D 0x4 +GLIBC_2.29 hasmntopt F +GLIBC_2.29 hcreate F +GLIBC_2.29 hcreate_r F +GLIBC_2.29 hdestroy F +GLIBC_2.29 hdestroy_r F +GLIBC_2.29 herror F +GLIBC_2.29 host2netname F +GLIBC_2.29 hsearch F +GLIBC_2.29 hsearch_r F +GLIBC_2.29 hstrerror F +GLIBC_2.29 htonl F +GLIBC_2.29 htons F +GLIBC_2.29 iconv F +GLIBC_2.29 iconv_close F +GLIBC_2.29 iconv_open F +GLIBC_2.29 if_freenameindex F +GLIBC_2.29 if_indextoname F +GLIBC_2.29 if_nameindex F +GLIBC_2.29 if_nametoindex F +GLIBC_2.29 imaxabs F +GLIBC_2.29 imaxdiv F +GLIBC_2.29 in6addr_any D 0x10 +GLIBC_2.29 in6addr_loopback D 0x10 +GLIBC_2.29 index F +GLIBC_2.29 inet6_opt_append F +GLIBC_2.29 inet6_opt_find F +GLIBC_2.29 inet6_opt_finish F +GLIBC_2.29 inet6_opt_get_val F +GLIBC_2.29 inet6_opt_init F +GLIBC_2.29 inet6_opt_next F +GLIBC_2.29 inet6_opt_set_val F +GLIBC_2.29 inet6_option_alloc F +GLIBC_2.29 inet6_option_append F +GLIBC_2.29 inet6_option_find F +GLIBC_2.29 inet6_option_init F +GLIBC_2.29 inet6_option_next F +GLIBC_2.29 inet6_option_space F +GLIBC_2.29 inet6_rth_add F +GLIBC_2.29 inet6_rth_getaddr F +GLIBC_2.29 inet6_rth_init F +GLIBC_2.29 inet6_rth_reverse F +GLIBC_2.29 inet6_rth_segments F +GLIBC_2.29 inet6_rth_space F +GLIBC_2.29 inet_addr F +GLIBC_2.29 inet_aton F +GLIBC_2.29 inet_lnaof F +GLIBC_2.29 inet_makeaddr F +GLIBC_2.29 inet_netof F +GLIBC_2.29 inet_network F +GLIBC_2.29 inet_nsap_addr F +GLIBC_2.29 inet_nsap_ntoa F +GLIBC_2.29 inet_ntoa F +GLIBC_2.29 inet_ntop F +GLIBC_2.29 inet_pton F +GLIBC_2.29 init_module F +GLIBC_2.29 initgroups F +GLIBC_2.29 initstate F +GLIBC_2.29 initstate_r F +GLIBC_2.29 innetgr F +GLIBC_2.29 inotify_add_watch F +GLIBC_2.29 inotify_init F +GLIBC_2.29 inotify_init1 F +GLIBC_2.29 inotify_rm_watch F +GLIBC_2.29 insque F +GLIBC_2.29 ioctl F +GLIBC_2.29 iruserok F +GLIBC_2.29 iruserok_af F +GLIBC_2.29 isalnum F +GLIBC_2.29 isalnum_l F +GLIBC_2.29 isalpha F +GLIBC_2.29 isalpha_l F +GLIBC_2.29 isascii F +GLIBC_2.29 isastream F +GLIBC_2.29 isatty F +GLIBC_2.29 isblank F +GLIBC_2.29 isblank_l F +GLIBC_2.29 iscntrl F +GLIBC_2.29 iscntrl_l F +GLIBC_2.29 isctype F +GLIBC_2.29 isdigit F +GLIBC_2.29 isdigit_l F +GLIBC_2.29 isfdtype F +GLIBC_2.29 isgraph F +GLIBC_2.29 isgraph_l F +GLIBC_2.29 isinf F +GLIBC_2.29 isinff F +GLIBC_2.29 isinfl F +GLIBC_2.29 islower F +GLIBC_2.29 islower_l F +GLIBC_2.29 isnan F +GLIBC_2.29 isnanf F +GLIBC_2.29 isnanl F +GLIBC_2.29 isprint F +GLIBC_2.29 isprint_l F +GLIBC_2.29 ispunct F +GLIBC_2.29 ispunct_l F +GLIBC_2.29 isspace F +GLIBC_2.29 isspace_l F +GLIBC_2.29 isupper F +GLIBC_2.29 isupper_l F +GLIBC_2.29 iswalnum F +GLIBC_2.29 iswalnum_l F +GLIBC_2.29 iswalpha F +GLIBC_2.29 iswalpha_l F +GLIBC_2.29 iswblank F +GLIBC_2.29 iswblank_l F +GLIBC_2.29 iswcntrl F +GLIBC_2.29 iswcntrl_l F +GLIBC_2.29 iswctype F +GLIBC_2.29 iswctype_l F +GLIBC_2.29 iswdigit F +GLIBC_2.29 iswdigit_l F +GLIBC_2.29 iswgraph F +GLIBC_2.29 iswgraph_l F +GLIBC_2.29 iswlower F +GLIBC_2.29 iswlower_l F +GLIBC_2.29 iswprint F +GLIBC_2.29 iswprint_l F +GLIBC_2.29 iswpunct F +GLIBC_2.29 iswpunct_l F +GLIBC_2.29 iswspace F +GLIBC_2.29 iswspace_l F +GLIBC_2.29 iswupper F +GLIBC_2.29 iswupper_l F +GLIBC_2.29 iswxdigit F +GLIBC_2.29 iswxdigit_l F +GLIBC_2.29 isxdigit F +GLIBC_2.29 isxdigit_l F +GLIBC_2.29 jrand48 F +GLIBC_2.29 jrand48_r F +GLIBC_2.29 key_decryptsession F +GLIBC_2.29 key_decryptsession_pk F +GLIBC_2.29 key_encryptsession F +GLIBC_2.29 key_encryptsession_pk F +GLIBC_2.29 key_gendes F +GLIBC_2.29 key_get_conv F +GLIBC_2.29 key_secretkey_is_set F +GLIBC_2.29 key_setnet F +GLIBC_2.29 key_setsecret F +GLIBC_2.29 kill F +GLIBC_2.29 killpg F +GLIBC_2.29 klogctl F +GLIBC_2.29 l64a F +GLIBC_2.29 labs F +GLIBC_2.29 lchmod F +GLIBC_2.29 lchown F +GLIBC_2.29 lckpwdf F +GLIBC_2.29 lcong48 F +GLIBC_2.29 lcong48_r F +GLIBC_2.29 ldexp F +GLIBC_2.29 ldexpf F +GLIBC_2.29 ldexpl F +GLIBC_2.29 ldiv F +GLIBC_2.29 lfind F +GLIBC_2.29 lgetxattr F +GLIBC_2.29 link F +GLIBC_2.29 linkat F +GLIBC_2.29 listen F +GLIBC_2.29 listxattr F +GLIBC_2.29 llabs F +GLIBC_2.29 lldiv F +GLIBC_2.29 llistxattr F +GLIBC_2.29 localeconv F +GLIBC_2.29 localtime F +GLIBC_2.29 localtime_r F +GLIBC_2.29 lockf F +GLIBC_2.29 lockf64 F +GLIBC_2.29 longjmp F +GLIBC_2.29 lrand48 F +GLIBC_2.29 lrand48_r F +GLIBC_2.29 lremovexattr F +GLIBC_2.29 lsearch F +GLIBC_2.29 lseek F +GLIBC_2.29 lseek64 F +GLIBC_2.29 lsetxattr F +GLIBC_2.29 lutimes F +GLIBC_2.29 madvise F +GLIBC_2.29 makecontext F +GLIBC_2.29 mallinfo F +GLIBC_2.29 malloc F +GLIBC_2.29 malloc_info F +GLIBC_2.29 malloc_stats F +GLIBC_2.29 malloc_trim F +GLIBC_2.29 malloc_usable_size F +GLIBC_2.29 mallopt F +GLIBC_2.29 mallwatch D 0x4 +GLIBC_2.29 mblen F +GLIBC_2.29 mbrlen F +GLIBC_2.29 mbrtoc16 F +GLIBC_2.29 mbrtoc32 F +GLIBC_2.29 mbrtowc F +GLIBC_2.29 mbsinit F +GLIBC_2.29 mbsnrtowcs F +GLIBC_2.29 mbsrtowcs F +GLIBC_2.29 mbstowcs F +GLIBC_2.29 mbtowc F +GLIBC_2.29 mcheck F +GLIBC_2.29 mcheck_check_all F +GLIBC_2.29 mcheck_pedantic F +GLIBC_2.29 memalign F +GLIBC_2.29 memccpy F +GLIBC_2.29 memchr F +GLIBC_2.29 memcmp F +GLIBC_2.29 memcpy F +GLIBC_2.29 memfd_create F +GLIBC_2.29 memfrob F +GLIBC_2.29 memmem F +GLIBC_2.29 memmove F +GLIBC_2.29 mempcpy F +GLIBC_2.29 memrchr F +GLIBC_2.29 memset F +GLIBC_2.29 mincore F +GLIBC_2.29 mkdir F +GLIBC_2.29 mkdirat F +GLIBC_2.29 mkdtemp F +GLIBC_2.29 mkfifo F +GLIBC_2.29 mkfifoat F +GLIBC_2.29 mkostemp F +GLIBC_2.29 mkostemp64 F +GLIBC_2.29 mkostemps F +GLIBC_2.29 mkostemps64 F +GLIBC_2.29 mkstemp F +GLIBC_2.29 mkstemp64 F +GLIBC_2.29 mkstemps F +GLIBC_2.29 mkstemps64 F +GLIBC_2.29 mktemp F +GLIBC_2.29 mktime F +GLIBC_2.29 mlock F +GLIBC_2.29 mlock2 F +GLIBC_2.29 mlockall F +GLIBC_2.29 mmap F +GLIBC_2.29 mmap64 F +GLIBC_2.29 modf F +GLIBC_2.29 modff F +GLIBC_2.29 modfl F +GLIBC_2.29 moncontrol F +GLIBC_2.29 monstartup F +GLIBC_2.29 mount F +GLIBC_2.29 mprobe F +GLIBC_2.29 mprotect F +GLIBC_2.29 mrand48 F +GLIBC_2.29 mrand48_r F +GLIBC_2.29 mremap F +GLIBC_2.29 msgctl F +GLIBC_2.29 msgget F +GLIBC_2.29 msgrcv F +GLIBC_2.29 msgsnd F +GLIBC_2.29 msync F +GLIBC_2.29 mtrace F +GLIBC_2.29 munlock F +GLIBC_2.29 munlockall F +GLIBC_2.29 munmap F +GLIBC_2.29 muntrace F +GLIBC_2.29 name_to_handle_at F +GLIBC_2.29 nanosleep F +GLIBC_2.29 netname2host F +GLIBC_2.29 netname2user F +GLIBC_2.29 newlocale F +GLIBC_2.29 nftw F +GLIBC_2.29 nftw64 F +GLIBC_2.29 ngettext F +GLIBC_2.29 nice F +GLIBC_2.29 nl_langinfo F +GLIBC_2.29 nl_langinfo_l F +GLIBC_2.29 nrand48 F +GLIBC_2.29 nrand48_r F +GLIBC_2.29 ntohl F +GLIBC_2.29 ntohs F +GLIBC_2.29 ntp_adjtime F +GLIBC_2.29 ntp_gettime F +GLIBC_2.29 ntp_gettimex F +GLIBC_2.29 obstack_alloc_failed_handler D 0x4 +GLIBC_2.29 obstack_exit_failure D 0x4 +GLIBC_2.29 obstack_free F +GLIBC_2.29 obstack_printf F +GLIBC_2.29 obstack_vprintf F +GLIBC_2.29 on_exit F +GLIBC_2.29 open F +GLIBC_2.29 open64 F +GLIBC_2.29 open_by_handle_at F +GLIBC_2.29 open_memstream F +GLIBC_2.29 open_wmemstream F +GLIBC_2.29 openat F +GLIBC_2.29 openat64 F +GLIBC_2.29 opendir F +GLIBC_2.29 openlog F +GLIBC_2.29 optarg D 0x4 +GLIBC_2.29 opterr D 0x4 +GLIBC_2.29 optind D 0x4 +GLIBC_2.29 optopt D 0x4 +GLIBC_2.29 parse_printf_format F +GLIBC_2.29 passwd2des F +GLIBC_2.29 pathconf F +GLIBC_2.29 pause F +GLIBC_2.29 pclose F +GLIBC_2.29 perror F +GLIBC_2.29 personality F +GLIBC_2.29 pipe F +GLIBC_2.29 pipe2 F +GLIBC_2.29 pivot_root F +GLIBC_2.29 pkey_alloc F +GLIBC_2.29 pkey_free F +GLIBC_2.29 pkey_get F +GLIBC_2.29 pkey_mprotect F +GLIBC_2.29 pkey_set F +GLIBC_2.29 pmap_getmaps F +GLIBC_2.29 pmap_getport F +GLIBC_2.29 pmap_rmtcall F +GLIBC_2.29 pmap_set F +GLIBC_2.29 pmap_unset F +GLIBC_2.29 poll F +GLIBC_2.29 popen F +GLIBC_2.29 posix_fadvise F +GLIBC_2.29 posix_fadvise64 F +GLIBC_2.29 posix_fallocate F +GLIBC_2.29 posix_fallocate64 F +GLIBC_2.29 posix_madvise F +GLIBC_2.29 posix_memalign F +GLIBC_2.29 posix_openpt F +GLIBC_2.29 posix_spawn F +GLIBC_2.29 posix_spawn_file_actions_addchdir_np F +GLIBC_2.29 posix_spawn_file_actions_addclose F +GLIBC_2.29 posix_spawn_file_actions_adddup2 F +GLIBC_2.29 posix_spawn_file_actions_addfchdir_np F +GLIBC_2.29 posix_spawn_file_actions_addopen F +GLIBC_2.29 posix_spawn_file_actions_destroy F +GLIBC_2.29 posix_spawn_file_actions_init F +GLIBC_2.29 posix_spawnattr_destroy F +GLIBC_2.29 posix_spawnattr_getflags F +GLIBC_2.29 posix_spawnattr_getpgroup F +GLIBC_2.29 posix_spawnattr_getschedparam F +GLIBC_2.29 posix_spawnattr_getschedpolicy F +GLIBC_2.29 posix_spawnattr_getsigdefault F +GLIBC_2.29 posix_spawnattr_getsigmask F +GLIBC_2.29 posix_spawnattr_init F +GLIBC_2.29 posix_spawnattr_setflags F +GLIBC_2.29 posix_spawnattr_setpgroup F +GLIBC_2.29 posix_spawnattr_setschedparam F +GLIBC_2.29 posix_spawnattr_setschedpolicy F +GLIBC_2.29 posix_spawnattr_setsigdefault F +GLIBC_2.29 posix_spawnattr_setsigmask F +GLIBC_2.29 posix_spawnp F +GLIBC_2.29 ppoll F +GLIBC_2.29 prctl F +GLIBC_2.29 pread F +GLIBC_2.29 pread64 F +GLIBC_2.29 preadv F +GLIBC_2.29 preadv2 F +GLIBC_2.29 preadv64 F +GLIBC_2.29 preadv64v2 F +GLIBC_2.29 printf F +GLIBC_2.29 printf_size F +GLIBC_2.29 printf_size_info F +GLIBC_2.29 prlimit F +GLIBC_2.29 prlimit64 F +GLIBC_2.29 process_vm_readv F +GLIBC_2.29 process_vm_writev F +GLIBC_2.29 profil F +GLIBC_2.29 program_invocation_name D 0x4 +GLIBC_2.29 program_invocation_short_name D 0x4 +GLIBC_2.29 pselect F +GLIBC_2.29 psiginfo F +GLIBC_2.29 psignal F +GLIBC_2.29 pthread_attr_destroy F +GLIBC_2.29 pthread_attr_getdetachstate F +GLIBC_2.29 pthread_attr_getinheritsched F +GLIBC_2.29 pthread_attr_getschedparam F +GLIBC_2.29 pthread_attr_getschedpolicy F +GLIBC_2.29 pthread_attr_getscope F +GLIBC_2.29 pthread_attr_init F +GLIBC_2.29 pthread_attr_setdetachstate F +GLIBC_2.29 pthread_attr_setinheritsched F +GLIBC_2.29 pthread_attr_setschedparam F +GLIBC_2.29 pthread_attr_setschedpolicy F +GLIBC_2.29 pthread_attr_setscope F +GLIBC_2.29 pthread_cond_broadcast F +GLIBC_2.29 pthread_cond_destroy F +GLIBC_2.29 pthread_cond_init F +GLIBC_2.29 pthread_cond_signal F +GLIBC_2.29 pthread_cond_timedwait F +GLIBC_2.29 pthread_cond_wait F +GLIBC_2.29 pthread_condattr_destroy F +GLIBC_2.29 pthread_condattr_init F +GLIBC_2.29 pthread_equal F +GLIBC_2.29 pthread_exit F +GLIBC_2.29 pthread_getschedparam F +GLIBC_2.29 pthread_mutex_destroy F +GLIBC_2.29 pthread_mutex_init F +GLIBC_2.29 pthread_mutex_lock F +GLIBC_2.29 pthread_mutex_unlock F +GLIBC_2.29 pthread_self F +GLIBC_2.29 pthread_setcancelstate F +GLIBC_2.29 pthread_setcanceltype F +GLIBC_2.29 pthread_setschedparam F +GLIBC_2.29 ptrace F +GLIBC_2.29 ptsname F +GLIBC_2.29 ptsname_r F +GLIBC_2.29 putc F +GLIBC_2.29 putc_unlocked F +GLIBC_2.29 putchar F +GLIBC_2.29 putchar_unlocked F +GLIBC_2.29 putenv F +GLIBC_2.29 putgrent F +GLIBC_2.29 putmsg F +GLIBC_2.29 putpmsg F +GLIBC_2.29 putpwent F +GLIBC_2.29 puts F +GLIBC_2.29 putsgent F +GLIBC_2.29 putspent F +GLIBC_2.29 pututline F +GLIBC_2.29 pututxline F +GLIBC_2.29 putw F +GLIBC_2.29 putwc F +GLIBC_2.29 putwc_unlocked F +GLIBC_2.29 putwchar F +GLIBC_2.29 putwchar_unlocked F +GLIBC_2.29 pvalloc F +GLIBC_2.29 pwrite F +GLIBC_2.29 pwrite64 F +GLIBC_2.29 pwritev F +GLIBC_2.29 pwritev2 F +GLIBC_2.29 pwritev64 F +GLIBC_2.29 pwritev64v2 F +GLIBC_2.29 qecvt F +GLIBC_2.29 qecvt_r F +GLIBC_2.29 qfcvt F +GLIBC_2.29 qfcvt_r F +GLIBC_2.29 qgcvt F +GLIBC_2.29 qsort F +GLIBC_2.29 qsort_r F +GLIBC_2.29 quick_exit F +GLIBC_2.29 quotactl F +GLIBC_2.29 raise F +GLIBC_2.29 rand F +GLIBC_2.29 rand_r F +GLIBC_2.29 random F +GLIBC_2.29 random_r F +GLIBC_2.29 rawmemchr F +GLIBC_2.29 rcmd F +GLIBC_2.29 rcmd_af F +GLIBC_2.29 re_comp F +GLIBC_2.29 re_compile_fastmap F +GLIBC_2.29 re_compile_pattern F +GLIBC_2.29 re_exec F +GLIBC_2.29 re_match F +GLIBC_2.29 re_match_2 F +GLIBC_2.29 re_search F +GLIBC_2.29 re_search_2 F +GLIBC_2.29 re_set_registers F +GLIBC_2.29 re_set_syntax F +GLIBC_2.29 re_syntax_options D 0x4 +GLIBC_2.29 read F +GLIBC_2.29 readahead F +GLIBC_2.29 readdir F +GLIBC_2.29 readdir64 F +GLIBC_2.29 readdir64_r F +GLIBC_2.29 readdir_r F +GLIBC_2.29 readlink F +GLIBC_2.29 readlinkat F +GLIBC_2.29 readv F +GLIBC_2.29 realloc F +GLIBC_2.29 reallocarray F +GLIBC_2.29 realpath F +GLIBC_2.29 reboot F +GLIBC_2.29 recv F +GLIBC_2.29 recvfrom F +GLIBC_2.29 recvmmsg F +GLIBC_2.29 recvmsg F +GLIBC_2.29 regcomp F +GLIBC_2.29 regerror F +GLIBC_2.29 regexec F +GLIBC_2.29 regfree F +GLIBC_2.29 register_printf_function F +GLIBC_2.29 register_printf_modifier F +GLIBC_2.29 register_printf_specifier F +GLIBC_2.29 register_printf_type F +GLIBC_2.29 registerrpc F +GLIBC_2.29 remap_file_pages F +GLIBC_2.29 remove F +GLIBC_2.29 removexattr F +GLIBC_2.29 remque F +GLIBC_2.29 rename F +GLIBC_2.29 renameat F +GLIBC_2.29 renameat2 F +GLIBC_2.29 revoke F +GLIBC_2.29 rewind F +GLIBC_2.29 rewinddir F +GLIBC_2.29 rexec F +GLIBC_2.29 rexec_af F +GLIBC_2.29 rexecoptions D 0x4 +GLIBC_2.29 rindex F +GLIBC_2.29 rmdir F +GLIBC_2.29 rpc_createerr D 0x10 +GLIBC_2.29 rpmatch F +GLIBC_2.29 rresvport F +GLIBC_2.29 rresvport_af F +GLIBC_2.29 rtime F +GLIBC_2.29 ruserok F +GLIBC_2.29 ruserok_af F +GLIBC_2.29 ruserpass F +GLIBC_2.29 sbrk F +GLIBC_2.29 scalbn F +GLIBC_2.29 scalbnf F +GLIBC_2.29 scalbnl F +GLIBC_2.29 scandir F +GLIBC_2.29 scandir64 F +GLIBC_2.29 scandirat F +GLIBC_2.29 scandirat64 F +GLIBC_2.29 scanf F +GLIBC_2.29 sched_get_priority_max F +GLIBC_2.29 sched_get_priority_min F +GLIBC_2.29 sched_getaffinity F +GLIBC_2.29 sched_getcpu F +GLIBC_2.29 sched_getparam F +GLIBC_2.29 sched_getscheduler F +GLIBC_2.29 sched_rr_get_interval F +GLIBC_2.29 sched_setaffinity F +GLIBC_2.29 sched_setparam F +GLIBC_2.29 sched_setscheduler F +GLIBC_2.29 sched_yield F +GLIBC_2.29 secure_getenv F +GLIBC_2.29 seed48 F +GLIBC_2.29 seed48_r F +GLIBC_2.29 seekdir F +GLIBC_2.29 select F +GLIBC_2.29 semctl F +GLIBC_2.29 semget F +GLIBC_2.29 semop F +GLIBC_2.29 semtimedop F +GLIBC_2.29 send F +GLIBC_2.29 sendfile F +GLIBC_2.29 sendfile64 F +GLIBC_2.29 sendmmsg F +GLIBC_2.29 sendmsg F +GLIBC_2.29 sendto F +GLIBC_2.29 setaliasent F +GLIBC_2.29 setbuf F +GLIBC_2.29 setbuffer F +GLIBC_2.29 setcontext F +GLIBC_2.29 setdomainname F +GLIBC_2.29 setegid F +GLIBC_2.29 setenv F +GLIBC_2.29 seteuid F +GLIBC_2.29 setfsent F +GLIBC_2.29 setfsgid F +GLIBC_2.29 setfsuid F +GLIBC_2.29 setgid F +GLIBC_2.29 setgrent F +GLIBC_2.29 setgroups F +GLIBC_2.29 sethostent F +GLIBC_2.29 sethostid F +GLIBC_2.29 sethostname F +GLIBC_2.29 setipv4sourcefilter F +GLIBC_2.29 setitimer F +GLIBC_2.29 setjmp F +GLIBC_2.29 setlinebuf F +GLIBC_2.29 setlocale F +GLIBC_2.29 setlogin F +GLIBC_2.29 setlogmask F +GLIBC_2.29 setmntent F +GLIBC_2.29 setnetent F +GLIBC_2.29 setnetgrent F +GLIBC_2.29 setns F +GLIBC_2.29 setpgid F +GLIBC_2.29 setpgrp F +GLIBC_2.29 setpriority F +GLIBC_2.29 setprotoent F +GLIBC_2.29 setpwent F +GLIBC_2.29 setregid F +GLIBC_2.29 setresgid F +GLIBC_2.29 setresuid F +GLIBC_2.29 setreuid F +GLIBC_2.29 setrlimit F +GLIBC_2.29 setrlimit64 F +GLIBC_2.29 setrpcent F +GLIBC_2.29 setservent F +GLIBC_2.29 setsgent F +GLIBC_2.29 setsid F +GLIBC_2.29 setsockopt F +GLIBC_2.29 setsourcefilter F +GLIBC_2.29 setspent F +GLIBC_2.29 setstate F +GLIBC_2.29 setstate_r F +GLIBC_2.29 settimeofday F +GLIBC_2.29 setttyent F +GLIBC_2.29 setuid F +GLIBC_2.29 setusershell F +GLIBC_2.29 setutent F +GLIBC_2.29 setutxent F +GLIBC_2.29 setvbuf F +GLIBC_2.29 setxattr F +GLIBC_2.29 sgetsgent F +GLIBC_2.29 sgetsgent_r F +GLIBC_2.29 sgetspent F +GLIBC_2.29 sgetspent_r F +GLIBC_2.29 shmat F +GLIBC_2.29 shmctl F +GLIBC_2.29 shmdt F +GLIBC_2.29 shmget F +GLIBC_2.29 shutdown F +GLIBC_2.29 sigaction F +GLIBC_2.29 sigaddset F +GLIBC_2.29 sigaltstack F +GLIBC_2.29 sigandset F +GLIBC_2.29 sigblock F +GLIBC_2.29 sigdelset F +GLIBC_2.29 sigemptyset F +GLIBC_2.29 sigfillset F +GLIBC_2.29 siggetmask F +GLIBC_2.29 sighold F +GLIBC_2.29 sigignore F +GLIBC_2.29 siginterrupt F +GLIBC_2.29 sigisemptyset F +GLIBC_2.29 sigismember F +GLIBC_2.29 siglongjmp F +GLIBC_2.29 signal F +GLIBC_2.29 signalfd F +GLIBC_2.29 sigorset F +GLIBC_2.29 sigpause F +GLIBC_2.29 sigpending F +GLIBC_2.29 sigprocmask F +GLIBC_2.29 sigqueue F +GLIBC_2.29 sigrelse F +GLIBC_2.29 sigreturn F +GLIBC_2.29 sigset F +GLIBC_2.29 sigsetmask F +GLIBC_2.29 sigstack F +GLIBC_2.29 sigsuspend F +GLIBC_2.29 sigtimedwait F +GLIBC_2.29 sigwait F +GLIBC_2.29 sigwaitinfo F +GLIBC_2.29 sleep F +GLIBC_2.29 snprintf F +GLIBC_2.29 sockatmark F +GLIBC_2.29 socket F +GLIBC_2.29 socketpair F +GLIBC_2.29 splice F +GLIBC_2.29 sprintf F +GLIBC_2.29 sprofil F +GLIBC_2.29 srand F +GLIBC_2.29 srand48 F +GLIBC_2.29 srand48_r F +GLIBC_2.29 srandom F +GLIBC_2.29 srandom_r F +GLIBC_2.29 sscanf F +GLIBC_2.29 ssignal F +GLIBC_2.29 sstk F +GLIBC_2.29 statfs F +GLIBC_2.29 statfs64 F +GLIBC_2.29 statvfs F +GLIBC_2.29 statvfs64 F +GLIBC_2.29 statx F +GLIBC_2.29 stderr D 0x4 +GLIBC_2.29 stdin D 0x4 +GLIBC_2.29 stdout D 0x4 +GLIBC_2.29 stime F +GLIBC_2.29 stpcpy F +GLIBC_2.29 stpncpy F +GLIBC_2.29 strcasecmp F +GLIBC_2.29 strcasecmp_l F +GLIBC_2.29 strcasestr F +GLIBC_2.29 strcat F +GLIBC_2.29 strchr F +GLIBC_2.29 strchrnul F +GLIBC_2.29 strcmp F +GLIBC_2.29 strcoll F +GLIBC_2.29 strcoll_l F +GLIBC_2.29 strcpy F +GLIBC_2.29 strcspn F +GLIBC_2.29 strdup F +GLIBC_2.29 strerror F +GLIBC_2.29 strerror_l F +GLIBC_2.29 strerror_r F +GLIBC_2.29 strfmon F +GLIBC_2.29 strfmon_l F +GLIBC_2.29 strfromd F +GLIBC_2.29 strfromf F +GLIBC_2.29 strfromf128 F +GLIBC_2.29 strfromf32 F +GLIBC_2.29 strfromf32x F +GLIBC_2.29 strfromf64 F +GLIBC_2.29 strfromf64x F +GLIBC_2.29 strfroml F +GLIBC_2.29 strfry F +GLIBC_2.29 strftime F +GLIBC_2.29 strftime_l F +GLIBC_2.29 strlen F +GLIBC_2.29 strncasecmp F +GLIBC_2.29 strncasecmp_l F +GLIBC_2.29 strncat F +GLIBC_2.29 strncmp F +GLIBC_2.29 strncpy F +GLIBC_2.29 strndup F +GLIBC_2.29 strnlen F +GLIBC_2.29 strpbrk F +GLIBC_2.29 strptime F +GLIBC_2.29 strptime_l F +GLIBC_2.29 strrchr F +GLIBC_2.29 strsep F +GLIBC_2.29 strsignal F +GLIBC_2.29 strspn F +GLIBC_2.29 strstr F +GLIBC_2.29 strtod F +GLIBC_2.29 strtod_l F +GLIBC_2.29 strtof F +GLIBC_2.29 strtof128 F +GLIBC_2.29 strtof128_l F +GLIBC_2.29 strtof32 F +GLIBC_2.29 strtof32_l F +GLIBC_2.29 strtof32x F +GLIBC_2.29 strtof32x_l F +GLIBC_2.29 strtof64 F +GLIBC_2.29 strtof64_l F +GLIBC_2.29 strtof64x F +GLIBC_2.29 strtof64x_l F +GLIBC_2.29 strtof_l F +GLIBC_2.29 strtoimax F +GLIBC_2.29 strtok F +GLIBC_2.29 strtok_r F +GLIBC_2.29 strtol F +GLIBC_2.29 strtol_l F +GLIBC_2.29 strtold F +GLIBC_2.29 strtold_l F +GLIBC_2.29 strtoll F +GLIBC_2.29 strtoll_l F +GLIBC_2.29 strtoq F +GLIBC_2.29 strtoul F +GLIBC_2.29 strtoul_l F +GLIBC_2.29 strtoull F +GLIBC_2.29 strtoull_l F +GLIBC_2.29 strtoumax F +GLIBC_2.29 strtouq F +GLIBC_2.29 strverscmp F +GLIBC_2.29 strxfrm F +GLIBC_2.29 strxfrm_l F +GLIBC_2.29 stty F +GLIBC_2.29 svc_exit F +GLIBC_2.29 svc_fdset D 0x80 +GLIBC_2.29 svc_getreq F +GLIBC_2.29 svc_getreq_common F +GLIBC_2.29 svc_getreq_poll F +GLIBC_2.29 svc_getreqset F +GLIBC_2.29 svc_max_pollfd D 0x4 +GLIBC_2.29 svc_pollfd D 0x4 +GLIBC_2.29 svc_register F +GLIBC_2.29 svc_run F +GLIBC_2.29 svc_sendreply F +GLIBC_2.29 svc_unregister F +GLIBC_2.29 svcauthdes_stats D 0xc +GLIBC_2.29 svcerr_auth F +GLIBC_2.29 svcerr_decode F +GLIBC_2.29 svcerr_noproc F +GLIBC_2.29 svcerr_noprog F +GLIBC_2.29 svcerr_progvers F +GLIBC_2.29 svcerr_systemerr F +GLIBC_2.29 svcerr_weakauth F +GLIBC_2.29 svcfd_create F +GLIBC_2.29 svcraw_create F +GLIBC_2.29 svctcp_create F +GLIBC_2.29 svcudp_bufcreate F +GLIBC_2.29 svcudp_create F +GLIBC_2.29 svcudp_enablecache F +GLIBC_2.29 svcunix_create F +GLIBC_2.29 svcunixfd_create F +GLIBC_2.29 swab F +GLIBC_2.29 swapcontext F +GLIBC_2.29 swapoff F +GLIBC_2.29 swapon F +GLIBC_2.29 swprintf F +GLIBC_2.29 swscanf F +GLIBC_2.29 symlink F +GLIBC_2.29 symlinkat F +GLIBC_2.29 sync F +GLIBC_2.29 sync_file_range F +GLIBC_2.29 syncfs F +GLIBC_2.29 sys_errlist D 0x21c +GLIBC_2.29 sys_nerr D 0x4 +GLIBC_2.29 sys_sigabbrev D 0x104 +GLIBC_2.29 sys_siglist D 0x104 +GLIBC_2.29 syscall F +GLIBC_2.29 sysconf F +GLIBC_2.29 sysctl F +GLIBC_2.29 sysinfo F +GLIBC_2.29 syslog F +GLIBC_2.29 system F +GLIBC_2.29 sysv_signal F +GLIBC_2.29 tcdrain F +GLIBC_2.29 tcflow F +GLIBC_2.29 tcflush F +GLIBC_2.29 tcgetattr F +GLIBC_2.29 tcgetpgrp F +GLIBC_2.29 tcgetsid F +GLIBC_2.29 tcsendbreak F +GLIBC_2.29 tcsetattr F +GLIBC_2.29 tcsetpgrp F +GLIBC_2.29 tdelete F +GLIBC_2.29 tdestroy F +GLIBC_2.29 tee F +GLIBC_2.29 telldir F +GLIBC_2.29 tempnam F +GLIBC_2.29 textdomain F +GLIBC_2.29 tfind F +GLIBC_2.29 thrd_current F +GLIBC_2.29 thrd_equal F +GLIBC_2.29 thrd_sleep F +GLIBC_2.29 thrd_yield F +GLIBC_2.29 time F +GLIBC_2.29 timegm F +GLIBC_2.29 timelocal F +GLIBC_2.29 timerfd_create F +GLIBC_2.29 timerfd_gettime F +GLIBC_2.29 timerfd_settime F +GLIBC_2.29 times F +GLIBC_2.29 timespec_get F +GLIBC_2.29 timezone D 0x4 +GLIBC_2.29 tmpfile F +GLIBC_2.29 tmpfile64 F +GLIBC_2.29 tmpnam F +GLIBC_2.29 tmpnam_r F +GLIBC_2.29 toascii F +GLIBC_2.29 tolower F +GLIBC_2.29 tolower_l F +GLIBC_2.29 toupper F +GLIBC_2.29 toupper_l F +GLIBC_2.29 towctrans F +GLIBC_2.29 towctrans_l F +GLIBC_2.29 towlower F +GLIBC_2.29 towlower_l F +GLIBC_2.29 towupper F +GLIBC_2.29 towupper_l F +GLIBC_2.29 tr_break F +GLIBC_2.29 truncate F +GLIBC_2.29 truncate64 F +GLIBC_2.29 tsearch F +GLIBC_2.29 ttyname F +GLIBC_2.29 ttyname_r F +GLIBC_2.29 ttyslot F +GLIBC_2.29 twalk F +GLIBC_2.29 tzname D 0x8 +GLIBC_2.29 tzset F +GLIBC_2.29 ualarm F +GLIBC_2.29 ulckpwdf F +GLIBC_2.29 ulimit F +GLIBC_2.29 umask F +GLIBC_2.29 umount F +GLIBC_2.29 umount2 F +GLIBC_2.29 uname F +GLIBC_2.29 ungetc F +GLIBC_2.29 ungetwc F +GLIBC_2.29 unlink F +GLIBC_2.29 unlinkat F +GLIBC_2.29 unlockpt F +GLIBC_2.29 unsetenv F +GLIBC_2.29 unshare F +GLIBC_2.29 updwtmp F +GLIBC_2.29 updwtmpx F +GLIBC_2.29 uselocale F +GLIBC_2.29 user2netname F +GLIBC_2.29 usleep F +GLIBC_2.29 utime F +GLIBC_2.29 utimensat F +GLIBC_2.29 utimes F +GLIBC_2.29 utmpname F +GLIBC_2.29 utmpxname F +GLIBC_2.29 valloc F +GLIBC_2.29 vasprintf F +GLIBC_2.29 vdprintf F +GLIBC_2.29 verr F +GLIBC_2.29 verrx F +GLIBC_2.29 versionsort F +GLIBC_2.29 versionsort64 F +GLIBC_2.29 vfork F +GLIBC_2.29 vfprintf F +GLIBC_2.29 vfscanf F +GLIBC_2.29 vfwprintf F +GLIBC_2.29 vfwscanf F +GLIBC_2.29 vhangup F +GLIBC_2.29 vlimit F +GLIBC_2.29 vmsplice F +GLIBC_2.29 vprintf F +GLIBC_2.29 vscanf F +GLIBC_2.29 vsnprintf F +GLIBC_2.29 vsprintf F +GLIBC_2.29 vsscanf F +GLIBC_2.29 vswprintf F +GLIBC_2.29 vswscanf F +GLIBC_2.29 vsyslog F +GLIBC_2.29 vtimes F +GLIBC_2.29 vwarn F +GLIBC_2.29 vwarnx F +GLIBC_2.29 vwprintf F +GLIBC_2.29 vwscanf F +GLIBC_2.29 wait F +GLIBC_2.29 wait3 F +GLIBC_2.29 wait4 F +GLIBC_2.29 waitid F +GLIBC_2.29 waitpid F +GLIBC_2.29 warn F +GLIBC_2.29 warnx F +GLIBC_2.29 wcpcpy F +GLIBC_2.29 wcpncpy F +GLIBC_2.29 wcrtomb F +GLIBC_2.29 wcscasecmp F +GLIBC_2.29 wcscasecmp_l F +GLIBC_2.29 wcscat F +GLIBC_2.29 wcschr F +GLIBC_2.29 wcschrnul F +GLIBC_2.29 wcscmp F +GLIBC_2.29 wcscoll F +GLIBC_2.29 wcscoll_l F +GLIBC_2.29 wcscpy F +GLIBC_2.29 wcscspn F +GLIBC_2.29 wcsdup F +GLIBC_2.29 wcsftime F +GLIBC_2.29 wcsftime_l F +GLIBC_2.29 wcslen F +GLIBC_2.29 wcsncasecmp F +GLIBC_2.29 wcsncasecmp_l F +GLIBC_2.29 wcsncat F +GLIBC_2.29 wcsncmp F +GLIBC_2.29 wcsncpy F +GLIBC_2.29 wcsnlen F +GLIBC_2.29 wcsnrtombs F +GLIBC_2.29 wcspbrk F +GLIBC_2.29 wcsrchr F +GLIBC_2.29 wcsrtombs F +GLIBC_2.29 wcsspn F +GLIBC_2.29 wcsstr F +GLIBC_2.29 wcstod F +GLIBC_2.29 wcstod_l F +GLIBC_2.29 wcstof F +GLIBC_2.29 wcstof128 F +GLIBC_2.29 wcstof128_l F +GLIBC_2.29 wcstof32 F +GLIBC_2.29 wcstof32_l F +GLIBC_2.29 wcstof32x F +GLIBC_2.29 wcstof32x_l F +GLIBC_2.29 wcstof64 F +GLIBC_2.29 wcstof64_l F +GLIBC_2.29 wcstof64x F +GLIBC_2.29 wcstof64x_l F +GLIBC_2.29 wcstof_l F +GLIBC_2.29 wcstoimax F +GLIBC_2.29 wcstok F +GLIBC_2.29 wcstol F +GLIBC_2.29 wcstol_l F +GLIBC_2.29 wcstold F +GLIBC_2.29 wcstold_l F +GLIBC_2.29 wcstoll F +GLIBC_2.29 wcstoll_l F +GLIBC_2.29 wcstombs F +GLIBC_2.29 wcstoq F +GLIBC_2.29 wcstoul F +GLIBC_2.29 wcstoul_l F +GLIBC_2.29 wcstoull F +GLIBC_2.29 wcstoull_l F +GLIBC_2.29 wcstoumax F +GLIBC_2.29 wcstouq F +GLIBC_2.29 wcswcs F +GLIBC_2.29 wcswidth F +GLIBC_2.29 wcsxfrm F +GLIBC_2.29 wcsxfrm_l F +GLIBC_2.29 wctob F +GLIBC_2.29 wctomb F +GLIBC_2.29 wctrans F +GLIBC_2.29 wctrans_l F +GLIBC_2.29 wctype F +GLIBC_2.29 wctype_l F +GLIBC_2.29 wcwidth F +GLIBC_2.29 wmemchr F +GLIBC_2.29 wmemcmp F +GLIBC_2.29 wmemcpy F +GLIBC_2.29 wmemmove F +GLIBC_2.29 wmempcpy F +GLIBC_2.29 wmemset F +GLIBC_2.29 wordexp F +GLIBC_2.29 wordfree F +GLIBC_2.29 wprintf F +GLIBC_2.29 write F +GLIBC_2.29 writev F +GLIBC_2.29 wscanf F +GLIBC_2.29 xdecrypt F +GLIBC_2.29 xdr_accepted_reply F +GLIBC_2.29 xdr_array F +GLIBC_2.29 xdr_authdes_cred F +GLIBC_2.29 xdr_authdes_verf F +GLIBC_2.29 xdr_authunix_parms F +GLIBC_2.29 xdr_bool F +GLIBC_2.29 xdr_bytes F +GLIBC_2.29 xdr_callhdr F +GLIBC_2.29 xdr_callmsg F +GLIBC_2.29 xdr_char F +GLIBC_2.29 xdr_cryptkeyarg F +GLIBC_2.29 xdr_cryptkeyarg2 F +GLIBC_2.29 xdr_cryptkeyres F +GLIBC_2.29 xdr_des_block F +GLIBC_2.29 xdr_double F +GLIBC_2.29 xdr_enum F +GLIBC_2.29 xdr_float F +GLIBC_2.29 xdr_free F +GLIBC_2.29 xdr_getcredres F +GLIBC_2.29 xdr_hyper F +GLIBC_2.29 xdr_int F +GLIBC_2.29 xdr_int16_t F +GLIBC_2.29 xdr_int32_t F +GLIBC_2.29 xdr_int64_t F +GLIBC_2.29 xdr_int8_t F +GLIBC_2.29 xdr_key_netstarg F +GLIBC_2.29 xdr_key_netstres F +GLIBC_2.29 xdr_keybuf F +GLIBC_2.29 xdr_keystatus F +GLIBC_2.29 xdr_long F +GLIBC_2.29 xdr_longlong_t F +GLIBC_2.29 xdr_netnamestr F +GLIBC_2.29 xdr_netobj F +GLIBC_2.29 xdr_opaque F +GLIBC_2.29 xdr_opaque_auth F +GLIBC_2.29 xdr_pmap F +GLIBC_2.29 xdr_pmaplist F +GLIBC_2.29 xdr_pointer F +GLIBC_2.29 xdr_quad_t F +GLIBC_2.29 xdr_reference F +GLIBC_2.29 xdr_rejected_reply F +GLIBC_2.29 xdr_replymsg F +GLIBC_2.29 xdr_rmtcall_args F +GLIBC_2.29 xdr_rmtcallres F +GLIBC_2.29 xdr_short F +GLIBC_2.29 xdr_sizeof F +GLIBC_2.29 xdr_string F +GLIBC_2.29 xdr_u_char F +GLIBC_2.29 xdr_u_hyper F +GLIBC_2.29 xdr_u_int F +GLIBC_2.29 xdr_u_long F +GLIBC_2.29 xdr_u_longlong_t F +GLIBC_2.29 xdr_u_quad_t F +GLIBC_2.29 xdr_u_short F +GLIBC_2.29 xdr_uint16_t F +GLIBC_2.29 xdr_uint32_t F +GLIBC_2.29 xdr_uint64_t F +GLIBC_2.29 xdr_uint8_t F +GLIBC_2.29 xdr_union F +GLIBC_2.29 xdr_unixcred F +GLIBC_2.29 xdr_vector F +GLIBC_2.29 xdr_void F +GLIBC_2.29 xdr_wrapstring F +GLIBC_2.29 xdrmem_create F +GLIBC_2.29 xdrrec_create F +GLIBC_2.29 xdrrec_endofrecord F +GLIBC_2.29 xdrrec_eof F +GLIBC_2.29 xdrrec_skiprecord F +GLIBC_2.29 xdrstdio_create F +GLIBC_2.29 xencrypt F +GLIBC_2.29 xprt_register F +GLIBC_2.29 xprt_unregister F diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libcrypt.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libcrypt.abilist new file mode 100644 index 0000000000..da3abbf8fb --- /dev/null +++ b/sysdeps/unix/sysv/linux/riscv/rv32/libcrypt.abilist @@ -0,0 +1,2 @@ +GLIBC_2.29 crypt F +GLIBC_2.29 crypt_r F diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libdl.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libdl.abilist new file mode 100644 index 0000000000..8fcb609ddc --- /dev/null +++ b/sysdeps/unix/sysv/linux/riscv/rv32/libdl.abilist @@ -0,0 +1,9 @@ +GLIBC_2.29 dladdr F +GLIBC_2.29 dladdr1 F +GLIBC_2.29 dlclose F +GLIBC_2.29 dlerror F +GLIBC_2.29 dlinfo F +GLIBC_2.29 dlmopen F +GLIBC_2.29 dlopen F +GLIBC_2.29 dlsym F +GLIBC_2.29 dlvsym F diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libm.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libm.abilist new file mode 100644 index 0000000000..f7e19f44ab --- /dev/null +++ b/sysdeps/unix/sysv/linux/riscv/rv32/libm.abilist @@ -0,0 +1,1021 @@ +GLIBC_2.29 __acos_finite F +GLIBC_2.29 __acosf_finite F +GLIBC_2.29 __acosh_finite F +GLIBC_2.29 __acoshf_finite F +GLIBC_2.29 __acoshl_finite F +GLIBC_2.29 __acosl_finite F +GLIBC_2.29 __asin_finite F +GLIBC_2.29 __asinf_finite F +GLIBC_2.29 __asinl_finite F +GLIBC_2.29 __atan2_finite F +GLIBC_2.29 __atan2f_finite F +GLIBC_2.29 __atan2l_finite F +GLIBC_2.29 __atanh_finite F +GLIBC_2.29 __atanhf_finite F +GLIBC_2.29 __atanhl_finite F +GLIBC_2.29 __clog10 F +GLIBC_2.29 __clog10f F +GLIBC_2.29 __clog10l F +GLIBC_2.29 __cosh_finite F +GLIBC_2.29 __coshf_finite F +GLIBC_2.29 __coshl_finite F +GLIBC_2.29 __exp10_finite F +GLIBC_2.29 __exp10f_finite F +GLIBC_2.29 __exp10l_finite F +GLIBC_2.29 __exp2_finite F +GLIBC_2.29 __exp2f_finite F +GLIBC_2.29 __exp2l_finite F +GLIBC_2.29 __exp_finite F +GLIBC_2.29 __expf_finite F +GLIBC_2.29 __expl_finite F +GLIBC_2.29 __finite F +GLIBC_2.29 __finitef F +GLIBC_2.29 __finitel F +GLIBC_2.29 __fmod_finite F +GLIBC_2.29 __fmodf_finite F +GLIBC_2.29 __fmodl_finite F +GLIBC_2.29 __fpclassify F +GLIBC_2.29 __fpclassifyf F +GLIBC_2.29 __fpclassifyl F +GLIBC_2.29 __gamma_r_finite F +GLIBC_2.29 __gammaf_r_finite F +GLIBC_2.29 __gammal_r_finite F +GLIBC_2.29 __hypot_finite F +GLIBC_2.29 __hypotf_finite F +GLIBC_2.29 __hypotl_finite F +GLIBC_2.29 __iseqsig F +GLIBC_2.29 __iseqsigf F +GLIBC_2.29 __iseqsigl F +GLIBC_2.29 __issignaling F +GLIBC_2.29 __issignalingf F +GLIBC_2.29 __issignalingl F +GLIBC_2.29 __j0_finite F +GLIBC_2.29 __j0f_finite F +GLIBC_2.29 __j0l_finite F +GLIBC_2.29 __j1_finite F +GLIBC_2.29 __j1f_finite F +GLIBC_2.29 __j1l_finite F +GLIBC_2.29 __jn_finite F +GLIBC_2.29 __jnf_finite F +GLIBC_2.29 __jnl_finite F +GLIBC_2.29 __lgamma_r_finite F +GLIBC_2.29 __lgammaf_r_finite F +GLIBC_2.29 __lgammal_r_finite F +GLIBC_2.29 __log10_finite F +GLIBC_2.29 __log10f_finite F +GLIBC_2.29 __log10l_finite F +GLIBC_2.29 __log2_finite F +GLIBC_2.29 __log2f_finite F +GLIBC_2.29 __log2l_finite F +GLIBC_2.29 __log_finite F +GLIBC_2.29 __logf_finite F +GLIBC_2.29 __logl_finite F +GLIBC_2.29 __pow_finite F +GLIBC_2.29 __powf_finite F +GLIBC_2.29 __powl_finite F +GLIBC_2.29 __remainder_finite F +GLIBC_2.29 __remainderf_finite F +GLIBC_2.29 __remainderl_finite F +GLIBC_2.29 __scalb_finite F +GLIBC_2.29 __scalbf_finite F +GLIBC_2.29 __scalbl_finite F +GLIBC_2.29 __signbit F +GLIBC_2.29 __signbitf F +GLIBC_2.29 __signbitl F +GLIBC_2.29 __signgam D 0x4 +GLIBC_2.29 __sinh_finite F +GLIBC_2.29 __sinhf_finite F +GLIBC_2.29 __sinhl_finite F +GLIBC_2.29 __sqrt_finite F +GLIBC_2.29 __sqrtf_finite F +GLIBC_2.29 __sqrtl_finite F +GLIBC_2.29 __y0_finite F +GLIBC_2.29 __y0f_finite F +GLIBC_2.29 __y0l_finite F +GLIBC_2.29 __y1_finite F +GLIBC_2.29 __y1f_finite F +GLIBC_2.29 __y1l_finite F +GLIBC_2.29 __yn_finite F +GLIBC_2.29 __ynf_finite F +GLIBC_2.29 __ynl_finite F +GLIBC_2.29 acos F +GLIBC_2.29 acosf F +GLIBC_2.29 acosf128 F +GLIBC_2.29 acosf32 F +GLIBC_2.29 acosf32x F +GLIBC_2.29 acosf64 F +GLIBC_2.29 acosf64x F +GLIBC_2.29 acosh F +GLIBC_2.29 acoshf F +GLIBC_2.29 acoshf128 F +GLIBC_2.29 acoshf32 F +GLIBC_2.29 acoshf32x F +GLIBC_2.29 acoshf64 F +GLIBC_2.29 acoshf64x F +GLIBC_2.29 acoshl F +GLIBC_2.29 acosl F +GLIBC_2.29 asin F +GLIBC_2.29 asinf F +GLIBC_2.29 asinf128 F +GLIBC_2.29 asinf32 F +GLIBC_2.29 asinf32x F +GLIBC_2.29 asinf64 F +GLIBC_2.29 asinf64x F +GLIBC_2.29 asinh F +GLIBC_2.29 asinhf F +GLIBC_2.29 asinhf128 F +GLIBC_2.29 asinhf32 F +GLIBC_2.29 asinhf32x F +GLIBC_2.29 asinhf64 F +GLIBC_2.29 asinhf64x F +GLIBC_2.29 asinhl F +GLIBC_2.29 asinl F +GLIBC_2.29 atan F +GLIBC_2.29 atan2 F +GLIBC_2.29 atan2f F +GLIBC_2.29 atan2f128 F +GLIBC_2.29 atan2f32 F +GLIBC_2.29 atan2f32x F +GLIBC_2.29 atan2f64 F +GLIBC_2.29 atan2f64x F +GLIBC_2.29 atan2l F +GLIBC_2.29 atanf F +GLIBC_2.29 atanf128 F +GLIBC_2.29 atanf32 F +GLIBC_2.29 atanf32x F +GLIBC_2.29 atanf64 F +GLIBC_2.29 atanf64x F +GLIBC_2.29 atanh F +GLIBC_2.29 atanhf F +GLIBC_2.29 atanhf128 F +GLIBC_2.29 atanhf32 F +GLIBC_2.29 atanhf32x F +GLIBC_2.29 atanhf64 F +GLIBC_2.29 atanhf64x F +GLIBC_2.29 atanhl F +GLIBC_2.29 atanl F +GLIBC_2.29 cabs F +GLIBC_2.29 cabsf F +GLIBC_2.29 cabsf128 F +GLIBC_2.29 cabsf32 F +GLIBC_2.29 cabsf32x F +GLIBC_2.29 cabsf64 F +GLIBC_2.29 cabsf64x F +GLIBC_2.29 cabsl F +GLIBC_2.29 cacos F +GLIBC_2.29 cacosf F +GLIBC_2.29 cacosf128 F +GLIBC_2.29 cacosf32 F +GLIBC_2.29 cacosf32x F +GLIBC_2.29 cacosf64 F +GLIBC_2.29 cacosf64x F +GLIBC_2.29 cacosh F +GLIBC_2.29 cacoshf F +GLIBC_2.29 cacoshf128 F +GLIBC_2.29 cacoshf32 F +GLIBC_2.29 cacoshf32x F +GLIBC_2.29 cacoshf64 F +GLIBC_2.29 cacoshf64x F +GLIBC_2.29 cacoshl F +GLIBC_2.29 cacosl F +GLIBC_2.29 canonicalize F +GLIBC_2.29 canonicalizef F +GLIBC_2.29 canonicalizef128 F +GLIBC_2.29 canonicalizef32 F +GLIBC_2.29 canonicalizef32x F +GLIBC_2.29 canonicalizef64 F +GLIBC_2.29 canonicalizef64x F +GLIBC_2.29 canonicalizel F +GLIBC_2.29 carg F +GLIBC_2.29 cargf F +GLIBC_2.29 cargf128 F +GLIBC_2.29 cargf32 F +GLIBC_2.29 cargf32x F +GLIBC_2.29 cargf64 F +GLIBC_2.29 cargf64x F +GLIBC_2.29 cargl F +GLIBC_2.29 casin F +GLIBC_2.29 casinf F +GLIBC_2.29 casinf128 F +GLIBC_2.29 casinf32 F +GLIBC_2.29 casinf32x F +GLIBC_2.29 casinf64 F +GLIBC_2.29 casinf64x F +GLIBC_2.29 casinh F +GLIBC_2.29 casinhf F +GLIBC_2.29 casinhf128 F +GLIBC_2.29 casinhf32 F +GLIBC_2.29 casinhf32x F +GLIBC_2.29 casinhf64 F +GLIBC_2.29 casinhf64x F +GLIBC_2.29 casinhl F +GLIBC_2.29 casinl F +GLIBC_2.29 catan F +GLIBC_2.29 catanf F +GLIBC_2.29 catanf128 F +GLIBC_2.29 catanf32 F +GLIBC_2.29 catanf32x F +GLIBC_2.29 catanf64 F +GLIBC_2.29 catanf64x F +GLIBC_2.29 catanh F +GLIBC_2.29 catanhf F +GLIBC_2.29 catanhf128 F +GLIBC_2.29 catanhf32 F +GLIBC_2.29 catanhf32x F +GLIBC_2.29 catanhf64 F +GLIBC_2.29 catanhf64x F +GLIBC_2.29 catanhl F +GLIBC_2.29 catanl F +GLIBC_2.29 cbrt F +GLIBC_2.29 cbrtf F +GLIBC_2.29 cbrtf128 F +GLIBC_2.29 cbrtf32 F +GLIBC_2.29 cbrtf32x F +GLIBC_2.29 cbrtf64 F +GLIBC_2.29 cbrtf64x F +GLIBC_2.29 cbrtl F +GLIBC_2.29 ccos F +GLIBC_2.29 ccosf F +GLIBC_2.29 ccosf128 F +GLIBC_2.29 ccosf32 F +GLIBC_2.29 ccosf32x F +GLIBC_2.29 ccosf64 F +GLIBC_2.29 ccosf64x F +GLIBC_2.29 ccosh F +GLIBC_2.29 ccoshf F +GLIBC_2.29 ccoshf128 F +GLIBC_2.29 ccoshf32 F +GLIBC_2.29 ccoshf32x F +GLIBC_2.29 ccoshf64 F +GLIBC_2.29 ccoshf64x F +GLIBC_2.29 ccoshl F +GLIBC_2.29 ccosl F +GLIBC_2.29 ceil F +GLIBC_2.29 ceilf F +GLIBC_2.29 ceilf128 F +GLIBC_2.29 ceilf32 F +GLIBC_2.29 ceilf32x F +GLIBC_2.29 ceilf64 F +GLIBC_2.29 ceilf64x F +GLIBC_2.29 ceill F +GLIBC_2.29 cexp F +GLIBC_2.29 cexpf F +GLIBC_2.29 cexpf128 F +GLIBC_2.29 cexpf32 F +GLIBC_2.29 cexpf32x F +GLIBC_2.29 cexpf64 F +GLIBC_2.29 cexpf64x F +GLIBC_2.29 cexpl F +GLIBC_2.29 cimag F +GLIBC_2.29 cimagf F +GLIBC_2.29 cimagf128 F +GLIBC_2.29 cimagf32 F +GLIBC_2.29 cimagf32x F +GLIBC_2.29 cimagf64 F +GLIBC_2.29 cimagf64x F +GLIBC_2.29 cimagl F +GLIBC_2.29 clog F +GLIBC_2.29 clog10 F +GLIBC_2.29 clog10f F +GLIBC_2.29 clog10f128 F +GLIBC_2.29 clog10f32 F +GLIBC_2.29 clog10f32x F +GLIBC_2.29 clog10f64 F +GLIBC_2.29 clog10f64x F +GLIBC_2.29 clog10l F +GLIBC_2.29 clogf F +GLIBC_2.29 clogf128 F +GLIBC_2.29 clogf32 F +GLIBC_2.29 clogf32x F +GLIBC_2.29 clogf64 F +GLIBC_2.29 clogf64x F +GLIBC_2.29 clogl F +GLIBC_2.29 conj F +GLIBC_2.29 conjf F +GLIBC_2.29 conjf128 F +GLIBC_2.29 conjf32 F +GLIBC_2.29 conjf32x F +GLIBC_2.29 conjf64 F +GLIBC_2.29 conjf64x F +GLIBC_2.29 conjl F +GLIBC_2.29 copysign F +GLIBC_2.29 copysignf F +GLIBC_2.29 copysignf128 F +GLIBC_2.29 copysignf32 F +GLIBC_2.29 copysignf32x F +GLIBC_2.29 copysignf64 F +GLIBC_2.29 copysignf64x F +GLIBC_2.29 copysignl F +GLIBC_2.29 cos F +GLIBC_2.29 cosf F +GLIBC_2.29 cosf128 F +GLIBC_2.29 cosf32 F +GLIBC_2.29 cosf32x F +GLIBC_2.29 cosf64 F +GLIBC_2.29 cosf64x F +GLIBC_2.29 cosh F +GLIBC_2.29 coshf F +GLIBC_2.29 coshf128 F +GLIBC_2.29 coshf32 F +GLIBC_2.29 coshf32x F +GLIBC_2.29 coshf64 F +GLIBC_2.29 coshf64x F +GLIBC_2.29 coshl F +GLIBC_2.29 cosl F +GLIBC_2.29 cpow F +GLIBC_2.29 cpowf F +GLIBC_2.29 cpowf128 F +GLIBC_2.29 cpowf32 F +GLIBC_2.29 cpowf32x F +GLIBC_2.29 cpowf64 F +GLIBC_2.29 cpowf64x F +GLIBC_2.29 cpowl F +GLIBC_2.29 cproj F +GLIBC_2.29 cprojf F +GLIBC_2.29 cprojf128 F +GLIBC_2.29 cprojf32 F +GLIBC_2.29 cprojf32x F +GLIBC_2.29 cprojf64 F +GLIBC_2.29 cprojf64x F +GLIBC_2.29 cprojl F +GLIBC_2.29 creal F +GLIBC_2.29 crealf F +GLIBC_2.29 crealf128 F +GLIBC_2.29 crealf32 F +GLIBC_2.29 crealf32x F +GLIBC_2.29 crealf64 F +GLIBC_2.29 crealf64x F +GLIBC_2.29 creall F +GLIBC_2.29 csin F +GLIBC_2.29 csinf F +GLIBC_2.29 csinf128 F +GLIBC_2.29 csinf32 F +GLIBC_2.29 csinf32x F +GLIBC_2.29 csinf64 F +GLIBC_2.29 csinf64x F +GLIBC_2.29 csinh F +GLIBC_2.29 csinhf F +GLIBC_2.29 csinhf128 F +GLIBC_2.29 csinhf32 F +GLIBC_2.29 csinhf32x F +GLIBC_2.29 csinhf64 F +GLIBC_2.29 csinhf64x F +GLIBC_2.29 csinhl F +GLIBC_2.29 csinl F +GLIBC_2.29 csqrt F +GLIBC_2.29 csqrtf F +GLIBC_2.29 csqrtf128 F +GLIBC_2.29 csqrtf32 F +GLIBC_2.29 csqrtf32x F +GLIBC_2.29 csqrtf64 F +GLIBC_2.29 csqrtf64x F +GLIBC_2.29 csqrtl F +GLIBC_2.29 ctan F +GLIBC_2.29 ctanf F +GLIBC_2.29 ctanf128 F +GLIBC_2.29 ctanf32 F +GLIBC_2.29 ctanf32x F +GLIBC_2.29 ctanf64 F +GLIBC_2.29 ctanf64x F +GLIBC_2.29 ctanh F +GLIBC_2.29 ctanhf F +GLIBC_2.29 ctanhf128 F +GLIBC_2.29 ctanhf32 F +GLIBC_2.29 ctanhf32x F +GLIBC_2.29 ctanhf64 F +GLIBC_2.29 ctanhf64x F +GLIBC_2.29 ctanhl F +GLIBC_2.29 ctanl F +GLIBC_2.29 daddl F +GLIBC_2.29 ddivl F +GLIBC_2.29 dmull F +GLIBC_2.29 drem F +GLIBC_2.29 dremf F +GLIBC_2.29 dreml F +GLIBC_2.29 dsubl F +GLIBC_2.29 erf F +GLIBC_2.29 erfc F +GLIBC_2.29 erfcf F +GLIBC_2.29 erfcf128 F +GLIBC_2.29 erfcf32 F +GLIBC_2.29 erfcf32x F +GLIBC_2.29 erfcf64 F +GLIBC_2.29 erfcf64x F +GLIBC_2.29 erfcl F +GLIBC_2.29 erff F +GLIBC_2.29 erff128 F +GLIBC_2.29 erff32 F +GLIBC_2.29 erff32x F +GLIBC_2.29 erff64 F +GLIBC_2.29 erff64x F +GLIBC_2.29 erfl F +GLIBC_2.29 exp F +GLIBC_2.29 exp10 F +GLIBC_2.29 exp10f F +GLIBC_2.29 exp10f128 F +GLIBC_2.29 exp10f32 F +GLIBC_2.29 exp10f32x F +GLIBC_2.29 exp10f64 F +GLIBC_2.29 exp10f64x F +GLIBC_2.29 exp10l F +GLIBC_2.29 exp2 F +GLIBC_2.29 exp2f F +GLIBC_2.29 exp2f128 F +GLIBC_2.29 exp2f32 F +GLIBC_2.29 exp2f32x F +GLIBC_2.29 exp2f64 F +GLIBC_2.29 exp2f64x F +GLIBC_2.29 exp2l F +GLIBC_2.29 expf F +GLIBC_2.29 expf128 F +GLIBC_2.29 expf32 F +GLIBC_2.29 expf32x F +GLIBC_2.29 expf64 F +GLIBC_2.29 expf64x F +GLIBC_2.29 expl F +GLIBC_2.29 expm1 F +GLIBC_2.29 expm1f F +GLIBC_2.29 expm1f128 F +GLIBC_2.29 expm1f32 F +GLIBC_2.29 expm1f32x F +GLIBC_2.29 expm1f64 F +GLIBC_2.29 expm1f64x F +GLIBC_2.29 expm1l F +GLIBC_2.29 f32addf128 F +GLIBC_2.29 f32addf32x F +GLIBC_2.29 f32addf64 F +GLIBC_2.29 f32addf64x F +GLIBC_2.29 f32divf128 F +GLIBC_2.29 f32divf32x F +GLIBC_2.29 f32divf64 F +GLIBC_2.29 f32divf64x F +GLIBC_2.29 f32mulf128 F +GLIBC_2.29 f32mulf32x F +GLIBC_2.29 f32mulf64 F +GLIBC_2.29 f32mulf64x F +GLIBC_2.29 f32subf128 F +GLIBC_2.29 f32subf32x F +GLIBC_2.29 f32subf64 F +GLIBC_2.29 f32subf64x F +GLIBC_2.29 f32xaddf128 F +GLIBC_2.29 f32xaddf64 F +GLIBC_2.29 f32xaddf64x F +GLIBC_2.29 f32xdivf128 F +GLIBC_2.29 f32xdivf64 F +GLIBC_2.29 f32xdivf64x F +GLIBC_2.29 f32xmulf128 F +GLIBC_2.29 f32xmulf64 F +GLIBC_2.29 f32xmulf64x F +GLIBC_2.29 f32xsubf128 F +GLIBC_2.29 f32xsubf64 F +GLIBC_2.29 f32xsubf64x F +GLIBC_2.29 f64addf128 F +GLIBC_2.29 f64addf64x F +GLIBC_2.29 f64divf128 F +GLIBC_2.29 f64divf64x F +GLIBC_2.29 f64mulf128 F +GLIBC_2.29 f64mulf64x F +GLIBC_2.29 f64subf128 F +GLIBC_2.29 f64subf64x F +GLIBC_2.29 f64xaddf128 F +GLIBC_2.29 f64xdivf128 F +GLIBC_2.29 f64xmulf128 F +GLIBC_2.29 f64xsubf128 F +GLIBC_2.29 fabs F +GLIBC_2.29 fabsf F +GLIBC_2.29 fabsf128 F +GLIBC_2.29 fabsf32 F +GLIBC_2.29 fabsf32x F +GLIBC_2.29 fabsf64 F +GLIBC_2.29 fabsf64x F +GLIBC_2.29 fabsl F +GLIBC_2.29 fadd F +GLIBC_2.29 faddl F +GLIBC_2.29 fdim F +GLIBC_2.29 fdimf F +GLIBC_2.29 fdimf128 F +GLIBC_2.29 fdimf32 F +GLIBC_2.29 fdimf32x F +GLIBC_2.29 fdimf64 F +GLIBC_2.29 fdimf64x F +GLIBC_2.29 fdiml F +GLIBC_2.29 fdiv F +GLIBC_2.29 fdivl F +GLIBC_2.29 feclearexcept F +GLIBC_2.29 fedisableexcept F +GLIBC_2.29 feenableexcept F +GLIBC_2.29 fegetenv F +GLIBC_2.29 fegetexcept F +GLIBC_2.29 fegetexceptflag F +GLIBC_2.29 fegetmode F +GLIBC_2.29 fegetround F +GLIBC_2.29 feholdexcept F +GLIBC_2.29 feraiseexcept F +GLIBC_2.29 fesetenv F +GLIBC_2.29 fesetexcept F +GLIBC_2.29 fesetexceptflag F +GLIBC_2.29 fesetmode F +GLIBC_2.29 fesetround F +GLIBC_2.29 fetestexcept F +GLIBC_2.29 fetestexceptflag F +GLIBC_2.29 feupdateenv F +GLIBC_2.29 finite F +GLIBC_2.29 finitef F +GLIBC_2.29 finitel F +GLIBC_2.29 floor F +GLIBC_2.29 floorf F +GLIBC_2.29 floorf128 F +GLIBC_2.29 floorf32 F +GLIBC_2.29 floorf32x F +GLIBC_2.29 floorf64 F +GLIBC_2.29 floorf64x F +GLIBC_2.29 floorl F +GLIBC_2.29 fma F +GLIBC_2.29 fmaf F +GLIBC_2.29 fmaf128 F +GLIBC_2.29 fmaf32 F +GLIBC_2.29 fmaf32x F +GLIBC_2.29 fmaf64 F +GLIBC_2.29 fmaf64x F +GLIBC_2.29 fmal F +GLIBC_2.29 fmax F +GLIBC_2.29 fmaxf F +GLIBC_2.29 fmaxf128 F +GLIBC_2.29 fmaxf32 F +GLIBC_2.29 fmaxf32x F +GLIBC_2.29 fmaxf64 F +GLIBC_2.29 fmaxf64x F +GLIBC_2.29 fmaxl F +GLIBC_2.29 fmaxmag F +GLIBC_2.29 fmaxmagf F +GLIBC_2.29 fmaxmagf128 F +GLIBC_2.29 fmaxmagf32 F +GLIBC_2.29 fmaxmagf32x F +GLIBC_2.29 fmaxmagf64 F +GLIBC_2.29 fmaxmagf64x F +GLIBC_2.29 fmaxmagl F +GLIBC_2.29 fmin F +GLIBC_2.29 fminf F +GLIBC_2.29 fminf128 F +GLIBC_2.29 fminf32 F +GLIBC_2.29 fminf32x F +GLIBC_2.29 fminf64 F +GLIBC_2.29 fminf64x F +GLIBC_2.29 fminl F +GLIBC_2.29 fminmag F +GLIBC_2.29 fminmagf F +GLIBC_2.29 fminmagf128 F +GLIBC_2.29 fminmagf32 F +GLIBC_2.29 fminmagf32x F +GLIBC_2.29 fminmagf64 F +GLIBC_2.29 fminmagf64x F +GLIBC_2.29 fminmagl F +GLIBC_2.29 fmod F +GLIBC_2.29 fmodf F +GLIBC_2.29 fmodf128 F +GLIBC_2.29 fmodf32 F +GLIBC_2.29 fmodf32x F +GLIBC_2.29 fmodf64 F +GLIBC_2.29 fmodf64x F +GLIBC_2.29 fmodl F +GLIBC_2.29 fmul F +GLIBC_2.29 fmull F +GLIBC_2.29 frexp F +GLIBC_2.29 frexpf F +GLIBC_2.29 frexpf128 F +GLIBC_2.29 frexpf32 F +GLIBC_2.29 frexpf32x F +GLIBC_2.29 frexpf64 F +GLIBC_2.29 frexpf64x F +GLIBC_2.29 frexpl F +GLIBC_2.29 fromfp F +GLIBC_2.29 fromfpf F +GLIBC_2.29 fromfpf128 F +GLIBC_2.29 fromfpf32 F +GLIBC_2.29 fromfpf32x F +GLIBC_2.29 fromfpf64 F +GLIBC_2.29 fromfpf64x F +GLIBC_2.29 fromfpl F +GLIBC_2.29 fromfpx F +GLIBC_2.29 fromfpxf F +GLIBC_2.29 fromfpxf128 F +GLIBC_2.29 fromfpxf32 F +GLIBC_2.29 fromfpxf32x F +GLIBC_2.29 fromfpxf64 F +GLIBC_2.29 fromfpxf64x F +GLIBC_2.29 fromfpxl F +GLIBC_2.29 fsub F +GLIBC_2.29 fsubl F +GLIBC_2.29 gamma F +GLIBC_2.29 gammaf F +GLIBC_2.29 gammal F +GLIBC_2.29 getpayload F +GLIBC_2.29 getpayloadf F +GLIBC_2.29 getpayloadf128 F +GLIBC_2.29 getpayloadf32 F +GLIBC_2.29 getpayloadf32x F +GLIBC_2.29 getpayloadf64 F +GLIBC_2.29 getpayloadf64x F +GLIBC_2.29 getpayloadl F +GLIBC_2.29 hypot F +GLIBC_2.29 hypotf F +GLIBC_2.29 hypotf128 F +GLIBC_2.29 hypotf32 F +GLIBC_2.29 hypotf32x F +GLIBC_2.29 hypotf64 F +GLIBC_2.29 hypotf64x F +GLIBC_2.29 hypotl F +GLIBC_2.29 ilogb F +GLIBC_2.29 ilogbf F +GLIBC_2.29 ilogbf128 F +GLIBC_2.29 ilogbf32 F +GLIBC_2.29 ilogbf32x F +GLIBC_2.29 ilogbf64 F +GLIBC_2.29 ilogbf64x F +GLIBC_2.29 ilogbl F +GLIBC_2.29 j0 F +GLIBC_2.29 j0f F +GLIBC_2.29 j0f128 F +GLIBC_2.29 j0f32 F +GLIBC_2.29 j0f32x F +GLIBC_2.29 j0f64 F +GLIBC_2.29 j0f64x F +GLIBC_2.29 j0l F +GLIBC_2.29 j1 F +GLIBC_2.29 j1f F +GLIBC_2.29 j1f128 F +GLIBC_2.29 j1f32 F +GLIBC_2.29 j1f32x F +GLIBC_2.29 j1f64 F +GLIBC_2.29 j1f64x F +GLIBC_2.29 j1l F +GLIBC_2.29 jn F +GLIBC_2.29 jnf F +GLIBC_2.29 jnf128 F +GLIBC_2.29 jnf32 F +GLIBC_2.29 jnf32x F +GLIBC_2.29 jnf64 F +GLIBC_2.29 jnf64x F +GLIBC_2.29 jnl F +GLIBC_2.29 ldexp F +GLIBC_2.29 ldexpf F +GLIBC_2.29 ldexpf128 F +GLIBC_2.29 ldexpf32 F +GLIBC_2.29 ldexpf32x F +GLIBC_2.29 ldexpf64 F +GLIBC_2.29 ldexpf64x F +GLIBC_2.29 ldexpl F +GLIBC_2.29 lgamma F +GLIBC_2.29 lgamma_r F +GLIBC_2.29 lgammaf F +GLIBC_2.29 lgammaf128 F +GLIBC_2.29 lgammaf128_r F +GLIBC_2.29 lgammaf32 F +GLIBC_2.29 lgammaf32_r F +GLIBC_2.29 lgammaf32x F +GLIBC_2.29 lgammaf32x_r F +GLIBC_2.29 lgammaf64 F +GLIBC_2.29 lgammaf64_r F +GLIBC_2.29 lgammaf64x F +GLIBC_2.29 lgammaf64x_r F +GLIBC_2.29 lgammaf_r F +GLIBC_2.29 lgammal F +GLIBC_2.29 lgammal_r F +GLIBC_2.29 llogb F +GLIBC_2.29 llogbf F +GLIBC_2.29 llogbf128 F +GLIBC_2.29 llogbf32 F +GLIBC_2.29 llogbf32x F +GLIBC_2.29 llogbf64 F +GLIBC_2.29 llogbf64x F +GLIBC_2.29 llogbl F +GLIBC_2.29 llrint F +GLIBC_2.29 llrintf F +GLIBC_2.29 llrintf128 F +GLIBC_2.29 llrintf32 F +GLIBC_2.29 llrintf32x F +GLIBC_2.29 llrintf64 F +GLIBC_2.29 llrintf64x F +GLIBC_2.29 llrintl F +GLIBC_2.29 llround F +GLIBC_2.29 llroundf F +GLIBC_2.29 llroundf128 F +GLIBC_2.29 llroundf32 F +GLIBC_2.29 llroundf32x F +GLIBC_2.29 llroundf64 F +GLIBC_2.29 llroundf64x F +GLIBC_2.29 llroundl F +GLIBC_2.29 log F +GLIBC_2.29 log10 F +GLIBC_2.29 log10f F +GLIBC_2.29 log10f128 F +GLIBC_2.29 log10f32 F +GLIBC_2.29 log10f32x F +GLIBC_2.29 log10f64 F +GLIBC_2.29 log10f64x F +GLIBC_2.29 log10l F +GLIBC_2.29 log1p F +GLIBC_2.29 log1pf F +GLIBC_2.29 log1pf128 F +GLIBC_2.29 log1pf32 F +GLIBC_2.29 log1pf32x F +GLIBC_2.29 log1pf64 F +GLIBC_2.29 log1pf64x F +GLIBC_2.29 log1pl F +GLIBC_2.29 log2 F +GLIBC_2.29 log2f F +GLIBC_2.29 log2f128 F +GLIBC_2.29 log2f32 F +GLIBC_2.29 log2f32x F +GLIBC_2.29 log2f64 F +GLIBC_2.29 log2f64x F +GLIBC_2.29 log2l F +GLIBC_2.29 logb F +GLIBC_2.29 logbf F +GLIBC_2.29 logbf128 F +GLIBC_2.29 logbf32 F +GLIBC_2.29 logbf32x F +GLIBC_2.29 logbf64 F +GLIBC_2.29 logbf64x F +GLIBC_2.29 logbl F +GLIBC_2.29 logf F +GLIBC_2.29 logf128 F +GLIBC_2.29 logf32 F +GLIBC_2.29 logf32x F +GLIBC_2.29 logf64 F +GLIBC_2.29 logf64x F +GLIBC_2.29 logl F +GLIBC_2.29 lrint F +GLIBC_2.29 lrintf F +GLIBC_2.29 lrintf128 F +GLIBC_2.29 lrintf32 F +GLIBC_2.29 lrintf32x F +GLIBC_2.29 lrintf64 F +GLIBC_2.29 lrintf64x F +GLIBC_2.29 lrintl F +GLIBC_2.29 lround F +GLIBC_2.29 lroundf F +GLIBC_2.29 lroundf128 F +GLIBC_2.29 lroundf32 F +GLIBC_2.29 lroundf32x F +GLIBC_2.29 lroundf64 F +GLIBC_2.29 lroundf64x F +GLIBC_2.29 lroundl F +GLIBC_2.29 modf F +GLIBC_2.29 modff F +GLIBC_2.29 modff128 F +GLIBC_2.29 modff32 F +GLIBC_2.29 modff32x F +GLIBC_2.29 modff64 F +GLIBC_2.29 modff64x F +GLIBC_2.29 modfl F +GLIBC_2.29 nan F +GLIBC_2.29 nanf F +GLIBC_2.29 nanf128 F +GLIBC_2.29 nanf32 F +GLIBC_2.29 nanf32x F +GLIBC_2.29 nanf64 F +GLIBC_2.29 nanf64x F +GLIBC_2.29 nanl F +GLIBC_2.29 nearbyint F +GLIBC_2.29 nearbyintf F +GLIBC_2.29 nearbyintf128 F +GLIBC_2.29 nearbyintf32 F +GLIBC_2.29 nearbyintf32x F +GLIBC_2.29 nearbyintf64 F +GLIBC_2.29 nearbyintf64x F +GLIBC_2.29 nearbyintl F +GLIBC_2.29 nextafter F +GLIBC_2.29 nextafterf F +GLIBC_2.29 nextafterf128 F +GLIBC_2.29 nextafterf32 F +GLIBC_2.29 nextafterf32x F +GLIBC_2.29 nextafterf64 F +GLIBC_2.29 nextafterf64x F +GLIBC_2.29 nextafterl F +GLIBC_2.29 nextdown F +GLIBC_2.29 nextdownf F +GLIBC_2.29 nextdownf128 F +GLIBC_2.29 nextdownf32 F +GLIBC_2.29 nextdownf32x F +GLIBC_2.29 nextdownf64 F +GLIBC_2.29 nextdownf64x F +GLIBC_2.29 nextdownl F +GLIBC_2.29 nexttoward F +GLIBC_2.29 nexttowardf F +GLIBC_2.29 nexttowardl F +GLIBC_2.29 nextup F +GLIBC_2.29 nextupf F +GLIBC_2.29 nextupf128 F +GLIBC_2.29 nextupf32 F +GLIBC_2.29 nextupf32x F +GLIBC_2.29 nextupf64 F +GLIBC_2.29 nextupf64x F +GLIBC_2.29 nextupl F +GLIBC_2.29 pow F +GLIBC_2.29 powf F +GLIBC_2.29 powf128 F +GLIBC_2.29 powf32 F +GLIBC_2.29 powf32x F +GLIBC_2.29 powf64 F +GLIBC_2.29 powf64x F +GLIBC_2.29 powl F +GLIBC_2.29 remainder F +GLIBC_2.29 remainderf F +GLIBC_2.29 remainderf128 F +GLIBC_2.29 remainderf32 F +GLIBC_2.29 remainderf32x F +GLIBC_2.29 remainderf64 F +GLIBC_2.29 remainderf64x F +GLIBC_2.29 remainderl F +GLIBC_2.29 remquo F +GLIBC_2.29 remquof F +GLIBC_2.29 remquof128 F +GLIBC_2.29 remquof32 F +GLIBC_2.29 remquof32x F +GLIBC_2.29 remquof64 F +GLIBC_2.29 remquof64x F +GLIBC_2.29 remquol F +GLIBC_2.29 rint F +GLIBC_2.29 rintf F +GLIBC_2.29 rintf128 F +GLIBC_2.29 rintf32 F +GLIBC_2.29 rintf32x F +GLIBC_2.29 rintf64 F +GLIBC_2.29 rintf64x F +GLIBC_2.29 rintl F +GLIBC_2.29 round F +GLIBC_2.29 roundeven F +GLIBC_2.29 roundevenf F +GLIBC_2.29 roundevenf128 F +GLIBC_2.29 roundevenf32 F +GLIBC_2.29 roundevenf32x F +GLIBC_2.29 roundevenf64 F +GLIBC_2.29 roundevenf64x F +GLIBC_2.29 roundevenl F +GLIBC_2.29 roundf F +GLIBC_2.29 roundf128 F +GLIBC_2.29 roundf32 F +GLIBC_2.29 roundf32x F +GLIBC_2.29 roundf64 F +GLIBC_2.29 roundf64x F +GLIBC_2.29 roundl F +GLIBC_2.29 scalb F +GLIBC_2.29 scalbf F +GLIBC_2.29 scalbl F +GLIBC_2.29 scalbln F +GLIBC_2.29 scalblnf F +GLIBC_2.29 scalblnf128 F +GLIBC_2.29 scalblnf32 F +GLIBC_2.29 scalblnf32x F +GLIBC_2.29 scalblnf64 F +GLIBC_2.29 scalblnf64x F +GLIBC_2.29 scalblnl F +GLIBC_2.29 scalbn F +GLIBC_2.29 scalbnf F +GLIBC_2.29 scalbnf128 F +GLIBC_2.29 scalbnf32 F +GLIBC_2.29 scalbnf32x F +GLIBC_2.29 scalbnf64 F +GLIBC_2.29 scalbnf64x F +GLIBC_2.29 scalbnl F +GLIBC_2.29 setpayload F +GLIBC_2.29 setpayloadf F +GLIBC_2.29 setpayloadf128 F +GLIBC_2.29 setpayloadf32 F +GLIBC_2.29 setpayloadf32x F +GLIBC_2.29 setpayloadf64 F +GLIBC_2.29 setpayloadf64x F +GLIBC_2.29 setpayloadl F +GLIBC_2.29 setpayloadsig F +GLIBC_2.29 setpayloadsigf F +GLIBC_2.29 setpayloadsigf128 F +GLIBC_2.29 setpayloadsigf32 F +GLIBC_2.29 setpayloadsigf32x F +GLIBC_2.29 setpayloadsigf64 F +GLIBC_2.29 setpayloadsigf64x F +GLIBC_2.29 setpayloadsigl F +GLIBC_2.29 signgam D 0x4 +GLIBC_2.29 significand F +GLIBC_2.29 significandf F +GLIBC_2.29 significandl F +GLIBC_2.29 sin F +GLIBC_2.29 sincos F +GLIBC_2.29 sincosf F +GLIBC_2.29 sincosf128 F +GLIBC_2.29 sincosf32 F +GLIBC_2.29 sincosf32x F +GLIBC_2.29 sincosf64 F +GLIBC_2.29 sincosf64x F +GLIBC_2.29 sincosl F +GLIBC_2.29 sinf F +GLIBC_2.29 sinf128 F +GLIBC_2.29 sinf32 F +GLIBC_2.29 sinf32x F +GLIBC_2.29 sinf64 F +GLIBC_2.29 sinf64x F +GLIBC_2.29 sinh F +GLIBC_2.29 sinhf F +GLIBC_2.29 sinhf128 F +GLIBC_2.29 sinhf32 F +GLIBC_2.29 sinhf32x F +GLIBC_2.29 sinhf64 F +GLIBC_2.29 sinhf64x F +GLIBC_2.29 sinhl F +GLIBC_2.29 sinl F +GLIBC_2.29 sqrt F +GLIBC_2.29 sqrtf F +GLIBC_2.29 sqrtf128 F +GLIBC_2.29 sqrtf32 F +GLIBC_2.29 sqrtf32x F +GLIBC_2.29 sqrtf64 F +GLIBC_2.29 sqrtf64x F +GLIBC_2.29 sqrtl F +GLIBC_2.29 tan F +GLIBC_2.29 tanf F +GLIBC_2.29 tanf128 F +GLIBC_2.29 tanf32 F +GLIBC_2.29 tanf32x F +GLIBC_2.29 tanf64 F +GLIBC_2.29 tanf64x F +GLIBC_2.29 tanh F +GLIBC_2.29 tanhf F +GLIBC_2.29 tanhf128 F +GLIBC_2.29 tanhf32 F +GLIBC_2.29 tanhf32x F +GLIBC_2.29 tanhf64 F +GLIBC_2.29 tanhf64x F +GLIBC_2.29 tanhl F +GLIBC_2.29 tanl F +GLIBC_2.29 tgamma F +GLIBC_2.29 tgammaf F +GLIBC_2.29 tgammaf128 F +GLIBC_2.29 tgammaf32 F +GLIBC_2.29 tgammaf32x F +GLIBC_2.29 tgammaf64 F +GLIBC_2.29 tgammaf64x F +GLIBC_2.29 tgammal F +GLIBC_2.29 totalorder F +GLIBC_2.29 totalorderf F +GLIBC_2.29 totalorderf128 F +GLIBC_2.29 totalorderf32 F +GLIBC_2.29 totalorderf32x F +GLIBC_2.29 totalorderf64 F +GLIBC_2.29 totalorderf64x F +GLIBC_2.29 totalorderl F +GLIBC_2.29 totalordermag F +GLIBC_2.29 totalordermagf F +GLIBC_2.29 totalordermagf128 F +GLIBC_2.29 totalordermagf32 F +GLIBC_2.29 totalordermagf32x F +GLIBC_2.29 totalordermagf64 F +GLIBC_2.29 totalordermagf64x F +GLIBC_2.29 totalordermagl F +GLIBC_2.29 trunc F +GLIBC_2.29 truncf F +GLIBC_2.29 truncf128 F +GLIBC_2.29 truncf32 F +GLIBC_2.29 truncf32x F +GLIBC_2.29 truncf64 F +GLIBC_2.29 truncf64x F +GLIBC_2.29 truncl F +GLIBC_2.29 ufromfp F +GLIBC_2.29 ufromfpf F +GLIBC_2.29 ufromfpf128 F +GLIBC_2.29 ufromfpf32 F +GLIBC_2.29 ufromfpf32x F +GLIBC_2.29 ufromfpf64 F +GLIBC_2.29 ufromfpf64x F +GLIBC_2.29 ufromfpl F +GLIBC_2.29 ufromfpx F +GLIBC_2.29 ufromfpxf F +GLIBC_2.29 ufromfpxf128 F +GLIBC_2.29 ufromfpxf32 F +GLIBC_2.29 ufromfpxf32x F +GLIBC_2.29 ufromfpxf64 F +GLIBC_2.29 ufromfpxf64x F +GLIBC_2.29 ufromfpxl F +GLIBC_2.29 y0 F +GLIBC_2.29 y0f F +GLIBC_2.29 y0f128 F +GLIBC_2.29 y0f32 F +GLIBC_2.29 y0f32x F +GLIBC_2.29 y0f64 F +GLIBC_2.29 y0f64x F +GLIBC_2.29 y0l F +GLIBC_2.29 y1 F +GLIBC_2.29 y1f F +GLIBC_2.29 y1f128 F +GLIBC_2.29 y1f32 F +GLIBC_2.29 y1f32x F +GLIBC_2.29 y1f64 F +GLIBC_2.29 y1f64x F +GLIBC_2.29 y1l F +GLIBC_2.29 yn F +GLIBC_2.29 ynf F +GLIBC_2.29 ynf128 F +GLIBC_2.29 ynf32 F +GLIBC_2.29 ynf32x F +GLIBC_2.29 ynf64 F +GLIBC_2.29 ynf64x F +GLIBC_2.29 ynl F diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist new file mode 100644 index 0000000000..ea4b79a518 --- /dev/null +++ b/sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist @@ -0,0 +1,235 @@ +GLIBC_2.29 _IO_flockfile F +GLIBC_2.29 _IO_ftrylockfile F +GLIBC_2.29 _IO_funlockfile F +GLIBC_2.29 __close F +GLIBC_2.29 __connect F +GLIBC_2.29 __errno_location F +GLIBC_2.29 __h_errno_location F +GLIBC_2.29 __libc_allocate_rtsig F +GLIBC_2.29 __libc_current_sigrtmax F +GLIBC_2.29 __libc_current_sigrtmin F +GLIBC_2.29 __lseek F +GLIBC_2.29 __nanosleep F +GLIBC_2.29 __open F +GLIBC_2.29 __open64 F +GLIBC_2.29 __pread64 F +GLIBC_2.29 __pthread_cleanup_routine F +GLIBC_2.29 __pthread_getspecific F +GLIBC_2.29 __pthread_key_create F +GLIBC_2.29 __pthread_mutex_destroy F +GLIBC_2.29 __pthread_mutex_init F +GLIBC_2.29 __pthread_mutex_lock F +GLIBC_2.29 __pthread_mutex_trylock F +GLIBC_2.29 __pthread_mutex_unlock F +GLIBC_2.29 __pthread_mutexattr_destroy F +GLIBC_2.29 __pthread_mutexattr_init F +GLIBC_2.29 __pthread_mutexattr_settype F +GLIBC_2.29 __pthread_once F +GLIBC_2.29 __pthread_register_cancel F +GLIBC_2.29 __pthread_register_cancel_defer F +GLIBC_2.29 __pthread_rwlock_destroy F +GLIBC_2.29 __pthread_rwlock_init F +GLIBC_2.29 __pthread_rwlock_rdlock F +GLIBC_2.29 __pthread_rwlock_tryrdlock F +GLIBC_2.29 __pthread_rwlock_trywrlock F +GLIBC_2.29 __pthread_rwlock_unlock F +GLIBC_2.29 __pthread_rwlock_wrlock F +GLIBC_2.29 __pthread_setspecific F +GLIBC_2.29 __pthread_unregister_cancel F +GLIBC_2.29 __pthread_unregister_cancel_restore F +GLIBC_2.29 __pthread_unwind_next F +GLIBC_2.29 __pwrite64 F +GLIBC_2.29 __read F +GLIBC_2.29 __res_state F +GLIBC_2.29 __send F +GLIBC_2.29 __sigaction F +GLIBC_2.29 __wait F +GLIBC_2.29 __write F +GLIBC_2.29 _pthread_cleanup_pop F +GLIBC_2.29 _pthread_cleanup_pop_restore F +GLIBC_2.29 _pthread_cleanup_push F +GLIBC_2.29 _pthread_cleanup_push_defer F +GLIBC_2.29 accept F +GLIBC_2.29 call_once F +GLIBC_2.29 close F +GLIBC_2.29 cnd_broadcast F +GLIBC_2.29 cnd_destroy F +GLIBC_2.29 cnd_init F +GLIBC_2.29 cnd_signal F +GLIBC_2.29 cnd_timedwait F +GLIBC_2.29 cnd_wait F +GLIBC_2.29 connect F +GLIBC_2.29 flockfile F +GLIBC_2.29 fsync F +GLIBC_2.29 ftrylockfile F +GLIBC_2.29 funlockfile F +GLIBC_2.29 lseek F +GLIBC_2.29 lseek64 F +GLIBC_2.29 msync F +GLIBC_2.29 mtx_destroy F +GLIBC_2.29 mtx_init F +GLIBC_2.29 mtx_lock F +GLIBC_2.29 mtx_timedlock F +GLIBC_2.29 mtx_trylock F +GLIBC_2.29 mtx_unlock F +GLIBC_2.29 nanosleep F +GLIBC_2.29 open F +GLIBC_2.29 open64 F +GLIBC_2.29 pause F +GLIBC_2.29 pread F +GLIBC_2.29 pread64 F +GLIBC_2.29 pthread_attr_destroy F +GLIBC_2.29 pthread_attr_getaffinity_np F +GLIBC_2.29 pthread_attr_getdetachstate F +GLIBC_2.29 pthread_attr_getguardsize F +GLIBC_2.29 pthread_attr_getinheritsched F +GLIBC_2.29 pthread_attr_getschedparam F +GLIBC_2.29 pthread_attr_getschedpolicy F +GLIBC_2.29 pthread_attr_getscope F +GLIBC_2.29 pthread_attr_getstack F +GLIBC_2.29 pthread_attr_getstackaddr F +GLIBC_2.29 pthread_attr_getstacksize F +GLIBC_2.29 pthread_attr_init F +GLIBC_2.29 pthread_attr_setaffinity_np F +GLIBC_2.29 pthread_attr_setdetachstate F +GLIBC_2.29 pthread_attr_setguardsize F +GLIBC_2.29 pthread_attr_setinheritsched F +GLIBC_2.29 pthread_attr_setschedparam F +GLIBC_2.29 pthread_attr_setschedpolicy F +GLIBC_2.29 pthread_attr_setscope F +GLIBC_2.29 pthread_attr_setstack F +GLIBC_2.29 pthread_attr_setstackaddr F +GLIBC_2.29 pthread_attr_setstacksize F +GLIBC_2.29 pthread_barrier_destroy F +GLIBC_2.29 pthread_barrier_init F +GLIBC_2.29 pthread_barrier_wait F +GLIBC_2.29 pthread_barrierattr_destroy F +GLIBC_2.29 pthread_barrierattr_getpshared F +GLIBC_2.29 pthread_barrierattr_init F +GLIBC_2.29 pthread_barrierattr_setpshared F +GLIBC_2.29 pthread_cancel F +GLIBC_2.29 pthread_cond_broadcast F +GLIBC_2.29 pthread_cond_destroy F +GLIBC_2.29 pthread_cond_init F +GLIBC_2.29 pthread_cond_signal F +GLIBC_2.29 pthread_cond_timedwait F +GLIBC_2.29 pthread_cond_wait F +GLIBC_2.29 pthread_condattr_destroy F +GLIBC_2.29 pthread_condattr_getclock F +GLIBC_2.29 pthread_condattr_getpshared F +GLIBC_2.29 pthread_condattr_init F +GLIBC_2.29 pthread_condattr_setclock F +GLIBC_2.29 pthread_condattr_setpshared F +GLIBC_2.29 pthread_create F +GLIBC_2.29 pthread_detach F +GLIBC_2.29 pthread_equal F +GLIBC_2.29 pthread_exit F +GLIBC_2.29 pthread_getaffinity_np F +GLIBC_2.29 pthread_getattr_default_np F +GLIBC_2.29 pthread_getattr_np F +GLIBC_2.29 pthread_getconcurrency F +GLIBC_2.29 pthread_getcpuclockid F +GLIBC_2.29 pthread_getname_np F +GLIBC_2.29 pthread_getschedparam F +GLIBC_2.29 pthread_getspecific F +GLIBC_2.29 pthread_join F +GLIBC_2.29 pthread_key_create F +GLIBC_2.29 pthread_key_delete F +GLIBC_2.29 pthread_kill F +GLIBC_2.29 pthread_kill_other_threads_np F +GLIBC_2.29 pthread_mutex_consistent F +GLIBC_2.29 pthread_mutex_consistent_np F +GLIBC_2.29 pthread_mutex_destroy F +GLIBC_2.29 pthread_mutex_getprioceiling F +GLIBC_2.29 pthread_mutex_init F +GLIBC_2.29 pthread_mutex_lock F +GLIBC_2.29 pthread_mutex_setprioceiling F +GLIBC_2.29 pthread_mutex_timedlock F +GLIBC_2.29 pthread_mutex_trylock F +GLIBC_2.29 pthread_mutex_unlock F +GLIBC_2.29 pthread_mutexattr_destroy F +GLIBC_2.29 pthread_mutexattr_getkind_np F +GLIBC_2.29 pthread_mutexattr_getprioceiling F +GLIBC_2.29 pthread_mutexattr_getprotocol F +GLIBC_2.29 pthread_mutexattr_getpshared F +GLIBC_2.29 pthread_mutexattr_getrobust F +GLIBC_2.29 pthread_mutexattr_getrobust_np F +GLIBC_2.29 pthread_mutexattr_gettype F +GLIBC_2.29 pthread_mutexattr_init F +GLIBC_2.29 pthread_mutexattr_setkind_np F +GLIBC_2.29 pthread_mutexattr_setprioceiling F +GLIBC_2.29 pthread_mutexattr_setprotocol F +GLIBC_2.29 pthread_mutexattr_setpshared F +GLIBC_2.29 pthread_mutexattr_setrobust F +GLIBC_2.29 pthread_mutexattr_setrobust_np F +GLIBC_2.29 pthread_mutexattr_settype F +GLIBC_2.29 pthread_once F +GLIBC_2.29 pthread_rwlock_destroy F +GLIBC_2.29 pthread_rwlock_init F +GLIBC_2.29 pthread_rwlock_rdlock F +GLIBC_2.29 pthread_rwlock_timedrdlock F +GLIBC_2.29 pthread_rwlock_timedwrlock F +GLIBC_2.29 pthread_rwlock_tryrdlock F +GLIBC_2.29 pthread_rwlock_trywrlock F +GLIBC_2.29 pthread_rwlock_unlock F +GLIBC_2.29 pthread_rwlock_wrlock F +GLIBC_2.29 pthread_rwlockattr_destroy F +GLIBC_2.29 pthread_rwlockattr_getkind_np F +GLIBC_2.29 pthread_rwlockattr_getpshared F +GLIBC_2.29 pthread_rwlockattr_init F +GLIBC_2.29 pthread_rwlockattr_setkind_np F +GLIBC_2.29 pthread_rwlockattr_setpshared F +GLIBC_2.29 pthread_setaffinity_np F +GLIBC_2.29 pthread_setattr_default_np F +GLIBC_2.29 pthread_setcancelstate F +GLIBC_2.29 pthread_setcanceltype F +GLIBC_2.29 pthread_setconcurrency F +GLIBC_2.29 pthread_setname_np F +GLIBC_2.29 pthread_setschedparam F +GLIBC_2.29 pthread_setschedprio F +GLIBC_2.29 pthread_setspecific F +GLIBC_2.29 pthread_sigmask F +GLIBC_2.29 pthread_sigqueue F +GLIBC_2.29 pthread_spin_destroy F +GLIBC_2.29 pthread_spin_init F +GLIBC_2.29 pthread_spin_lock F +GLIBC_2.29 pthread_spin_trylock F +GLIBC_2.29 pthread_spin_unlock F +GLIBC_2.29 pthread_testcancel F +GLIBC_2.29 pthread_timedjoin_np F +GLIBC_2.29 pthread_tryjoin_np F +GLIBC_2.29 pthread_yield F +GLIBC_2.29 pwrite F +GLIBC_2.29 pwrite64 F +GLIBC_2.29 raise F +GLIBC_2.29 read F +GLIBC_2.29 recv F +GLIBC_2.29 recvfrom F +GLIBC_2.29 recvmsg F +GLIBC_2.29 sem_close F +GLIBC_2.29 sem_destroy F +GLIBC_2.29 sem_getvalue F +GLIBC_2.29 sem_init F +GLIBC_2.29 sem_open F +GLIBC_2.29 sem_post F +GLIBC_2.29 sem_timedwait F +GLIBC_2.29 sem_trywait F +GLIBC_2.29 sem_unlink F +GLIBC_2.29 sem_wait F +GLIBC_2.29 send F +GLIBC_2.29 sendmsg F +GLIBC_2.29 sendto F +GLIBC_2.29 sigaction F +GLIBC_2.29 sigwait F +GLIBC_2.29 tcdrain F +GLIBC_2.29 thrd_create F +GLIBC_2.29 thrd_detach F +GLIBC_2.29 thrd_exit F +GLIBC_2.29 thrd_join F +GLIBC_2.29 tss_create F +GLIBC_2.29 tss_delete F +GLIBC_2.29 tss_get F +GLIBC_2.29 tss_set F +GLIBC_2.29 wait F +GLIBC_2.29 waitpid F +GLIBC_2.29 write F diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libresolv.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libresolv.abilist new file mode 100644 index 0000000000..2830a7efd1 --- /dev/null +++ b/sysdeps/unix/sysv/linux/riscv/rv32/libresolv.abilist @@ -0,0 +1,79 @@ +GLIBC_2.29 __b64_ntop F +GLIBC_2.29 __b64_pton F +GLIBC_2.29 __dn_comp F +GLIBC_2.29 __dn_count_labels F +GLIBC_2.29 __dn_expand F +GLIBC_2.29 __dn_skipname F +GLIBC_2.29 __fp_nquery F +GLIBC_2.29 __fp_query F +GLIBC_2.29 __fp_resstat F +GLIBC_2.29 __hostalias F +GLIBC_2.29 __loc_aton F +GLIBC_2.29 __loc_ntoa F +GLIBC_2.29 __p_cdname F +GLIBC_2.29 __p_cdnname F +GLIBC_2.29 __p_class F +GLIBC_2.29 __p_class_syms D 0x54 +GLIBC_2.29 __p_fqname F +GLIBC_2.29 __p_fqnname F +GLIBC_2.29 __p_option F +GLIBC_2.29 __p_query F +GLIBC_2.29 __p_rcode F +GLIBC_2.29 __p_time F +GLIBC_2.29 __p_type F +GLIBC_2.29 __p_type_syms D 0x228 +GLIBC_2.29 __putlong F +GLIBC_2.29 __putshort F +GLIBC_2.29 __res_close F +GLIBC_2.29 __res_dnok F +GLIBC_2.29 __res_hnok F +GLIBC_2.29 __res_hostalias F +GLIBC_2.29 __res_isourserver F +GLIBC_2.29 __res_mailok F +GLIBC_2.29 __res_mkquery F +GLIBC_2.29 __res_nameinquery F +GLIBC_2.29 __res_nmkquery F +GLIBC_2.29 __res_nquery F +GLIBC_2.29 __res_nquerydomain F +GLIBC_2.29 __res_nsearch F +GLIBC_2.29 __res_nsend F +GLIBC_2.29 __res_ownok F +GLIBC_2.29 __res_queriesmatch F +GLIBC_2.29 __res_query F +GLIBC_2.29 __res_querydomain F +GLIBC_2.29 __res_search F +GLIBC_2.29 __res_send F +GLIBC_2.29 __sym_ntop F +GLIBC_2.29 __sym_ntos F +GLIBC_2.29 __sym_ston F +GLIBC_2.29 _getlong F +GLIBC_2.29 _getshort F +GLIBC_2.29 inet_net_ntop F +GLIBC_2.29 inet_net_pton F +GLIBC_2.29 inet_neta F +GLIBC_2.29 ns_datetosecs F +GLIBC_2.29 ns_format_ttl F +GLIBC_2.29 ns_get16 F +GLIBC_2.29 ns_get32 F +GLIBC_2.29 ns_initparse F +GLIBC_2.29 ns_makecanon F +GLIBC_2.29 ns_msg_getflag F +GLIBC_2.29 ns_name_compress F +GLIBC_2.29 ns_name_ntol F +GLIBC_2.29 ns_name_ntop F +GLIBC_2.29 ns_name_pack F +GLIBC_2.29 ns_name_pton F +GLIBC_2.29 ns_name_rollback F +GLIBC_2.29 ns_name_skip F +GLIBC_2.29 ns_name_uncompress F +GLIBC_2.29 ns_name_unpack F +GLIBC_2.29 ns_parse_ttl F +GLIBC_2.29 ns_parserr F +GLIBC_2.29 ns_put16 F +GLIBC_2.29 ns_put32 F +GLIBC_2.29 ns_samedomain F +GLIBC_2.29 ns_samename F +GLIBC_2.29 ns_skiprr F +GLIBC_2.29 ns_sprintrr F +GLIBC_2.29 ns_sprintrrf F +GLIBC_2.29 ns_subdomain F diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/librt.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/librt.abilist new file mode 100644 index 0000000000..c6690ef7c1 --- /dev/null +++ b/sysdeps/unix/sysv/linux/riscv/rv32/librt.abilist @@ -0,0 +1,35 @@ +GLIBC_2.29 __mq_open_2 F +GLIBC_2.29 aio_cancel F +GLIBC_2.29 aio_cancel64 F +GLIBC_2.29 aio_error F +GLIBC_2.29 aio_error64 F +GLIBC_2.29 aio_fsync F +GLIBC_2.29 aio_fsync64 F +GLIBC_2.29 aio_init F +GLIBC_2.29 aio_read F +GLIBC_2.29 aio_read64 F +GLIBC_2.29 aio_return F +GLIBC_2.29 aio_return64 F +GLIBC_2.29 aio_suspend F +GLIBC_2.29 aio_suspend64 F +GLIBC_2.29 aio_write F +GLIBC_2.29 aio_write64 F +GLIBC_2.29 lio_listio F +GLIBC_2.29 lio_listio64 F +GLIBC_2.29 mq_close F +GLIBC_2.29 mq_getattr F +GLIBC_2.29 mq_notify F +GLIBC_2.29 mq_open F +GLIBC_2.29 mq_receive F +GLIBC_2.29 mq_send F +GLIBC_2.29 mq_setattr F +GLIBC_2.29 mq_timedreceive F +GLIBC_2.29 mq_timedsend F +GLIBC_2.29 mq_unlink F +GLIBC_2.29 shm_open F +GLIBC_2.29 shm_unlink F +GLIBC_2.29 timer_create F +GLIBC_2.29 timer_delete F +GLIBC_2.29 timer_getoverrun F +GLIBC_2.29 timer_gettime F +GLIBC_2.29 timer_settime F diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libthread_db.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libthread_db.abilist new file mode 100644 index 0000000000..37e9bace55 --- /dev/null +++ b/sysdeps/unix/sysv/linux/riscv/rv32/libthread_db.abilist @@ -0,0 +1,40 @@ +GLIBC_2.29 td_init F +GLIBC_2.29 td_log F +GLIBC_2.29 td_symbol_list F +GLIBC_2.29 td_ta_clear_event F +GLIBC_2.29 td_ta_delete F +GLIBC_2.29 td_ta_enable_stats F +GLIBC_2.29 td_ta_event_addr F +GLIBC_2.29 td_ta_event_getmsg F +GLIBC_2.29 td_ta_get_nthreads F +GLIBC_2.29 td_ta_get_ph F +GLIBC_2.29 td_ta_get_stats F +GLIBC_2.29 td_ta_map_id2thr F +GLIBC_2.29 td_ta_map_lwp2thr F +GLIBC_2.29 td_ta_new F +GLIBC_2.29 td_ta_reset_stats F +GLIBC_2.29 td_ta_set_event F +GLIBC_2.29 td_ta_setconcurrency F +GLIBC_2.29 td_ta_thr_iter F +GLIBC_2.29 td_ta_tsd_iter F +GLIBC_2.29 td_thr_clear_event F +GLIBC_2.29 td_thr_dbresume F +GLIBC_2.29 td_thr_dbsuspend F +GLIBC_2.29 td_thr_event_enable F +GLIBC_2.29 td_thr_event_getmsg F +GLIBC_2.29 td_thr_get_info F +GLIBC_2.29 td_thr_getfpregs F +GLIBC_2.29 td_thr_getgregs F +GLIBC_2.29 td_thr_getxregs F +GLIBC_2.29 td_thr_getxregsize F +GLIBC_2.29 td_thr_set_event F +GLIBC_2.29 td_thr_setfpregs F +GLIBC_2.29 td_thr_setgregs F +GLIBC_2.29 td_thr_setprio F +GLIBC_2.29 td_thr_setsigpending F +GLIBC_2.29 td_thr_setxregs F +GLIBC_2.29 td_thr_sigsetmask F +GLIBC_2.29 td_thr_tls_get_addr F +GLIBC_2.29 td_thr_tlsbase F +GLIBC_2.29 td_thr_tsd F +GLIBC_2.29 td_thr_validate F diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libutil.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libutil.abilist new file mode 100644 index 0000000000..cbd11999a4 --- /dev/null +++ b/sysdeps/unix/sysv/linux/riscv/rv32/libutil.abilist @@ -0,0 +1,6 @@ +GLIBC_2.29 forkpty F +GLIBC_2.29 login F +GLIBC_2.29 login_tty F +GLIBC_2.29 logout F +GLIBC_2.29 logwtmp F +GLIBC_2.29 openpty F From patchwork Wed Jul 17 00:09:34 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alistair Francis X-Patchwork-Id: 1133014 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=sourceware.org (client-ip=209.132.180.131; helo=sourceware.org; envelope-from=libc-alpha-return-103704-incoming=patchwork.ozlabs.org@sourceware.org; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=wdc.com Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; secure) header.d=sourceware.org header.i=@sourceware.org header.b="uVD60CDu"; dkim=pass (2048-bit key; unprotected) header.d=wdc.com header.i=@wdc.com header.b="Wqsrxfn3"; dkim-atps=neutral Received: from sourceware.org (server1.sourceware.org [209.132.180.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 45pHp608dyz9s8m for ; Wed, 17 Jul 2019 10:14:53 +1000 (AEST) DomainKey-Signature: a=rsa-sha1; c=nofws; d=sourceware.org; h=list-id :list-unsubscribe:list-subscribe:list-archive:list-post :list-help:sender:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; q=dns; s= default; b=W5wJTansBxIJyGsXSYTJ3IL8tMLX0Pb4YIzEbSaPxtzW5jL1F6Bao xVJ6dMRTJ9eU+KK40bM/oSTVR5Sp9Bhph7AQEa/uYuVDXkINXCB4lkqac3Z688mJ HDyb3rBUHAJqv1b4H50V6Q6A96UzVQXXYulwkYHHL4r6+FMhJrbMPQ= DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=sourceware.org; h=list-id :list-unsubscribe:list-subscribe:list-archive:list-post :list-help:sender:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; s=default; bh=3YgPrEkZeQQ4V1ImSifndL9M+4I=; b=uVD60CDukNhEE0JkxFWOMSVD+JNq UWLJh10b/Crud9XUhWJxzOnOGQiRcrAVkEi8WX6rSsrBe0BHv9fxMBfG5Q7wcWrs Sw71SrwXTLzI7DDwoPsGrf+sw20mW0virSpOF7GvXpeluTMZMCOxu1lX3auMG5b4 p/nm8u4la8w8f5c= Received: (qmail 21395 invoked by alias); 17 Jul 2019 00:12:31 -0000 Mailing-List: contact libc-alpha-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: libc-alpha-owner@sourceware.org Delivered-To: mailing list libc-alpha@sourceware.org Received: (qmail 21317 invoked by uid 89); 17 Jul 2019 00:12:30 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-26.7 required=5.0 tests=AWL, BAYES_00, GIT_PATCH_0, GIT_PATCH_1, GIT_PATCH_2, GIT_PATCH_3 autolearn=ham version=3.3.1 spammy= X-HELO: esa2.hgst.iphmx.com DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=wdc.com; i=@wdc.com; q=dns/txt; s=dkim.wdc.com; t=1563322356; x=1594858356; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=b0fZ3MLsmOZWYTxj54vGsE5NYLms681md/OAATPq8qs=; b=Wqsrxfn3Wciu2jwViIxTWXR9sc+yZYQiLuaO9/Xc5t33w6npqNNAPydn 2YrA0Fz2OiCNVVxYM+IcZN1vhF4kp/R0ONr0L73yU+7bXatsghapGKr0f qrcZRbxT7GFpyZpMa80Zvs65WGwuz7MiDIjl30CFTm7Ak7UHr8JgLTpj3 wTPEanAcbXKSyrCJO+hZ4gPqSxoTYqnKsUcG+8EO35/j15HJmrSFSNVns 0PoAh76/x02nFrKczlNsVCbqfNG8oMzlhmXCe4RtxEm7aQXRs7yOVh9bp NhNltnvefuA6QgkKmd1uid0uCb06jYR/ErIoSgrorR5lQzNTTJOin218h g==; IronPort-SDR: YNHzbDLSkQN10EE2oK9nYrC5BgmnwARBjHTvbj9Zyc5r1y1avZ9yATZ88vy5avPwF6tU8FS5P6 DguVGikV6Y2+fUkAVQpYGVkAqTr7dmsfCIKWnlv+r4bu0INqi8R1PoTV0Jhwe0zjeIUC0NroLg N948ivwPGP7NHwO4V7ljTjLp5FIkPyQx3e0UfeY4xTx0CHuxCW7Sw2JhTfWVMaVsg9BBugHbjz F+b+InkA2xiuuoYaFfI28jfoH/u0QR/3fImsjXFPt7CiQrbsgAcgkLTwOdZz/jzptIIGXZIGuG aps= IronPort-SDR: VKTSOHQdFQRvhYnmkvRC6IxhW74Yc6yg4UkYz+RaFL9LHfa/MHAbXOptMfOrDkzqwWn0Fn0ENY E5S0olhLo46de8L5uTy8eWVtcxrodoyIskP2BhK8ElTNn2vIJQ/BragEO7ALGnzTrFpwiAraSN z+3m2u59w6nfR4Mh+6MYDeEYKFE2J0TW2P/O+mH/K0o0c23DgzjdmLUHCRTX07CkzPqebvU1/8 yaj7KvFuvEM7fSU71lFmbhQQa3ZnrJV+hzLeydlKlWFv0Bm7zDVwmbHQJ78ZEmz9ld1qCqYZqT MerFnbaHzatEONsqY6y3FfPf IronPort-SDR: f31Uf8eL3z88clqc/l1SVBxNEmTxQpoS1vhJVmojh+NWL1xdyTpc0fhvfkwSbpFG2IzYr7EWYO xom8ZLLdonC95hi1jMURW9BYJ2828OER3J5uY6vvzZcZnU7nY6cTxQdojB7fPzbthwHfbW9l0S HiMvLy50bLOp28uj3gCMvwkcmwC4YZwzbW1QDpA0sd0+b5c70Ls6F3eic+dugqYL81+NlOtrta 91qIn/ma8Dy698N0hdX0CsamvRoXEHCMGb9cHOjJmaKGBpCra3owaI057cH5/fTMPyP19MnP6K /zI= From: Alistair Francis To: libc-alpha@sourceware.org Cc: arnd@arndb.de, adhemerval.zanella@linaro.org, fweimer@redhat.com, palmer@sifive.com, macro@wdc.com, zongbox@gmail.com, alistair.francis@wdc.com, alistair23@gmail.com Subject: [RFC v3 20/23] RISC-V: Build Infastructure for the 32-bit Date: Tue, 16 Jul 2019 17:09:34 -0700 Message-Id: In-Reply-To: References: MIME-Version: 1.0 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. 2018-11-29 Zong Li * sysdeps/riscv/rv32/Implies-after: New file. * sysdeps/riscv/rv32/rvd/Implies: Likewise. * sysdeps/riscv/rv32/rvf/Implies: Likewise. * sysdeps/unix/sysv/linux/riscv/rv32/Implies: Likewise. * sysdeps/unix/sysv/linux/riscv/Makefile: Support rv32. * sysdeps/unix/sysv/linux/riscv/configure: Likewise. * sysdeps/unix/sysv/linux/riscv/configure.ac: Likewise. * sysdeps/unix/sysv/linux/riscv/shlib-versions: Likewise. * sysdeps/riscv/preconfigure: Likewise. --- ChangeLog | 9 +++++ 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 ++++- 10 files changed, 76 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/ChangeLog b/ChangeLog index c31e2dff87..131c1063fc 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1105,6 +1105,15 @@ * sysdeps/unix/sysv/linux/riscv/rv32/libutil.abilist: Likewise. * sysdeps/unix/sysv/linux/riscv/rv32/libBrokenLocale.abilist: Likewise. + * sysdeps/riscv/rv32/Implies-after: New file. + * sysdeps/riscv/rv32/rvd/Implies: Likewise. + * sysdeps/riscv/rv32/rvf/Implies: Likewise. + * sysdeps/unix/sysv/linux/riscv/rv32/Implies: Likewise. + * sysdeps/unix/sysv/linux/riscv/Makefile: Support rv32. + * sysdeps/unix/sysv/linux/riscv/configure: Likewise. + * sysdeps/unix/sysv/linux/riscv/configure.ac: Likewise. + * sysdeps/unix/sysv/linux/riscv/shlib-versions: Likewise. + * sysdeps/riscv/preconfigure: Likewise. 2019-06-20 Dmitry V. Levin Florian Weimer 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 b47858769f..bf9c24ad77 100644 --- a/sysdeps/unix/sysv/linux/riscv/Makefile +++ b/sysdeps/unix/sysv/linux/riscv/Makefile @@ -15,11 +15,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..a767d0f2ef 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.29 +ld=ld-linux-riscv32-ilp32d.so.1 +%elif RISCV_ABI_XLEN == 32 && RISCV_ABI_FLEN == 0 +DEFAULT GLIBC_2.29 +ld=ld-linux-riscv32-ilp32.so.1 %else %error cannot determine ABI %endif From patchwork Wed Jul 17 00:09:37 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alistair Francis X-Patchwork-Id: 1133015 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=sourceware.org (client-ip=209.132.180.131; helo=sourceware.org; envelope-from=libc-alpha-return-103705-incoming=patchwork.ozlabs.org@sourceware.org; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=wdc.com Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; secure) header.d=sourceware.org header.i=@sourceware.org header.b="jD9IwmVk"; dkim=pass (2048-bit key; unprotected) header.d=wdc.com header.i=@wdc.com header.b="Gb+QJfRY"; dkim-atps=neutral Received: from sourceware.org (server1.sourceware.org [209.132.180.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 45pHpJ1rJJz9sND for ; Wed, 17 Jul 2019 10:15:04 +1000 (AEST) DomainKey-Signature: a=rsa-sha1; c=nofws; d=sourceware.org; h=list-id :list-unsubscribe:list-subscribe:list-archive:list-post :list-help:sender:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; q=dns; s= default; b=lJU4wL7LpGhmtlZnAJ/D9gQpZBTxaYv8s46MbXCorLiIsG/FEnn9v 8s3EnriyzmJyLbTh7jWfOIL2AzyaDO4oq0N5ihqxi+4Jl4BJkDyox3vPW12fV4Si lWsAUdsEU0tzoq+c5KiJLhmHCP/Hb4hjNZ4/y9f/cPU8ZWvXdivndw= DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=sourceware.org; h=list-id :list-unsubscribe:list-subscribe:list-archive:list-post :list-help:sender:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; s=default; bh=sefyf0vQqt3APf9qt430G+j/xRw=; b=jD9IwmVkirxEKzyT9eqKrswj84RK FHxrYROZ8JWJdISuSWMQx8oVrKgU7c4LgKQjTnrTO8UadlrI9G5KaaUeysOB+98K IlwCgx+gWeNsRRHSYwm/8AjbsewqiRYgfARjeCf6qkSc6qA+0FXunojrqP2cNk4G Vnk/8u+LOZVokUQ= Received: (qmail 21709 invoked by alias); 17 Jul 2019 00:12:33 -0000 Mailing-List: contact libc-alpha-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: libc-alpha-owner@sourceware.org Delivered-To: mailing list libc-alpha@sourceware.org Received: (qmail 21567 invoked by uid 89); 17 Jul 2019 00:12:32 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-26.4 required=5.0 tests=AWL, BAYES_00, GIT_PATCH_0, GIT_PATCH_1, GIT_PATCH_2, GIT_PATCH_3, KAM_NUMSUBJECT, KAM_SHORT autolearn=ham version=3.3.1 spammy= X-HELO: esa2.hgst.iphmx.com DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=wdc.com; i=@wdc.com; q=dns/txt; s=dkim.wdc.com; t=1563322360; x=1594858360; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=znH1MVE3NS1jDE0/bXov7nnGvG9nbv4dlTGymXo6fuc=; b=Gb+QJfRY+tdO/MUqfqGxzGQGNWKYU3WNok3nMtf2Zd2ZphGlYTvHxnlT jtwkLBq3IdP0nEuphnKQvFPAzyTe8+/UPjMe9cVeiThQUQ4QGLCU8ahw3 j7eAlC4O/ogNAUnOU2YR0g5kvG9BdRVobxeEBfknqqGMJJL9+VkagV9Q9 cHA0lNBDaYvs+cA+GUaV6Yxtvelaj7+7Ga8x+UDNb32nySjbn/q8hasxG eeZeErVIwfj6zKKinPDjOz7G4naM4ThXcGPsKjmJAl4IoiBckts33yjva oOTOwF30EGXJ1oMBPRdQ/3dQozyUMIvxAstBs6mYf1IuHLyGag/cGTim/ A==; IronPort-SDR: WAZic+3jOIQVuVZDoeS1R4YVpbhts92AqUJEyse8bSdXott+EJwggqBCXwj5S3ErHXREeg98FB bkuUH/BTQ7n7hKVkT6aNoVEr9T0wvR7TjuXaKGgxLTEo/cuunpVwLQ80UR/DRk9wbbFxTCV/7a eVzOJliOr0GGdd76xx3+sA6pqRwtk2coZwbJqgekdyBTzo4aP58aUMJTIVf+H4/+zylbfuGJeW mANLDXM4KSZDL4BdoNEf1JYSlP/wKl6opojFuhpDGlfQRJHPR1J2lTGlyYokleaCiJwIuC4Jcm lNg= IronPort-SDR: 1pvjZPkvVqAS0rQApUHWjhI6+sFHvnSUEK/1OHm1zUt1MtlVpq0hXp5FCa4eXImo/T6cLz+tKm K3jxjSXJ7wJuaXH1u9zj3xTTlQKP07hseIKqDKcv9EiDjLkuBZCp9CxL4zTExRoZ1VaWTObxji YV0rdAGt1ZhS273w/lyYmiAmnSv14T2eHvkdpKhBviLFsJ80phWvUsd8jDKTVJwGSO0fCcgruz IjJP8wZIUDFodg0ytjordal23Q9hmqLel5ixCvOiRP2I6rIEqGhD3yaLMbaRsS5px53ESYI0Cl oLbHKCXy0bfxj7nyWOJHLQY9 IronPort-SDR: Q5xSgWdKpvCJZpH0taBPvWqoq/UhUX6x75F8qASNhGRt1FRS3iVtiWUz0Lrk0PLJwHDZ9PTrKD eptbeSrgLve1sIEWNMbHZTyqs2HuK18ijJCKxJkTA3gMf9pnOGUs8TASHpAnQ8I6Q4J+bpctl8 huy58EtT22q60wnyZj0RoPt6PW9szKwkggVsU7+ljdgt0RNoI9p0OLs52Hw8GEOtcEv2yLowde QYU3sSzOG38fZSS7VuPIc2I90jZ5nvi0Cn51PM3QY+/acECLIwMVwTyItY3waymdwRy5EgPXhA yU8= From: Alistair Francis To: libc-alpha@sourceware.org Cc: arnd@arndb.de, adhemerval.zanella@linaro.org, fweimer@redhat.com, palmer@sifive.com, macro@wdc.com, zongbox@gmail.com, alistair.francis@wdc.com, alistair23@gmail.com Subject: [RFC v3 21/23] RISC-V: Fix llrint and llround missing exceptions on RV32 Date: Tue, 16 Jul 2019 17:09:37 -0700 Message-Id: In-Reply-To: References: MIME-Version: 1.0 From: Zong Li Similar to the recent 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. 2018-11-29 Zong Li * sysdeps/riscv/rv32/fix-fp-int-convert-overflow.h: New file. --- ChangeLog | 10 +++++ .../riscv/rv32/fix-fp-int-convert-overflow.h | 38 +++++++++++++++++++ 2 files changed, 48 insertions(+) create mode 100644 sysdeps/riscv/rv32/fix-fp-int-convert-overflow.h diff --git a/ChangeLog b/ChangeLog index 131c1063fc..8b8b038b23 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1114,6 +1114,16 @@ * sysdeps/unix/sysv/linux/riscv/configure.ac: Likewise. * sysdeps/unix/sysv/linux/riscv/shlib-versions: Likewise. * sysdeps/riscv/preconfigure: Likewise. + * sysdeps/riscv/rv32/Implies-after: New file. + * sysdeps/riscv/rv32/rvd/Implies: Likewise. + * sysdeps/riscv/rv32/rvf/Implies: Likewise. + * sysdeps/unix/sysv/linux/riscv/rv32/Implies: Likewise. + * sysdeps/unix/sysv/linux/riscv/Makefile: Support rv32. + * sysdeps/unix/sysv/linux/riscv/configure: Likewise. + * sysdeps/unix/sysv/linux/riscv/configure.ac: Likewise. + * sysdeps/unix/sysv/linux/riscv/shlib-versions: Likewise. + * sysdeps/riscv/preconfigure: Likewise. + * sysdeps/riscv/rv32/fix-fp-int-convert-overflow.h: New file. 2019-06-20 Dmitry V. Levin Florian Weimer 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..6b34a8415e --- /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. ARM version. + Copyright (C) 2015-2018 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 + +/* As of GCC 5, 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 Wed Jul 17 00:09:39 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alistair Francis X-Patchwork-Id: 1133016 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=sourceware.org (client-ip=209.132.180.131; helo=sourceware.org; envelope-from=libc-alpha-return-103706-incoming=patchwork.ozlabs.org@sourceware.org; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=wdc.com Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; secure) header.d=sourceware.org header.i=@sourceware.org header.b="P7VrMSte"; dkim=pass (2048-bit key; unprotected) header.d=wdc.com header.i=@wdc.com header.b="oLT3eW4s"; dkim-atps=neutral Received: from sourceware.org (server1.sourceware.org [209.132.180.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 45pHpV0KZmz9sMr for ; Wed, 17 Jul 2019 10:15:13 +1000 (AEST) DomainKey-Signature: a=rsa-sha1; c=nofws; d=sourceware.org; h=list-id :list-unsubscribe:list-subscribe:list-archive:list-post :list-help:sender:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; q=dns; s= default; b=Q/7fvH6dEnB4iJ6uf2TJJ/d74BkWuR5JDGZnrq6LmYYbJubU1jNor 7UEkOmkg7iefKkJBMzFce0HjXynSAiE/HM4zvp9xRqv+77+49HHG3CsDWZe9zx1+ wHjCGp0LIqyCW6PYM+7BH7auwGbyi77N0+GT5A0E0fg4S7zDhLU30g= DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=sourceware.org; h=list-id :list-unsubscribe:list-subscribe:list-archive:list-post :list-help:sender:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; s=default; bh=XH1rgvBTTg9k09NtsF7kLyKen3w=; b=P7VrMSte5TvVlPP5Uq+6xfx4LXx3 KFywK4TGB3FRHnlbBtg2fg4V34Zt/Bl297ZmZzOlNiyjA/vBlooGsLSIts9k4IF8 Oy0ZYcJWmhgecqtGOsAnouVzywp+A0MAGds+66XgQICQh/UcT3fIZ8ObpXPp97bV vLI6HaVc60tobyk= Received: (qmail 21797 invoked by alias); 17 Jul 2019 00:12:34 -0000 Mailing-List: contact libc-alpha-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: libc-alpha-owner@sourceware.org Delivered-To: mailing list libc-alpha@sourceware.org Received: (qmail 21697 invoked by uid 89); 17 Jul 2019 00:12:33 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-26.7 required=5.0 tests=AWL, BAYES_00, GIT_PATCH_0, GIT_PATCH_1, GIT_PATCH_2, GIT_PATCH_3 autolearn=ham version=3.3.1 spammy= X-HELO: esa2.hgst.iphmx.com DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=wdc.com; i=@wdc.com; q=dns/txt; s=dkim.wdc.com; t=1563322362; x=1594858362; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=WCxWGEwu9/2qJAOcIp62Csf0naUEy7spR6QVPGnaYdk=; b=oLT3eW4sOzc7JeQ3v18tQ5Z4eONbYF54r91Q+a2dRysdbqEFiXaY1RPY 1DeVKAyCIloMiHggGX5Jfbw5DtFY93mZLccYWT8QZ5f5BHATiyrXgk7Qi v+xcrlrlUUemoZNM8yt8wsohqbgLhidsjLxs9+TbJJXLmn91oeSoYKDt0 aCYzHAicvkjl0an1NRUueTucAbNKbCQVZ6up1Sb9Y0dOkC4zzKEXd9rxi EBTcTEPCz7z3zWKyZ9HyDOG2T28in1T4Anrj6sPOx8WMXefPwVsJq+vun 8iTJlqEBCo7PPn6LNp3PEdejxHP/1pZh5jZW2FE3ezPKafLuUVH/ioqY9 g==; IronPort-SDR: qAlmZV5jLq1IsXOYPYsNLNUidTdaQY0PZf8bvD64Vhx+P24txLK7Xvo2eGarXNgIO8wtL8vgn8 GkiIhg5tjtvAxA6g+msVZeVcNZ4wgFJZrp0BZClLg9ul85uPNba0sBehMqRcEf1tsKXAkvSCU8 Z52STLEPcoM1jD5Zxy5FModNL5QIWQ4PzioDh1U70OUv5xj7YT+O8bLAMZQWcxHKPxZi4EE6Sa nBkZuNj/OIKcj4T+Lq8svVz9sd77RCjl3URb8pl6bsPN3dy16jKRGiT7SGC14D6FXz5htm7uAt oqY= IronPort-SDR: MYpeYofpCrBiL2ng1MNZC8EE9+4Q3iuFc40UtDSvmD9Y/q8LPDsR+aQxvrDQ+NbJfjb1BlNMrF wEckuCpw1MR/20NtO48fZLS3poIsej4aL2LkdTQyfNiV6aee/dtlXeJUwgeY3Jp8iPiWSIGtGB hY834CEO7a9RMfySxwAPAO7TLTB1qWYmGEowsm6DWcJayxoA5TuBlY0QeaqJUoesO2HLfRF4pS EvAn7GHWnNf2FFb9IMQS5C7umy0mx4AqymvoD8bJ7vraLdYkFFT6OsCU25gB58lYJD+57llxxK Ie9jhJF3XURjKDbpyirA5KgC IronPort-SDR: gkFPQNXYypqzvXJFD+odL6CKB+ECvnolY02jQv7phepM6YGXVIU/VMPHsR9AewcmSFf0kNZYuS lKc4MyFqlVoN4IlsStaxnkP/weTb+ATJG3GoWvqEjjtpm8rgxgyMkXtwT9m/cWsL9JTy/b73xm duJKmJjXDYHzYA6aPPJYtZXP9eLg9rf46+y+Qhvum/O1J0EfVBEblMVT8RtnkrC+UKGo1fuqzH og//nPWGkMeg+IJ5swoJcKDqQcoNJWgk3QIKAJm3a9SgKScuXZI31sWoD3ZvBqAc8Fof8iszsW D14= From: Alistair Francis To: libc-alpha@sourceware.org Cc: arnd@arndb.de, adhemerval.zanella@linaro.org, fweimer@redhat.com, palmer@sifive.com, macro@wdc.com, zongbox@gmail.com, alistair.francis@wdc.com, alistair23@gmail.com Subject: [RFC v3 22/23] Add RISC-V 32-bit target to build-many-glibcs.py Date: Tue, 16 Jul 2019 17:09:39 -0700 Message-Id: In-Reply-To: References: MIME-Version: 1.0 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 2018-11-29 Zong Li * scripts/build-many-glibcs.py (Context): Add rv32 targets. --- ChangeLog | 11 +++++++++++ scripts/build-many-glibcs.py | 15 +++++++++++++++ 2 files changed, 26 insertions(+) diff --git a/ChangeLog b/ChangeLog index 8b8b038b23..9d4c36f10a 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1124,6 +1124,17 @@ * sysdeps/unix/sysv/linux/riscv/shlib-versions: Likewise. * sysdeps/riscv/preconfigure: Likewise. * sysdeps/riscv/rv32/fix-fp-int-convert-overflow.h: New file. + * sysdeps/riscv/rv32/Implies-after: New file. + * sysdeps/riscv/rv32/rvd/Implies: Likewise. + * sysdeps/riscv/rv32/rvf/Implies: Likewise. + * sysdeps/unix/sysv/linux/riscv/rv32/Implies: Likewise. + * sysdeps/unix/sysv/linux/riscv/Makefile: Support rv32. + * sysdeps/unix/sysv/linux/riscv/configure: Likewise. + * sysdeps/unix/sysv/linux/riscv/configure.ac: Likewise. + * sysdeps/unix/sysv/linux/riscv/shlib-versions: Likewise. + * sysdeps/riscv/preconfigure: Likewise. + * sysdeps/riscv/rv32/fix-fp-int-convert-overflow.h: New file. + * scripts/build-many-glibcs.py (Context): Add rv32 targets. 2019-06-20 Dmitry V. Levin Florian Weimer diff --git a/scripts/build-many-glibcs.py b/scripts/build-many-glibcs.py index dacd116f8e..5167dea9ce 100755 --- a/scripts/build-many-glibcs.py +++ b/scripts/build-many-glibcs.py @@ -320,6 +320,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', From patchwork Wed Jul 17 00:09:42 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alistair Francis X-Patchwork-Id: 1133017 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=sourceware.org (client-ip=209.132.180.131; helo=sourceware.org; envelope-from=libc-alpha-return-103707-incoming=patchwork.ozlabs.org@sourceware.org; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=wdc.com Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; secure) header.d=sourceware.org header.i=@sourceware.org header.b="OuUNLNMp"; dkim=pass (2048-bit key; unprotected) header.d=wdc.com header.i=@wdc.com header.b="TJ3gTuJ2"; dkim-atps=neutral Received: from sourceware.org (server1.sourceware.org [209.132.180.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 45pHpl0Dcrz9sND for ; Wed, 17 Jul 2019 10:15:26 +1000 (AEST) DomainKey-Signature: a=rsa-sha1; c=nofws; d=sourceware.org; h=list-id :list-unsubscribe:list-subscribe:list-archive:list-post :list-help:sender:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; q=dns; s= default; b=k1pvUGhDTlcm0lOOGsan4tq/ouS0PUm7/YJiSdEk3QCAsrk9+ktth nyt/mm9bLteE9YwGMSzclzpFMaFFlim8sCO46I04Q6e50wel1nnEEe7btMYxbkZH UbWg2kCxM3x0Nf8oS048B2rsyMOkeVd9sXyC/3lrhraex8mYRrss+w= DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=sourceware.org; h=list-id :list-unsubscribe:list-subscribe:list-archive:list-post :list-help:sender:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; s=default; bh=CQJmK6D2Tiro2b61RZU/6wa33YU=; b=OuUNLNMpJ/U9Z6dbs2v5EY9jmgeS ADjBYE4R0Xm2keH4jLRrRtn5rJ6lmR0qQqPP+hPBrPRNnSLfEbDxgUJEAZcz5GK2 NjO8rxee/yICQCjNKZeJLjle4CgXy3dbTSMWwqD+VhSthWe97RKhA+nDMdBR+AQX 9jkyO35phVY9Njg= Received: (qmail 22373 invoked by alias); 17 Jul 2019 00:12:38 -0000 Mailing-List: contact libc-alpha-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: libc-alpha-owner@sourceware.org Delivered-To: mailing list libc-alpha@sourceware.org Received: (qmail 22123 invoked by uid 89); 17 Jul 2019 00:12:37 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-26.7 required=5.0 tests=AWL, BAYES_00, GIT_PATCH_0, GIT_PATCH_1, GIT_PATCH_2, GIT_PATCH_3 autolearn=ham version=3.3.1 spammy=HContent-Transfer-Encoding:8bit X-HELO: esa2.hgst.iphmx.com DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=wdc.com; i=@wdc.com; q=dns/txt; s=dkim.wdc.com; t=1563322368; x=1594858368; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=4ymWxisMNRgnJoy8QxRb/0GIatnLLX6ul4qJY0Eg0sI=; b=TJ3gTuJ2lD6qUo5521SDDu43usRDb7IEV+++K0GKrgRZtiEwlzhOvTpB Zt4epOI+HOvpEs4n3ESV498ugRZYoTe2FOEgIqVSrZM2tDeClbzL19GUu bzBnFU3Vw/wnapxj/DXs5UotxfJlr5H/NOO6DtdJDKfxM6Ag4JFi4y+sK AZgaBmSzQCS+57dRRKFZsoFG3hpH1fEmp3fMDEMeyZkwZ8fA/J3md4OCW S6oPU175bFTlcA3yRnSDXnkf5S7Kly8E6XcrAqkhI1ffXf0Cklp+mP8wC 4/D9oartBjRyBPH40d2BLRetqB1BscvB0BqXF/Bon8wVP6jrwkUx7ClJe g==; IronPort-SDR: T4VLDog/C/6EVK8hclZOX52nKYgYl9hZSvoyXFMBhbIKFqn53c3yz+Flwla8w47UW58ud406fq Mpmy4NxMXnW3MKod5Ulv8oBZeZvqT6Py89i1iOY3D/qH47YVNELlZnzJ3Wfx/PmSvrKKM2siK6 Cyz9IU9xOfoRSau2ILYmfdvk33Z/DOgVBy1nOZJpqUza1iaWTbgFcqdyJUZb91M8vTmusVwWyK MH2fOBPllMmJSdqFLLnAZzxXkFQ4HEllX/YqWhrVbYBp2dnA5S7jXm9q6HlEL2J91nHUcW1thv l5Y= IronPort-SDR: JTcq1ceW36cDbfCuUMqXn/8RHrupF0MW5Y2gHiAo7l2O3jJntG9gEV3Jp+0A8BJMGuo6lLakkv NA1pcCVcTAWKF0XV/RGA2D+hsLwxpjUCvOsKfPX5FmJtYKoZLQ7l+v3gTI958eFukzVBGT8yfT yNdZBpINW9gFyJR4WU+P/27sZ5gX/yw9WaIO5hRCCDWuJHvBBJ0/wYJtyP4pJkFkGeDcE1Hk6p WTHgx84XYpXwyc3fIcB/votIHJfESqxoRdKY0CfD83qgtmrzJ785Tfd1LW4cptlubGajDSBaLn 8G9zYU6ZgI2Y2s1Elt7H7uC6 IronPort-SDR: 3e7GX5drYqWEfKeB3Bw3sSFygALTGYzDO3UeU1VnCG8Ke//vMf1TcmEusVoRVyC47oBiTruO1U qP2Epw+98zd6v7rlMWbGLC86xvh2fDWxJNoUmd3a5XlUaEoR4WwhI7WSMRY3AjSpvEtx4Xhvuc 8r6Pxsyr2hTsR326P4iM1X+oze+NdBbDJ1kcPcXkSlPnonHh47gKy4wXg58Az1aXPHUssmunUK sWEewU/sXWy1AzpSeqzeaJGS8LwNS/UdYLmM1n6yYAiW8LZmXuclSNqIIeRqkh/Np5Z9a825xb 1OU= From: Alistair Francis To: libc-alpha@sourceware.org Cc: arnd@arndb.de, adhemerval.zanella@linaro.org, fweimer@redhat.com, palmer@sifive.com, macro@wdc.com, zongbox@gmail.com, alistair.francis@wdc.com, alistair23@gmail.com Subject: [RFC v3 23/23] RISC-V: Use 64-bit vdso syscalls Date: Tue, 16 Jul 2019 17:09:42 -0700 Message-Id: <2bf63d1fc37727b7ed77dd20a69ae525a0cee859.1563321716.git.alistair.francis@wdc.com> In-Reply-To: References: MIME-Version: 1.0 Signed-off-by: Alistair Francis --- sysdeps/unix/sysv/linux/riscv/init-first.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sysdeps/unix/sysv/linux/riscv/init-first.c b/sysdeps/unix/sysv/linux/riscv/init-first.c index 155a4a2c0c..fa9c690cdd 100644 --- a/sysdeps/unix/sysv/linux/riscv/init-first.c +++ b/sysdeps/unix/sysv/linux/riscv/init-first.c @@ -43,11 +43,11 @@ _libc_vdso_platform_setup (void) PTR_MANGLE (p); VDSO_SYMBOL (gettimeofday) = p; - p = _dl_vdso_vsym ("__vdso_clock_gettime", &linux_version); + p = _dl_vdso_vsym ("__vdso_clock_gettime64", &linux_version); PTR_MANGLE (p); VDSO_SYMBOL (clock_gettime) = p; - p = _dl_vdso_vsym ("__vdso_clock_getres", &linux_version); + p = _dl_vdso_vsym ("__vdso_clock_getres_time64", &linux_version); PTR_MANGLE (p); VDSO_SYMBOL (clock_getres) = p; }