From patchwork Thu Jun 19 16:25:32 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Xi Ruoyao X-Patchwork-Id: 114754 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id AB80438DEFDE for ; Thu, 19 Jun 2025 16:26:45 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org AB80438DEFDE Authentication-Results: sourceware.org; dkim=pass (1024-bit key, unprotected) header.d=xry111.site header.i=@xry111.site header.a=rsa-sha256 header.s=default header.b=EkA7PzxY X-Original-To: libc-alpha@sourceware.org Delivered-To: libc-alpha@sourceware.org Received: from xry111.site (xry111.site [89.208.246.23]) by sourceware.org (Postfix) with ESMTPS id 9B96C38034FB for ; Thu, 19 Jun 2025 16:25:57 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 9B96C38034FB Authentication-Results: sourceware.org; dmarc=pass (p=reject dis=none) header.from=xry111.site Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=xry111.site ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 9B96C38034FB Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=89.208.246.23 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1750350357; cv=none; b=nGVFPwZnEWn3MxxlayGWffYbQu2hvx5yNd4HkZfj5bIjzY9DA8OfJtDF3yITLC1vOuKuNX+V3aFStfwU7zcgYY32PjuLCbtOqaabTMHiMElK3dicN60Wu86tTzLQ1LIGp/vld/SPdW6TDzayF8Lp4ABobx9qZ6xWQKX94GlDCWg= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1750350357; c=relaxed/simple; bh=CJTJnvMl/5jIMSm+5T0SGBy3WSzwrQMA4h730tNrQK8=; h=DKIM-Signature:From:To:Subject:Date:Message-ID:MIME-Version; b=qy/dBTsTo3dA2UNDX4XadMGRY5ZqH0aGAAqTqwitPsCTAUuo7V3x90yH4RorlNGNyVBkmOL68gmcH6l9mRyMUAa+CP6y2jRl15XQsLXb7o2iWNflXpZtQP/w8Lp6E4SlyXb2c+TNQD6NhxKG52Y/4PplOSs5vCjYZSVl6DvqMbQ= ARC-Authentication-Results: i=1; server2.sourceware.org DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 9B96C38034FB DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=xry111.site; s=default; t=1750350355; bh=6p+kJ7DkTE1vbjg9UmjVwo/k4jLKqEGhLi+/ZxM4jfU=; h=From:To:Cc:Subject:Date:From; b=EkA7PzxYVQhSINlE86aqT6dHUncLYfARzK00Pi8KAfgOeP3R13FxZX7Z2KyxioH8k R4heCOFB//2oEMVPmknY27NcbyoxB5Mgzh8nYsYnumWEWaArRqhGyKcjWMtYRTkhow e83ot17YhxUtriSUmCOj2kUk+lnW/go3BD1IgrMw= Received: from stargazer (unknown [IPv6:240e:45c:230:1eeb:adcc:6f8d:f3cc:64b6]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (secp384r1) server-digest SHA384) (Client did not present a certificate) (Authenticated sender: xry111@xry111.site) by xry111.site (Postfix) with ESMTPSA id 82BD465F62; Thu, 19 Jun 2025 12:25:50 -0400 (EDT) From: Xi Ruoyao To: libc-alpha@sourceware.org, Palmer Dabbelt Cc: "Jason A . Donenfeld" , Xi Ruoyao Subject: [PATCH] riscv: linux: Add support for getrandom vDSO Date: Fri, 20 Jun 2025 00:25:32 +0800 Message-ID: <20250619162532.25823-1-xry111@xry111.site> X-Mailer: git-send-email 2.50.0 MIME-Version: 1.0 X-Spam-Status: No, score=-9.4 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, LIKELY_SPAM_FROM, RCVD_IN_VALIDITY_RPBL_BLOCKED, RCVD_IN_VALIDITY_SAFE_BLOCKED, SPF_HELO_PASS, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org X-BeenThere: libc-alpha@sourceware.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Libc-alpha mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: libc-alpha-bounces~patchwork=sourceware.org@sourceware.org Linux kernel >= 6.16 has getrandom() in vDSO for RISC-V. Enable the use of it in Glibc so it would benefit the programs using the Glibc high quality random number functions. Link: https://git.kernel.org/torvalds/c/ee0d03053e70 Signed-off-by: Xi Ruoyao --- sysdeps/unix/sysv/linux/riscv/sysdep.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/sysdeps/unix/sysv/linux/riscv/sysdep.h b/sysdeps/unix/sysv/linux/riscv/sysdep.h index ee015dfeb6..05e0e0523d 100644 --- a/sysdeps/unix/sysv/linux/riscv/sysdep.h +++ b/sysdeps/unix/sysv/linux/riscv/sysdep.h @@ -145,11 +145,12 @@ # define HAVE_CLOCK_GETRES64_VSYSCALL "__vdso_clock_getres" # define HAVE_CLOCK_GETTIME64_VSYSCALL "__vdso_clock_gettime" # define HAVE_GETTIMEOFDAY_VSYSCALL "__vdso_gettimeofday" +# define HAVE_GETRANDOM_VSYSCALL "__vdso_getrandom" # else # define VDSO_NAME "LINUX_5.4" # define VDSO_HASH 61765876 -/* RV32 does not support the gettime VDSO syscalls. */ +/* RV32 does not support the gettime and getrandom VDSO syscalls. */ # endif # define HAVE_CLONE3_WRAPPER 1