Received: by 2002:ac0:e350:0:0:0:0:0 with SMTP id g16csp1702591imn; Sun, 31 Jul 2022 18:41:39 -0700 (PDT) X-Google-Smtp-Source: AGRyM1vTQUCbYhHibfmE3od+tPvfZlExhxj3nyUfc/iAsYDbcZzBqTZnTI93yd/Ix3dIwexZkeOs X-Received: by 2002:a17:906:4fd3:b0:72f:2306:32a6 with SMTP id i19-20020a1709064fd300b0072f230632a6mr10666085ejw.83.1659318098858; Sun, 31 Jul 2022 18:41:38 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1659318098; cv=none; d=google.com; s=arc-20160816; b=BudeMSO+F8KdzekXLyyxxfk3irnrdSXdxCq/Z46Z5Yd4xAlUbfP4xuy6lD3tKGzxYd v7CjJhgQvndm7EQS3E54lznutr7TTSl3CnBJlpu3nS2sRzSZOfk3micxmR6VXATikuDN CDAQNaaBxXm5sBs47D1w8i4yR7jgv24FsvtMWkG5gyfyyGiV/FX6jQ3MrKTV5MROrstM sjN53ws3jkbOf/l6O3czBUiIHxHcCJj4BGz58aJKI14XhLdq5eN1zLDNQGkknEl0kMyZ jsXKFtTMXrneT5lmGHkv0hp5SPpG9qGF2yOWM11r8mFEI8it1IVsV43g+klUTkhonjzt wCvQ== 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 :references:in-reply-to:message-id:date:subject:cc:to:from :feedback-id:dkim-signature:dkim-signature; bh=KwEB0XSuZowjFupqaLWGnwmCrXRrnoFcU7ypZIYPRKA=; b=0SxhkH+kJTBoOvgKkIAQ3c4iQ6eJpfzDbGf/MdVpSkX7mBC5m7+LyDNJph/UFz56a6 ieAya02dUz8yqexkhEVBxf2/LLfD6CTonC8giWGvtwtOzFF27mP6S9vhM9PR96Ggq/2A AfPDNfcIqWKgFYSrgjDrshOlXZcCCeLXWKJ6AAZRngcrIyANXT3NaK2i7NaOG6tYgkx2 P3+pjfLEUA0FXJd8Ov1w0C/+X9dwtUUTpRy70dNqE7J0q+ejsqk0raTog5kzc3RSECp6 3L2ykV0jVxwT9fUIQm/xFX9/DtDjecyjXrDcKO+Qx0FX/gTqpOiLY/0khr3TpS5qoWT9 uFRg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@anarazel.de header.s=fm3 header.b=ZICyB0Ja; dkim=pass header.i=@messagingengine.com header.s=fm3 header.b="V/odDKol"; 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 p14-20020a50cd8e000000b0043c23c5d892si6593229edi.444.2022.07.31.18.41.14; Sun, 31 Jul 2022 18:41:38 -0700 (PDT) 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=@anarazel.de header.s=fm3 header.b=ZICyB0Ja; dkim=pass header.i=@messagingengine.com header.s=fm3 header.b="V/odDKol"; 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 S238826AbiHABiq (ORCPT + 99 others); Sun, 31 Jul 2022 21:38:46 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:48000 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S238735AbiHABil (ORCPT ); Sun, 31 Jul 2022 21:38:41 -0400 Received: from wout1-smtp.messagingengine.com (wout1-smtp.messagingengine.com [64.147.123.24]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 27D59D10B; Sun, 31 Jul 2022 18:38:40 -0700 (PDT) Received: from compute2.internal (compute2.nyi.internal [10.202.2.46]) by mailout.west.internal (Postfix) with ESMTP id 18EF03200488; Sun, 31 Jul 2022 21:38:37 -0400 (EDT) Received: from mailfrontend2 ([10.202.2.163]) by compute2.internal (MEProxy); Sun, 31 Jul 2022 21:38:37 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=anarazel.de; h= cc:cc:content-transfer-encoding:date:date:from:from:in-reply-to :in-reply-to:message-id:mime-version:references:reply-to:sender :subject:subject:to:to; s=fm3; t=1659317916; x=1659404316; bh=Kw EB0XSuZowjFupqaLWGnwmCrXRrnoFcU7ypZIYPRKA=; b=ZICyB0JaiDwyMguye1 XbE7GSE+iKm5DlkLYNqBmbA0R+9PM/7og1noZqhelyrKxdaexoIqIrH6TDGx9VCj zcUqJPuq5HC423CAXt8JCxhtdzwdQZeOeHDYNTAPj5BsriQsFQoKUKk2FoUYO/eR rBgsv+O6mTOrtwrVLh3vQt+eiudwdAp7RiVEte5VCcL4iP2H1Ozb5YfVmjyK5uBR CT9SSKl5gHLS8pmq6WJS/MnjZamKKIh9xODjb3P5JEFcvtnOIT+yHNvqqNLT39eL x24ijVEsadiKxmbyIbmuODzQ13991sQxkgKDDVbOMGEYyw9uzZ8+w8SiUgSP3WE5 HLHw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-transfer-encoding:date:date :feedback-id:feedback-id:from:from:in-reply-to:in-reply-to :message-id:mime-version:references:reply-to:sender:subject :subject:to:to:x-me-proxy:x-me-proxy:x-me-sender:x-me-sender :x-sasl-enc; s=fm3; t=1659317916; x=1659404316; bh=KwEB0XSuZowjF upqaLWGnwmCrXRrnoFcU7ypZIYPRKA=; b=V/odDKolm4jQKEGcR6dsCavrAhH+x CKQgm5OKUsbmeKz1J+BHEOyGWBVSLYygUIseOD2Us6Dy14gLz2E41U1e5YijUiIv SG4Tlotk8kVtWzHv1Ctc8h7K74CpI6rbMEkFkp5sWZfGF7nNC3XAymJQhfgWwNYH tazyzNY6djvchFlFvIYQySu7hZDSrn6mD3QMDGzog9W+9BiVdlPOpBZ+juBRmhtd RulXzxqWkMHTh9q4n8ugvG5RcMFqwkS8BpdYjqCkGKIHDu4+bSx5LWByYqvPe6Vm ims7wvIlGA8uRzaXkIlaU/FD5QnNgOgD6ePMhKmkvzoqhdx2gzzSKh+sg== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvfedrvddvvddggedtucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmne cujfgurhephffvvefufffkofgjfhgggfestdekredtredttdenucfhrhhomheptehnughr vghsucfhrhgvuhhnugcuoegrnhgurhgvshesrghnrghrrgiivghlrdguvgeqnecuggftrf grthhtvghrnhepleejgfdvfefhudektddtveegtdekieegffdtkeeljeetudevffeltdei feeugeeinecuffhomhgrihhnpehsohhurhgtvgifrghrvgdrohhrghdpkhgvrhhnvghlrd horhhgnecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomhep rghnughrvghssegrnhgrrhgriigvlhdruggv X-ME-Proxy: Feedback-ID: id4a34324:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Sun, 31 Jul 2022 21:38:36 -0400 (EDT) From: Andres Freund To: bpf@vger.kernel.org, linux-kernel@vger.kernel.org Cc: Alexei Starovoitov , Arnaldo Carvalho de Melo , Jiri Olsa , Sedat Dilek , Quentin Monnet , Ben Hutchings Subject: [PATCH v3 4/8] tools perf: Fix compilation error with new binutils Date: Sun, 31 Jul 2022 18:38:30 -0700 Message-Id: <20220801013834.156015-5-andres@anarazel.de> X-Mailer: git-send-email 2.37.0.3.g30cc8d0f14 In-Reply-To: <20220801013834.156015-1-andres@anarazel.de> References: <20220622231624.t63bkmkzphqvh3kx@alap3.anarazel.de> <20220801013834.156015-1-andres@anarazel.de> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-2.8 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_LOW,SPF_HELO_PASS, 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 binutils changed the signature of init_disassemble_info(), which now causes compilation failures for tools/perf/util/annotate.c, e.g. on debian unstable. Relevant binutils commit: https://sourceware.org/git/?p=binutils-gdb.git;a=commit;h=60a3da00bd5407f07 Wire up the feature test and switch to init_disassemble_info_compat(), which were introduced in prior commits, fixing the compilation failure. I verified that perf can still disassemble bpf programs by using bpftrace under load, recording a perf trace, and then annotating the bpf "function" with and without the changes. With old binutils there's no change in output before/after this patch. When comparing the output from old binutils (2.35) to new bintuils with the patch (upstream snapshot) there are a few output differences, but they are unrelated to this patch. An example hunk is: 1.15 : 55:mov %rbp,%rdx 0.00 : 58:add $0xfffffffffffffff8,%rdx 0.00 : 5c:xor %ecx,%ecx - 1.03 : 5e:callq 0xffffffffe12aca3c + 1.03 : 5e:call 0xffffffffe12aca3c 0.00 : 63:xor %eax,%eax - 2.18 : 65:leaveq - 2.82 : 66:retq + 2.18 : 65:leave + 2.82 : 66:ret Cc: Arnaldo Carvalho de Melo Cc: Sedat Dilek Link: http://lore.kernel.org/lkml/20220622181918.ykrs5rsnmx3og4sv@alap3.anarazel.de Signed-off-by: Andres Freund --- tools/perf/Makefile.config | 8 ++++++++ tools/perf/util/annotate.c | 7 ++++--- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/tools/perf/Makefile.config b/tools/perf/Makefile.config index 73e0762092fe..ee417c321adb 100644 --- a/tools/perf/Makefile.config +++ b/tools/perf/Makefile.config @@ -298,6 +298,7 @@ FEATURE_CHECK_LDFLAGS-libpython := $(PYTHON_EMBED_LDOPTS) FEATURE_CHECK_LDFLAGS-libaio = -lrt FEATURE_CHECK_LDFLAGS-disassembler-four-args = -lbfd -lopcodes -ldl +FEATURE_CHECK_LDFLAGS-disassembler-init-styled = -lbfd -lopcodes -ldl CORE_CFLAGS += -fno-omit-frame-pointer CORE_CFLAGS += -ggdb3 @@ -905,13 +906,16 @@ ifndef NO_LIBBFD ifeq ($(feature-libbfd-liberty), 1) EXTLIBS += -lbfd -lopcodes -liberty FEATURE_CHECK_LDFLAGS-disassembler-four-args += -liberty -ldl + FEATURE_CHECK_LDFLAGS-disassembler-init-styled += -liberty -ldl else ifeq ($(feature-libbfd-liberty-z), 1) EXTLIBS += -lbfd -lopcodes -liberty -lz FEATURE_CHECK_LDFLAGS-disassembler-four-args += -liberty -lz -ldl + FEATURE_CHECK_LDFLAGS-disassembler-init-styled += -liberty -lz -ldl endif endif $(call feature_check,disassembler-four-args) + $(call feature_check,disassembler-init-styled) endif ifeq ($(feature-libbfd-buildid), 1) @@ -1025,6 +1029,10 @@ ifeq ($(feature-disassembler-four-args), 1) CFLAGS += -DDISASM_FOUR_ARGS_SIGNATURE endif +ifeq ($(feature-disassembler-init-styled), 1) + CFLAGS += -DDISASM_INIT_STYLED +endif + ifeq (${IS_64_BIT}, 1) ifndef NO_PERF_READ_VDSO32 $(call feature_check,compile-32) diff --git a/tools/perf/util/annotate.c b/tools/perf/util/annotate.c index 82cc396ef516..2c6a485c3de5 100644 --- a/tools/perf/util/annotate.c +++ b/tools/perf/util/annotate.c @@ -1720,6 +1720,7 @@ static int dso__disassemble_filename(struct dso *dso, char *filename, size_t fil #include #include #include +#include static int symbol__disassemble_bpf(struct symbol *sym, struct annotate_args *args) @@ -1762,9 +1763,9 @@ static int symbol__disassemble_bpf(struct symbol *sym, ret = errno; goto out; } - init_disassemble_info(&info, s, - (fprintf_ftype) fprintf); - + init_disassemble_info_compat(&info, s, + (fprintf_ftype) fprintf, + fprintf_styled); info.arch = bfd_get_arch(bfdf); info.mach = bfd_get_mach(bfdf); -- 2.37.0.3.g30cc8d0f14