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: 39292 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:4e01:0:0:0:0:0 with SMTP id p1csp95908wrt; Wed, 4 Jan 2023 19:19:14 -0800 (PST) X-Google-Smtp-Source: AMrXdXtbeyWZ6BgqgM+kQOo9VHpnM4XfBMrEpRYQ9LgWShqCGvYUYFX6H4PN41L5iJ1NE5gLNhSr X-Received: by 2002:a17:902:6b08:b0:191:3c6:1748 with SMTP id o8-20020a1709026b0800b0019103c61748mr52583499plk.11.1672888754539; Wed, 04 Jan 2023 19:19:14 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1672888754; cv=none; d=google.com; s=arc-20160816; b=OmKut117EM2EUWYBI+kTo71CJu7Br+JBjWXDYyLZAFCq0srKVeIcLswdVaWpXfcVDC zB0YpXvRsX5YpfqC63MwUwyQd8WmORu9bY+eADXtlMKYJwn5QhsC6HXBtnKQ5jpqYTz/ +QuqSlB/cKDpUxUydZqK0pgoCjRS3Jop18aZAboafidmVWXGsAmZpt7xmukvccaEWr9Q YiLWZMbIujOmC7uYnDfjvPD/giu1YAzNPpiJHiEoVR9pw9zD2N75CV/6Hlw7q7N2hhm4 qbxC1MoxKMsllLylPgYXVtZYEMuEpuVH5tqafWlnNVkRqXbYEc4nTEv3NrNMxm7QUF/0 DQOA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :message-id:date:subject:cc:to:from:dkim-signature; bh=FJq8a/jqrgPxd4+aXljcmqUTyNPjP+UTnosj22uOgHk=; b=0HkKmobeiIZfiScs5ZLWCpvRGlV3Tgg7sew0DCttsyvPtrz/9i8qa81w80RLyRJLtM wyKUa/p4ObC3XSm43C8i9ftpG0k4sfCsUWYA2kmsoULNdyla9X2cTEcCSEt70uuPbX/j xKh6971f+TPXK7UclXZdUr6/zJE0bUAU0qQ7Lqu2bJ7hmE9P8+YxNYSVerSu04NXj+ri NH0sEpFMPWzQRvaWaf64uM3sMad0i0QAISfyyHKsuls/WDC58c5btDHOjXvAV+HcSjYF wX0z5OxAUs5ZQ649UL1AnPqycaKqi/3p8iL6cuWc2WtHK4EvAzqaZmentSH6yGcHQXeL 6Icg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b="VHiMXA/C"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id n9-20020a170902e54900b00192b09ce09asi17498545plf.318.2023.01.04.19.19.02; Wed, 04 Jan 2023 19:19:14 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b="VHiMXA/C"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229719AbjAEDNj (ORCPT + 99 others); Wed, 4 Jan 2023 22:13:39 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:58652 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229895AbjAEDNe (ORCPT ); Wed, 4 Jan 2023 22:13:34 -0500 Received: from dfw.source.kernel.org (dfw.source.kernel.org [IPv6:2604:1380:4641:c500::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id D92AA485A3; Wed, 4 Jan 2023 19:13:29 -0800 (PST) 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 dfw.source.kernel.org (Postfix) with ESMTPS id 6B5BF60C95; Thu, 5 Jan 2023 03:13:29 +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-Spam-Status: No, score=-7.1 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_HI, SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1754150998562338246?= X-GMAIL-MSGID: =?utf-8?q?1754150998562338246?= 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