Received: by 2002:a05:6902:102b:0:0:0:0 with SMTP id x11csp2981605ybt; Mon, 29 Jun 2020 12:04:01 -0700 (PDT) X-Google-Smtp-Source: ABdhPJztcqZI2JJwTo5gUThVUZClN1xbmfF0Ep/BVUvFYLmnXZE+SuQzWjKtOsk3g2RM406keOZh X-Received: by 2002:a17:907:4240:: with SMTP id oi24mr14740791ejb.23.1593457441348; Mon, 29 Jun 2020 12:04:01 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1593457441; cv=none; d=google.com; s=arc-20160816; b=rGmmg9BvtEucMYm7cRBEi9kEDrKZkgWLIz1z/Tl/8o6KlX4qwmAqjRTG6O3xbGmDik +fodLHPHhq+KjdmZdM9BLUOjijUheGuX4CTlkuGvufPct+CtIddDugyjSUok6Z5EOxhE Sk8sDjhUwYaGYtJ4XRu2qbhU26g0lgFttZ7lZJhSZow5Yn4h+faatGIdO+7N+Jbw+CQE CVxEMJYVoxu5rGoDusnkhJxwXSaFaEtTYpVi5ZrEkJ4McSvAey8qJBecGyVRdsU3twnW gg2Zs4cDBy1Mb4EfoigrDsGPS1iJjeBWPUPoRfNgIIX3rFpMW8x0efP1EnPfZS5Ffve0 wLBA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:user-agent:in-reply-to :content-disposition:mime-version:references:message-id:subject:cc :to:from:date:dkim-signature; bh=+IitMUk+eOYapugNWdcU2qNl/SJeRY/e+GCy2zsMLo8=; b=SaAf923PYnkjUIxLb0AGAfWU1b/C/4pE+7CiLK6v9ErTXlIoRKFRA2RvyfZwy/EVCn v+2PXMZkUxso2cTD6FCkU67AMv+abCIKJXs5DZKXgG4GbME/UEzE7DROyhTTfJTkvFnF ej7IVsJ0jmon705gwQt5Yy4MfbgpZved8YFA6ndnEtWK9r6sK8mE2apProKrynl9nCdM V7lF8Wu6v6cOHgMhQYvL4x598sOFkRsGszvWO5j3tceVCiNrXWu8s2JGgEWgODq5H1F0 RpkI6H2qi8x5VjyOe1BxsEXUNHQv+HfHzQ02Tz34VYBN+9/NfdvDD00hWQa+BYJIv+46 wvww== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail (test mode) header.i=@armlinux.org.uk header.s=pandora-2019 header.b=N+rbp9GA; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=armlinux.org.uk Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id w14si252582ede.41.2020.06.29.12.03.37; Mon, 29 Jun 2020 12:04:01 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=fail (test mode) header.i=@armlinux.org.uk header.s=pandora-2019 header.b=N+rbp9GA; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=armlinux.org.uk Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1730591AbgF2TDb (ORCPT + 99 others); Mon, 29 Jun 2020 15:03:31 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41872 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1730247AbgF2TD0 (ORCPT ); Mon, 29 Jun 2020 15:03:26 -0400 Received: from pandora.armlinux.org.uk (pandora.armlinux.org.uk [IPv6:2001:4d48:ad52:32c8:5054:ff:fe00:142]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 94700C031C40; Mon, 29 Jun 2020 12:03:26 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=armlinux.org.uk; s=pandora-2019; h=Sender:In-Reply-To:Content-Type: MIME-Version:References:Message-ID:Subject:Cc:To:From:Date:Reply-To: Content-Transfer-Encoding:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Id: List-Help:List-Unsubscribe:List-Subscribe:List-Post:List-Owner:List-Archive; bh=+IitMUk+eOYapugNWdcU2qNl/SJeRY/e+GCy2zsMLo8=; b=N+rbp9GAXyeaJr2JEOHz+UXKi RsSRxVTngHhTRvU12HFs410qqK0KgYvJnLV4c+gxMbCoh3lnabXdW68dUe+tiDxwUQf835ZcIukvO nP+iLDAsjH6047RD10Y8a3A+vLOoAIdwFz5UwQ2vjB/iPjCPwyjp8PTOsP1erptR/bqeZGFkElxUE YTaLVJEib0JGcCyLbw2ccxW1Y35fnPlTX4rz1m2859yaEtnKzdu6gF39mRrYiZLlsKQEKRCiINLWl z0QldW6EbOGfQyx1S0HxtBSebUfIaVLEDFaPlc4HlkrZS+WwFMrEEJcwTNdvYY2LcRWZaTe5c6mzz zvLOSXRqA==; Received: from shell.armlinux.org.uk ([fd8f:7570:feb6:1:5054:ff:fe00:4ec]:33208) by pandora.armlinux.org.uk with esmtpsa (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1jpz3m-00088W-9q; Mon, 29 Jun 2020 20:03:18 +0100 Received: from linux by shell.armlinux.org.uk with local (Exim 4.92) (envelope-from ) id 1jpz3k-0007MT-Qr; Mon, 29 Jun 2020 20:03:16 +0100 Date: Mon, 29 Jun 2020 20:03:16 +0100 From: Russell King - ARM Linux admin To: Arvind Sankar Cc: Kees Cook , Will Deacon , Catalin Marinas , Mark Rutland , Ard Biesheuvel , Peter Collingbourne , James Morse , Borislav Petkov , Thomas Gleixner , Ingo Molnar , Masahiro Yamada , Nick Desaulniers , Nathan Chancellor , Arnd Bergmann , x86@kernel.org, clang-built-linux@googlegroups.com, linux-arch@vger.kernel.org, linux-efi@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH v4 14/17] arm/build: Warn on orphan section placement Message-ID: <20200629190316.GY1551@shell.armlinux.org.uk> References: <20200629061840.4065483-1-keescook@chromium.org> <20200629061840.4065483-15-keescook@chromium.org> <20200629155401.GB900899@rani.riverdale.lan> <20200629180703.GX1551@shell.armlinux.org.uk> <20200629181514.GA1046442@rani.riverdale.lan> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20200629181514.GA1046442@rani.riverdale.lan> User-Agent: Mutt/1.10.1 (2018-07-13) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Mon, Jun 29, 2020 at 02:15:14PM -0400, Arvind Sankar wrote: > On Mon, Jun 29, 2020 at 07:07:04PM +0100, Russell King - ARM Linux admin wrote: > > On Mon, Jun 29, 2020 at 11:54:01AM -0400, Arvind Sankar wrote: > > > On Sun, Jun 28, 2020 at 11:18:37PM -0700, Kees Cook wrote: > > > > We don't want to depend on the linker's orphan section placement > > > > heuristics as these can vary between linkers, and may change between > > > > versions. All sections need to be explicitly named in the linker > > > > script. > > > > > > > > Specifically, this would have made a recently fixed bug very obvious: > > > > > > > > ld: warning: orphan section `.fixup' from `arch/arm/lib/copy_from_user.o' being placed in section `.fixup' > > > > > > > > Discard unneeded sections .iplt, .rel.iplt, .igot.plt, and .modinfo. > > > > > > > > Add missing text stub sections .vfp11_veneer and .v4_bx. > > > > > > > > Add debug sections explicitly. > > > > > > > > Finally enable orphan section warning. > > > > > > This is unrelated to this patch as such, but I noticed that ARM32/64 places > > > the .got section inside .text -- is that expected on ARM? > > > > Do you mean in general, in the kernel vmlinux, in the decompressor > > vmlinux or ... ? > > > > Sorry, in the kernel vmlinux. ARM_TEXT includes *(.got) for 32-bit, and > the 64-bit vmlinux.lds.S includes it in .text as well. The decompressor > for 32-bit keeps it separate for non-EFI stub kernel and puts it inside > .data for EFI stub. The main 32-bit kernel image doesn't use the .got - I don't think it actually even exists. The decompressor (non-EFI) uses the .got as a way of getting position independence, and that must be part of the binary image at a fixed offset from the .text section. The decompressor self-fixes up the GOT entries. In the case of the decompressor being flashed and executed from NOR flash, the decompressor must be built for the specific address(es) that it will reside (which does away with the .got table.) For EFI, it needs to be in the .data section (which is in that case always a fixed offset from .text) so that it can be written to so the fix-ups work. -- RMK's Patch system: https://www.armlinux.org.uk/developer/patches/ FTTP is here! 40Mbps down 10Mbps up. Decent connectivity at last!