From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-oi1-x243.google.com (mail-oi1-x243.google.com [IPv6:2607:f8b0:4864:20::243]) by sourceware.org (Postfix) with ESMTPS id 5690239730DC for ; Fri, 4 Dec 2020 16:43:50 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org 5690239730DC Received: by mail-oi1-x243.google.com with SMTP id l200so6771089oig.9 for ; Fri, 04 Dec 2020 08:43:50 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to; bh=p5UFoDfBbEjM8CKKTAjgE5yCe8BQ4XZApaLcBsVIK4A=; b=AH6EkUQKm6IKRzHC5sQxPa71N0D3o2GiqjQ2s/1iyElQJ7oE31Uq4JnM06uY7C5WUX ZmEtFteeicd8/jqvTf1UIrTOIVtYqRznxcEwHDpOCDVZjDMvR+NnfkhZvlxt1FdVUz9Z bRNGwh6SfSmrseyZSs/tnWcnweaHZ4OJvAfbXU2hJPLyOiGkFPkzaenFvi8YNWdC9moL KjuPs3nBzc47U6l3E4Qyoy4eyx+cCa0LiDTePu/WqjEf8s74K2lnHFtJq0YXjPcM2Hqz BJJb+5N5GYtILrm5fDNOWJrJ5vnr/o3wKW5ILD4Xqz6VDIiIKYx9DyV/uWnN6nCGN+6g iXLA== X-Gm-Message-State: AOAM533niUj93AdRV+LqAuxYRC4PCoFt2HoaaqXPSLB0ZtBSjC8w5fJ3 +ld4vGVJUgyyW8bZlVk+OfziCMSTjA1gE/oy2oSLKkAK X-Google-Smtp-Source: ABdhPJz7fWKqbNPkKP2Ys6lN05MuOZdllZ2xA0zGwmk8zbQoMVTbWc+isauHunoTSkddMLbxqebGRVVv6LjFl4m3Fis= X-Received: by 2002:aca:f456:: with SMTP id s83mr824605oih.58.1607100229376; Fri, 04 Dec 2020 08:43:49 -0800 (PST) MIME-Version: 1.0 References: <20201204135254.2147243-1-hjl.tools@gmail.com> <20201204152907.mhls5ilpv47bj5fq@jozef-acer-manjaro> In-Reply-To: <20201204152907.mhls5ilpv47bj5fq@jozef-acer-manjaro> From: "H.J. Lu" Date: Fri, 4 Dec 2020 08:43:13 -0800 Message-ID: Subject: V2 [PATCH] gas: Generate a new section for SHF_GNU_RETAIN To: Binutils Content-Type: multipart/mixed; boundary="0000000000004a840a05b5a62e9c" X-Spam-Status: No, score=-3035.5 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, FREEMAIL_FROM, GIT_PATCH_0, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on server2.sourceware.org X-BeenThere: binutils@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Binutils mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 04 Dec 2020 16:43:54 -0000 --0000000000004a840a05b5a62e9c Content-Type: text/plain; charset="UTF-8" On Fri, Dec 4, 2020 at 7:29 AM Jozef Lawrynowicz wrote: > > On Fri, Dec 04, 2020 at 05:52:54AM -0800, H.J. Lu wrote: > > For > > .globl foo2 > > .section .data.foo,"aR" > > .align 4 > > .type foo2, @object > > .size foo2, 4 > > foo2: > > .long 2 > > .globl foo1 > > .section .data.foo > > .align 4 > > .type foo1, @object > > .size foo1, 4 > > foo1: > > .long 1 > > > > generate a new section if the SHF_GNU_RETAIN bit doesn't match. > > > > * config/obj-elf.c (SEC_ASSEMBLER_SHF_MASK): New. > > (get_section_by_match): Also check if SEC_ASSEMBLER_SHF_MASK of > > sh_flags matches. Rename info to sh_info. > > (obj_elf_change_section): Rename info to sh_info. > > (obj_elf_section): Rename info to sh_info. Set sh_flags for > > SHF_GNU_RETAIN. > > * config/obj-elf.h (elf_section_match): Rename info to sh_info. > > Add sh_flags. > > * testsuite/gas/elf/elf.exp: Run section27. > > * testsuite/gas/elf/section24b.d: Updated. > > * testsuite/gas/elf/section27.d: New file. > > * testsuite/gas/elf/section27.s: Likewise. > > --- > > gas/config/obj-elf.c | 21 ++++++++++++------ > > gas/config/obj-elf.h | 3 ++- > > gas/testsuite/gas/elf/elf.exp | 1 + > > gas/testsuite/gas/elf/section24b.d | 10 ++++++--- > > gas/testsuite/gas/elf/section27.d | 14 ++++++++++++ > > gas/testsuite/gas/elf/section27.s | 34 ++++++++++++++++++++++++++++++ > > 6 files changed, 73 insertions(+), 10 deletions(-) > > create mode 100644 gas/testsuite/gas/elf/section27.d > > create mode 100644 gas/testsuite/gas/elf/section27.s > > I just want to check that we are OK with the fact that a .section > directive without any flags will always use the default flags, even if > the section previously had the 'R' flag set. I suppose this is just > standard behavior and how the .section directive has always behaved. Correct. > $ cat asm-tester.s > .section .data.foo,"awR" > .word 0 > .section .data.foo > .word 0 > $ as asm-tester.s -o tester.o > $ readelf --wide -S tester.o > ... > [ 4] .data.foo PROGBITS 0000000000000000 000040 000002 00 WAR 0 0 1 > [ 5] .data.foo PROGBITS 0000000000000000 000042 000002 00 WA 0 0 1 > ... > > Also, I think the following change should be added, since the OR'ing of > SHF_GNU_RETAIN flag between sections, from the original patch, is now > redundant. > > diff --git a/gas/config/obj-elf.c b/gas/config/obj-elf.c > index 54d42d9ecb..9ac53e4d0e 100644 > --- a/gas/config/obj-elf.c > +++ b/gas/config/obj-elf.c > @@ -806,17 +806,9 @@ obj_elf_change_section (const char *name, > as_bad (_("changed section attributes for %s"), name); > } > else > - { > - /* Don't overwrite a previously set SHF_GNU_RETAIN flag for the > - section. The entire section must be marked retained. */ > - if ((elf_tdata (stdoutput)->has_gnu_osabi & elf_gnu_osabi_retain) > - && ((elf_section_flags (old_sec) & SHF_GNU_RETAIN))) > - attr |= SHF_GNU_RETAIN; > - > - /* FIXME: Maybe we should consider removing a previously set > - processor or application specific attribute as suspicious ? */ > - elf_section_flags (sec) = attr; > - } > + /* FIXME: Maybe we should consider removing a previously set > + processor or application specific attribute as suspicious ? */ > + elf_section_flags (sec) = attr; > > if ((flags & SEC_MERGE) && old_sec->entsize != (unsigned) entsize) > as_bad (_("changed section entity size for %s"), name); > Fixed. Here is the updated patch. OK for master? Thanks. -- H.J. --0000000000004a840a05b5a62e9c Content-Type: text/x-patch; charset="US-ASCII"; name="0001-gas-Generate-a-new-section-for-SHF_GNU_RETAIN.patch" Content-Disposition: attachment; filename="0001-gas-Generate-a-new-section-for-SHF_GNU_RETAIN.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_kiahx4o50 RnJvbSBhYzhhNjMxMTE2MjI5MmVkZTRjZDJkYTk2YWQ2MmY3NGMwYWY1YjdmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAiSC5KLiBMdSIgPGhqbC50b29sc0BnbWFpbC5jb20+CkRhdGU6 IFRodSwgMjQgU2VwIDIwMjAgMDU6NDU6NTAgLTA3MDAKU3ViamVjdDogW1BBVENIXSBnYXM6IEdl bmVyYXRlIGEgbmV3IHNlY3Rpb24gZm9yIFNIRl9HTlVfUkVUQUlOCgpGb3IKCS5nbG9ibAlmb28y Cgkuc2VjdGlvbgkuZGF0YS5mb28sImFSIgoJLmFsaWduIDQKCS50eXBlCWZvbzIsIEBvYmplY3QK CS5zaXplCWZvbzIsIDQKZm9vMjoKCS5sb25nCTIKCS5nbG9ibAlmb28xCgkuc2VjdGlvbgkuZGF0 YS5mb28KCS5hbGlnbiA0CgkudHlwZQlmb28xLCBAb2JqZWN0Cgkuc2l6ZQlmb28xLCA0CmZvbzE6 CgkubG9uZwkxCgpnZW5lcmF0ZSBhIG5ldyBzZWN0aW9uIGlmIHRoZSBTSEZfR05VX1JFVEFJTiBi aXQgZG9lc24ndCBtYXRjaC4KCgkqIGNvbmZpZy9vYmotZWxmLmMgKFNFQ19BU1NFTUJMRVJfU0hG X01BU0spOiBOZXcuCgkoZ2V0X3NlY3Rpb25fYnlfbWF0Y2gpOiBBbHNvIGNoZWNrIGlmIFNFQ19B U1NFTUJMRVJfU0hGX01BU0sgb2YKCXNoX2ZsYWdzIG1hdGNoZXMuICBSZW5hbWUgaW5mbyB0byBz aF9pbmZvLgoJKG9ial9lbGZfY2hhbmdlX3NlY3Rpb24pOiBEb24ndCBjaGVjayBwcmV2aW91cyBT SEZfR05VX1JFVEFJTi4KCVJlbmFtZSBpbmZvIHRvIHNoX2luZm8uCgkob2JqX2VsZl9zZWN0aW9u KTogUmVuYW1lIGluZm8gdG8gc2hfaW5mby4gIFNldCBzaF9mbGFncyBmb3IKCVNIRl9HTlVfUkVU QUlOLgoJKiBjb25maWcvb2JqLWVsZi5oIChlbGZfc2VjdGlvbl9tYXRjaCk6IFJlbmFtZSBpbmZv IHRvIHNoX2luZm8uCglBZGQgc2hfZmxhZ3MuCgkqIHRlc3RzdWl0ZS9nYXMvZWxmL2VsZi5leHA6 IFJ1biBzZWN0aW9uMjcuCgkqIHRlc3RzdWl0ZS9nYXMvZWxmL3NlY3Rpb24yNGIuZDogVXBkYXRl ZC4KCSogdGVzdHN1aXRlL2dhcy9lbGYvc2VjdGlvbjI3LmQ6IE5ldyBmaWxlLgoJKiB0ZXN0c3Vp dGUvZ2FzL2VsZi9zZWN0aW9uMjcuczogTGlrZXdpc2UuCi0tLQogZ2FzL2NvbmZpZy9vYmotZWxm LmMgICAgICAgICAgICAgICB8IDM1ICsrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLQogZ2Fz L2NvbmZpZy9vYmotZWxmLmggICAgICAgICAgICAgICB8ICAzICsrLQogZ2FzL3Rlc3RzdWl0ZS9n YXMvZWxmL2VsZi5leHAgICAgICB8ICAxICsKIGdhcy90ZXN0c3VpdGUvZ2FzL2VsZi9zZWN0aW9u MjRiLmQgfCAxMCArKysrKystLS0KIGdhcy90ZXN0c3VpdGUvZ2FzL2VsZi9zZWN0aW9uMjcuZCAg fCAxNCArKysrKysrKysrKysKIGdhcy90ZXN0c3VpdGUvZ2FzL2VsZi9zZWN0aW9uMjcucyAgfCAz NCArKysrKysrKysrKysrKysrKysrKysrKysrKysrKwogNiBmaWxlcyBjaGFuZ2VkLCA3NiBpbnNl cnRpb25zKCspLCAyMSBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBnYXMvdGVzdHN1 aXRlL2dhcy9lbGYvc2VjdGlvbjI3LmQKIGNyZWF0ZSBtb2RlIDEwMDY0NCBnYXMvdGVzdHN1aXRl L2dhcy9lbGYvc2VjdGlvbjI3LnMKCmRpZmYgLS1naXQgYS9nYXMvY29uZmlnL29iai1lbGYuYyBi L2dhcy9jb25maWcvb2JqLWVsZi5jCmluZGV4IDU0ZDQyZDllY2IuLjVkM2IxYTBlZGMgMTAwNjQ0 Ci0tLSBhL2dhcy9jb25maWcvb2JqLWVsZi5jCisrKyBiL2dhcy9jb25maWcvb2JqLWVsZi5jCkBA IC01MTksNiArNTE5LDkgQEAgc3RydWN0IHNlY3Rpb25fc3RhY2sKIAogc3RhdGljIHN0cnVjdCBz ZWN0aW9uX3N0YWNrICpzZWN0aW9uX3N0YWNrOwogCisvKiBFTEYgc2VjdGlvbiBmbGFncyBmb3Ig dW5pcXVlIHNlY3Rpb25zLiAgKi8KKyNkZWZpbmUgU0VDX0FTU0VNQkxFUl9TSEZfTUFTSyBTSEZf R05VX1JFVEFJTgorCiAvKiBSZXR1cm4gVFJVRSBpZmYgU0VDIG1hdGNoZXMgdGhlIHNlY3Rpb24g aW5mbyBJTkYuICAqLwogCiBzdGF0aWMgYmZkX2Jvb2xlYW4KQEAgLTUyOSw5ICs1MzIsMTIgQEAg Z2V0X3NlY3Rpb25fYnlfbWF0Y2ggKGJmZCAqYWJmZCBBVFRSSUJVVEVfVU5VU0VELCBhc2VjdGlv biAqc2VjLCB2b2lkICppbmYpCiAgIGNvbnN0IGNoYXIgKmdyb3VwX25hbWUgPSBlbGZfZ3JvdXBf bmFtZSAoc2VjKTsKICAgY29uc3QgY2hhciAqbGlua2VkX3RvX3N5bWJvbF9uYW1lCiAgICAgPSBz ZWMtPm1hcF9oZWFkLmxpbmtlZF90b19zeW1ib2xfbmFtZTsKLSAgdW5zaWduZWQgaW50IGluZm8g PSBlbGZfc2VjdGlvbl9kYXRhIChzZWMpLT50aGlzX2hkci5zaF9pbmZvOworICB1bnNpZ25lZCBp bnQgc2hfaW5mbyA9IGVsZl9zZWN0aW9uX2RhdGEgKHNlYyktPnRoaXNfaGRyLnNoX2luZm87Cisg IGJmZF92bWEgc2hfZmxhZ3MgPSAoZWxmX3NlY3Rpb25fZGF0YSAoc2VjKS0+dGhpc19oZHIuc2hf ZmxhZ3MKKwkJICAgICAgJiBTRUNfQVNTRU1CTEVSX1NIRl9NQVNLKTsKIAotICByZXR1cm4gKGlu Zm8gPT0gbWF0Y2gtPmluZm8KKyAgcmV0dXJuIChzaF9pbmZvID09IG1hdGNoLT5zaF9pbmZvCisJ ICAmJiBzaF9mbGFncyA9PSBtYXRjaC0+c2hfZmxhZ3MKIAkgICYmICgoYmZkX3NlY3Rpb25fZmxh Z3MgKHNlYykgJiBTRUNfQVNTRU1CTEVSX1NFQ1RJT05fSUQpCiAJICAgICAgID09IChtYXRjaC0+ ZmxhZ3MgJiBTRUNfQVNTRU1CTEVSX1NFQ1RJT05fSUQpKQogCSAgJiYgc2VjLT5zZWN0aW9uX2lk ID09IG1hdGNoLT5zZWN0aW9uX2lkCkBAIC03NDAsNyArNzQ2LDcgQEAgb2JqX2VsZl9jaGFuZ2Vf c2VjdGlvbiAoY29uc3QgY2hhciAqbmFtZSwKIAl0eXBlID0gYmZkX2VsZl9nZXRfZGVmYXVsdF9z ZWN0aW9uX3R5cGUgKGZsYWdzKTsKICAgICAgIGVsZl9zZWN0aW9uX3R5cGUgKHNlYykgPSB0eXBl OwogICAgICAgZWxmX3NlY3Rpb25fZmxhZ3MgKHNlYykgPSBhdHRyOwotICAgICAgZWxmX3NlY3Rp b25fZGF0YSAoc2VjKS0+dGhpc19oZHIuc2hfaW5mbyA9IG1hdGNoX3AtPmluZm87CisgICAgICBl bGZfc2VjdGlvbl9kYXRhIChzZWMpLT50aGlzX2hkci5zaF9pbmZvID0gbWF0Y2hfcC0+c2hfaW5m bzsKIAogICAgICAgLyogUHJldmVudCBTRUNfSEFTX0NPTlRFTlRTIGZyb20gYmVpbmcgaW5hZHZl cnRlbnRseSBzZXQuICAqLwogICAgICAgaWYgKHR5cGUgPT0gU0hUX05PQklUUykKQEAgLTgwNiwx NyArODEyLDkgQEAgb2JqX2VsZl9jaGFuZ2Vfc2VjdGlvbiAoY29uc3QgY2hhciAqbmFtZSwKIAkJ YXNfYmFkIChfKCJjaGFuZ2VkIHNlY3Rpb24gYXR0cmlidXRlcyBmb3IgJXMiKSwgbmFtZSk7CiAJ ICAgIH0KIAkgIGVsc2UKLQkgICAgewotCSAgICAgIC8qIERvbid0IG92ZXJ3cml0ZSBhIHByZXZp b3VzbHkgc2V0IFNIRl9HTlVfUkVUQUlOIGZsYWcgZm9yIHRoZQotCQkgc2VjdGlvbi4gIFRoZSBl bnRpcmUgc2VjdGlvbiBtdXN0IGJlIG1hcmtlZCByZXRhaW5lZC4gICovCi0JICAgICAgaWYgKChl bGZfdGRhdGEgKHN0ZG91dHB1dCktPmhhc19nbnVfb3NhYmkgJiBlbGZfZ251X29zYWJpX3JldGFp bikKLQkJICAmJiAoKGVsZl9zZWN0aW9uX2ZsYWdzIChvbGRfc2VjKSAmIFNIRl9HTlVfUkVUQUlO KSkpCi0JCWF0dHIgfD0gU0hGX0dOVV9SRVRBSU47Ci0KLQkgICAgICAvKiBGSVhNRTogTWF5YmUg d2Ugc2hvdWxkIGNvbnNpZGVyIHJlbW92aW5nIGEgcHJldmlvdXNseSBzZXQKLQkJIHByb2Nlc3Nv ciBvciBhcHBsaWNhdGlvbiBzcGVjaWZpYyBhdHRyaWJ1dGUgYXMgc3VzcGljaW91cyA/ICAqLwot CSAgICAgIGVsZl9zZWN0aW9uX2ZsYWdzIChzZWMpID0gYXR0cjsKLQkgICAgfQorCSAgICAvKiBG SVhNRTogTWF5YmUgd2Ugc2hvdWxkIGNvbnNpZGVyIHJlbW92aW5nIGEgcHJldmlvdXNseSBzZXQK KwkgICAgICAgcHJvY2Vzc29yIG9yIGFwcGxpY2F0aW9uIHNwZWNpZmljIGF0dHJpYnV0ZSBhcyBz dXNwaWNpb3VzPyAgKi8KKwkgICAgZWxmX3NlY3Rpb25fZmxhZ3MgKHNlYykgPSBhdHRyOwogCiAJ ICBpZiAoKGZsYWdzICYgU0VDX01FUkdFKSAmJiBvbGRfc2VjLT5lbnRzaXplICE9ICh1bnNpZ25l ZCkgZW50c2l6ZSkKIAkgICAgYXNfYmFkIChfKCJjaGFuZ2VkIHNlY3Rpb24gZW50aXR5IHNpemUg Zm9yICVzIiksIG5hbWUpOwpAQCAtMTMyMiwxOCArMTMyMCwyMSBAQCBvYmpfZWxmX3NlY3Rpb24g KGludCBwdXNoKQogCSAgICAgIGlmIChJU0RJR0lUICgqIGlucHV0X2xpbmVfcG9pbnRlcikpCiAJ CXsKIAkJICBjaGFyICp0ID0gaW5wdXRfbGluZV9wb2ludGVyOwotCQkgIG1hdGNoLmluZm8gPSBz dHJ0b3VsIChpbnB1dF9saW5lX3BvaW50ZXIsCisJCSAgbWF0Y2guc2hfaW5mbyA9IHN0cnRvdWwg KGlucHV0X2xpbmVfcG9pbnRlciwKIAkJCQkJJmlucHV0X2xpbmVfcG9pbnRlciwgMCk7Ci0JCSAg aWYgKG1hdGNoLmluZm8gPT0gKHVuc2lnbmVkIGludCkgLTEpCisJCSAgaWYgKG1hdGNoLnNoX2lu Zm8gPT0gKHVuc2lnbmVkIGludCkgLTEpCiAJCSAgICB7CiAJCSAgICAgIGFzX3dhcm4gKF8oInVu c3VwcG9ydGVkIG1iaW5kIHNlY3Rpb24gaW5mbzogJXMiKSwgdCk7Ci0JCSAgICAgIG1hdGNoLmlu Zm8gPSAwOworCQkgICAgICBtYXRjaC5zaF9pbmZvID0gMDsKIAkJICAgIH0KIAkJfQogCSAgICAg IGVsc2UKIAkJaW5wdXRfbGluZV9wb2ludGVyID0gc2F2ZTsKIAkgICAgfQogCisJICBpZiAoKGdu dV9hdHRyICYgU0hGX0dOVV9SRVRBSU4pICE9IDApCisJICAgIG1hdGNoLnNoX2ZsYWdzIHw9IFNI Rl9HTlVfUkVUQUlOOworCiAJICBpZiAoKmlucHV0X2xpbmVfcG9pbnRlciA9PSAnLCcpCiAJICAg IHsKIAkgICAgICBjaGFyICpzYXZlID0gaW5wdXRfbGluZV9wb2ludGVyOwpkaWZmIC0tZ2l0IGEv Z2FzL2NvbmZpZy9vYmotZWxmLmggYi9nYXMvY29uZmlnL29iai1lbGYuaAppbmRleCA0ZjI5NTcy ZWVmLi5jNzE0YmE3YTcwIDEwMDY0NAotLS0gYS9nYXMvY29uZmlnL29iai1lbGYuaAorKysgYi9n YXMvY29uZmlnL29iai1lbGYuaApAQCAtMTA2LDggKzEwNiw5IEBAIHN0cnVjdCBlbGZfc2VjdGlv bl9tYXRjaAogewogICBjb25zdCBjaGFyICogICBncm91cF9uYW1lOwogICBjb25zdCBjaGFyICog ICBsaW5rZWRfdG9fc3ltYm9sX25hbWU7Ci0gIHVuc2lnbmVkIGludCAgIGluZm87CiAgIHVuc2ln bmVkIGludCAgIHNlY3Rpb25faWQ7CisgIHVuc2lnbmVkIGludCAgIHNoX2luZm87CQkvKiBFTEYg c2VjdGlvbiBpbmZvcm1hdGlvbi4gICovCisgIGJmZF92bWEgICAgICAgIHNoX2ZsYWdzOwkJLyog RUxGIHNlY3Rpb24gZmxhZ3MuICAqLwogICBmbGFnd29yZCAgICAgICBmbGFnczsKIH07CiAKZGlm ZiAtLWdpdCBhL2dhcy90ZXN0c3VpdGUvZ2FzL2VsZi9lbGYuZXhwIGIvZ2FzL3Rlc3RzdWl0ZS9n YXMvZWxmL2VsZi5leHAKaW5kZXggMjVjNDBhMjgxMC4uODBkZWM0ZWZmYyAxMDA2NDQKLS0tIGEv Z2FzL3Rlc3RzdWl0ZS9nYXMvZWxmL2VsZi5leHAKKysrIGIvZ2FzL3Rlc3RzdWl0ZS9nYXMvZWxm L2VsZi5leHAKQEAgLTI2OCw2ICsyNjgsNyBAQCBpZiB7IFtpc19lbGZfZm9ybWF0XSB9IHRoZW4g ewogICAgIHJ1bl9kdW1wX3Rlc3QgInNlY3Rpb24yNGIiCiAgICAgcnVuX2R1bXBfdGVzdCAic2Vj dGlvbjI1IgogICAgIHJ1bl9kdW1wX3Rlc3QgInNlY3Rpb24yNiIKKyAgICBydW5fZHVtcF90ZXN0 ICJzZWN0aW9uMjciCiAgICAgcnVuX2R1bXBfdGVzdCAic2gtbGluay16ZXJvIgogICAgIHJ1bl9k dW1wX3Rlc3QgImR3YXJmMi0xIiAkZHVtcF9vcHRzCiAgICAgcnVuX2R1bXBfdGVzdCAiZHdhcmYy LTIiICRkdW1wX29wdHMKZGlmZiAtLWdpdCBhL2dhcy90ZXN0c3VpdGUvZ2FzL2VsZi9zZWN0aW9u MjRiLmQgYi9nYXMvdGVzdHN1aXRlL2dhcy9lbGYvc2VjdGlvbjI0Yi5kCmluZGV4IDQ1MWVjMjE2 MzUuLjAzZGQyOTE2ZWYgMTAwNjQ0Ci0tLSBhL2dhcy90ZXN0c3VpdGUvZ2FzL2VsZi9zZWN0aW9u MjRiLmQKKysrIGIvZ2FzL3Rlc3RzdWl0ZS9nYXMvZWxmL3NlY3Rpb24yNGIuZApAQCAtMyw4ICsz LDEyIEBACiAjc291cmNlOiBzZWN0aW9uMjQucwogI3JlYWRlbGY6IC1TIC0td2lkZQogCi0jZmFp bGlmCiAjLi4uCi0gIFxbLi5cXSAuKHRleHR8ZGF0YXxic3N8cm9kYXRhKVsgCV0rUFJPR0JJVFNb IAldK1swLTlhLWZdKyBbMC05YS1mXSsgWzAtOWEtZl0rIDAwIFteUl0gLioKKyAgXFsuLlxdIC50 ZXh0WyAJXStQUk9HQklUU1sgCV0rWzAtOWEtZl0rIFswLTlhLWZdKyBbMC05YS1mXSsgMDAgK0FY IC4qCisjLi4uCisgIFxbLi5cXSAuZGF0YVsgCV0rUFJPR0JJVFNbIAldK1swLTlhLWZdKyBbMC05 YS1mXSsgWzAtOWEtZl0rIDAwICtXQSAuKgorIy4uLgorICBcWy4uXF0gLmJzc1sgCV0rTk9CSVRT WyAJXStbMC05YS1mXSsgWzAtOWEtZl0rIFswLTlhLWZdKyAwMCArV0EgLioKKyMuLi4KKyAgXFsu LlxdIC5yb2RhdGFbIAldK1BST0dCSVRTWyAJXStbMC05YS1mXSsgWzAtOWEtZl0rIFswLTlhLWZd KyAwMCArQSAuKgogI3Bhc3MKLQpkaWZmIC0tZ2l0IGEvZ2FzL3Rlc3RzdWl0ZS9nYXMvZWxmL3Nl Y3Rpb24yNy5kIGIvZ2FzL3Rlc3RzdWl0ZS9nYXMvZWxmL3NlY3Rpb24yNy5kCm5ldyBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLjU0ODlkOThkNmUKLS0tIC9kZXYvbnVsbAorKysg Yi9nYXMvdGVzdHN1aXRlL2dhcy9lbGYvc2VjdGlvbjI3LmQKQEAgLTAsMCArMSwxNCBAQAorI3Jl YWRlbGY6IC1oIC1TIC0td2lkZQorI25hbWU6IFNIRl9HTlVfUkVUQUlOIHNlY3Rpb25zIDI3Cisj bm90YXJnZXQ6ICFbc3VwcG9ydHNfZ251X29zYWJpXQorCisjLi4uCisgK09TL0FCSTogK1VOSVgg LSAoR05VfEZyZWVCU0QpCisjLi4uCisgIFxbLi5cXSAudGV4dFsgCV0rUFJPR0JJVFNbIAldK1sw LTlhLWZdKyBbMC05YS1mXSsgWzAtOWEtZl0rIDAwICBBWC4qCisgIFxbLi5cXSAuZGF0YVsgCV0r UFJPR0JJVFNbIAldK1swLTlhLWZdKyBbMC05YS1mXSsgWzAtOWEtZl0rIDAwICBXQS4qCisgIFxb Li5cXSAuYnNzWyAJXStOT0JJVFNbIAldK1swLTlhLWZdKyBbMC05YS1mXSsgWzAtOWEtZl0rIDAw ICBXQS4qCisgIFxbLi5cXSAuYnNzWyAJXStOT0JJVFNbIAldK1swLTlhLWZdKyBbMC05YS1mXSsg WzAtOWEtZl0rIDAwIFdBUi4qCisgIFxbLi5cXSAuZGF0YVsgCV0rUFJPR0JJVFNbIAldK1swLTlh LWZdKyBbMC05YS1mXSsgWzAtOWEtZl0rIDAwIFdBUi4qCisgIFxbLi5cXSAudGV4dFsgCV0rUFJP R0JJVFNbIAldK1swLTlhLWZdKyBbMC05YS1mXSsgWzAtOWEtZl0rIDAwIEFYUi4qCisjcGFzcwpk aWZmIC0tZ2l0IGEvZ2FzL3Rlc3RzdWl0ZS9nYXMvZWxmL3NlY3Rpb24yNy5zIGIvZ2FzL3Rlc3Rz dWl0ZS9nYXMvZWxmL3NlY3Rpb24yNy5zCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw MDAwMDAuLjc4ZTQxMGZmOTUKLS0tIC9kZXYvbnVsbAorKysgYi9nYXMvdGVzdHN1aXRlL2dhcy9l bGYvc2VjdGlvbjI3LnMKQEAgLTAsMCArMSwzNCBAQAorCS5zZWN0aW9uCS5ic3MsImF3IgorCS5n bG9iYWwJZGlzY2FyZDAKKwkudHlwZQlkaXNjYXJkMCwgJW9iamVjdAorZGlzY2FyZDA6CisJLnpl cm8JMgorCisJLnNlY3Rpb24JLmRhdGEsImF3IgorCS5nbG9iYWwJZGlzY2FyZDEKKwkudHlwZQlk aXNjYXJkMSwgJW9iamVjdAorZGlzY2FyZDE6CisJLndvcmQJMQorCisJLnRleHQKKwkuZ2xvYmFs CWRpc2NhcmQyCisJLnR5cGUJZGlzY2FyZDIsICVmdW5jdGlvbgorZGlzY2FyZDI6CisJLndvcmQJ MAorCisJLnNlY3Rpb24JLmJzcywiYXdSIiwlbm9iaXRzCisJLmdsb2JhbAlyZXRhaW4wCisJLnR5 cGUJcmV0YWluMCwgJW9iamVjdAorcmV0YWluMDoKKwkuemVybwkyCisKKwkuc2VjdGlvbgkuZGF0 YSwiYXdSIiwlcHJvZ2JpdHMKKwkudHlwZQlyZXRhaW4xLCAlb2JqZWN0CityZXRhaW4xOgorCS53 b3JkCTEKKworCS5zZWN0aW9uCS50ZXh0LCJheFIiLCVwcm9nYml0cworCS5nbG9iYWwJcmV0YWlu MgorCS50eXBlCXJldGFpbjIsICVmdW5jdGlvbgorcmV0YWluMjoKKwkud29yZAkwCi0tIAoyLjI4 LjAKCg== --0000000000004a840a05b5a62e9c--