Received: by 2002:a05:6358:16cc:b0:ea:6187:17c9 with SMTP id r12csp9615774rwl; Wed, 11 Jan 2023 07:54:17 -0800 (PST) X-Google-Smtp-Source: AMrXdXsI5jkLsu4mdEgstax0FWRkrZ8oYj9v7DUHzBa1e1GZTr3WQOeG8LMYImZIIkvn3PLzS0yG X-Received: by 2002:a17:902:7798:b0:192:aecb:232b with SMTP id o24-20020a170902779800b00192aecb232bmr42457266pll.18.1673452457295; Wed, 11 Jan 2023 07:54:17 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1673452457; cv=none; d=google.com; s=arc-20160816; b=DJS+lyUmKlyFajy7bMuUmp4Y1aZiMmbbB7bqcPjGbOjc18sp07gN46vbgnOUVeO+9/ ZnSgqcvJXqR8lJ7Nx+5d8T64XV6TD4xVIi0ITteOsL0MQIFn0i+5lqme51f98QPfS91O jdSDfUa0YPDGhSUD2CnTwiALYmfVMb2u65x9X/tWWeZJ0BicM9FDRRIaQCmjTcBbk8Z6 0Ui/VHAq/hFNUll0atjv7JsNpy6sZdX5UrBSdkmYNUKptMWFzKb++fMCv7hdmdtPJgbb DOy45ctq1sWuIj4G/J/zbfCUk4ZGC6PK6Psk1ooJZUj8YURjnFqcXOHpyLC3AGdlFdJc ZJGA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:cc:to:subject :message-id:date:from:in-reply-to:references:mime-version; bh=IYWAQlml+Pn0pAcqoUfEK417st8xp32YLOWG4yh9uFY=; b=w+w1e6z8O6jJM9azuZy7o9a3Z6OumNdgETJDXtIgM6/bAHeY5xPAPOiO5voUkokiK1 0GWmgN0r9YxAIUcG8X9yePEFKBa5078ffTaA0qdEX6oyClwqmqMfdETlV2hmphIXoLX3 l7dPh3kRpEnoYqqOo6rQ+qPo7ApVmCj88gbIrW4G5m5i5+8EnamqD7CEve3PW3senqdY UzLCY3O1BTOhuowZz7m1Co/N/lyniDY2+yweGRgNd0c9f6JQ0V2hrCvtgbTdSwftfwzY /p5XTt2Fu1nSSlbngxLjHda9CVQmEtguDWgwnn3p59nsDn9r8EpGpP1GxlTjXo3YtNPi t7bw== ARC-Authentication-Results: i=1; mx.google.com; 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 Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id x12-20020a1709027c0c00b0018666611f85si13414669pll.508.2023.01.11.07.54.10; Wed, 11 Jan 2023 07:54:17 -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; 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 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S234175AbjAKPfB convert rfc822-to-8bit (ORCPT + 51 others); Wed, 11 Jan 2023 10:35:01 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:57984 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S234294AbjAKPep (ORCPT ); Wed, 11 Jan 2023 10:34:45 -0500 Received: from mail-ej1-f42.google.com (mail-ej1-f42.google.com [209.85.218.42]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 599A81A04E; Wed, 11 Jan 2023 07:34:43 -0800 (PST) Received: by mail-ej1-f42.google.com with SMTP id ud5so37813375ejc.4; Wed, 11 Jan 2023 07:34:43 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=l2VLOWtd0IgkRxHp6V/NmwaljU6/IouUI04AHYWfdKQ=; b=ANw59025NOHpmMQM3DLfgg1wXoYkR6klxfVuM8eODIBNXOj4/a3kz+dTt1KivvG+9J ZFZn/7GWvC/dLBNb+nX7Z4aJhSqmzCsGZTxLd2pJP7dXA20gOVr7xPAzQ5pbCFjFvOK+ efbHC4ZK1Xe3UYbYoagEWY2gNKhim2qqzzs//BAsK7dA/vx+Dk9bc306Ca0uHp+wEzpo RFRL92ZqTk27wpMnWZ1RDZ1LY0n3I3FiuDWD3tR59TfW+vDniP4Pe9l5qAy5fJNC6/is iYxfBoKrHdm7xX9w5icWcAPKtoBf7lfYZpsU7f5eZDezVadIcMiob/7GaThShm0m5FfI JshA== X-Gm-Message-State: AFqh2krLr+g2pKXtPepT1BcFURq3WoWsRJo2EXrmwAdZmst7WnmEPJq0 /vcIkeIej7aI+VQoEdL/sb2dPjNM41I5+MAu X-Received: by 2002:a17:907:7094:b0:844:1d1d:1fa with SMTP id yj20-20020a170907709400b008441d1d01famr68813211ejb.23.1673451281395; Wed, 11 Jan 2023 07:34:41 -0800 (PST) Received: from mail-ej1-f53.google.com (mail-ej1-f53.google.com. [209.85.218.53]) by smtp.gmail.com with ESMTPSA id a20-20020a17090680d400b007c4f32726c4sm6305246ejx.133.2023.01.11.07.34.39 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 11 Jan 2023 07:34:40 -0800 (PST) Received: by mail-ej1-f53.google.com with SMTP id az20so18706052ejc.1; Wed, 11 Jan 2023 07:34:39 -0800 (PST) X-Received: by 2002:a17:906:49d3:b0:7c0:a321:8df2 with SMTP id w19-20020a17090649d300b007c0a3218df2mr6486438ejv.308.1673451279436; Wed, 11 Jan 2023 07:34:39 -0800 (PST) MIME-Version: 1.0 References: <20230111152050.559334-1-yakoyoku@gmail.com> In-Reply-To: <20230111152050.559334-1-yakoyoku@gmail.com> From: Neal Gompa Date: Wed, 11 Jan 2023 10:34:03 -0500 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: [PATCH v3] scripts: Exclude Rust CUs with pahole To: Martin Rodriguez Reboredo Cc: linux-kernel@vger.kernel.org, Arnaldo Carvalho de Melo , Eric Curtin , bpf@vger.kernel.org, rust-for-linux@vger.kernel.org, Alexei Starovoitov , Daniel Borkmann , Andrii Nakryiko , Jiri Olsa , Yonghong Song , Miguel Ojeda Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 8BIT X-Spam-Status: No, score=-1.4 required=5.0 tests=BAYES_00, FREEMAIL_ENVFROM_END_DIGIT,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H3, RCVD_IN_MSPIKE_WL,SPF_HELO_NONE,SPF_PASS autolearn=no 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 On Wed, Jan 11, 2023 at 10:21 AM Martin Rodriguez Reboredo wrote: > > Version 1.24 of pahole has the capability to exclude compilation units > (CUs) of specific languages [1] [2]. Rust, as of writing, is not > currently supported by pahole and if it's used with a build that has > BTF debugging enabled it results in malformed kernel and module > binaries [3]. So it's better for pahole to exclude Rust CUs until > support for it arrives. > > Link: https://git.kernel.org/pub/scm/devel/pahole/pahole.git/commit/?id=49358dfe2aaae4e90b072332c3e324019826783f [1] > Link: https://git.kernel.org/pub/scm/devel/pahole/pahole.git/commit/?id=8ee363790b7437283c53090a85a9fec2f0b0fbc4 [2] > Link: https://github.com/Rust-for-Linux/linux/issues/735 [3] > > Co-developed-by: Eric Curtin > Signed-off-by: Eric Curtin > Signed-off-by: Martin Rodriguez Reboredo > --- > V2 -> V3: Enable pahole option upon comparing with version 1.24 > V1 -> V2: Removed dependency on auto.conf > > init/Kconfig | 2 +- > lib/Kconfig.debug | 9 +++++++++ > scripts/pahole-flags.sh | 4 ++++ > 3 files changed, 14 insertions(+), 1 deletion(-) > > diff --git a/init/Kconfig b/init/Kconfig > index 694f7c160c9c..360aef8d7292 100644 > --- a/init/Kconfig > +++ b/init/Kconfig > @@ -1913,7 +1913,7 @@ config RUST > depends on !MODVERSIONS > depends on !GCC_PLUGINS > depends on !RANDSTRUCT > - depends on !DEBUG_INFO_BTF > + depends on !DEBUG_INFO_BTF || PAHOLE_HAS_LANG_EXCLUDE Does the order matter here? I'd rather it prefer a fixed pahole and disable BTF only if we can't use pahole properly. > select CONSTRUCTORS > help > Enables Rust support in the kernel. > diff --git a/lib/Kconfig.debug b/lib/Kconfig.debug > index ea4c903c9868..d473d491e709 100644 > --- a/lib/Kconfig.debug > +++ b/lib/Kconfig.debug > @@ -364,6 +364,15 @@ config PAHOLE_HAS_BTF_TAG > btf_decl_tag) or not. Currently only clang compiler implements > these attributes, so make the config depend on CC_IS_CLANG. > > +config PAHOLE_HAS_LANG_EXCLUDE > + def_bool PAHOLE_VERSION >= 124 > + help > + Support for the --lang_exclude flag which makes pahole exclude > + compilation units from the supplied language. Used in Kbuild to > + omit Rust CUs which are not supported in version 1.24 of pahole, > + otherwise it would emit malformed kernel and module binaries when > + using DEBUG_INFO_BTF_MODULES. > + > config DEBUG_INFO_BTF_MODULES > def_bool y > depends on DEBUG_INFO_BTF && MODULES && PAHOLE_HAS_SPLIT_BTF > diff --git a/scripts/pahole-flags.sh b/scripts/pahole-flags.sh > index 0d99ef17e4a5..1f1f1d397c39 100755 > --- a/scripts/pahole-flags.sh > +++ b/scripts/pahole-flags.sh > @@ -19,5 +19,9 @@ fi > if [ "${pahole_ver}" -ge "122" ]; then > extra_paholeopt="${extra_paholeopt} -j" > fi > +if [ "${pahole_ver}" -ge "124" ]; then > + # see PAHOLE_HAS_LANG_EXCLUDE > + extra_paholeopt="${extra_paholeopt} --lang_exclude=rust" > +fi > > echo ${extra_paholeopt} > -- > 2.39.0 > -- 真実はいつも一つ!/ Always, there's only one truth!