From mboxrd@z Thu Jan 1 00:00:00 1970 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 09000D64077 for ; Fri, 8 Nov 2024 18:43:11 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:List-Subscribe:List-Help :List-Post:List-Archive:List-Unsubscribe:List-Id:In-Reply-To: Content-Transfer-Encoding:Content-Type:MIME-Version:References:Message-ID: Subject:Cc:To:From:Date:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=CRM+nCx+NkgrBspLoJyW0b5hEl+tJtJBZ5eRpry7Ysk=; b=JF28yP/Lw4APMRyBIxTVLFr/hl wmPi8c2Ox/EYShr46P3cNxOIvgInAoXhA7bBKQ+voD4LjFaAzdSBm1VhX39sgdBJPTkZde08/ZDfB N+SlWnGhUSwIrkIh9cadCfakejtsX2A0JRf2nXYd9f1mJuwpmBtxDh33DtSXKJQ6l7YToukz9lPAG qnVFdRZFNY/JZlCPFheBDP/q9nG3olRXMaLyb2dYyFXnESegvw8FmQwX+dkNe78G5aO63RP53VyrA uJtBkv6tVkodxeT79gqvAHdxTGmMaTBwqbAY5ATS6GjXVLh1hOVv2EiwvM5669hPWEAJ9mEKEWlQK Z/cBNdVQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98 #2 (Red Hat Linux)) id 1t9Twi-0000000Bcvu-2y6f; Fri, 08 Nov 2024 18:43:00 +0000 Received: from nyc.source.kernel.org ([2604:1380:45d1:ec00::3]) by bombadil.infradead.org with esmtps (Exim 4.98 #2 (Red Hat Linux)) id 1t9TsL-0000000BcIE-1Cw0; Fri, 08 Nov 2024 18:38:30 +0000 Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by nyc.source.kernel.org (Postfix) with ESMTP id DC6CBA4408D; Fri, 8 Nov 2024 18:36:32 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id B85CDC4CECD; Fri, 8 Nov 2024 18:38:25 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1731091107; bh=ysbnWIA04niPh4/FnRelxvy/7qgNN9jt3TdDs+ECXHY=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=n5x9U7KDBB10MgdIZ5cjW590p6De536vrCk6OUvDIUUWG2j2zr4RwiRpbjUPAeBfJ KA+Mj+0+vl1KNhF2gZGB3soVZT6L4Mq/fgt6ZAkMTvHEaZcF6cD/gm+P3ks6j2M8Ce 0aFHCp+CEvssjEwhAJ/3qT904uMtGPDYzowmckVMpkBsiMOPjm/cf5hsu0BkrngexS +ePBbaF3hoEU86XGCPhGZY/Qr3JR9xpJ+Uz3p2yAEsewaPXhnSpWjXv13FrdBVsClu lZ4glEdEamcE+LykLNeeXHS25zbgkF9/5tjYvV8cmic/HB/9XlfQfKa6/YwQ2/kqh8 u0Ykcp1J7+p7Q== Date: Fri, 8 Nov 2024 10:38:24 -0800 From: Namhyung Kim To: Ian Rogers Cc: Peter Zijlstra , Ingo Molnar , Arnaldo Carvalho de Melo , Mark Rutland , Alexander Shishkin , Jiri Olsa , Adrian Hunter , Kan Liang , John Garry , Will Deacon , James Clark , Mike Leach , Leo Yan , Guo Ren , Paul Walmsley , Palmer Dabbelt , Albert Ou , Nick Terrell , "Masami Hiramatsu (Google)" , Changbin Du , Guilherme Amadio , Yang Jihong , Aditya Gupta , Athira Rajeev , Masahiro Yamada , Bibo Mao , Huacai Chen , Kajol Jain , Atish Patra , Shenlin Liang , Anup Patel , Oliver Upton , "Steinar H. Gunderson" , "Dr. David Alan Gilbert" , Chen Pei , Dima Kogan , Przemek Kitszel , "David S. Miller" , Alexander Lobakin , linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-csky@vger.kernel.org, linux-riscv@lists.infradead.org Subject: Re: [PATCH v3 04/20] perf disasm: Add e_machine/e_flags to struct arch Message-ID: References: <20241017002520.59124-1-irogers@google.com> <20241017002520.59124-5-irogers@google.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20241108_103829_458590_10010D6B X-CRM114-Status: GOOD ( 37.79 ) X-BeenThere: linux-arm-kernel@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-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org On Fri, Nov 08, 2024 at 10:19:52AM -0800, Ian Rogers wrote: > On Fri, Nov 8, 2024 at 9:33 AM Namhyung Kim wrote: > > > > On Wed, Oct 16, 2024 at 05:25:04PM -0700, Ian Rogers wrote: > > > Currently functions like get_dwarf_regnum only work with the host > > > architecture. Carry the elf machine and flags in struct arch so that > > > in disassembly these can be used to allow cross platform disassembly. > > > > > > Signed-off-by: Ian Rogers > > > --- > > > tools/perf/arch/arc/annotate/instructions.c | 2 ++ > > > tools/perf/arch/arm/annotate/instructions.c | 2 ++ > > > tools/perf/arch/arm64/annotate/instructions.c | 2 ++ > > > tools/perf/arch/csky/annotate/instructions.c | 7 ++++++- > > > tools/perf/arch/loongarch/annotate/instructions.c | 2 ++ > > > tools/perf/arch/mips/annotate/instructions.c | 2 ++ > > > tools/perf/arch/powerpc/annotate/instructions.c | 2 ++ > > > tools/perf/arch/riscv64/annotate/instructions.c | 2 ++ > > > tools/perf/arch/s390/annotate/instructions.c | 2 ++ > > > tools/perf/arch/sparc/annotate/instructions.c | 2 ++ > > > tools/perf/arch/x86/annotate/instructions.c | 3 ++- > > > tools/perf/util/disasm.h | 4 ++++ > > > 12 files changed, 30 insertions(+), 2 deletions(-) > > > > > > diff --git a/tools/perf/arch/arc/annotate/instructions.c b/tools/perf/arch/arc/annotate/instructions.c > > > index 2f00e995c7e3..e5619770a1af 100644 > > > --- a/tools/perf/arch/arc/annotate/instructions.c > > > +++ b/tools/perf/arch/arc/annotate/instructions.c > > > @@ -5,5 +5,7 @@ static int arc__annotate_init(struct arch *arch, char *cpuid __maybe_unused) > > > { > > > arch->initialized = true; > > > arch->objdump.comment_char = ';'; > > > + arch->e_machine = EM_ARC; > > > + arch->e_flags = 0; > > > return 0; > > > } > > > diff --git a/tools/perf/arch/arm/annotate/instructions.c b/tools/perf/arch/arm/annotate/instructions.c > > > index 2ff6cedeb9c5..cf91a43362b0 100644 > > > --- a/tools/perf/arch/arm/annotate/instructions.c > > > +++ b/tools/perf/arch/arm/annotate/instructions.c > > > @@ -53,6 +53,8 @@ static int arm__annotate_init(struct arch *arch, char *cpuid __maybe_unused) > > > arch->associate_instruction_ops = arm__associate_instruction_ops; > > > arch->objdump.comment_char = ';'; > > > arch->objdump.skip_functions_char = '+'; > > > + arch->e_machine = EM_ARM; > > > + arch->e_flags = 0; > > > return 0; > > > > > > out_free_call: > > > diff --git a/tools/perf/arch/arm64/annotate/instructions.c b/tools/perf/arch/arm64/annotate/instructions.c > > > index f86d9f4798bd..d465d093e7eb 100644 > > > --- a/tools/perf/arch/arm64/annotate/instructions.c > > > +++ b/tools/perf/arch/arm64/annotate/instructions.c > > > @@ -113,6 +113,8 @@ static int arm64__annotate_init(struct arch *arch, char *cpuid __maybe_unused) > > > arch->associate_instruction_ops = arm64__associate_instruction_ops; > > > arch->objdump.comment_char = '/'; > > > arch->objdump.skip_functions_char = '+'; > > > + arch->e_machine = EM_AARCH64; > > > + arch->e_flags = 0; > > > return 0; > > > > > > out_free_call: > > > diff --git a/tools/perf/arch/csky/annotate/instructions.c b/tools/perf/arch/csky/annotate/instructions.c > > > index 5337bfb7d5fc..14270311d215 100644 > > > --- a/tools/perf/arch/csky/annotate/instructions.c > > > +++ b/tools/perf/arch/csky/annotate/instructions.c > > > @@ -43,6 +43,11 @@ static int csky__annotate_init(struct arch *arch, char *cpuid __maybe_unused) > > > arch->initialized = true; > > > arch->objdump.comment_char = '/'; > > > arch->associate_instruction_ops = csky__associate_ins_ops; > > > - > > > + arch->e_machine = EM_CSKY; > > > +#if defined(__CSKYABIV2__) > > > + arch->e_flags = EF_CSKY_ABIV2; > > > +#else > > > + arch->e_flags = EF_CSKY_ABIV1; > > > +#endif > > > > By moving this into the general code, it should take care of old systems > > that doesn't have the macro. > > > > In file included from util/disasm.c:109: > > /linux/tools/perf/arch/csky/annotate/instructions.c: In function 'csky__annotate_init': > > /linux/tools/perf/arch/csky/annotate/instructions.c:50:25: error: 'EF_CSKY_ABIV1' undeclared (first use in this function) > > 50 | arch->e_flags = EF_CSKY_ABIV1; > > | ^~~~~~~~~~~~~ > > /linux/tools/perf/arch/csky/annotate/instructions.c:50:25: note: each undeclared identifier is reported only once for each function it appears in > > EF_CSKY_ABIV1 is defined in elf.h and has been there at least 5 years in libelf: > https://sourceware.org/git/?p=elfutils.git;a=commit;f=libelf/elf.h;h=9c82942ae7355a3226c53a92c2c73b33193c5e33 > I suspected the issue here is missing elf.h include, but the .c file > is included in tools/perf/util/disasm.c and that must have a > transitive dependency given other things are building. Do you want me > to send a patch making this conditional with extra #ifdefs or re-send > the series? Yeah, it's unfortunate but I think we can have a small incremental diff here to define them if it's not there. Then I'll squash it to the patch. > > > Also, I think __CSKYABIV2__ is defined only when the host is csky. So > > it'll use ABI v1 on cross env. I'm not sure if it's a problem. We may > > need to save the ABI somewhere in the metadata later. > > Agreed. In general we should read e_machine and e_flags from the ELF > file, so I'm not sure new metadata is needed. This patch is trying to > lay groundwork for that. I understand that. Yeah it should come from the binary. Thanks, Namhyung From mboxrd@z Thu Jan 1 00:00:00 1970 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 2C2DCD64077 for ; Fri, 8 Nov 2024 18:43:07 +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:In-Reply-To:MIME-Version:References: Message-ID:Subject:Cc:To:From:Date:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=x+L+WTEHYeu2iiAH3mbrH2HvhmDF4UpMrclKo/+E48E=; b=nQVQ5Wxw8E7avt cs4OZ6IRfiNT/BClBoXUF+sJPmzA/VoNPl3cBW2xb3AyCKculhaNvwW5B8W8N1PqJ9VBRKFKLc5zT HF4Qir2xObioAD4DDwvZZwL7zqXI//T2FN8CQxoU9ASWHecPKlBBjQdA4GGhjhpsn8VOARPBdJAFA Czj5Jx49uU243d42+BX22AQ/F5j8pM9uRIzN7r2fejCdOmt237w5C5lBD3XbnUzjtZ1gmN+Cvy4Ro vEmuRlum/LROOZa6z+tNUpBRjwz7ANgNPF9EqJ4cIcG3iAeK/i/QMCwXTPlA0m+j6JxIpZTzv1C1p yXGn+sejNivN5UEfwRbw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98 #2 (Red Hat Linux)) id 1t9Twj-0000000Bcw2-2Ojy; Fri, 08 Nov 2024 18:43:01 +0000 Received: from nyc.source.kernel.org ([2604:1380:45d1:ec00::3]) by bombadil.infradead.org with esmtps (Exim 4.98 #2 (Red Hat Linux)) id 1t9TsL-0000000BcIE-1Cw0; Fri, 08 Nov 2024 18:38:30 +0000 Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by nyc.source.kernel.org (Postfix) with ESMTP id DC6CBA4408D; Fri, 8 Nov 2024 18:36:32 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id B85CDC4CECD; Fri, 8 Nov 2024 18:38:25 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1731091107; bh=ysbnWIA04niPh4/FnRelxvy/7qgNN9jt3TdDs+ECXHY=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=n5x9U7KDBB10MgdIZ5cjW590p6De536vrCk6OUvDIUUWG2j2zr4RwiRpbjUPAeBfJ KA+Mj+0+vl1KNhF2gZGB3soVZT6L4Mq/fgt6ZAkMTvHEaZcF6cD/gm+P3ks6j2M8Ce 0aFHCp+CEvssjEwhAJ/3qT904uMtGPDYzowmckVMpkBsiMOPjm/cf5hsu0BkrngexS +ePBbaF3hoEU86XGCPhGZY/Qr3JR9xpJ+Uz3p2yAEsewaPXhnSpWjXv13FrdBVsClu lZ4glEdEamcE+LykLNeeXHS25zbgkF9/5tjYvV8cmic/HB/9XlfQfKa6/YwQ2/kqh8 u0Ykcp1J7+p7Q== Date: Fri, 8 Nov 2024 10:38:24 -0800 From: Namhyung Kim To: Ian Rogers Cc: Peter Zijlstra , Ingo Molnar , Arnaldo Carvalho de Melo , Mark Rutland , Alexander Shishkin , Jiri Olsa , Adrian Hunter , Kan Liang , John Garry , Will Deacon , James Clark , Mike Leach , Leo Yan , Guo Ren , Paul Walmsley , Palmer Dabbelt , Albert Ou , Nick Terrell , "Masami Hiramatsu (Google)" , Changbin Du , Guilherme Amadio , Yang Jihong , Aditya Gupta , Athira Rajeev , Masahiro Yamada , Bibo Mao , Huacai Chen , Kajol Jain , Atish Patra , Shenlin Liang , Anup Patel , Oliver Upton , "Steinar H. Gunderson" , "Dr. David Alan Gilbert" , Chen Pei , Dima Kogan , Przemek Kitszel , "David S. Miller" , Alexander Lobakin , linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-csky@vger.kernel.org, linux-riscv@lists.infradead.org Subject: Re: [PATCH v3 04/20] perf disasm: Add e_machine/e_flags to struct arch Message-ID: References: <20241017002520.59124-1-irogers@google.com> <20241017002520.59124-5-irogers@google.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20241108_103829_458590_10010D6B X-CRM114-Status: GOOD ( 37.79 ) 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: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-riscv" Errors-To: linux-riscv-bounces+linux-riscv=archiver.kernel.org@lists.infradead.org T24gRnJpLCBOb3YgMDgsIDIwMjQgYXQgMTA6MTk6NTJBTSAtMDgwMCwgSWFuIFJvZ2VycyB3cm90 ZToKPiBPbiBGcmksIE5vdiA4LCAyMDI0IGF0IDk6MzPigK9BTSBOYW1oeXVuZyBLaW0gPG5hbWh5 dW5nQGtlcm5lbC5vcmc+IHdyb3RlOgo+ID4KPiA+IE9uIFdlZCwgT2N0IDE2LCAyMDI0IGF0IDA1 OjI1OjA0UE0gLTA3MDAsIElhbiBSb2dlcnMgd3JvdGU6Cj4gPiA+IEN1cnJlbnRseSBmdW5jdGlv bnMgbGlrZSBnZXRfZHdhcmZfcmVnbnVtIG9ubHkgd29yayB3aXRoIHRoZSBob3N0Cj4gPiA+IGFy Y2hpdGVjdHVyZS4gQ2FycnkgdGhlIGVsZiBtYWNoaW5lIGFuZCBmbGFncyBpbiBzdHJ1Y3QgYXJj aCBzbyB0aGF0Cj4gPiA+IGluIGRpc2Fzc2VtYmx5IHRoZXNlIGNhbiBiZSB1c2VkIHRvIGFsbG93 IGNyb3NzIHBsYXRmb3JtIGRpc2Fzc2VtYmx5Lgo+ID4gPgo+ID4gPiBTaWduZWQtb2ZmLWJ5OiBJ YW4gUm9nZXJzIDxpcm9nZXJzQGdvb2dsZS5jb20+Cj4gPiA+IC0tLQo+ID4gPiAgdG9vbHMvcGVy Zi9hcmNoL2FyYy9hbm5vdGF0ZS9pbnN0cnVjdGlvbnMuYyAgICAgICB8IDIgKysKPiA+ID4gIHRv b2xzL3BlcmYvYXJjaC9hcm0vYW5ub3RhdGUvaW5zdHJ1Y3Rpb25zLmMgICAgICAgfCAyICsrCj4g PiA+ICB0b29scy9wZXJmL2FyY2gvYXJtNjQvYW5ub3RhdGUvaW5zdHJ1Y3Rpb25zLmMgICAgIHwg MiArKwo+ID4gPiAgdG9vbHMvcGVyZi9hcmNoL2Nza3kvYW5ub3RhdGUvaW5zdHJ1Y3Rpb25zLmMg ICAgICB8IDcgKysrKysrLQo+ID4gPiAgdG9vbHMvcGVyZi9hcmNoL2xvb25nYXJjaC9hbm5vdGF0 ZS9pbnN0cnVjdGlvbnMuYyB8IDIgKysKPiA+ID4gIHRvb2xzL3BlcmYvYXJjaC9taXBzL2Fubm90 YXRlL2luc3RydWN0aW9ucy5jICAgICAgfCAyICsrCj4gPiA+ICB0b29scy9wZXJmL2FyY2gvcG93 ZXJwYy9hbm5vdGF0ZS9pbnN0cnVjdGlvbnMuYyAgIHwgMiArKwo+ID4gPiAgdG9vbHMvcGVyZi9h cmNoL3Jpc2N2NjQvYW5ub3RhdGUvaW5zdHJ1Y3Rpb25zLmMgICB8IDIgKysKPiA+ID4gIHRvb2xz L3BlcmYvYXJjaC9zMzkwL2Fubm90YXRlL2luc3RydWN0aW9ucy5jICAgICAgfCAyICsrCj4gPiA+ ICB0b29scy9wZXJmL2FyY2gvc3BhcmMvYW5ub3RhdGUvaW5zdHJ1Y3Rpb25zLmMgICAgIHwgMiAr Kwo+ID4gPiAgdG9vbHMvcGVyZi9hcmNoL3g4Ni9hbm5vdGF0ZS9pbnN0cnVjdGlvbnMuYyAgICAg ICB8IDMgKystCj4gPiA+ICB0b29scy9wZXJmL3V0aWwvZGlzYXNtLmggICAgICAgICAgICAgICAg ICAgICAgICAgIHwgNCArKysrCj4gPiA+ICAxMiBmaWxlcyBjaGFuZ2VkLCAzMCBpbnNlcnRpb25z KCspLCAyIGRlbGV0aW9ucygtKQo+ID4gPgo+ID4gPiBkaWZmIC0tZ2l0IGEvdG9vbHMvcGVyZi9h cmNoL2FyYy9hbm5vdGF0ZS9pbnN0cnVjdGlvbnMuYyBiL3Rvb2xzL3BlcmYvYXJjaC9hcmMvYW5u b3RhdGUvaW5zdHJ1Y3Rpb25zLmMKPiA+ID4gaW5kZXggMmYwMGU5OTVjN2UzLi5lNTYxOTc3MGEx YWYgMTAwNjQ0Cj4gPiA+IC0tLSBhL3Rvb2xzL3BlcmYvYXJjaC9hcmMvYW5ub3RhdGUvaW5zdHJ1 Y3Rpb25zLmMKPiA+ID4gKysrIGIvdG9vbHMvcGVyZi9hcmNoL2FyYy9hbm5vdGF0ZS9pbnN0cnVj dGlvbnMuYwo+ID4gPiBAQCAtNSw1ICs1LDcgQEAgc3RhdGljIGludCBhcmNfX2Fubm90YXRlX2lu aXQoc3RydWN0IGFyY2ggKmFyY2gsIGNoYXIgKmNwdWlkIF9fbWF5YmVfdW51c2VkKQo+ID4gPiAg ewo+ID4gPiAgICAgICBhcmNoLT5pbml0aWFsaXplZCA9IHRydWU7Cj4gPiA+ICAgICAgIGFyY2gt Pm9iamR1bXAuY29tbWVudF9jaGFyID0gJzsnOwo+ID4gPiArICAgICBhcmNoLT5lX21hY2hpbmUg PSBFTV9BUkM7Cj4gPiA+ICsgICAgIGFyY2gtPmVfZmxhZ3MgPSAwOwo+ID4gPiAgICAgICByZXR1 cm4gMDsKPiA+ID4gIH0KPiA+ID4gZGlmZiAtLWdpdCBhL3Rvb2xzL3BlcmYvYXJjaC9hcm0vYW5u b3RhdGUvaW5zdHJ1Y3Rpb25zLmMgYi90b29scy9wZXJmL2FyY2gvYXJtL2Fubm90YXRlL2luc3Ry dWN0aW9ucy5jCj4gPiA+IGluZGV4IDJmZjZjZWRlYjljNS4uY2Y5MWE0MzM2MmIwIDEwMDY0NAo+ ID4gPiAtLS0gYS90b29scy9wZXJmL2FyY2gvYXJtL2Fubm90YXRlL2luc3RydWN0aW9ucy5jCj4g PiA+ICsrKyBiL3Rvb2xzL3BlcmYvYXJjaC9hcm0vYW5ub3RhdGUvaW5zdHJ1Y3Rpb25zLmMKPiA+ ID4gQEAgLTUzLDYgKzUzLDggQEAgc3RhdGljIGludCBhcm1fX2Fubm90YXRlX2luaXQoc3RydWN0 IGFyY2ggKmFyY2gsIGNoYXIgKmNwdWlkIF9fbWF5YmVfdW51c2VkKQo+ID4gPiAgICAgICBhcmNo LT5hc3NvY2lhdGVfaW5zdHJ1Y3Rpb25fb3BzICAgPSBhcm1fX2Fzc29jaWF0ZV9pbnN0cnVjdGlv bl9vcHM7Cj4gPiA+ICAgICAgIGFyY2gtPm9iamR1bXAuY29tbWVudF9jaGFyICAgICAgICA9ICc7 JzsKPiA+ID4gICAgICAgYXJjaC0+b2JqZHVtcC5za2lwX2Z1bmN0aW9uc19jaGFyID0gJysnOwo+ ID4gPiArICAgICBhcmNoLT5lX21hY2hpbmUgPSBFTV9BUk07Cj4gPiA+ICsgICAgIGFyY2gtPmVf ZmxhZ3MgPSAwOwo+ID4gPiAgICAgICByZXR1cm4gMDsKPiA+ID4KPiA+ID4gIG91dF9mcmVlX2Nh bGw6Cj4gPiA+IGRpZmYgLS1naXQgYS90b29scy9wZXJmL2FyY2gvYXJtNjQvYW5ub3RhdGUvaW5z dHJ1Y3Rpb25zLmMgYi90b29scy9wZXJmL2FyY2gvYXJtNjQvYW5ub3RhdGUvaW5zdHJ1Y3Rpb25z LmMKPiA+ID4gaW5kZXggZjg2ZDlmNDc5OGJkLi5kNDY1ZDA5M2U3ZWIgMTAwNjQ0Cj4gPiA+IC0t LSBhL3Rvb2xzL3BlcmYvYXJjaC9hcm02NC9hbm5vdGF0ZS9pbnN0cnVjdGlvbnMuYwo+ID4gPiAr KysgYi90b29scy9wZXJmL2FyY2gvYXJtNjQvYW5ub3RhdGUvaW5zdHJ1Y3Rpb25zLmMKPiA+ID4g QEAgLTExMyw2ICsxMTMsOCBAQCBzdGF0aWMgaW50IGFybTY0X19hbm5vdGF0ZV9pbml0KHN0cnVj dCBhcmNoICphcmNoLCBjaGFyICpjcHVpZCBfX21heWJlX3VudXNlZCkKPiA+ID4gICAgICAgYXJj aC0+YXNzb2NpYXRlX2luc3RydWN0aW9uX29wcyAgID0gYXJtNjRfX2Fzc29jaWF0ZV9pbnN0cnVj dGlvbl9vcHM7Cj4gPiA+ICAgICAgIGFyY2gtPm9iamR1bXAuY29tbWVudF9jaGFyICAgICAgICA9 ICcvJzsKPiA+ID4gICAgICAgYXJjaC0+b2JqZHVtcC5za2lwX2Z1bmN0aW9uc19jaGFyID0gJysn Owo+ID4gPiArICAgICBhcmNoLT5lX21hY2hpbmUgPSBFTV9BQVJDSDY0Owo+ID4gPiArICAgICBh cmNoLT5lX2ZsYWdzID0gMDsKPiA+ID4gICAgICAgcmV0dXJuIDA7Cj4gPiA+Cj4gPiA+ICBvdXRf ZnJlZV9jYWxsOgo+ID4gPiBkaWZmIC0tZ2l0IGEvdG9vbHMvcGVyZi9hcmNoL2Nza3kvYW5ub3Rh dGUvaW5zdHJ1Y3Rpb25zLmMgYi90b29scy9wZXJmL2FyY2gvY3NreS9hbm5vdGF0ZS9pbnN0cnVj dGlvbnMuYwo+ID4gPiBpbmRleCA1MzM3YmZiN2Q1ZmMuLjE0MjcwMzExZDIxNSAxMDA2NDQKPiA+ ID4gLS0tIGEvdG9vbHMvcGVyZi9hcmNoL2Nza3kvYW5ub3RhdGUvaW5zdHJ1Y3Rpb25zLmMKPiA+ ID4gKysrIGIvdG9vbHMvcGVyZi9hcmNoL2Nza3kvYW5ub3RhdGUvaW5zdHJ1Y3Rpb25zLmMKPiA+ ID4gQEAgLTQzLDYgKzQzLDExIEBAIHN0YXRpYyBpbnQgY3NreV9fYW5ub3RhdGVfaW5pdChzdHJ1 Y3QgYXJjaCAqYXJjaCwgY2hhciAqY3B1aWQgX19tYXliZV91bnVzZWQpCj4gPiA+ICAgICAgIGFy Y2gtPmluaXRpYWxpemVkID0gdHJ1ZTsKPiA+ID4gICAgICAgYXJjaC0+b2JqZHVtcC5jb21tZW50 X2NoYXIgPSAnLyc7Cj4gPiA+ICAgICAgIGFyY2gtPmFzc29jaWF0ZV9pbnN0cnVjdGlvbl9vcHMg PSBjc2t5X19hc3NvY2lhdGVfaW5zX29wczsKPiA+ID4gLQo+ID4gPiArICAgICBhcmNoLT5lX21h Y2hpbmUgPSBFTV9DU0tZOwo+ID4gPiArI2lmIGRlZmluZWQoX19DU0tZQUJJVjJfXykKPiA+ID4g KyAgICAgYXJjaC0+ZV9mbGFncyA9IEVGX0NTS1lfQUJJVjI7Cj4gPiA+ICsjZWxzZQo+ID4gPiAr ICAgICBhcmNoLT5lX2ZsYWdzID0gRUZfQ1NLWV9BQklWMTsKPiA+ID4gKyNlbmRpZgo+ID4KPiA+ IEJ5IG1vdmluZyB0aGlzIGludG8gdGhlIGdlbmVyYWwgY29kZSwgaXQgc2hvdWxkIHRha2UgY2Fy ZSBvZiBvbGQgc3lzdGVtcwo+ID4gdGhhdCBkb2Vzbid0IGhhdmUgdGhlIG1hY3JvLgo+ID4KPiA+ ICAgSW4gZmlsZSBpbmNsdWRlZCBmcm9tIHV0aWwvZGlzYXNtLmM6MTA5Ogo+ID4gICAvbGludXgv dG9vbHMvcGVyZi9hcmNoL2Nza3kvYW5ub3RhdGUvaW5zdHJ1Y3Rpb25zLmM6IEluIGZ1bmN0aW9u ICdjc2t5X19hbm5vdGF0ZV9pbml0JzoKPiA+ICAgL2xpbnV4L3Rvb2xzL3BlcmYvYXJjaC9jc2t5 L2Fubm90YXRlL2luc3RydWN0aW9ucy5jOjUwOjI1OiBlcnJvcjogJ0VGX0NTS1lfQUJJVjEnIHVu ZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlzIGZ1bmN0aW9uKQo+ID4gICAgICA1MCB8ICAgICAg ICAgYXJjaC0+ZV9mbGFncyA9IEVGX0NTS1lfQUJJVjE7Cj4gPiAgICAgICAgIHwgICAgICAgICAg ICAgICAgICAgICAgICAgXn5+fn5+fn5+fn5+fgo+ID4gICAvbGludXgvdG9vbHMvcGVyZi9hcmNo L2Nza3kvYW5ub3RhdGUvaW5zdHJ1Y3Rpb25zLmM6NTA6MjU6IG5vdGU6IGVhY2ggdW5kZWNsYXJl ZCBpZGVudGlmaWVyIGlzIHJlcG9ydGVkIG9ubHkgb25jZSBmb3IgZWFjaCBmdW5jdGlvbiBpdCBh cHBlYXJzIGluCj4gCj4gRUZfQ1NLWV9BQklWMSBpcyBkZWZpbmVkIGluIGVsZi5oIGFuZCBoYXMg YmVlbiB0aGVyZSBhdCBsZWFzdCA1IHllYXJzIGluIGxpYmVsZjoKPiBodHRwczovL3NvdXJjZXdh cmUub3JnL2dpdC8/cD1lbGZ1dGlscy5naXQ7YT1jb21taXQ7Zj1saWJlbGYvZWxmLmg7aD05Yzgy OTQyYWU3MzU1YTMyMjZjNTNhOTJjMmM3M2IzMzE5M2M1ZTMzCj4gSSBzdXNwZWN0ZWQgdGhlIGlz c3VlIGhlcmUgaXMgbWlzc2luZyBlbGYuaCBpbmNsdWRlLCBidXQgdGhlIC5jIGZpbGUKPiBpcyBp bmNsdWRlZCBpbiB0b29scy9wZXJmL3V0aWwvZGlzYXNtLmMgYW5kIHRoYXQgbXVzdCBoYXZlIGEK PiB0cmFuc2l0aXZlIGRlcGVuZGVuY3kgZ2l2ZW4gb3RoZXIgdGhpbmdzIGFyZSBidWlsZGluZy4g RG8geW91IHdhbnQgbWUKPiB0byBzZW5kIGEgcGF0Y2ggbWFraW5nIHRoaXMgY29uZGl0aW9uYWwg d2l0aCBleHRyYSAjaWZkZWZzIG9yIHJlLXNlbmQKPiB0aGUgc2VyaWVzPwoKWWVhaCwgaXQncyB1 bmZvcnR1bmF0ZSBidXQgSSB0aGluayB3ZSBjYW4gaGF2ZSBhIHNtYWxsIGluY3JlbWVudGFsIGRp ZmYKaGVyZSB0byBkZWZpbmUgdGhlbSBpZiBpdCdzIG5vdCB0aGVyZS4gIFRoZW4gSSdsbCBzcXVh c2ggaXQgdG8gdGhlCnBhdGNoLgoKPiAKPiA+IEFsc28sIEkgdGhpbmsgX19DU0tZQUJJVjJfXyBp cyBkZWZpbmVkIG9ubHkgd2hlbiB0aGUgaG9zdCBpcyBjc2t5LiAgU28KPiA+IGl0J2xsIHVzZSBB QkkgdjEgb24gY3Jvc3MgZW52LiAgSSdtIG5vdCBzdXJlIGlmIGl0J3MgYSBwcm9ibGVtLiAgV2Ug bWF5Cj4gPiBuZWVkIHRvIHNhdmUgdGhlIEFCSSBzb21ld2hlcmUgaW4gdGhlIG1ldGFkYXRhIGxh dGVyLgo+IAo+IEFncmVlZC4gSW4gZ2VuZXJhbCB3ZSBzaG91bGQgcmVhZCBlX21hY2hpbmUgYW5k IGVfZmxhZ3MgZnJvbSB0aGUgRUxGCj4gZmlsZSwgc28gSSdtIG5vdCBzdXJlIG5ldyBtZXRhZGF0 YSBpcyBuZWVkZWQuIFRoaXMgcGF0Y2ggaXMgdHJ5aW5nIHRvCj4gbGF5IGdyb3VuZHdvcmsgZm9y IHRoYXQuCgpJIHVuZGVyc3RhbmQgdGhhdC4gIFllYWggaXQgc2hvdWxkIGNvbWUgZnJvbSB0aGUg YmluYXJ5LgoKVGhhbmtzLApOYW1oeXVuZwoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fCmxpbnV4LXJpc2N2IG1haWxpbmcgbGlzdApsaW51eC1yaXNjdkBs aXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlz dGluZm8vbGludXgtcmlzY3YK