From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtp-out1.suse.de (smtp-out1.suse.de [195.135.220.28]) by sourceware.org (Postfix) with ESMTPS id 324213858D20 for ; Mon, 27 Feb 2023 11:43:04 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 324213858D20 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=suse.de Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=suse.de Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by smtp-out1.suse.de (Postfix) with ESMTPS id 5B0C4219E1; Mon, 27 Feb 2023 11:43:03 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1677498183; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=UTPDZ3S/WBDp25nXOsUFOTpRW0O7F+H50WIE3BeJOJU=; b=V5YdkpfO6pfiyw8f8CeIj6Tp5wJgzvAF2rjpmR3HHQjsGr9WOuPnVsFaIa6NakRC3V79O9 bjT4MBtf9oc/L4qddQbsoHhDxIpymFpuaPvWAHjJ6X6L3pKrIANteunZMez0Sc7kkrxskD RmeG6VyV54g4nZ/xoBsFOvZcOgJN/Xc= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1677498183; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=UTPDZ3S/WBDp25nXOsUFOTpRW0O7F+H50WIE3BeJOJU=; b=0CG6ILURYM9znd7v9M81eyUfKMsAtl4kxQAAXcpdxmoEvL3eznbxlQeOCqDLZxWlHUWaeG 0JZdEsQNGqQ3c4Aw== Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id 33FDE13912; Mon, 27 Feb 2023 11:43:03 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id e9UXC0eX/GOkIwAAMHmgww (envelope-from ); Mon, 27 Feb 2023 11:43:03 +0000 Content-Type: multipart/mixed; boundary="------------Aki1MsCanA0MOZPH0n88NavH" Message-ID: <9eb9eaf6-2cff-360b-3de6-072d3f8185dc@suse.de> Date: Mon, 27 Feb 2023 12:43:09 +0100 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.7.1 Subject: [PATCH] gas: Add --compress-debug-sections=force Content-Language: en-US To: Jan Beulich Cc: binutils@sourceware.org, Michael Matz , Nick Clifton , Alan Modra References: <20230223124519.4228-1-tdevries@suse.de> <7dcb7bfb-f65d-aed8-78d4-944211ef5127@suse.de> <819f729a-da9c-3b8a-3769-7995c009704b@suse.com> <14a2defc-5371-84bc-2d59-9980755b112a@suse.de> <02dcf47c-4256-c5e5-de9e-814b60da8ce8@suse.com> <7cb226d0-1a91-9bad-181c-46f79c4d6eaf@suse.de> <0c60eef7-c612-ec37-8c3f-36b746ff8d95@suse.de> <711d9da5-8f31-3f1e-530b-5ae01780fcad@suse.de> From: Tom de Vries In-Reply-To: X-Spam-Status: No, score=-12.5 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,GIT_PATCH_0,SPF_HELO_NONE,SPF_PASS,TXREP autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: This is a multi-part message in MIME format. --------------Aki1MsCanA0MOZPH0n88NavH Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit [ was: Re: [PATCH] gas: Add --force-compress-debug-sections ] On 2/27/23 10:03, Jan Beulich wrote: > On 24.02.2023 15:57, Tom de Vries wrote: >> On 2/24/23 15:26, Jan Beulich wrote: >>> On 24.02.2023 15:11, Tom de Vries wrote: >>>> On 2/24/23 14:23, Jan Beulich wrote: >>>>> On 24.02.2023 13:21, Tom de Vries wrote: >>>>>> On 2/24/23 12:28, Jan Beulich wrote: >>>>>>> I also wouldn't see anything wrong with something >>>>>>> like "...=force,zstd,none" - the last one(s) win. That's no different >>>>>>> from specifying a second instance of the option. And without that it >>>>>>> looks as if the parsing would end up simpler. >>>>>> >>>>>> OK, gave that a try. >>>>> >>>>> That's still accumulating none and force across the entire sequence >>>>> (and then giving none priority over force, no matter that force may >>>>> have been specified last), >>>> >>>> Um, so you're saying that none+zstd+force is currently interpreted as none? >>>> >>>> Lets try: >>>> ... >>>> $ gcc ~/hello.c -c -Wa,-gdwarf-5 -Xassembler >>>> --compress-debug-sections=none+zstd+force >>>> $ readelf -S -W hello.o | grep " .debug" >>>> [ 9] .debug_line PROGBITS 0000a8 000064 00 C 0 0 8 >>>> [11] .debug_line_str PROGBITS 000110 000046 01 MSC 0 0 8 >>>> [12] .debug_info PROGBITS 000158 000046 00 C 0 0 8 >>>> [14] .debug_abbrev PROGBITS 0001a0 000049 00 C 0 0 8 >>>> [15] .debug_aranges PROGBITS 0001f0 000034 00 C 0 0 8 >>>> [17] .debug_str PROGBITS 000228 00005a 01 MSC 0 0 8 >>>> >>>> ... >>>> >>>> So, that doesn't seem to be the case, compression is done, as expected. >>> >>> Oh, I've overlooked that you explicitly clear *none when you set *force >>> (my attention was mainly on the bottom of parse_compress_debug_optarg()). >>> I think that's more involved than necessary (possibly merely a result of >>> you having worked incrementally from your earlier version), and less >>> obviously doing the same as would happen when multiple separate options >>> were parsed. >> >> I've tried to simplify further. >> >> Is this more how you want it? > > I have to admit that I'm still puzzled by the presence of > finalize_parse_compress_debug_optarg() as well as you needing both a new > static variable and a new global one. The latter I've fixed, by exporting the static variable. That eliminates one half of finalize_parse_compress_debug_optarg(). The remaining half is necessary because we accumulate "none" into compress_debug_action instead of into flag_compress_debug, so after parsing is over we need to assign the accumulation result, if it is indeed cda_none, to flag_compress_debug. And the reason we have that complicated setup is related to preventing none from zapping compression type. > But I guess whether that's really > needed first of all depends on the semantics we want e.g. > > --nocompress-debug-sections --compress-debug-sections=force > > to have (which, with how you have it presently, could also be expressed > as > > --compress-debug-sections=none+force > > or > > --compress-debug-sections=none --compress-debug-sections=force > > afaict). I view the present meaning as one sensible one, but I could > also see "none" (or equivalent) simply zapping the compression type > (and hence rendering "force" meaningless) as another sensible one. Sure, that's another possible semantics. Should I implement that instead? > A > change in meaning may then also result in the three option combinations > above possibly not all doing the same. > > As an aside: As you update the patch, please try to keep the title in > line with what the patch actually does. > I'm assuming you mean the email title (the patch title looks ok to me), and I've updated it. > Also, ftaod, I don't mean to stand in the way of another maintainer > approving any of the forms proposed so far. This specifically also > includes the use of '+' as a separator, which I personally don't > (currently) intend to approve. Well, in case that's blocking you from giving approval, I've updated the patch to use the ',' separator. Thanks, - Tom --------------Aki1MsCanA0MOZPH0n88NavH Content-Type: text/x-patch; charset=UTF-8; name="0001-gas-Add-compress-debug-sections-force.patch" Content-Disposition: attachment; filename="0001-gas-Add-compress-debug-sections-force.patch" Content-Transfer-Encoding: base64 RnJvbSAwZmI0ZWQ2ZDY0OGE2OTc5OWNkYmY2YjE5ZmQzNmM2MTI1YzVmYzQxIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBUb20gZGUgVnJpZXMgPHRkZXZyaWVzQHN1c2UuZGU+ CkRhdGU6IFRodSwgMjMgRmViIDIwMjMgMTI6NTM6NDAgKzAxMDAKU3ViamVjdDogW1BBVENI XSBnYXM6IEFkZCAtLWNvbXByZXNzLWRlYnVnLXNlY3Rpb25zPWZvcmNlCgpHYXMgaGFzIGFu IG9wdGlvbiAtLWNvbXByZXNzLWRlYnVnLXNlY3Rpb25zIHRoYXQgYWxsb3dzIGl0IHRvIGdl bmVyYXRlCmNvbXByZXNzZWQgZGVidWcgc2VjdGlvbnMuCgpUaGF0IGRvZXMgbm90IGd1YXJh bnRlZSB0aGF0IHRoZSBkZWJ1ZyBzZWN0aW9ucyBhcmUgaW4gZmFjdCBjb21wcmVzc2VkOgou Li4KJCBnY2MgaGVsbG8uYyAtV2EsLWdkd2FyZi01IC1jIC1XYSwtLWNvbXByZXNzLWRlYnVn LXNlY3Rpb25zPXpzdGQKJCByZWFkZWxmIC1TIC1XIGhlbGxvLm8gfCBncmVwICIgLmRlYnVn IgogIFsgOV0gLmRlYnVnX2xpbmUgICAgICAgUFJPR0JJVFMgICAgICAgICAwMDAwYTggMDAw MDUzIDAwICAgICAgMCAgIDAgIDEKICBbMTFdIC5kZWJ1Z19saW5lX3N0ciAgIFBST0dCSVRT ICAgICAgICAgMDAwMGZiIDAwMDAyNSAwMSAgTVMgIDAgICAwICAxCiAgWzEyXSAuZGVidWdf aW5mbyAgICAgICBQUk9HQklUUyAgICAgICAgIDAwMDEyMCAwMDAwMzkgMDAgICAgICAwICAg MCAgMQogIFsxNF0gLmRlYnVnX2FiYnJldiAgICAgUFJPR0JJVFMgICAgICAgICAwMDAxNTkg MDAwMDI4IDAwICAgICAgMCAgIDAgIDEKICBbMTVdIC5kZWJ1Z19hcmFuZ2VzICAgIFBST0dC SVRTICAgICAgICAgMDAwMTkwIDAwMDAzMCAwMCAgICAgIDAgICAwIDE2CiAgWzE3XSAuZGVi dWdfc3RyICAgICAgICBQUk9HQklUUyAgICAgICAgIDAwMDFjMCAwMDAwMzkgMDEgIE1TICAw ICAgMCAgMQouLi4KClNlbnNpYmx5IHNvLCB0aGV5J3JlIG9ubHkgY29tcHJlc3NlZCBpZiB0 aGF0IHByb3ZpZGVzIGEgc2l6ZSBiZW5lZml0LgoKSG93ZXZlciwgZm9yIHRoZSBwdXJwb3Nl IG9mIHRlc3RpbmcgY29tcG9uZW50cyBjb25zdW1pbmcgZHdhcmYKd2UgbWF5IHdhbnQgdGhl IHNlY3Rpb25zIHRvIGJlIGNvbXByZXNzZWQgcmVnYXJkbGVzcy4KCkFkZCBhIG5ldyBzdWJv cHRpb24gLS1jb21wcmVzcy1kZWJ1Zy1zZWN0aW9ucz1mb3JjZSB0aGF0IGlnbm9yZXMgdGhl IHNpemUKaGV1cmlzdGljLCBzdWNoIHRoYXQgd2UgaGF2ZSBpbnN0ZWFkOgouLi4KJCBnY2Mg aGVsbG8uYyAtV2EsLWdkd2FyZi01IC1jIC1YYXNzZW1ibGVyIFwKICAgIC0tY29tcHJlc3Mt ZGVidWctc2VjdGlvbnM9enN0ZCxmb3JjZQokIHJlYWRlbGYgLVMgLVcgaGVsbG8ubyB8IGdy ZXAgIiAuZGVidWciCiAgWyA5XSAuZGVidWdfbGluZSAgICAgICBQUk9HQklUUyAgICAgICAg IDAwMDBhOCAwMDAwNjQgMDAgICBDICAwICAgMCAgOAogIFsxMV0gLmRlYnVnX2xpbmVfc3Ry ICAgUFJPR0JJVFMgICAgICAgICAwMDAxMTAgMDAwMDQ2IDAxIE1TQyAgMCAgIDAgIDgKICBb MTJdIC5kZWJ1Z19pbmZvICAgICAgIFBST0dCSVRTICAgICAgICAgMDAwMTU4IDAwMDA0NiAw MCAgIEMgIDAgICAwICA4CiAgWzE0XSAuZGVidWdfYWJicmV2ICAgICBQUk9HQklUUyAgICAg ICAgIDAwMDFhMCAwMDAwNDkgMDAgICBDICAwICAgMCAgOAogIFsxNV0gLmRlYnVnX2FyYW5n ZXMgICAgUFJPR0JJVFMgICAgICAgICAwMDAxZjAgMDAwMDM0IDAwICAgQyAgMCAgIDAgIDgK ICBbMTddIC5kZWJ1Z19zdHIgICAgICAgIFBST0dCSVRTICAgICAgICAgMDAwMjI4IDAwMDA1 YSAwMSBNU0MgIDAgICAwICA4Ci4uLgoKQWR2ZXJ0aXNlZCBhczoKLi4uCiQgYXMgLS1oZWxw CiAgLi4uCiAgLS1jb21wcmVzcy1kZWJ1Zy1zZWN0aW9uc1s9e25vbmV8PGZvcm1hdD58Zm9y Y2V8Zm9yY2UsPGZvcm1hdD59XQogICAgICAgICAgICAgICAgICAgICAgICAgIHdoZXJlIDxm b3JtYXQ+IGlzIHt6bGlifHpsaWItZ251fHpsaWItZ2FiaXx6c3RkfQogICAgICAgICAgICAg ICAgICAgICAgICAgIGNvbXByZXNzIERXQVJGIGRlYnVnIHNlY3Rpb25zCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICBEZWZhdWx0OiB6c3RkCi4uLgoKVGVzdGVkIG9uIHg4Nl82NC1s aW51eC4KLS0tCiBnYXMvYXMuYyAgICAgICAgfCAxMDYgKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrLS0tLS0tLS0tCiBnYXMvYXMuaCAgICAgICAgfCAgMTAgKysr KysKIGdhcy9kb2MvYXMudGV4aSB8ICAxMCArKysrLQogZ2FzL3dyaXRlLmMgICAgIHwgICA1 ICsrLQogNCBmaWxlcyBjaGFuZ2VkLCAxMDggaW5zZXJ0aW9ucygrKSwgMjMgZGVsZXRpb25z KC0pCgpkaWZmIC0tZ2l0IGEvZ2FzL2FzLmMgYi9nYXMvYXMuYwppbmRleCA1OThiZmQ1NmNm NS4uYWNiY2NmYjVkY2UgMTAwNjQ0Ci0tLSBhL2dhcy9hcy5jCisrKyBiL2dhcy9hcy5jCkBA IC0yMzAsNiArMjMwLDggQEAgZW51bSBjb21wcmVzc2VkX2RlYnVnX3NlY3Rpb25fdHlwZSBm bGFnX2NvbXByZXNzX2RlYnVnCiAgID0gREVGQVVMVF9DT01QUkVTU0VEX0RFQlVHX0FMR09S SVRITTsKICNlbmRpZgogCitlbnVtIGNvbXByZXNzX2RlYnVnX2FjdGlvbiBjb21wcmVzc19k ZWJ1Z19hY3Rpb24gPSBjZGFfZGVmYXVsdDsKKwogc3RhdGljIHZvaWQKIHNob3dfdXNhZ2Ug KEZJTEUgKiBzdHJlYW0pCiB7CkBAIC0yNTIsNyArMjU0LDggQEAgT3B0aW9uczpcblwKICAg ZnByaW50ZiAoc3RyZWFtLCBfKCJcCiAgIC0tYWx0ZXJuYXRlICAgICAgICAgICAgIGluaXRp YWxseSB0dXJuIG9uIGFsdGVybmF0ZSBtYWNybyBzeW50YXhcbiIpKTsKICAgZnByaW50ZiAo c3RyZWFtLCBfKCJcCi0gIC0tY29tcHJlc3MtZGVidWctc2VjdGlvbnNbPXtub25lfHpsaWJ8 emxpYi1nbnV8emxpYi1nYWJpfHpzdGR9XVxuXAorICAtLWNvbXByZXNzLWRlYnVnLXNlY3Rp b25zWz17bm9uZXw8Zm9ybWF0Pnxmb3JjZXxmb3JjZSw8Zm9ybWF0Pn1dXG5cCisgICAgICAg ICAgICAgICAgICAgICAgICAgIHdoZXJlIDxmb3JtYXQ+IGlzIHt6bGlifHpsaWItZ251fHps aWItZ2FiaXx6c3RkfVxuXAogICAgICAgICAgICAgICAgICAgICAgICAgICBjb21wcmVzcyBE V0FSRiBkZWJ1ZyBzZWN0aW9uc1xuIikpLAogICBmcHJpbnRmIChzdHJlYW0sIF8oIlwKIAkJ ICAgICAgICAgICAgRGVmYXVsdDogJXNcbiIpLApAQCAtNDE4LDYgKzQyMSw4NCBAQCBPcHRp b25zOlxuXAogICAgIGZwcmludGYgKHN0cmVhbSwgXygiUmVwb3J0IGJ1Z3MgdG8gJXNcbiIp LCBSRVBPUlRfQlVHU19UTyk7CiB9CiAKK3N0YXRpYyB2b2lkCitwYXJzZV9jb21wcmVzc19k ZWJ1Z19vcHRhcmdfMSAoY29uc3QgY2hhciAqb3B0YXJnKQoreworICBnYXNfYXNzZXJ0IChv cHRhcmcgIT0gTlVMTCk7CisKKyAgaWYgKHN0cmNtcCAob3B0YXJnLCAiZm9yY2UiKSA9PSAw KQorICAgIHsKKyAgICAgIGNvbXByZXNzX2RlYnVnX2FjdGlvbiA9IGNkYV9mb3JjZTsKKyAg ICAgIHJldHVybjsKKyAgICB9CisKKyAgZW51bSBjb21wcmVzc2VkX2RlYnVnX3NlY3Rpb25f dHlwZSB0bXAKKyAgICA9IGJmZF9nZXRfY29tcHJlc3Npb25fYWxnb3JpdGhtIChvcHRhcmcp OworCisjaWZuZGVmIEhBVkVfWlNURAorICBpZiAodG1wID09IENPTVBSRVNTX0RFQlVHX1pT VEQpCisgICAgYXNfZmF0YWwgKF8gKCItLWNvbXByZXNzLWRlYnVnLXNlY3Rpb25zPXpzdGQ6 IGdhcyBpcyBub3QgIgorCQkgImJ1aWx0IHdpdGggenN0ZCBzdXBwb3J0IikpOworI2VuZGlm CisKKyAgaWYgKHRtcCA9PSBDT01QUkVTU19VTktOT1dOKQorICAgIGFzX2ZhdGFsIChfKCJJ bnZhbGlkIC0tY29tcHJlc3MtZGVidWctc2VjdGlvbnMgb3B0aW9uOiBgJXMnIiksCisJICAg ICAgb3B0YXJnKTsKKworICBpZiAodG1wID09IENPTVBSRVNTX0RFQlVHX05PTkUpCisgICAg eworICAgICAgY29tcHJlc3NfZGVidWdfYWN0aW9uID0gY2RhX25vbmU7CisgICAgICByZXR1 cm47CisgICAgfQorCisgIGNvbXByZXNzX2RlYnVnX2FjdGlvbiA9IGNkYV95ZXM7CisgIGZs YWdfY29tcHJlc3NfZGVidWcgPSB0bXA7Cit9CisKK3N0YXRpYyB2b2lkCitwYXJzZV9jb21w cmVzc19kZWJ1Z19vcHRhcmcgKGNvbnN0IGNoYXIgKm9wdGFyZykKK3sKKyNpZiAhZGVmaW5l ZCBPQkpfRUxGICYmICFkZWZpbmVkIE9CSl9NQVlCRV9FTEYKKyAgYXNfZmF0YWwgKF8oIi0t Y29tcHJlc3MtZGVidWctc2VjdGlvbnM9JXMgaXMgdW5zdXBwb3J0ZWQiKSwKKwkgICAgb3B0 YXJnKTsKKyNlbmRpZgorCisgIC8qIFRva2VuaXplIHN1Ym9wdHMgcGFzcyB0byBwYXJzZV9j b21wcmVzc19kZWJ1Z19vcHRhcmdfMS4gICovCisgIGNoYXIgc2VwID0gJywnOworICB3aGls ZSAodHJ1ZSkKKyAgICB7CisgICAgICBjb25zdCBjaGFyICppZHggPSBvcHRhcmc7CisgICAg ICB3aGlsZSAoKmlkeCAhPSAnXDAnICYmICppZHggIT0gc2VwKQorCWlkeCsrOworCisgICAg ICBzaXplX3QgbGVuID0gaWR4IC0gb3B0YXJnOworICAgICAgaWYgKGxlbiA9PSAwKQorCXsK KwkgIC8qIEdlbmVyYXRlIGVycm9yLiAgKi8KKwkgIHBhcnNlX2NvbXByZXNzX2RlYnVnX29w dGFyZ18xICgiIik7CisJICBicmVhazsKKwl9CisKKyAgICAgIGNoYXIgKnRtcCA9IHhzdHJu ZHVwIChvcHRhcmcsIGxlbik7CisgICAgICBwYXJzZV9jb21wcmVzc19kZWJ1Z19vcHRhcmdf MSAodG1wKTsKKyAgICAgIGZyZWUgKHRtcCk7CisKKyAgICAgIGlmICgqaWR4ID09ICdcMCcp CisJYnJlYWs7CisKKyAgICAgIC8qIFN0ZXAgb3ZlciBzZXBhcmF0b3IgYW5kIGNvbnRpbnVl IHRva2VuaXppbmcuICAqLworICAgICAgZ2FzX2Fzc2VydCAoKmlkeCA9PSBzZXApOworICAg ICAgb3B0YXJnID0gaWR4ICsgMTsKKyAgfQorfQorCitzdGF0aWMgdm9pZAorZmluYWxpemVf cGFyc2VfY29tcHJlc3NfZGVidWdfb3B0YXJnICh2b2lkKQoreworICBpZiAoY29tcHJlc3Nf ZGVidWdfYWN0aW9uID09IGNkYV9ub25lKQorICAgIGZsYWdfY29tcHJlc3NfZGVidWcgPSBD T01QUkVTU19ERUJVR19OT05FOworfQorCiAvKiBTaW5jZSBpdCBpcyBlYXN5IHRvIGRvIGhl cmUgd2UgaW50ZXJwcmV0IHRoZSBzcGVjaWFsIGFyZyAiLSIKICAgIHRvIG1lYW4gInVzZSBz dGRpbiIgYW5kIHdlIHNldCB0aGF0IGFyZ3ZbXSBwb2ludGluZyB0byAiIi4KICAgIEFmdGVy IHdlIGhhdmUgbXVuZ2VkIGFyZ3ZbXSwgdGhlIG9ubHkgdGhpbmdzIGxlZnQgYXJlIHNvdXJj ZSBmaWxlCkBAIC03NDcsMjggKzgyOCwxMyBAQCBUaGlzIHByb2dyYW0gaGFzIGFic29sdXRl bHkgbm8gd2FycmFudHkuXG4iKSk7CiAKIAljYXNlIE9QVElPTl9DT01QUkVTU19ERUJVRzoK IAkgIGlmIChvcHRhcmcpCi0JICAgIHsKLSNpZiBkZWZpbmVkIE9CSl9FTEYgfHwgZGVmaW5l ZCBPQkpfTUFZQkVfRUxGCi0JICAgICAgZmxhZ19jb21wcmVzc19kZWJ1ZyA9IGJmZF9nZXRf Y29tcHJlc3Npb25fYWxnb3JpdGhtIChvcHRhcmcpOwotI2lmbmRlZiBIQVZFX1pTVEQKLQkg ICAgICBpZiAoZmxhZ19jb21wcmVzc19kZWJ1ZyA9PSBDT01QUkVTU19ERUJVR19aU1REKQot CQkgIGFzX2ZhdGFsIChfICgiLS1jb21wcmVzcy1kZWJ1Zy1zZWN0aW9ucz16c3RkOiBnYXMg aXMgbm90ICIKLQkJCSAgICAgICAiYnVpbHQgd2l0aCB6c3RkIHN1cHBvcnQiKSk7Ci0jZW5k aWYKLQkgICAgICBpZiAoZmxhZ19jb21wcmVzc19kZWJ1ZyA9PSBDT01QUkVTU19VTktOT1dO KQotCQlhc19mYXRhbCAoXygiSW52YWxpZCAtLWNvbXByZXNzLWRlYnVnLXNlY3Rpb25zIG9w dGlvbjogYCVzJyIpLAotCQkJICBvcHRhcmcpOwotI2Vsc2UKLQkgICAgICBhc19mYXRhbCAo XygiLS1jb21wcmVzcy1kZWJ1Zy1zZWN0aW9ucz0lcyBpcyB1bnN1cHBvcnRlZCIpLAotCQkJ b3B0YXJnKTsKLSNlbmRpZgotCSAgICB9CisJICAgIHBhcnNlX2NvbXByZXNzX2RlYnVnX29w dGFyZyAob3B0YXJnKTsKIAkgIGVsc2UKLQkgICAgZmxhZ19jb21wcmVzc19kZWJ1ZyA9IENP TVBSRVNTX0RFQlVHX0dBQklfWkxJQjsKKwkgICAgcGFyc2VfY29tcHJlc3NfZGVidWdfb3B0 YXJnICgiemxpYi1nYWJpIik7CiAJICBicmVhazsKIAogCWNhc2UgT1BUSU9OX05PQ09NUFJF U1NfREVCVUc6Ci0JICBmbGFnX2NvbXByZXNzX2RlYnVnID0gQ09NUFJFU1NfREVCVUdfTk9O RTsKKwkgIHBhcnNlX2NvbXByZXNzX2RlYnVnX29wdGFyZyAoIm5vbmUiKTsKIAkgIGJyZWFr OwogCiAJY2FzZSBPUFRJT05fREVCVUdfUFJFRklYX01BUDoKQEAgLTExMzYsNiArMTIwMiw4 IEBAIFRoaXMgcHJvZ3JhbSBoYXMgYWJzb2x1dGVseSBubyB3YXJyYW50eS5cbiIpKTsKICAg KnBhcmdjID0gbmV3X2FyZ2M7CiAgICpwYXJndiA9IG5ld19hcmd2OwogCisgIGZpbmFsaXpl X3BhcnNlX2NvbXByZXNzX2RlYnVnX29wdGFyZyAoKTsKKwogI2lmZGVmIG1kX2FmdGVyX3Bh cnNlX2FyZ3MKICAgbWRfYWZ0ZXJfcGFyc2VfYXJncyAoKTsKICNlbmRpZgpkaWZmIC0tZ2l0 IGEvZ2FzL2FzLmggYi9nYXMvYXMuaAppbmRleCA0YzVmYTllY2Y3ZC4uYmMwZmU3ZjVjZDkg MTAwNjQ0Ci0tLSBhL2dhcy9hcy5oCisrKyBiL2dhcy9hcy5oCkBAIC0zMzEsNiArMzMxLDE2 IEBAIENPTU1PTiBpbnQgZmxhZ190cmFkaXRpb25hbF9mb3JtYXQ7CiAvKiBUeXBlIG9mIGNv bXByZXNzZWQgZGVidWcgc2VjdGlvbnMgd2Ugc2hvdWxkIGdlbmVyYXRlLiAgICovCiBDT01N T04gZW51bSBjb21wcmVzc2VkX2RlYnVnX3NlY3Rpb25fdHlwZSBmbGFnX2NvbXByZXNzX2Rl YnVnOwogCisvKiBXaGV0aGVyIHdlIHNob3VsZCBjb21wcmVzcyBkZWJ1ZyBzZWN0aW9ucy4g ICAqLworZW51bSBjb21wcmVzc19kZWJ1Z19hY3Rpb24KK3sKKyAgY2RhX2RlZmF1bHQsCisg IGNkYV9ub25lLAorICBjZGFfZm9yY2UsCisgIGNkYV95ZXMsCit9OworQ09NTU9OIGVudW0g Y29tcHJlc3NfZGVidWdfYWN0aW9uIGNvbXByZXNzX2RlYnVnX2FjdGlvbjsKKwogLyogVFJV RSBpZiAubm90ZS5HTlUtc3RhY2sgc2VjdGlvbiB3aXRoIFNFQ19DT0RFIHNob3VsZCBiZSBj cmVhdGVkICovCiBDT01NT04gaW50IGZsYWdfZXhlY3N0YWNrOwogCmRpZmYgLS1naXQgYS9n YXMvZG9jL2FzLnRleGkgYi9nYXMvZG9jL2FzLnRleGkKaW5kZXggYmJkZmE0YmZkY2EuLmYw MTQwYzA5Nzc5IDEwMDY0NAotLS0gYS9nYXMvZG9jL2FzLnRleGkKKysrIGIvZ2FzL2RvYy9h cy50ZXhpCkBAIC03MTgsNyArNzE4LDggQEAgQmVnaW4gaW4gYWx0ZXJuYXRlIG1hY3JvIG1v ZGUuCiBDb21wcmVzcyBEV0FSRiBkZWJ1ZyBzZWN0aW9ucyB1c2luZyB6bGliIHdpdGggU0hG X0NPTVBSRVNTRUQgZnJvbSB0aGUKIEVMRiBBQkkuICBUaGUgcmVzdWx0aW5nIG9iamVjdCBm aWxlIG1heSBub3QgYmUgY29tcGF0aWJsZSB3aXRoIG9sZGVyCiBsaW5rZXJzIGFuZCBvYmpl Y3QgZmlsZSB1dGlsaXRpZXMuICBOb3RlIGlmIGNvbXByZXNzaW9uIHdvdWxkIG1ha2UgYQot Z2l2ZW4gc2VjdGlvbiBAZW1waHtsYXJnZXJ9IHRoZW4gaXQgaXMgbm90IGNvbXByZXNzZWQu CitnaXZlbiBzZWN0aW9uIEBlbXBoe2xhcmdlcn0gdGhlbiBpdCBpcyBub3QgY29tcHJlc3Nl ZCwgdW5sZXNzCitAb3B0aW9uey0tY29tcHJlc3MtZGVidWctc2VjdGlvbj1mb3JjZX0gaXMg dXNlZC4KIAogQGlmc2V0IEVMRgogQGNpbmRleCBAc2FtcHstLWNvbXByZXNzLWRlYnVnLXNl Y3Rpb25zPX0gb3B0aW9uCkBAIC03MjcsNiArNzI4LDcgQEAgZ2l2ZW4gc2VjdGlvbiBAZW1w aHtsYXJnZXJ9IHRoZW4gaXQgaXMgbm90IGNvbXByZXNzZWQuCiBAaXRlbXggLS1jb21wcmVz cy1kZWJ1Zy1zZWN0aW9ucz16bGliLWdudQogQGl0ZW14IC0tY29tcHJlc3MtZGVidWctc2Vj dGlvbnM9emxpYi1nYWJpCiBAaXRlbXggLS1jb21wcmVzcy1kZWJ1Zy1zZWN0aW9ucz16c3Rk CitAaXRlbXggLS1jb21wcmVzcy1kZWJ1Zy1zZWN0aW9ucz1mb3JjZQogVGhlc2Ugb3B0aW9u cyBjb250cm9sIGhvdyBEV0FSRiBkZWJ1ZyBzZWN0aW9ucyBhcmUgY29tcHJlc3NlZC4KIEBv cHRpb257LS1jb21wcmVzcy1kZWJ1Zy1zZWN0aW9ucz1ub25lfSBpcyBlcXVpdmFsZW50IHRv CiBAb3B0aW9uey0tbm9jb21wcmVzcy1kZWJ1Zy1zZWN0aW9uc30uCkBAIC03MzgsNyArNzQw LDExIEBAIHVzaW5nIHRoZSBvYnNvbGV0ZWQgemxpYi1nbnUgZm9ybWF0LiAgVGhlIGRlYnVn IHNlY3Rpb25zIGFyZSByZW5hbWVkIHRvIGJlZ2luCiB3aXRoIEBzYW1wey56ZGVidWd9Lgog QG9wdGlvbnstLWNvbXByZXNzLWRlYnVnLXNlY3Rpb25zPXpzdGR9IGNvbXByZXNzZXMgRFdB UkYgZGVidWcKIHNlY3Rpb25zIHVzaW5nIHpzdGQuICBOb3RlIC0gaWYgY29tcHJlc3Npb24g d291bGQgYWN0dWFsbHkgbWFrZSBhIHNlY3Rpb24KLUBlbXBoe2xhcmdlcn0sIHRoZW4gaXQg aXMgbm90IGNvbXByZXNzZWQgbm9yIHJlbmFtZWQuCitAZW1waHtsYXJnZXJ9LCB0aGVuIGl0 IGlzIG5vdCBjb21wcmVzc2VkIG5vciByZW5hbWVkLCB1bmxlc3MKK0BvcHRpb257LS1jb21w cmVzcy1kZWJ1Zy1zZWN0aW9uPWZvcmNlfSBpcyB1c2VkLgorQG9wdGlvbnstLWNvbXByZXNz LWRlYnVnLXNlY3Rpb25zPWZvcmNlfSBjb21wcmVzc2VzIERXQVJGIGRlYnVnIHNlY3Rpb25z LAorZXZlbiBpZiB0aGlzIGRvZXMgbm90IHJlZHVjZSBzaXplLiAgSXQgY2FuIGJlIHVzZWQg aW4gY29uanVuY3Rpb24gd2l0aCBhIGZvcm1hdAorc2VsZWN0aW9uLCBmb3IgaW5zdGFuY2Ug QG9wdGlvbnstLWNvbXByZXNzLWRlYnVnLXNlY3Rpb249enN0ZCxmb3JjZX0uCiAKIEBlbmQg aWZzZXQKIApkaWZmIC0tZ2l0IGEvZ2FzL3dyaXRlLmMgYi9nYXMvd3JpdGUuYwppbmRleCA4 MjczYjdhNDJmMS4uMWZhM2I1NGEwM2IgMTAwNjQ0Ci0tLSBhL2dhcy93cml0ZS5jCisrKyBi L2dhcy93cml0ZS5jCkBAIC0xNDYzLDkgKzE0NjMsMTAgQEAgY29tcHJlc3NfZGVidWcgKGJm ZCAqYWJmZCwgYXNlY3Rpb24gKnNlYywgdm9pZCAqeHh4IEFUVFJJQlVURV9VTlVTRUQpCiAg IHNlZ21lbnRfaW5mb190eXBlICpzZWdpbmZvID0gc2VnX2luZm8gKHNlYyk7CiAgIGJmZF9z aXplX3R5cGUgdW5jb21wcmVzc2VkX3NpemUgPSBzZWMtPnNpemU7CiAgIGZsYWd3b3JkIGZs YWdzID0gYmZkX3NlY3Rpb25fZmxhZ3MgKHNlYyk7CisgIGJvb2wgZm9yY2VfY29tcHJlc3Nf ZGVidWcgPSBjb21wcmVzc19kZWJ1Z19hY3Rpb24gPT0gY2RhX2ZvcmNlOwogCiAgIGlmIChz ZWdpbmZvID09IE5VTEwKLSAgICAgIHx8IHVuY29tcHJlc3NlZF9zaXplIDwgMzIKKyAgICAg IHx8ICghZm9yY2VfY29tcHJlc3NfZGVidWcgJiYgdW5jb21wcmVzc2VkX3NpemUgPCAzMikK ICAgICAgIHx8IChmbGFncyAmIFNFQ19IQVNfQ09OVEVOVFMpID09IDApCiAgICAgcmV0dXJu OwogCkBAIC0xNTgyLDcgKzE1ODMsNyBAQCBjb21wcmVzc19kZWJ1ZyAoYmZkICphYmZkLCBh c2VjdGlvbiAqc2VjLCB2b2lkICp4eHggQVRUUklCVVRFX1VOVVNFRCkKIAogICAvKiBQUiBi aW51dGlscy8xODA4NzogSWYgY29tcHJlc3Npb24gZGlkbid0IG1ha2UgdGhlIHNlY3Rpb24g c21hbGxlciwKICAgICAganVzdCBrZWVwIGl0IHVuY29tcHJlc3NlZC4gICovCi0gIGlmIChj b21wcmVzc2VkX3NpemUgPj0gdW5jb21wcmVzc2VkX3NpemUpCisgIGlmICghZm9yY2VfY29t cHJlc3NfZGVidWcgJiYgY29tcHJlc3NlZF9zaXplID49IHVuY29tcHJlc3NlZF9zaXplKQog ICAgIHJldHVybjsKIAogICAvKiBSZXBsYWNlIHRoZSB1bmNvbXByZXNzZWQgZnJhZyBsaXN0 IHdpdGggdGhlIGNvbXByZXNzZWQgZnJhZyBsaXN0LiAgKi8KLS0gCjIuMzUuMwoK --------------Aki1MsCanA0MOZPH0n88NavH--