From patchwork Thu Jan 5 03:13:06 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Masahiro Yamada X-Patchwork-Id: 13090296 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 44754C3DA7A for ; Thu, 5 Jan 2023 18:55:30 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:Message-Id:Date:Subject:Cc :To:From:Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:In-Reply-To:References: List-Owner; bh=pLLN3nU41/F978/BuzT7ACsJGaii/I6deX1ljvslY+Q=; b=QDP/J5b3BwYbi9 4EXxz5ouQvyEM3aY41A+YofSw9q/3daGceV+y4LcBHTT5pUrSRsFrZ6MviXJu2yOVloEfYQJkewNY 0/ffQsJrAlfbYjKZOdjW+seSwzpxnEn3DVuCLIiHU1o2F4UOkS/u8m+fndghJ6B84xTD+GlgH+i4a r30/EEcJrhaUZ0t9Nm40zEMvVp1TWmM3KHgGk+9SpqIRB5qxOWTTxfUyYWlaBaAmboLgB5WA2EJSF 4j1vSAfvX40a70RFUKdZSjo+entEaPIP7v+a4wAKXb4BeEXpzEZlOjEfpowgJ40A25522P3ZKAKCg NBUm8mB+ggJhsDE4TPFQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1pDVOc-00DsRB-DO; Thu, 05 Jan 2023 18:55:22 +0000 Received: from ams.source.kernel.org ([145.40.68.75]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1pDGhA-000DUt-Fj for linux-riscv@lists.infradead.org; Thu, 05 Jan 2023 03:13:34 +0000 Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ams.source.kernel.org (Postfix) with ESMTPS id 12684B818BE; Thu, 5 Jan 2023 03:13:30 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id E86B4C433D2; Thu, 5 Jan 2023 03:13:25 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1672888408; bh=YnKl2FBCXiaBjrNl0REn5dNKY0Q6EySYYFkSnMPC+vY=; h=From:To:Cc:Subject:Date:From; b=VHiMXA/CsIlejRRbE7SJhdHu7OWRUz939Sd7Yr2z+9QlOCPk9D1mHimOZhR6rek+G zZu9xTxzHbNSLARXUJCnDL7E7+XOdL1vHd/0T0VnA/Czl1VokpLlcuUoXo2aMM2DHX 4tR4fGRq7XuX9j7qYHdgh4+kuDkYe7y8CNpcnmQYinbgXS/R90rAPaOHbN33wxFaiq 5dXOYs+hGtZScg4EWumeD/OscFzlD+CZ5JYSIGxqosqK7u7CwBN+NUwYwWKlP2pY/z fYry873AJLzPjcwb1KGbtpPyaRWNx72S/rID1S/2+FCt36BBG371SA2dXBNJY9upm0 2uQ60LD+xJCvw== From: Masahiro Yamada To: Heiko Carstens , Vasily Gorbik , Alexander Gordeev , Christian Borntraeger , Sven Schnelle , linux-s390@vger.kernel.org Cc: linux-kernel@vger.kernel.org, Ard Biesheuvel , linux-kbuild@vger.kernel.org, Nathan Chancellor , Masahiro Yamada , Albert Ou , Josh Poimboeuf , Palmer Dabbelt , Paul Walmsley , linux-riscv@lists.infradead.org Subject: [PATCH] s390: define RUNTIME_DISCARD_EXIT to fix link error with GNU ld < 2.36 Date: Thu, 5 Jan 2023 12:13:06 +0900 Message-Id: <20230105031306.1455409-1-masahiroy@kernel.org> X-Mailer: git-send-email 2.34.1 MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20230104_191332_885133_E8BAB124 X-CRM114-Status: GOOD ( 11.46 ) X-BeenThere: linux-riscv@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-riscv" Errors-To: linux-riscv-bounces+linux-riscv=archiver.kernel.org@lists.infradead.org Nathan Chancellor reports that the s390 vmlinux fails to link with GNU ld < 2.36 since commit 99cb0d917ffa ("arch: fix broken BuildID for arm64 and riscv"). It happens for defconfig, or more specifically for CONFIG_EXPOLINE=y. $ s390x-linux-gnu-ld --version | head -n1 GNU ld (GNU Binutils for Debian) 2.35.2 $ make -s ARCH=s390 CROSS_COMPILE=s390x-linux-gnu- allnoconfig $ ./scripts/config -e CONFIG_EXPOLINE $ make -s ARCH=s390 CROSS_COMPILE=s390x-linux-gnu- olddefconfig $ make -s ARCH=s390 CROSS_COMPILE=s390x-linux-gnu- `.exit.text' referenced in section `.s390_return_reg' of drivers/base/dd.o: defined in discarded section `.exit.text' of drivers/base/dd.o make[1]: *** [scripts/Makefile.vmlinux:34: vmlinux] Error 1 make: *** [Makefile:1252: vmlinux] Error 2 arch/s390/kernel/vmlinux.lds.S wants to keep EXIT_TEXT: .exit.text : { EXIT_TEXT } But, at the same time, EXIT_TEXT is thrown away by DISCARD because s390 does not define RUNTIME_DISCARD_EXIT. I still do not understand why the latter wins after 99cb0d917ffa, but defining RUNTIME_DISCARD_EXIT seems correct because the comment line in arch/s390/kernel/vmlinux.lds.S says: /* * .exit.text is discarded at runtime, not link time, * to deal with references from __bug_table */ Nathan also found that binutils commit 21401fc7bf67 ("Duplicate output sections in scripts") cured this issue, so we cannot reproduce it with binutils 2.36+, but it is better to not rely on it. Fixes: 99cb0d917ffa ("arch: fix broken BuildID for arm64 and riscv") Link: https://lore.kernel.org/all/Y7Jal56f6UBh1abE@dev-arch.thelio-3990X/ Reported-by: Nathan Chancellor Signed-off-by: Masahiro Yamada --- arch/s390/kernel/vmlinux.lds.S | 2 ++ 1 file changed, 2 insertions(+) diff --git a/arch/s390/kernel/vmlinux.lds.S b/arch/s390/kernel/vmlinux.lds.S index 5ea3830af0cc..6e101e6f499d 100644 --- a/arch/s390/kernel/vmlinux.lds.S +++ b/arch/s390/kernel/vmlinux.lds.S @@ -17,6 +17,8 @@ /* Handle ro_after_init data on our own. */ #define RO_AFTER_INIT_DATA +#define RUNTIME_DISCARD_EXIT + #define EMITS_PT_NOTE #include