Received: by 10.223.176.46 with SMTP id f43csp2668664wra; Mon, 22 Jan 2018 01:14:20 -0800 (PST) X-Google-Smtp-Source: AH8x225L2BZ1wujnPqXBQfoCX5QRADtLvMTVuzWt0KaIDOBPSRQdJ8CQI7dePfXOdlS8tiqk+W5C X-Received: by 10.98.10.79 with SMTP id s76mr7710783pfi.63.1516612460129; Mon, 22 Jan 2018 01:14:20 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1516612460; cv=none; d=google.com; s=arc-20160816; b=wcn/FXKbrMgDpwnaOuhHq9ebWqOsLOWAYYxzyH4X7B6aCaj8zE6OXSvAbE8xJfoGyi e3QpmL+kJShECPW7waxWvKqAEnVap0bCIAi0IyISeiWGNKh7MWS2LFup5yRhq1lNK0lp bZUzetyKATt1rSleB3TnZ93D+MP5k21SwLAbazd83Cf1JJoKqm8O1V3C1OxTmOQAXnVZ pBTA6G6uXkR19bXTe7/nNPL/l5Jqtoq2IeSVVN9n0eoRjDnSIueMODZ5F3xkzv03FCVJ gtM9w71iJeyU0W6dt5USLIJen2Eu/FLyIv0UY4+C4BW238ulR7Na/kU49obMq+WUeSfy 7dkw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:user-agent:references :in-reply-to:message-id:date:subject:cc:to:from :arc-authentication-results; bh=R5qM75WwhLCOLMwgsXXdMh8uCBeTMUp42dYMgxTKpIk=; b=hybCUqhRkVXSuTUacBi+R9TICzY+b25eGF7medPNyO4HXoZd+9t1+kaKTJ/XOyR6xc nV0haMn+jy7fs7pc+Us7mKO5/FRNfHKPuXOD6+o1n5Qxr/7iFatRGZOrb2mbQ9rKC7IS lWQqblvS3Fof7hHb4GrEa3m/T3+iSjcrjdTX6nmLS2IGmcEuFM/PX6J98+v/nD8G1S/y bK+EQJIKnFTnJqRDq6uae3MlAqDzU6bRdtzCPin3ceirvwj6edM81y167i94ZoJ9LgCT iShI+A80Y2zw6d/Inniv9+142hxY4XfjafNUrgZd9y6mhr7eSqgLhGmZX1i2B7JSCFjy +aWg== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id n4si15123169pfb.23.2018.01.22.01.14.06; Mon, 22 Jan 2018 01:14:20 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752866AbeAVIv1 (ORCPT + 99 others); Mon, 22 Jan 2018 03:51:27 -0500 Received: from mail.linuxfoundation.org ([140.211.169.12]:33242 "EHLO mail.linuxfoundation.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752530AbeAVIvW (ORCPT ); Mon, 22 Jan 2018 03:51:22 -0500 Received: from localhost (LFbn-1-12258-90.w90-92.abo.wanadoo.fr [90.92.71.90]) by mail.linuxfoundation.org (Postfix) with ESMTPSA id 792D9E9A; Mon, 22 Jan 2018 08:51:21 +0000 (UTC) From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Josh Poimboeuf , Linus Torvalds , Peter Zijlstra , Thomas Gleixner , Ingo Molnar , Guenter Roeck Subject: [PATCH 4.14 29/89] objtool: Fix seg fault with gold linker Date: Mon, 22 Jan 2018 09:45:09 +0100 Message-Id: <20180122083957.559282853@linuxfoundation.org> X-Mailer: git-send-email 2.16.0 In-Reply-To: <20180122083954.683903493@linuxfoundation.org> References: <20180122083954.683903493@linuxfoundation.org> User-Agent: quilt/0.65 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 4.14-stable review patch. If anyone has any objections, please let me know. ------------------ From: Josh Poimboeuf commit 2a0098d70640dda192a79966c14d449e7a34d675 upstream. Objtool segfaults when the gold linker is used with CONFIG_MODVERSIONS=y and CONFIG_UNWINDER_ORC=y. With CONFIG_MODVERSIONS=y, the .o file gets passed to the linker before being passed to objtool. The gold linker seems to strip unused ELF symbols by default, which confuses objtool and causes the seg fault when it's trying to generate ORC metadata. Objtool should really be running immediately after GCC anyway, without a linker call in between. Change the makefile ordering so that objtool is called before the linker. Reported-and-tested-by: Markus Signed-off-by: Josh Poimboeuf Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Fixes: ee9f8fce9964 ("x86/unwind: Add the ORC unwinder") Link: http://lkml.kernel.org/r/355f04da33581f4a3bf82e5b512973624a1e23a2.1516025651.git.jpoimboe@redhat.com Signed-off-by: Ingo Molnar Cc: Guenter Roeck Signed-off-by: Greg Kroah-Hartman --- scripts/Makefile.build | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) --- a/scripts/Makefile.build +++ b/scripts/Makefile.build @@ -270,12 +270,18 @@ else objtool_args += $(call cc-ifversion, -lt, 0405, --no-unreachable) endif +ifdef CONFIG_MODVERSIONS +objtool_o = $(@D)/.tmp_$(@F) +else +objtool_o = $(@) +endif + # 'OBJECT_FILES_NON_STANDARD := y': skip objtool checking for a directory # 'OBJECT_FILES_NON_STANDARD_foo.o := 'y': skip objtool checking for a file # 'OBJECT_FILES_NON_STANDARD_foo.o := 'n': override directory skip for a file cmd_objtool = $(if $(patsubst y%,, \ $(OBJECT_FILES_NON_STANDARD_$(basetarget).o)$(OBJECT_FILES_NON_STANDARD)n), \ - $(__objtool_obj) $(objtool_args) "$(@)";) + $(__objtool_obj) $(objtool_args) "$(objtool_o)";) objtool_obj = $(if $(patsubst y%,, \ $(OBJECT_FILES_NON_STANDARD_$(basetarget).o)$(OBJECT_FILES_NON_STANDARD)n), \ $(__objtool_obj)) @@ -291,15 +297,15 @@ objtool_dep = $(objtool_obj) \ define rule_cc_o_c $(call echo-cmd,checksrc) $(cmd_checksrc) \ $(call cmd_and_fixdep,cc_o_c) \ - $(cmd_modversions_c) \ $(call echo-cmd,objtool) $(cmd_objtool) \ + $(cmd_modversions_c) \ $(call echo-cmd,record_mcount) $(cmd_record_mcount) endef define rule_as_o_S $(call cmd_and_fixdep,as_o_S) \ - $(cmd_modversions_S) \ - $(call echo-cmd,objtool) $(cmd_objtool) + $(call echo-cmd,objtool) $(cmd_objtool) \ + $(cmd_modversions_S) endef # List module undefined symbols (or empty line if not enabled)