From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from desiato.infradead.org (desiato.infradead.org [90.155.92.199]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 6D4B6233941; Tue, 8 Sep 2026 07:37:14 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=90.155.92.199 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788853040; cv=none; b=Qt8qTcOswRH1kKTlo+Zw8sbOUz78FUITEqWbMjuuc435y6GoLKz11L7tKs0TD4+hi9NDke3/ypO8bCTIBIp+3+qdmJMoUpLuDr2bhea4KUgt1YUtrNJfQSl+YMmOgqnxhTlvFWHP5xcN29ZkaqJYSriY0zOoWG9bbyw23dOa7WY= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788853040; c=relaxed/simple; bh=ZwH/nHQww+E+pAX3LZn0JyEZ+Oi3mONaiQzNpCAvNT8=; h=Date:From:To:Cc:Subject:Message-ID:References:MIME-Version: Content-Type:Content-Disposition:In-Reply-To; b=A8mV29E6BywE5uk4i0g8ErdhYUUlmw1CZJzj8pcDoeK6Q551WxMHf0eWuAjsE4P2XzA/Uru7EOB1t80kGGmBm4G3cANyk7Of3DmpafPGEbmWsQunEJ5wJfkhFhupOwOmzLpyttPvPKkI6b1eG2CLC5wmYlLu/LaGE1ovKPdEvLo= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=infradead.org; spf=pass smtp.mailfrom=infradead.org; dkim=pass (2048-bit key) header.d=infradead.org header.i=@infradead.org header.b=irAwsshP; arc=none smtp.client-ip=90.155.92.199 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=infradead.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=infradead.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=infradead.org header.i=@infradead.org header.b="irAwsshP" DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=desiato.20200630; h=In-Reply-To:Content-Transfer-Encoding: Content-Type:MIME-Version:References:Message-ID:Subject:Cc:To:From:Date: Sender:Reply-To:Content-ID:Content-Description; bh=dMspgRwQUUIexqKss7dqowtOmwD0tLbRBkFb+1ouQnY=; b=irAwsshPXpU7Uf/rfFaj3uWs6G difPdlK64/emyFJJjlL7wNOeoAd6Y+U30iaYxFlQNgUaXhJ5XP9GQvgT7SeejFL749VvbdmXzNQmr ysoKC7HRo3DXe9AyxTg6XU4ih3jJvnovv2Ujltj+xakHIL0+9ST9dekY+kWUCq6mECTuqGA167fg+ YqFWds1pqUcKbMJUd2jIJjqcUYt3toc+D0q3aR2UwfeZbWbAc5JAxTcsD0VD8CvN28YZRwquKZu0g pKwTeSbCwX4MUVnlh4QxgKngIIgLaxab029w2jsxL2wYaE+8OY428gXbHH21x+RnEEnFMu/t4r9jb gZmtLwfw==; Received: from 77-249-17-252.cable.dynamic.v4.ziggo.nl ([77.249.17.252] helo=noisy.programming.kicks-ass.net) by desiato.infradead.org with esmtpsa (Exim 4.99.2 #2 (Red Hat Linux)) id 1x3qOC-0000000H406-301R; Tue, 08 Sep 2026 07:37:08 +0000 Received: by noisy.programming.kicks-ass.net (Postfix, from userid 1000) id E0348300400; Tue, 08 Sep 2026 09:37:07 +0200 (CEST) Date: Tue, 8 Sep 2026 09:37:07 +0200 From: Peter Zijlstra To: Thomas =?iso-8859-1?Q?Wei=DFschuh?= Cc: Paul Walmsley , Palmer Dabbelt , Albert Ou , Alexandre Ghiti , Nathan Chancellor , Nick Desaulniers , Bill Wendling , Justin Stitt , Andy Lutomirski , Vincenzo Frascino , Kees Cook , Ingo Molnar , Borislav Petkov , Dave Hansen , x86@kernel.org, "H. Peter Anvin" , Richard Weinberger , Anton Ivanov , Johannes Berg , Russell King , Catalin Marinas , Will Deacon , Madhavan Srinivasan , Michael Ellerman , Nicholas Piggin , Huacai Chen , WANG Xuerui , Heiko Carstens , Vasily Gorbik , Alexander Gordeev , Christian Borntraeger , Sven Schnelle , Thomas Bogendoerfer , Miguel Ojeda , Alex Gaynor , Gary Guo , =?iso-8859-1?Q?Bj=F6rn?= Roy Baron , Benno Lossin , Andreas Hindborg , Alice Ryhl , Trevor Gross , Danilo Krummrich , Thomas Gleixner , Christophe Leroy , Boqun Feng , Nicolas Schier , linux-riscv@lists.infradead.org, linux-kernel@vger.kernel.org, llvm@lists.linux.dev, linux-mm@kvack.org, linux-um@lists.infradead.org, linux-arm-kernel@lists.infradead.org, linuxppc-dev@lists.ozlabs.org, loongarch@lists.linux.dev, linux-s390@vger.kernel.org, linux-mips@vger.kernel.org, rust-for-linux@vger.kernel.org, linux-kbuild@vger.kernel.org, Jan Stancek , Arnaldo Carvalho de Melo , Alexandre Ghiti Subject: Re: [PATCH v5 12/24] vdso: Add the vdsocheck tool Message-ID: <20260908073707.GV4120091@noisy.programming.kicks-ass.net> References: <20260908-vdso-absolute-reloc-v5-0-3a93791af1cf@linutronix.de> <20260908-vdso-absolute-reloc-v5-12-3a93791af1cf@linutronix.de> <20260908071911.GU4120091@noisy.programming.kicks-ass.net> <20260908093302-1a1cf0c7-8103-48b1-9f6a-abd5c5c16523@linutronix.de> Precedence: bulk X-Mailing-List: rust-for-linux@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <20260908093302-1a1cf0c7-8103-48b1-9f6a-abd5c5c16523@linutronix.de> On Tue, Sep 08, 2026 at 09:35:46AM +0200, Thomas Weißschuh wrote: > On Tue, Sep 08, 2026 at 09:19:11AM +0200, Peter Zijlstra wrote: > > On Tue, Sep 08, 2026 at 08:33:46AM +0200, Thomas Weißschuh wrote: > > > All vDSO code needs to be completely position independent. Symbol > > > references are marked as hidden so the compiler emits PC-relative > > > relocations. However there are cases where the compiler may still > > > emit absolute relocations, as they are valid in regular PIC DSO code. > > > These would be resolved by the linker and will break at runtime. > > > This has been observed on arm64, see commit 0c314cda9325 ("arm64: vdso: > > > Work around invalid absolute relocations from GCC") > > > > > > Introduce a tool to check for absolute relocations during the build, > > > as the current inline-shell logic is not expressive enough. > > > The check is done on the object files as the relocations will not exist > > > anymore in the final DSO. As there is no extension point for the > > > compilation of each object file, perform the validation in vdso_check. > > > > > > Signed-off-by: Thomas Weißschuh > > > --- > > > Makefile | 19 ++ > > > lib/vdso/Kconfig | 5 + > > > lib/vdso/Makefile | 2 + > > > lib/vdso/Makefile.include | 14 ++ > > > lib/vdso/check/.gitignore | 3 + > > > lib/vdso/check/Makefile | 34 +++ > > > lib/vdso/check/elf.rs | 498 ++++++++++++++++++++++++++++++++++++++++++++ > > > lib/vdso/check/vdsocheck.rs | 154 ++++++++++++++ > > > 8 files changed, 729 insertions(+) > > > > Urgh, does this mean I have to have rust installed just to build a > > kernel now? > > No. > > If you don't have rust installed the build will instead use the existing shell > script for a less thorough check. We only need one build machine at some point > to have rust installed to report issues and this check to be useful. Ah, *phew*. Thanks!