Received: by 2002:a25:2c96:0:0:0:0:0 with SMTP id s144csp578711ybs; Sun, 24 May 2020 14:32:22 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxSZt4m+7Rs/h6BSoTvhWu1lv1mTvkT+CH0QCNhNjnmUJCywgOLnmR69OqAQq2k1XAm+OJA X-Received: by 2002:a05:6402:2c4:: with SMTP id b4mr12759998edx.331.1590355942314; Sun, 24 May 2020 14:32:22 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1590355942; cv=none; d=google.com; s=arc-20160816; b=jha4QdlQnnUD7JVAmrWDC2+3v5JCil6rjCQQ+NS7bAB8aGIfijuGo/P+04ASwKXIrD o1vaARV5EZLYbKR9uQRiZoYMoOcxds5lFxuE6SOPAtDjtKs9fbrYq0gHSbA3aPWL0g10 lOY+K82uOf/ni55XlngxyJd+Fz0fOfv/6tW2MhIpAhN7MFpiXP1uo+DoVeAjg/bGGt2A P2rG8csQJF/IsCDEwTVZiujqJKqkUIfy5CkpQEuFayX5QTqnul09rSIAhFs9J1eXWfaV YVD/yP47/juyT1s7maPPueZruXDGosnEqscJvsOvPp3sQ8j+mN07nJ1IEOSDtH/HJxPK 8+Aw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from; bh=aMU0eZ8AgltZAHYm5/2XnSEtaaUEJG/1Tqz8iUjHDdI=; b=kgddYcEUin7sBX4cGNLznsMzD5SIl9ReeQShI3SB3dpwwfIi9gjeXN/SyaQafMOn4D NbV533VxUQbv26R3xU25gv1OYcQ1uAShAXVqcDL+V4dTesrGonHvmBxytyxstJeQiFuD NFPGSO9SMIlo+Fg4bwo9AlQ6V75FCX9tY2jhXd1P+TA4RriYxSuEMRpDqj4fOmX/apIK nH7qg7OXFjqyUuq2Zk70XtWxi1SKKCgc1yUCL57xWwc41spKeGlAUFUQiNaqunt4L6JF 3XYZFV2pXDTUptZkZodoqtfIcQP5XNL9F3vLq6T7GEf0Y0ihF7yNKyeyFsVOefJhSBXj Sv4Q== ARC-Authentication-Results: i=1; mx.google.com; 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 Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id x8si5578078ejc.340.2020.05.24.14.31.59; Sun, 24 May 2020 14:32:22 -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; 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 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2388487AbgEXV3D (ORCPT + 99 others); Sun, 24 May 2020 17:29:03 -0400 Received: from mail-qt1-f194.google.com ([209.85.160.194]:46946 "EHLO mail-qt1-f194.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2388250AbgEXV2U (ORCPT ); Sun, 24 May 2020 17:28:20 -0400 Received: by mail-qt1-f194.google.com with SMTP id p12so12557666qtn.13 for ; Sun, 24 May 2020 14:28:19 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=aMU0eZ8AgltZAHYm5/2XnSEtaaUEJG/1Tqz8iUjHDdI=; b=RHM+ArrjrNBPSyiTDb4eGk34rqenCwaMgMdgnJU1vqlo7bRX4CB0Ai+j8C2VOx4Al3 EiowD+mcbAAm71FnzsY+AmSKa34D/v4XG46cq3+0rqTYoE6gm9E1lLYojKWMrtrghODl q340+fmZHJ4HSfX1u9HCTGklBfp1GgIH993ZAlKYwkUw8oJ4IuWUukwAB1q+ZXhBii63 w7cCfSZ+fLeHy7fi7/e2fGZ3g5cvhN4k8GqjUVv584g19362/py6m430pKOQJyHbl4+R pW5vOH//5nnTp1/XUDDMgY5fVfzJxSu06kMRbzL0mhCj4x8Ymi9o48z32OVuSmAS+vwQ +dDw== X-Gm-Message-State: AOAM533SvmX9bqzoz7jTrb5TJWbooGTMyqdXHypLq21SiJ4UIhc54dqa IsGWl4AF4SdhdI0Hq+Kg5TQ= X-Received: by 2002:ac8:9d:: with SMTP id c29mr26158295qtg.288.1590355699390; Sun, 24 May 2020 14:28:19 -0700 (PDT) Received: from rani.riverdale.lan ([2001:470:1f07:5f3::b55f]) by smtp.gmail.com with ESMTPSA id d14sm3665729qkg.25.2020.05.24.14.28.18 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 24 May 2020 14:28:19 -0700 (PDT) From: Arvind Sankar To: Thomas Gleixner , Ingo Molnar , Borislav Petkov , "H. Peter Anvin" , x86@kernel.org Cc: Nick Desaulniers , Fangrui Song , Dmitry Golovin , clang-built-linux@googlegroups.com, Ard Biesheuvel , Masahiro Yamada , Daniel Kiper , linux-kernel@vger.kernel.org Subject: [PATCH 1/4] x86/boot: Add .text.startup to setup.ld Date: Sun, 24 May 2020 17:28:13 -0400 Message-Id: <20200524212816.243139-2-nivedita@alum.mit.edu> X-Mailer: git-send-email 2.26.2 In-Reply-To: References: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org gcc puts the main function into .text.startup when compiled with -Os (or -O2). This results in arch/x86/boot/main.c having a .text.startup section which is currently not included explicitly in the linker script setup.ld in the same directory. The BFD linker places this orphan section immediately after .text, so this still works. However, LLD git, since [1], is choosing to place it immediately after the .bstext section instead (this is the first code section). This plays havoc with the section layout that setup.elf requires to create the setup header, for eg on 64-bit: LD arch/x86/boot/setup.elf ld.lld: error: section .text.startup file range overlaps with .header >>> .text.startup range is [0x200040, 0x2001FE] >>> .header range is [0x2001EF, 0x20026B] ld.lld: error: section .header file range overlaps with .bsdata >>> .header range is [0x2001EF, 0x20026B] >>> .bsdata range is [0x2001FF, 0x200398] ld.lld: error: section .bsdata file range overlaps with .entrytext >>> .bsdata range is [0x2001FF, 0x200398] >>> .entrytext range is [0x20026C, 0x2002D3] ld.lld: error: section .text.startup virtual address range overlaps with .header >>> .text.startup range is [0x40, 0x1FE] >>> .header range is [0x1EF, 0x26B] ld.lld: error: section .header virtual address range overlaps with .bsdata >>> .header range is [0x1EF, 0x26B] >>> .bsdata range is [0x1FF, 0x398] ld.lld: error: section .bsdata virtual address range overlaps with .entrytext >>> .bsdata range is [0x1FF, 0x398] >>> .entrytext range is [0x26C, 0x2D3] ld.lld: error: section .text.startup load address range overlaps with .header >>> .text.startup range is [0x40, 0x1FE] >>> .header range is [0x1EF, 0x26B] ld.lld: error: section .header load address range overlaps with .bsdata >>> .header range is [0x1EF, 0x26B] >>> .bsdata range is [0x1FF, 0x398] ld.lld: error: section .bsdata load address range overlaps with .entrytext >>> .bsdata range is [0x1FF, 0x398] >>> .entrytext range is [0x26C, 0x2D3] Explicitly pull .text.startup into the .text output section to avoid this. [1] https://reviews.llvm.org/D75225 Signed-off-by: Arvind Sankar Reviewed-by: Fangrui Song --- arch/x86/boot/setup.ld | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/x86/boot/setup.ld b/arch/x86/boot/setup.ld index 24c95522f231..ed60abcdb089 100644 --- a/arch/x86/boot/setup.ld +++ b/arch/x86/boot/setup.ld @@ -20,7 +20,7 @@ SECTIONS .initdata : { *(.initdata) } __end_init = .; - .text : { *(.text) } + .text : { *(.text.startup) *(.text) } .text32 : { *(.text32) } . = ALIGN(16); -- 2.26.2