From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-15.1 required=3.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,INCLUDES_PATCH,MAILING_LIST_MULTI, MENTIONS_GIT_HOSTING,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED, USER_AGENT_GIT autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 2C430C74A21 for ; Wed, 10 Jul 2019 15:04:20 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 01EF321530 for ; Wed, 10 Jul 2019 15:04:20 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1562771060; bh=e9FnrTzfvN+MV9dXX82CiZDWenh8BtuInyCDCV/kLmU=; h=From:To:Cc:Subject:Date:In-Reply-To:References:List-ID:From; b=NwE1FzJn9iB/W3nY4l9kQ/BJGeurH5xohBirOpi+1BXWrgaQmoEg39jhSUJ5g+njF MUeUtyk8EKxulb64J385CVr9U2eVxZi+3HWVuNhqwui8bht0K5Rm+MV8H84HowdxGN fm1v+ZtPqq99k3yrieaBsT96YbMbi9V5WmzBa+Is= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728276AbfGJPDq (ORCPT ); Wed, 10 Jul 2019 11:03:46 -0400 Received: from mail.kernel.org ([198.145.29.99]:35782 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728270AbfGJPDp (ORCPT ); Wed, 10 Jul 2019 11:03:45 -0400 Received: from sasha-vm.mshome.net (c-73-47-72-35.hsd1.nh.comcast.net [73.47.72.35]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 9313221537; Wed, 10 Jul 2019 15:03:43 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1562771024; bh=e9FnrTzfvN+MV9dXX82CiZDWenh8BtuInyCDCV/kLmU=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=RUL6jevqVPR1KHPUEyxkdGo+SmEeeydmpM4iDQP29y7HZNJR71Ct7kX/c/It/L5nq jUNDHG5zNOcRN4L99B6yq0ssBUueSgl5w+ZQbUap6qhQmKSRw7HjXw1em+ZLGE1U0/ dHfx3219MTL2GJhLrwwLtpCEkGjM61i7hHroKpB4= From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Nathan Chancellor , Ard Biesheuvel , Fangrui Song , Peter Smith , Will Deacon , Sasha Levin , clang-built-linux@googlegroups.com Subject: [PATCH AUTOSEL 4.9 3/7] arm64/efi: Mark __efistub_stext_offset as an absolute symbol explicitly Date: Wed, 10 Jul 2019 11:03:31 -0400 Message-Id: <20190710150337.7390-3-sashal@kernel.org> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20190710150337.7390-1-sashal@kernel.org> References: <20190710150337.7390-1-sashal@kernel.org> MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: 8bit Sender: stable-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: stable@vger.kernel.org From: Nathan Chancellor [ Upstream commit aa69fb62bea15126e744af2e02acc0d6cf3ed4da ] After r363059 and r363928 in LLVM, a build using ld.lld as the linker with CONFIG_RANDOMIZE_BASE enabled fails like so: ld.lld: error: relocation R_AARCH64_ABS32 cannot be used against symbol __efistub_stext_offset; recompile with -fPIC Fangrui and Peter figured out that ld.lld is incorrectly considering __efistub_stext_offset as a relative symbol because of the order in which symbols are evaluated. _text is treated as an absolute symbol and stext is a relative symbol, making __efistub_stext_offset a relative symbol. Adding ABSOLUTE will force ld.lld to evalute this expression in the right context and does not change ld.bfd's behavior. ld.lld will need to be fixed but the developers do not see a quick or simple fix without some research (see the linked issue for further explanation). Add this simple workaround so that ld.lld can continue to link kernels. Link: https://github.com/ClangBuiltLinux/linux/issues/561 Link: https://github.com/llvm/llvm-project/commit/025a815d75d2356f2944136269aa5874721ec236 Link: https://github.com/llvm/llvm-project/commit/249fde85832c33f8b06c6b4ac65d1c4b96d23b83 Acked-by: Ard Biesheuvel Debugged-by: Fangrui Song Debugged-by: Peter Smith Suggested-by: Fangrui Song Signed-off-by: Nathan Chancellor [will: add comment] Signed-off-by: Will Deacon Signed-off-by: Sasha Levin --- arch/arm64/kernel/image.h | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/arch/arm64/kernel/image.h b/arch/arm64/kernel/image.h index c7fcb232fe47..d3e8c901274d 100644 --- a/arch/arm64/kernel/image.h +++ b/arch/arm64/kernel/image.h @@ -73,7 +73,11 @@ #ifdef CONFIG_EFI -__efistub_stext_offset = stext - _text; +/* + * Use ABSOLUTE() to avoid ld.lld treating this as a relative symbol: + * https://github.com/ClangBuiltLinux/linux/issues/561 + */ +__efistub_stext_offset = ABSOLUTE(stext - _text); /* * Prevent the symbol aliases below from being emitted into the kallsyms -- 2.20.1