From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtp-out2.suse.de (smtp-out2.suse.de [195.135.220.29]) by sourceware.org (Postfix) with ESMTPS id 9317D3858284 for ; Fri, 24 Feb 2023 14:57:57 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 9317D3858284 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-out2.suse.de (Postfix) with ESMTPS id C91E4608D7; Fri, 24 Feb 2023 14:57:56 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1677250676; 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=EjLhwxGOpBlgv+R6gaPWw6bcf6NNUwyk3sxubsxgKFw=; b=a8QmGokUOrY4qD7dzOszqP/Me+z5Cxkj/GtvJgiRzrQVJXyYIHbGujQjI+8lYzWN+QKgQw Zj1k9B7g/AkXLPd/0YByTWmy8yw/Bfwmay3/N6jtu5n0ppnYO+HXLncSe0RyG/gOg/AmW2 aPMo87ETKuK0wJHM6fc/8TYJu/CvokI= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1677250676; 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=EjLhwxGOpBlgv+R6gaPWw6bcf6NNUwyk3sxubsxgKFw=; b=zkyR7HaR/uK/9VnUy3lWhAcIk0zT8+y3H9WHvnPHJ7AKSSJtMC60/WDCnHUp7pODLKQv5h HEUw/nR7oxXRYnCg== 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 8D0CF13246; Fri, 24 Feb 2023 14:57:56 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id JOlZIHTQ+GMZfAAAMHmgww (envelope-from ); Fri, 24 Feb 2023 14:57:56 +0000 Content-Type: multipart/mixed; boundary="------------i4Cfjf302AnJFnHK8sfx6ilu" Message-ID: <711d9da5-8f31-3f1e-530b-5ae01780fcad@suse.de> Date: Fri, 24 Feb 2023 15:57:54 +0100 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.7.1 Subject: Re: [PATCH] gas: Add --force-compress-debug-sections 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> Content-Language: en-US From: Tom de Vries In-Reply-To: X-Spam-Status: No, score=-12.6 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,GIT_PATCH_0,NICE_REPLY_A,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. --------------i4Cfjf302AnJFnHK8sfx6ilu Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit 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? Thanks, - Tom --------------i4Cfjf302AnJFnHK8sfx6ilu 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 RnJvbSBhZTBjZGZlYzljODU0ZDg5Y2M4N2Y4OGM0OTZhM2I2ZTYwNTM5MTE1IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBUb20gZGUgVnJpZXMgPHRkZXZyaWVzQHN1c2UuZGU+ CkRhdGU6IFRodSwgMjMgRmViIDIwMjMgMTI6NTM6NDAgKzAxMDAKU3ViamVjdDogW1BBVENI XSBnYXM6IEFkZCAtLWNvbXByZXNzLWRlYnVnLXNlY3Rpb25zPWZvcmNlCgpHYXMgaGFzIGFu IG9wdGlvbiAtLWNvbXByZXNzLWRlYnVnLXNlY3Rpb25zIHRoYXQgYWxsb3dzIGl0IHRvIGdl bmVyYXRlCmNvbXByZXNzZWQgZGVidWcgc2VjdGlvbnMuCgpUaGF0IGRvZXMgbm90IGd1YXJh bnRlZSB0aGF0IHRoZSBkZWJ1ZyBzZWN0aW9ucyBhcmUgaW4gZmFjdCBjb21wcmVzc2VkOgou Li4KJCBnY2MgaGVsbG8uYyAtV2EsLWdkd2FyZi01IC1jIC1XYSwtLWNvbXByZXNzLWRlYnVn LXNlY3Rpb25zPXpzdGQKJCByZWFkZWxmIC1TIC1XIGhlbGxvLm8gfCBncmVwICIgLmRlYnVn IgogIFsgOV0gLmRlYnVnX2xpbmUgICAgICAgUFJPR0JJVFMgICAgICAgICAwMDAwYTggMDAw MDUzIDAwICAgICAgMCAgIDAgIDEKICBbMTFdIC5kZWJ1Z19saW5lX3N0ciAgIFBST0dCSVRT ICAgICAgICAgMDAwMGZiIDAwMDAyNSAwMSAgTVMgIDAgICAwICAxCiAgWzEyXSAuZGVidWdf aW5mbyAgICAgICBQUk9HQklUUyAgICAgICAgIDAwMDEyMCAwMDAwMzkgMDAgICAgICAwICAg MCAgMQogIFsxNF0gLmRlYnVnX2FiYnJldiAgICAgUFJPR0JJVFMgICAgICAgICAwMDAxNTkg MDAwMDI4IDAwICAgICAgMCAgIDAgIDEKICBbMTVdIC5kZWJ1Z19hcmFuZ2VzICAgIFBST0dC SVRTICAgICAgICAgMDAwMTkwIDAwMDAzMCAwMCAgICAgIDAgICAwIDE2CiAgWzE3XSAuZGVi dWdfc3RyICAgICAgICBQUk9HQklUUyAgICAgICAgIDAwMDFjMCAwMDAwMzkgMDEgIE1TICAw ICAgMCAgMQouLi4KClNlbnNpYmx5IHNvLCB0aGV5J3JlIG9ubHkgY29tcHJlc3NlZCBpZiB0 aGF0IHByb3ZpZGVzIGEgc2l6ZSBiZW5lZml0LgoKSG93ZXZlciwgZm9yIHRoZSBwdXJwb3Nl IG9mIHRlc3RpbmcgY29tcG9uZW50cyBjb25zdW1pbmcgZHdhcmYKd2UgbWF5IHdhbnQgdGhl IHNlY3Rpb25zIHRvIGJlIGNvbXByZXNzZWQgcmVnYXJkbGVzcy4KCkFkZCBhIG5ldyBzdWJv cHRpb24gLS1jb21wcmVzcy1kZWJ1Zy1zZWN0aW9ucz1mb3JjZSB0aGF0IGlnbm9yZXMgdGhl IHNpemUKaGV1cmlzdGljLCBzdWNoIHRoYXQgd2UgaGF2ZSBpbnN0ZWFkOgouLi4KJCBnY2Mg aGVsbG8uYyAtV2EsLWdkd2FyZi01IC1jIC1XYSwtLWNvbXByZXNzLWRlYnVnLXNlY3Rpb25z PXpzdGQrZm9yY2UKJCByZWFkZWxmIC1TIC1XIGhlbGxvLm8gfCBncmVwICIgLmRlYnVnIgog IFsgOV0gLmRlYnVnX2xpbmUgICAgICAgUFJPR0JJVFMgICAgICAgICAwMDAwYTggMDAwMDY0 IDAwICAgQyAgMCAgIDAgIDgKICBbMTFdIC5kZWJ1Z19saW5lX3N0ciAgIFBST0dCSVRTICAg ICAgICAgMDAwMTEwIDAwMDA0NiAwMSBNU0MgIDAgICAwICA4CiAgWzEyXSAuZGVidWdfaW5m byAgICAgICBQUk9HQklUUyAgICAgICAgIDAwMDE1OCAwMDAwNDYgMDAgICBDICAwICAgMCAg OAogIFsxNF0gLmRlYnVnX2FiYnJldiAgICAgUFJPR0JJVFMgICAgICAgICAwMDAxYTAgMDAw MDQ5IDAwICAgQyAgMCAgIDAgIDgKICBbMTVdIC5kZWJ1Z19hcmFuZ2VzICAgIFBST0dCSVRT ICAgICAgICAgMDAwMWYwIDAwMDAzNCAwMCAgIEMgIDAgICAwICA4CiAgWzE3XSAuZGVidWdf c3RyICAgICAgICBQUk9HQklUUyAgICAgICAgIDAwMDIyOCAwMDAwNWEgMDEgTVNDICAwICAg MCAgOAouLi4KCkFkdmVydGlzZWQgYXM6Ci4uLgokIGFzIC0taGVscAogIC4uLgogIC0tY29t cHJlc3MtZGVidWctc2VjdGlvbnNbPXtub25lfDxmb3JtYXQ+fGZvcmNlfGZvcmNlKzxmb3Jt YXQ+fV0KICAgICAgICAgICAgICAgICAgICAgICAgICB3aGVyZSA8Zm9ybWF0PiBpcyB7emxp Ynx6bGliLWdudXx6bGliLWdhYml8enN0ZH0KICAgICAgICAgICAgICAgICAgICAgICAgICBj b21wcmVzcyBEV0FSRiBkZWJ1ZyBzZWN0aW9ucwogICAgICAgICAgICAgICAgICAgICAgICAg ICAgRGVmYXVsdDogenN0ZAouLi4KClRlc3RlZCBvbiB4ODZfNjQtbGludXguCi0tLQogZ2Fz L2FzLmMgICAgICAgIHwgMTE4ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKystLS0tLS0tLQogZ2FzL2FzLmggICAgICAgIHwgICA0ICsrCiBnYXMvZG9jL2FzLnRl eGkgfCAgMTAgKysrLQogZ2FzL3dyaXRlLmMgICAgIHwgICA0ICstCiA0IGZpbGVzIGNoYW5n ZWQsIDExMyBpbnNlcnRpb25zKCspLCAyMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9n YXMvYXMuYyBiL2dhcy9hcy5jCmluZGV4IDU5OGJmZDU2Y2Y1Li4zYjJkMjg2YmVmZCAxMDA2 NDQKLS0tIGEvZ2FzL2FzLmMKKysrIGIvZ2FzL2FzLmMKQEAgLTIzMCw2ICsyMzAsMTggQEAg ZW51bSBjb21wcmVzc2VkX2RlYnVnX3NlY3Rpb25fdHlwZSBmbGFnX2NvbXByZXNzX2RlYnVn CiAgID0gREVGQVVMVF9DT01QUkVTU0VEX0RFQlVHX0FMR09SSVRITTsKICNlbmRpZgogCitl bnVtIGNvbXByZXNzX2RlYnVnX2FjdGlvbgoreworICBjZGFfZGVmYXVsdCwKKyAgY2RhX25v bmUsCisgIGNkYV9mb3JjZSwKKyAgY2RhX3llcywKK307CitzdGF0aWMgZW51bSBjb21wcmVz c19kZWJ1Z19hY3Rpb24gY29tcHJlc3NfZGVidWdfYWN0aW9uCisgID0gY2RhX2RlZmF1bHQ7 CisKK2Jvb2wgZm9yY2VfY29tcHJlc3NfZGVidWcgPSBmYWxzZTsKKwogc3RhdGljIHZvaWQK IHNob3dfdXNhZ2UgKEZJTEUgKiBzdHJlYW0pCiB7CkBAIC0yNTIsNyArMjY0LDggQEAgT3B0 aW9uczpcblwKICAgZnByaW50ZiAoc3RyZWFtLCBfKCJcCiAgIC0tYWx0ZXJuYXRlICAgICAg ICAgICAgIGluaXRpYWxseSB0dXJuIG9uIGFsdGVybmF0ZSBtYWNybyBzeW50YXhcbiIpKTsK ICAgZnByaW50ZiAoc3RyZWFtLCBfKCJcCi0gIC0tY29tcHJlc3MtZGVidWctc2VjdGlvbnNb PXtub25lfHpsaWJ8emxpYi1nbnV8emxpYi1nYWJpfHpzdGR9XVxuXAorICAtLWNvbXByZXNz LWRlYnVnLXNlY3Rpb25zWz17bm9uZXw8Zm9ybWF0Pnxmb3JjZXxmb3JjZSs8Zm9ybWF0Pn1d XG5cCisgICAgICAgICAgICAgICAgICAgICAgICAgIHdoZXJlIDxmb3JtYXQ+IGlzIHt6bGli fHpsaWItZ251fHpsaWItZ2FiaXx6c3RkfVxuXAogICAgICAgICAgICAgICAgICAgICAgICAg ICBjb21wcmVzcyBEV0FSRiBkZWJ1ZyBzZWN0aW9uc1xuIikpLAogICBmcHJpbnRmIChzdHJl YW0sIF8oIlwKIAkJICAgICAgICAgICAgRGVmYXVsdDogJXNcbiIpLApAQCAtNDE4LDYgKzQz MSw4NiBAQCBPcHRpb25zOlxuXAogICAgIGZwcmludGYgKHN0cmVhbSwgXygiUmVwb3J0IGJ1 Z3MgdG8gJXNcbiIpLCBSRVBPUlRfQlVHU19UTyk7CiB9CiAKK3N0YXRpYyB2b2lkCitwYXJz ZV9jb21wcmVzc19kZWJ1Z19vcHRhcmdfMSAoY29uc3QgY2hhciAqb3B0YXJnKQoreworICBn YXNfYXNzZXJ0IChvcHRhcmcgIT0gTlVMTCk7CisKKyAgaWYgKHN0cmNtcCAob3B0YXJnLCAi Zm9yY2UiKSA9PSAwKQorICAgIHsKKyAgICAgIGNvbXByZXNzX2RlYnVnX2FjdGlvbiA9IGNk YV9mb3JjZTsKKyAgICAgIHJldHVybjsKKyAgICB9CisKKyAgZW51bSBjb21wcmVzc2VkX2Rl YnVnX3NlY3Rpb25fdHlwZSB0bXAKKyAgICA9IGJmZF9nZXRfY29tcHJlc3Npb25fYWxnb3Jp dGhtIChvcHRhcmcpOworCisjaWZuZGVmIEhBVkVfWlNURAorICBpZiAodG1wID09IENPTVBS RVNTX0RFQlVHX1pTVEQpCisgICAgYXNfZmF0YWwgKF8gKCItLWNvbXByZXNzLWRlYnVnLXNl Y3Rpb25zPXpzdGQ6IGdhcyBpcyBub3QgIgorCQkgImJ1aWx0IHdpdGggenN0ZCBzdXBwb3J0 IikpOworI2VuZGlmCisKKyAgaWYgKHRtcCA9PSBDT01QUkVTU19VTktOT1dOKQorICAgIGFz X2ZhdGFsIChfKCJJbnZhbGlkIC0tY29tcHJlc3MtZGVidWctc2VjdGlvbnMgb3B0aW9uOiBg JXMnIiksCisJICAgICAgb3B0YXJnKTsKKworICBpZiAodG1wID09IENPTVBSRVNTX0RFQlVH X05PTkUpCisgICAgeworICAgICAgY29tcHJlc3NfZGVidWdfYWN0aW9uID0gY2RhX25vbmU7 CisgICAgICByZXR1cm47CisgICAgfQorCisgIGNvbXByZXNzX2RlYnVnX2FjdGlvbiA9IGNk YV95ZXM7CisgIGZsYWdfY29tcHJlc3NfZGVidWcgPSB0bXA7Cit9CisKK3N0YXRpYyB2b2lk CitwYXJzZV9jb21wcmVzc19kZWJ1Z19vcHRhcmcgKGNvbnN0IGNoYXIgKm9wdGFyZykKK3sK KyNpZiAhZGVmaW5lZCBPQkpfRUxGICYmICFkZWZpbmVkIE9CSl9NQVlCRV9FTEYKKyAgYXNf ZmF0YWwgKF8oIi0tY29tcHJlc3MtZGVidWctc2VjdGlvbnM9JXMgaXMgdW5zdXBwb3J0ZWQi KSwKKwkgICAgb3B0YXJnKTsKKyNlbmRpZgorCisgIC8qIFRva2VuaXplIHN1Ym9wdHMgc2Vw ZXJhdGVkIGJ5ICcrJyBhbmQgcGFzcyB0bworICAgICBwYXJzZV9jb21wcmVzc19kZWJ1Z19v cHRhcmdfMS4gICovCisgIHdoaWxlICh0cnVlKQorICAgIHsKKyAgICAgIGNvbnN0IGNoYXIg KmlkeCA9IG9wdGFyZzsKKyAgICAgIHdoaWxlICgqaWR4ICE9ICdcMCcgJiYgKmlkeCAhPSAn KycpCisJaWR4Kys7CisKKyAgICAgIHNpemVfdCBsZW4gPSBpZHggLSBvcHRhcmc7CisgICAg ICBpZiAobGVuID09IDApCisJeworCSAgLyogR2VuZXJhdGUgZXJyb3IuICAqLworCSAgcGFy c2VfY29tcHJlc3NfZGVidWdfb3B0YXJnXzEgKCIiKTsKKwkgIGJyZWFrOworCX0KKworICAg ICAgY2hhciAqdG1wID0geHN0cm5kdXAgKG9wdGFyZywgbGVuKTsKKyAgICAgIHBhcnNlX2Nv bXByZXNzX2RlYnVnX29wdGFyZ18xICh0bXApOworICAgICAgZnJlZSAodG1wKTsKKworICAg ICAgaWYgKCppZHggPT0gJ1wwJykKKwlicmVhazsKKworICAgICAgLyogU3RlcCBvdmVyICcr JyBhbmQgY29udGludWUgdG9rZW5pemluZy4gICovCisgICAgICBnYXNfYXNzZXJ0ICgqaWR4 ID09ICcrJyk7CisgICAgICBvcHRhcmcgPSBpZHggKyAxOworICB9Cit9CisKK3N0YXRpYyB2 b2lkCitmaW5hbGl6ZV9wYXJzZV9jb21wcmVzc19kZWJ1Z19vcHRhcmcgKHZvaWQpCit7Cisg IGlmIChjb21wcmVzc19kZWJ1Z19hY3Rpb24gPT0gY2RhX25vbmUpCisgICAgZmxhZ19jb21w cmVzc19kZWJ1ZyA9IENPTVBSRVNTX0RFQlVHX05PTkU7CisgIGVsc2UgaWYgKGNvbXByZXNz X2RlYnVnX2FjdGlvbiA9PSBjZGFfZm9yY2UpCisgICAgZm9yY2VfY29tcHJlc3NfZGVidWcg PSB0cnVlOworfQorCiAvKiBTaW5jZSBpdCBpcyBlYXN5IHRvIGRvIGhlcmUgd2UgaW50ZXJw cmV0IHRoZSBzcGVjaWFsIGFyZyAiLSIKICAgIHRvIG1lYW4gInVzZSBzdGRpbiIgYW5kIHdl IHNldCB0aGF0IGFyZ3ZbXSBwb2ludGluZyB0byAiIi4KICAgIEFmdGVyIHdlIGhhdmUgbXVu Z2VkIGFyZ3ZbXSwgdGhlIG9ubHkgdGhpbmdzIGxlZnQgYXJlIHNvdXJjZSBmaWxlCkBAIC03 NDcsMjggKzg0MCwxMyBAQCBUaGlzIHByb2dyYW0gaGFzIGFic29sdXRlbHkgbm8gd2FycmFu dHkuXG4iKSk7CiAKIAljYXNlIE9QVElPTl9DT01QUkVTU19ERUJVRzoKIAkgIGlmIChvcHRh cmcpCi0JICAgIHsKLSNpZiBkZWZpbmVkIE9CSl9FTEYgfHwgZGVmaW5lZCBPQkpfTUFZQkVf RUxGCi0JICAgICAgZmxhZ19jb21wcmVzc19kZWJ1ZyA9IGJmZF9nZXRfY29tcHJlc3Npb25f YWxnb3JpdGhtIChvcHRhcmcpOwotI2lmbmRlZiBIQVZFX1pTVEQKLQkgICAgICBpZiAoZmxh Z19jb21wcmVzc19kZWJ1ZyA9PSBDT01QUkVTU19ERUJVR19aU1REKQotCQkgIGFzX2ZhdGFs IChfICgiLS1jb21wcmVzcy1kZWJ1Zy1zZWN0aW9ucz16c3RkOiBnYXMgaXMgbm90ICIKLQkJ CSAgICAgICAiYnVpbHQgd2l0aCB6c3RkIHN1cHBvcnQiKSk7Ci0jZW5kaWYKLQkgICAgICBp ZiAoZmxhZ19jb21wcmVzc19kZWJ1ZyA9PSBDT01QUkVTU19VTktOT1dOKQotCQlhc19mYXRh bCAoXygiSW52YWxpZCAtLWNvbXByZXNzLWRlYnVnLXNlY3Rpb25zIG9wdGlvbjogYCVzJyIp LAotCQkJICBvcHRhcmcpOwotI2Vsc2UKLQkgICAgICBhc19mYXRhbCAoXygiLS1jb21wcmVz cy1kZWJ1Zy1zZWN0aW9ucz0lcyBpcyB1bnN1cHBvcnRlZCIpLAotCQkJb3B0YXJnKTsKLSNl bmRpZgotCSAgICB9CisJICAgIHBhcnNlX2NvbXByZXNzX2RlYnVnX29wdGFyZyAob3B0YXJn KTsKIAkgIGVsc2UKLQkgICAgZmxhZ19jb21wcmVzc19kZWJ1ZyA9IENPTVBSRVNTX0RFQlVH X0dBQklfWkxJQjsKKwkgICAgcGFyc2VfY29tcHJlc3NfZGVidWdfb3B0YXJnICgiemxpYi1n YWJpIik7CiAJICBicmVhazsKIAogCWNhc2UgT1BUSU9OX05PQ09NUFJFU1NfREVCVUc6Ci0J ICBmbGFnX2NvbXByZXNzX2RlYnVnID0gQ09NUFJFU1NfREVCVUdfTk9ORTsKKwkgIHBhcnNl X2NvbXByZXNzX2RlYnVnX29wdGFyZyAoIm5vbmUiKTsKIAkgIGJyZWFrOwogCiAJY2FzZSBP UFRJT05fREVCVUdfUFJFRklYX01BUDoKQEAgLTExMzYsNiArMTIxNCw4IEBAIFRoaXMgcHJv Z3JhbSBoYXMgYWJzb2x1dGVseSBubyB3YXJyYW50eS5cbiIpKTsKICAgKnBhcmdjID0gbmV3 X2FyZ2M7CiAgICpwYXJndiA9IG5ld19hcmd2OwogCisgIGZpbmFsaXplX3BhcnNlX2NvbXBy ZXNzX2RlYnVnX29wdGFyZyAoKTsKKwogI2lmZGVmIG1kX2FmdGVyX3BhcnNlX2FyZ3MKICAg bWRfYWZ0ZXJfcGFyc2VfYXJncyAoKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvZ2FzL2FzLmgg Yi9nYXMvYXMuaAppbmRleCA0YzVmYTllY2Y3ZC4uMTE1YWYwMTk4MTUgMTAwNjQ0Ci0tLSBh L2dhcy9hcy5oCisrKyBiL2dhcy9hcy5oCkBAIC0zMzEsNiArMzMxLDEwIEBAIENPTU1PTiBp bnQgZmxhZ190cmFkaXRpb25hbF9mb3JtYXQ7CiAvKiBUeXBlIG9mIGNvbXByZXNzZWQgZGVi dWcgc2VjdGlvbnMgd2Ugc2hvdWxkIGdlbmVyYXRlLiAgICovCiBDT01NT04gZW51bSBjb21w cmVzc2VkX2RlYnVnX3NlY3Rpb25fdHlwZSBmbGFnX2NvbXByZXNzX2RlYnVnOwogCisvKiBU cnVlIGlmIHdlIHdhbnQgdG8gZ2VuZXJhdGUgY29tcHJlc3NlZCBkZWJ1ZyBzZWN0aW9ucywg ZXZlbiBpZiBpdAorICAgZG9lc24ndCBtYWtlIHRoZW0gc21hbGxlci4gICovCitDT01NT04g Ym9vbCBmb3JjZV9jb21wcmVzc19kZWJ1ZzsKKwogLyogVFJVRSBpZiAubm90ZS5HTlUtc3Rh Y2sgc2VjdGlvbiB3aXRoIFNFQ19DT0RFIHNob3VsZCBiZSBjcmVhdGVkICovCiBDT01NT04g aW50IGZsYWdfZXhlY3N0YWNrOwogCmRpZmYgLS1naXQgYS9nYXMvZG9jL2FzLnRleGkgYi9n YXMvZG9jL2FzLnRleGkKaW5kZXggYmJkZmE0YmZkY2EuLmQyNTU1OTE0MWM3IDEwMDY0NAot LS0gYS9nYXMvZG9jL2FzLnRleGkKKysrIGIvZ2FzL2RvYy9hcy50ZXhpCkBAIC03MTgsNyAr NzE4LDggQEAgQmVnaW4gaW4gYWx0ZXJuYXRlIG1hY3JvIG1vZGUuCiBDb21wcmVzcyBEV0FS RiBkZWJ1ZyBzZWN0aW9ucyB1c2luZyB6bGliIHdpdGggU0hGX0NPTVBSRVNTRUQgZnJvbSB0 aGUKIEVMRiBBQkkuICBUaGUgcmVzdWx0aW5nIG9iamVjdCBmaWxlIG1heSBub3QgYmUgY29t cGF0aWJsZSB3aXRoIG9sZGVyCiBsaW5rZXJzIGFuZCBvYmplY3QgZmlsZSB1dGlsaXRpZXMu ICBOb3RlIGlmIGNvbXByZXNzaW9uIHdvdWxkIG1ha2UgYQotZ2l2ZW4gc2VjdGlvbiBAZW1w aHtsYXJnZXJ9IHRoZW4gaXQgaXMgbm90IGNvbXByZXNzZWQuCitnaXZlbiBzZWN0aW9uIEBl bXBoe2xhcmdlcn0gdGhlbiBpdCBpcyBub3QgY29tcHJlc3NlZCwgdW5sZXNzCitAb3B0aW9u ey0tY29tcHJlc3MtZGVidWctc2VjdGlvbj1mb3JjZX0gaXMgdXNlZC4KIAogQGlmc2V0IEVM RgogQGNpbmRleCBAc2FtcHstLWNvbXByZXNzLWRlYnVnLXNlY3Rpb25zPX0gb3B0aW9uCkBA IC03MjcsNiArNzI4LDcgQEAgZ2l2ZW4gc2VjdGlvbiBAZW1waHtsYXJnZXJ9IHRoZW4gaXQg aXMgbm90IGNvbXByZXNzZWQuCiBAaXRlbXggLS1jb21wcmVzcy1kZWJ1Zy1zZWN0aW9ucz16 bGliLWdudQogQGl0ZW14IC0tY29tcHJlc3MtZGVidWctc2VjdGlvbnM9emxpYi1nYWJpCiBA aXRlbXggLS1jb21wcmVzcy1kZWJ1Zy1zZWN0aW9ucz16c3RkCitAaXRlbXggLS1jb21wcmVz cy1kZWJ1Zy1zZWN0aW9ucz1mb3JjZQogVGhlc2Ugb3B0aW9ucyBjb250cm9sIGhvdyBEV0FS RiBkZWJ1ZyBzZWN0aW9ucyBhcmUgY29tcHJlc3NlZC4KIEBvcHRpb257LS1jb21wcmVzcy1k ZWJ1Zy1zZWN0aW9ucz1ub25lfSBpcyBlcXVpdmFsZW50IHRvCiBAb3B0aW9uey0tbm9jb21w cmVzcy1kZWJ1Zy1zZWN0aW9uc30uCkBAIC03MzgsNyArNzQwLDExIEBAIHVzaW5nIHRoZSBv YnNvbGV0ZWQgemxpYi1nbnUgZm9ybWF0LiAgVGhlIGRlYnVnIHNlY3Rpb25zIGFyZSByZW5h bWVkIHRvIGJlZ2luCiB3aXRoIEBzYW1wey56ZGVidWd9LgogQG9wdGlvbnstLWNvbXByZXNz LWRlYnVnLXNlY3Rpb25zPXpzdGR9IGNvbXByZXNzZXMgRFdBUkYgZGVidWcKIHNlY3Rpb25z IHVzaW5nIHpzdGQuICBOb3RlIC0gaWYgY29tcHJlc3Npb24gd291bGQgYWN0dWFsbHkgbWFr ZSBhIHNlY3Rpb24KLUBlbXBoe2xhcmdlcn0sIHRoZW4gaXQgaXMgbm90IGNvbXByZXNzZWQg bm9yIHJlbmFtZWQuCitAZW1waHtsYXJnZXJ9LCB0aGVuIGl0IGlzIG5vdCBjb21wcmVzc2Vk IG5vciByZW5hbWVkLCB1bmxlc3MKK0BvcHRpb257LS1jb21wcmVzcy1kZWJ1Zy1zZWN0aW9u PWZvcmNlfSBpcyB1c2VkLgorQG9wdGlvbnstLWNvbXByZXNzLWRlYnVnLXNlY3Rpb25zPWZv cmNlfSBjb21wcmVzc2VzIERXQVJGIGRlYnVnIHNlY3Rpb25zLAorZXZlbiBpZiB0aGlzIGRv ZXMgbm90IHJlZHVjZSBzaXplLiAgSXQgY2FuIGJlIHVzZWQgaW4gY29uanVuY3Rpb24gd2l0 aCBhIGZvcm1hdAorc2VsZWN0aW9uLCBmb3IgaW5zdGFuY2UgQG9wdGlvbnstLWNvbXByZXNz LWRlYnVnLXNlY3Rpb249enN0ZCtmb3JjZX0uCiAKIEBlbmQgaWZzZXQKIApkaWZmIC0tZ2l0 IGEvZ2FzL3dyaXRlLmMgYi9nYXMvd3JpdGUuYwppbmRleCA4MjczYjdhNDJmMS4uMzliY2Vh MjNmYWMgMTAwNjQ0Ci0tLSBhL2dhcy93cml0ZS5jCisrKyBiL2dhcy93cml0ZS5jCkBAIC0x NDY1LDcgKzE0NjUsNyBAQCBjb21wcmVzc19kZWJ1ZyAoYmZkICphYmZkLCBhc2VjdGlvbiAq c2VjLCB2b2lkICp4eHggQVRUUklCVVRFX1VOVVNFRCkKICAgZmxhZ3dvcmQgZmxhZ3MgPSBi ZmRfc2VjdGlvbl9mbGFncyAoc2VjKTsKIAogICBpZiAoc2VnaW5mbyA9PSBOVUxMCi0gICAg ICB8fCB1bmNvbXByZXNzZWRfc2l6ZSA8IDMyCisgICAgICB8fCAoIWZvcmNlX2NvbXByZXNz X2RlYnVnICYmIHVuY29tcHJlc3NlZF9zaXplIDwgMzIpCiAgICAgICB8fCAoZmxhZ3MgJiBT RUNfSEFTX0NPTlRFTlRTKSA9PSAwKQogICAgIHJldHVybjsKIApAQCAtMTU4Miw3ICsxNTgy LDcgQEAgY29tcHJlc3NfZGVidWcgKGJmZCAqYWJmZCwgYXNlY3Rpb24gKnNlYywgdm9pZCAq eHh4IEFUVFJJQlVURV9VTlVTRUQpCiAKICAgLyogUFIgYmludXRpbHMvMTgwODc6IElmIGNv bXByZXNzaW9uIGRpZG4ndCBtYWtlIHRoZSBzZWN0aW9uIHNtYWxsZXIsCiAgICAgIGp1c3Qg a2VlcCBpdCB1bmNvbXByZXNzZWQuICAqLwotICBpZiAoY29tcHJlc3NlZF9zaXplID49IHVu Y29tcHJlc3NlZF9zaXplKQorICBpZiAoIWZvcmNlX2NvbXByZXNzX2RlYnVnICYmIGNvbXBy ZXNzZWRfc2l6ZSA+PSB1bmNvbXByZXNzZWRfc2l6ZSkKICAgICByZXR1cm47CiAKICAgLyog UmVwbGFjZSB0aGUgdW5jb21wcmVzc2VkIGZyYWcgbGlzdCB3aXRoIHRoZSBjb21wcmVzc2Vk IGZyYWcgbGlzdC4gICovCi0tIAoyLjM1LjMKCg== --------------i4Cfjf302AnJFnHK8sfx6ilu--