From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtp-out1.suse.de (smtp-out1.suse.de [IPv6:2001:67c:2178:6::1c]) by sourceware.org (Postfix) with ESMTPS id 8FE653858024 for ; Tue, 6 Sep 2022 08:22:41 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 8FE653858024 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 5B33D3401E for ; Tue, 6 Sep 2022 08:22:40 +0000 (UTC) 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 440EF13A7A for ; Tue, 6 Sep 2022 08:22:40 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id ml4+D1ADF2PtTQAAMHmgww (envelope-from ) for ; Tue, 06 Sep 2022 08:22:40 +0000 Content-Type: multipart/mixed; boundary="------------1esExu8WuCW00xFAQWzQxZV0" Message-ID: Date: Tue, 6 Sep 2022 10:22:39 +0200 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.12.0 Subject: Re: [PATCH][gdb/symtab] Support .debug_names section with TUs in .debug_info Content-Language: en-US To: gdb-patches@sourceware.org References: <20220812154831.GA30782@delia.home> From: Tom de Vries In-Reply-To: <20220812154831.GA30782@delia.home> X-Spam-Status: No, score=-13.6 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, KAM_SHORT, NICE_REPLY_A, SPF_HELO_NONE, SPF_PASS, TXREP, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org X-BeenThere: gdb-patches@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gdb-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 06 Sep 2022 08:22:44 -0000 This is a multi-part message in MIME format. --------------1esExu8WuCW00xFAQWzQxZV0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit On 8/12/22 17:48, Tom de Vries via Gdb-patches wrote: > Hi, > > [ Requires "[gdb/symtab] Fix assert in set_length" submitted here ( > https://sourceware.org/pipermail/gdb-patches/2022-August/191313.html ). ] > > When running test-case gdb.cp/cpexprs-debug-types.exp on target board > cc-with-debug-names/gdb:debug_flags=-gdwarf-5, we get an executable with > a .debug_names section, but no .debug_types section. For dwarf-5, the TUs > are no longer put in a separate unit, but instead they're put in the > .debug_info section. > > When loading the executable, the .debug_names section is silently ignored > because of this check in dwarf2_read_debug_names: > ... > if (map->tu_count != 0) > { > /* We can only handle a single .debug_types when we have an > index. */ > if (per_bfd->types.size () != 1) > return false; > ... > which triggers because per_bfd->types.size () == 0. > > The intention of the check is to make sure we don't have both .debug_types and > .zdebug_types sections. > Well, that's what I thought when I read the code, but I actually found back the corresponding PR: PR12984, and it turns out it's about object files, which can contain: ... $ grep "\.debug_types" 11.s .section .debug_types,"G",@progbits,wt.75c042c23a9a07ee,comdat .section .debug_types,"G",@progbits,wt.c59c413bf50a4607,comdat ... I've updated the rationale to reflect this. Also, I've added a test-case. Committed as attached. Thanks, - Tom --------------1esExu8WuCW00xFAQWzQxZV0 Content-Type: text/x-patch; charset=UTF-8; name="0003-gdb-symtab-Support-.debug_names-section-with-TUs-in-.debug_info.patch" Content-Disposition: attachment; filename*0="0003-gdb-symtab-Support-.debug_names-section-with-TUs-in-.de"; filename*1="bug_info.patch" Content-Transfer-Encoding: base64 W2dkYi9zeW10YWJdIFN1cHBvcnQgLmRlYnVnX25hbWVzIHNlY3Rpb24gd2l0aCBUVXMgaW4g LmRlYnVnX2luZm8KCldoZW4gcnVubmluZyB0ZXN0LWNhc2UgZ2RiLmNwL2NwZXhwcnMtZGVi dWctdHlwZXMuZXhwIG9uIHRhcmdldCBib2FyZApjYy13aXRoLWRlYnVnLW5hbWVzL2dkYjpk ZWJ1Z19mbGFncz0tZ2R3YXJmLTUsIHdlIGdldCBhbiBleGVjdXRhYmxlIHdpdGgKYSAuZGVi dWdfbmFtZXMgc2VjdGlvbiwgYnV0IG5vIC5kZWJ1Z190eXBlcyBzZWN0aW9uLiAgRm9yIGR3 YXJmLTUsIHRoZSBUVXMKYXJlIG5vIGxvbmdlciBwdXQgaW4gYSBzZXBhcmF0ZSB1bml0LCBi dXQgaW5zdGVhZCB0aGV5J3JlIHB1dCBpbiB0aGUKLmRlYnVnX2luZm8gc2VjdGlvbi4KCldo ZW4gbG9hZGluZyB0aGUgZXhlY3V0YWJsZSwgdGhlIC5kZWJ1Z19uYW1lcyBzZWN0aW9uIGlz IHNpbGVudGx5IGlnbm9yZWQKYmVjYXVzZSBvZiB0aGlzIGNoZWNrIGluIGR3YXJmMl9yZWFk X2RlYnVnX25hbWVzOgouLi4KICBpZiAobWFwLT50dV9jb3VudCAhPSAwKQogICAgewogICAg ICAvKiBXZSBjYW4gb25seSBoYW5kbGUgYSBzaW5nbGUgLmRlYnVnX3R5cGVzIHdoZW4gd2Ug aGF2ZSBhbgogICAgICAgICBpbmRleC4gICovCiAgICAgIGlmIChwZXJfYmZkLT50eXBlcy5z aXplICgpICE9IDEpCiAgICAgICAgcmV0dXJuIGZhbHNlOwouLi4Kd2hpY2ggdHJpZ2dlcnMg YmVjYXVzZSBwZXJfYmZkLT50eXBlcy5zaXplICgpID09IDAuCgpUaGUgaW50ZW50aW9uIG9m IHRoZSBjaGVjayBpcyB0byBtYWtlIHN1cmUgd2UgZG9uJ3QgaGF2ZSBtb3JlIHRoYXQgb25l Ci5kZWJ1Z190eXBlcyBzZWN0aW9uLCBhcyBjYW4gaGFwcGVuIGluIGEgb2JqZWN0IGZpbGUg KHNlZSBQUjEyOTg0KToKLi4uCiQgZ3JlcCAiXC5kZWJ1Z190eXBlcyIgMTEucwogICAgICAg IC5zZWN0aW9uICAgICAgICAuZGVidWdfdHlwZXMsIkciLEBwcm9nYml0cyx3dC43NWMwNDJj MjNhOWEwN2VlLGNvbWRhdAogICAgICAgIC5zZWN0aW9uICAgICAgICAuZGVidWdfdHlwZXMs IkciLEBwcm9nYml0cyx3dC5jNTljNDEzYmY1MGE0NjA3LGNvbWRhdAouLi4KCkZpeCB0aGlz IGJ5OgotIGNoYW5naW5nIHRoZSBjaGVjayBjb25kaXRpb24gdG8gInBlcl9iZmQtPnR5cGVz LnNpemUgKCkgPiAxIiwgYW5kCi0gaGFuZGxpbmcgcGVyX2JmZC0+dHlwZXMuc2l6ZSAoKSA9 PSAwLgoKVGVzdGVkIG9uIHg4Nl82NC1saW51eC4KCkJ1ZzogaHR0cHM6Ly9zb3VyY2V3YXJl Lm9yZy9idWd6aWxsYS9zaG93X2J1Zy5jZ2k/aWQ9MjkzODUKCi0tLQogZ2RiL2R3YXJmMi9y ZWFkLmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgNyArLQogZ2RiL3Rl c3RzdWl0ZS9nZGIuZHdhcmYyL2RlYnVnLW5hbWVzLXR1LWR3YXJmNS5leHAgfCAxOCArKysr KwogZ2RiL3Rlc3RzdWl0ZS9nZGIuZHdhcmYyL2RlYnVnLW5hbWVzLXR1LmV4cCAgICAgICAg fCA3OSArLS0tLS0tLS0tLS0tLS0tLS0KIGdkYi90ZXN0c3VpdGUvZ2RiLmR3YXJmMi9kZWJ1 Zy1uYW1lcy10dS5leHAudGNsICAgIHwgOTQgKysrKysrKysrKysrKysrKysrKysrKwogZ2Ri L3Rlc3RzdWl0ZS9saWIvZHdhcmYuZXhwICAgICAgICAgICAgICAgICAgICAgICAgfCAyMSAr KysrLQogNSBmaWxlcyBjaGFuZ2VkLCAxMzYgaW5zZXJ0aW9ucygrKSwgODMgZGVsZXRpb25z KC0pCgpkaWZmIC0tZ2l0IGEvZ2RiL2R3YXJmMi9yZWFkLmMgYi9nZGIvZHdhcmYyL3JlYWQu YwppbmRleCAwOGRkMGI3NmIyMy4uM2NhNDQxYzRjYWUgMTAwNjQ0Ci0tLSBhL2dkYi9kd2Fy ZjIvcmVhZC5jCisrKyBiL2dkYi9kd2FyZjIvcmVhZC5jCkBAIC00NzM2LDEzICs0NzM2LDE2 IEBAIGR3YXJmMl9yZWFkX2RlYnVnX25hbWVzIChkd2FyZjJfcGVyX29iamZpbGUgKnBlcl9v YmpmaWxlKQogICAgIHsKICAgICAgIC8qIFdlIGNhbiBvbmx5IGhhbmRsZSBhIHNpbmdsZSAu ZGVidWdfdHlwZXMgd2hlbiB3ZSBoYXZlIGFuCiAJIGluZGV4LiAgKi8KLSAgICAgIGlmIChw ZXJfYmZkLT50eXBlcy5zaXplICgpICE9IDEpCisgICAgICBpZiAocGVyX2JmZC0+dHlwZXMu c2l6ZSAoKSA+IDEpCiAJewogCSAgcGVyX2JmZC0+YWxsX2NvbXBfdW5pdHMuY2xlYXIgKCk7 CiAJICByZXR1cm4gZmFsc2U7CiAJfQogCi0gICAgICBkd2FyZjJfc2VjdGlvbl9pbmZvICpz ZWN0aW9uID0gJnBlcl9iZmQtPnR5cGVzWzBdOworICAgICAgZHdhcmYyX3NlY3Rpb25faW5m byAqc2VjdGlvbgorCT0gKHBlcl9iZmQtPnR5cGVzLnNpemUgKCkgPT0gMQorCSAgID8gJnBl cl9iZmQtPnR5cGVzWzBdCisJICAgOiAmcGVyX2JmZC0+aW5mbyk7CiAKICAgICAgIGNyZWF0 ZV9zaWduYXR1cmVkX3R5cGVfdGFibGVfZnJvbV9kZWJ1Z19uYW1lcwogCShwZXJfb2JqZmls ZSwgKm1hcCwgc2VjdGlvbiwgJnBlcl9iZmQtPmFiYnJldik7CmRpZmYgLS1naXQgYS9nZGIv dGVzdHN1aXRlL2dkYi5kd2FyZjIvZGVidWctbmFtZXMtdHUtZHdhcmY1LmV4cCBiL2dkYi90 ZXN0c3VpdGUvZ2RiLmR3YXJmMi9kZWJ1Zy1uYW1lcy10dS1kd2FyZjUuZXhwCm5ldyBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5hYzNiNDU5ZGIwOAotLS0gL2Rldi9u dWxsCisrKyBiL2dkYi90ZXN0c3VpdGUvZ2RiLmR3YXJmMi9kZWJ1Zy1uYW1lcy10dS1kd2Fy ZjUuZXhwCkBAIC0wLDAgKzEsMTggQEAKKyMgQ29weXJpZ2h0IDIwMjIgRnJlZSBTb2Z0d2Fy ZSBGb3VuZGF0aW9uLCBJbmMuCisKKyMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7 IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKyMgaXQgdW5kZXIgdGhl IHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQg YnkKKyMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMyBv ZiB0aGUgTGljZW5zZSwgb3IKKyMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lv bi4KKyMKKyMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQg aXQgd2lsbCBiZSB1c2VmdWwsCisjIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91 dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisjIE1FUkNIQU5UQUJJTElUWSBvciBG SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKyMgR05VIEdlbmVy YWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyMKKyMgWW91IHNob3VsZCBo YXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UK KyMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5n bnUub3JnL2xpY2Vuc2VzLz4uCisKK3NldCBkd2FyZl92ZXJzaW9uIDUKKworc291cmNlICRz cmNkaXIvJHN1YmRpci9kZWJ1Zy1uYW1lcy10dS5leHAudGNsCmRpZmYgLS1naXQgYS9nZGIv dGVzdHN1aXRlL2dkYi5kd2FyZjIvZGVidWctbmFtZXMtdHUuZXhwIGIvZ2RiL3Rlc3RzdWl0 ZS9nZGIuZHdhcmYyL2RlYnVnLW5hbWVzLXR1LmV4cAppbmRleCAzNGZlY2ZmN2I5ZC4uYjc5 NmE3MzIwYmUgMTAwNjQ0Ci0tLSBhL2dkYi90ZXN0c3VpdGUvZ2RiLmR3YXJmMi9kZWJ1Zy1u YW1lcy10dS5leHAKKysrIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuZHdhcmYyL2RlYnVnLW5hbWVz LXR1LmV4cApAQCAtMTMsODEgKzEzLDYgQEAKICMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVk IGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKICMgYWxvbmcgd2l0 aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vu c2VzLz4uCiAKLWxvYWRfbGliIGR3YXJmLmV4cAorc2V0IGR3YXJmX3ZlcnNpb24gNAogCi0j IFRoaXMgdGVzdCBjYW4gb25seSBiZSBydW4gb24gdGFyZ2V0cyB3aGljaCBzdXBwb3J0IERX QVJGLTIgYW5kIHVzZSBnYXMuCi1pZiB7IVtkd2FyZjJfc3VwcG9ydF19IHsKLSAgICByZXR1 cm4gMAotfQotCi1zdGFuZGFyZF90ZXN0ZmlsZSBfc3RhcnQuYyBkZWJ1Zy1uYW1lcy5TCi0K LXNldCBmdW5jX2luZm9fdmFycyBcCi0gICAgW2dldF9mdW5jX2luZm8gX3N0YXJ0IFtsaXN0 IGRlYnVnIGFkZGl0aW9uYWxfZmxhZ3M9LW5vc3RhcnRmaWxlc11dCi0KLSMgQ3JlYXRlIHRo ZSBEV0FSRi4KLXNldCBhc21fZmlsZSBbc3RhbmRhcmRfb3V0cHV0X2ZpbGUgJHNyY2ZpbGUy XQotRHdhcmY6OmFzc2VtYmxlIHsKLSAgICBmaWxlbmFtZSAkYXNtX2ZpbGUKLSAgICBhZGRf ZHVtbXlfY3VzIDAKLX0gewotICAgIGdsb2JhbCBmdW5jX2luZm9fdmFycwotICAgIGZvcmVh Y2ggdmFyICRmdW5jX2luZm9fdmFycyB7Ci0JZ2xvYmFsICR2YXIKLSAgICB9Ci0KLSAgICBj dSB7IGxhYmVsIGN1X2xhYmVsIH0gewotCWNvbXBpbGVfdW5pdCB7e2xhbmd1YWdlIEBEV19M QU5HX0N9fSB7Ci0JICAgIHN1YnByb2dyYW0gewotCQl7RFdfQVRfbmFtZSBfc3RhcnR9Ci0J CXtEV19BVF9sb3dfcGMgJF9zdGFydF9zdGFydCBEV19GT1JNX2FkZHJ9Ci0JCXtEV19BVF9o aWdoX3BjICRfc3RhcnRfZW5kIERXX0ZPUk1fYWRkcn0KLQkgICAgfQotCX0KLSAgICB9Ci0K LSAgICB0dSB7IGxhYmVsIHR1X2xhYmVsIH0gMHg4ZWNlNjZmNDIyNGZkZGIzICIiIHsKLQl0 eXBlX3VuaXQge30gewotCSAgICBkZWNsYXJlX2xhYmVscyBpbnRfdHlwZQotCi0JICAgIHN0 cnVjdHVyZV90eXBlIHsKLQkJe25hbWUgc3RydWN0X3dpdGhfaW50X21lbWJlcn0KLQkJe2J5 dGVfc2l6ZSA0IHNkYXRhfQotCSAgICB9IHsKLQkJbWVtYmVyIHsKLQkJICAgIHtuYW1lIG1l bWJlcn0KLQkJICAgIHt0eXBlIDokaW50X3R5cGV9Ci0JCX0KLQkgICAgfQotCSAgICBpbnRf dHlwZTogYmFzZV90eXBlIHsKLQkJe25hbWUgaW50fQotCQl7ZW5jb2RpbmcgQERXX0FURV9z aWduZWR9Ci0JCXtieXRlX3NpemUgNCBzZGF0YX0KLQkgICAgfQotCX0KLSAgICB9Ci0KLSAg ICBkZWJ1Z19uYW1lcyB7fSB7Ci0JY3UgY3VfbGFiZWwKLQl0dSB0dV9sYWJlbAotCW5hbWUg X3N0YXJ0IHN1YnByb2dyYW0gY3VfbGFiZWwgMHhFRERCNjIzMgotCW5hbWUgc3RydWN0X3dp dGhfaW50X21lbWJlciBzdHJ1Y3R1cmVfdHlwZSB0dV9sYWJlbCAweDUzQTJBRTg2Ci0gICAg fQotfQotCi1pZiBbcHJlcGFyZV9mb3JfdGVzdGluZyAiZmFpbGVkIHRvIHByZXBhcmUiICR0 ZXN0ZmlsZSAiJHthc21fZmlsZX0gJHtzcmNmaWxlfSIgXAotCVtsaXN0IGFkZGl0aW9uYWxf ZmxhZ3M9LW5vc3RhcnRmaWxlc11dIHsKLSAgICByZXR1cm4gLTEKLX0KLQotIyBWZXJpZnkg dGhhdCAuZGVidWdfbmFtZXMgc2VjdGlvbiBpcyBub3QgaWdub3JlZC4KLXNldCBpbmRleCBb aGF2ZV9pbmRleCAkYmluZmlsZV0KLWdkYl9hc3NlcnQgeyBbc3RyaW5nIGVxdWFsICRpbmRl eCAiZGVidWdfbmFtZXMiXSB9ICIuZGVidWdfbmFtZXMgdXNlZCIKLQotIyBWZXJpZnkgdGhh dCB3ZSBjYW4gZmluZCB0aGUgdHlwZSBpbiB0aGUgdHlwZSB1bml0Lgotc2V0IHJlIFwKLSAg ICBbbXVsdGlfbGluZSBcCi0JICJ0eXBlID0gc3RydWN0IHN0cnVjdF93aXRoX2ludF9tZW1i ZXIgeyIgXAotCSAiICAgIGludCBtZW1iZXI7IiBcCi0JICJ9Il0KLWdkYl90ZXN0ICJwdHlw ZSBzdHJ1Y3Qgc3RydWN0X3dpdGhfaW50X21lbWJlciIgJHJlCitzb3VyY2UgJHNyY2Rpci8k c3ViZGlyL2RlYnVnLW5hbWVzLXR1LmV4cC50Y2wKZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3Vp dGUvZ2RiLmR3YXJmMi9kZWJ1Zy1uYW1lcy10dS5leHAudGNsIGIvZ2RiL3Rlc3RzdWl0ZS9n ZGIuZHdhcmYyL2RlYnVnLW5hbWVzLXR1LmV4cC50Y2wKbmV3IGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggMDAwMDAwMDAwMDAuLjczOGVjYzQ3YzVhCi0tLSAvZGV2L251bGwKKysrIGIvZ2Ri L3Rlc3RzdWl0ZS9nZGIuZHdhcmYyL2RlYnVnLW5hbWVzLXR1LmV4cC50Y2wKQEAgLTAsMCAr MSw5NCBAQAorIyBDb3B5cmlnaHQgMjAyMiBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIElu Yy4KKworIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3Ry aWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdO VSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorIyB0aGUgRnJlZSBT b2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBv cgorIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorIworIyBUaGlzIHBy b2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1 bCwKKyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxp ZWQgd2FycmFudHkgb2YKKyMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFS VElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5z ZSBmb3IgbW9yZSBkZXRhaWxzLgorIworIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBj b3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorIyBhbG9uZyB3aXRoIHRo aXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMv Pi4KKworbG9hZF9saWIgZHdhcmYuZXhwCisKKyMgVGhpcyB0ZXN0IGNhbiBvbmx5IGJlIHJ1 biBvbiB0YXJnZXRzIHdoaWNoIHN1cHBvcnQgRFdBUkYtMiBhbmQgdXNlIGdhcy4KK2lmIHsh W2R3YXJmMl9zdXBwb3J0XX0geworICAgIHJldHVybiAwCit9CisKK3N0YW5kYXJkX3Rlc3Rm aWxlIF9zdGFydC5jIGRlYnVnLW5hbWVzLlMKKworc2V0IGZ1bmNfaW5mb192YXJzIFwKKyAg ICBbZ2V0X2Z1bmNfaW5mbyBfc3RhcnQgW2xpc3QgZGVidWcgYWRkaXRpb25hbF9mbGFncz0t bm9zdGFydGZpbGVzXV0KKworIyBDcmVhdGUgdGhlIERXQVJGLgorc2V0IGFzbV9maWxlIFtz dGFuZGFyZF9vdXRwdXRfZmlsZSAkc3JjZmlsZTJdCitEd2FyZjo6YXNzZW1ibGUgeworICAg IGZpbGVuYW1lICRhc21fZmlsZQorICAgIGFkZF9kdW1teV9jdXMgMAorfSB7CisgICAgZ2xv YmFsIGR3YXJmX3ZlcnNpb24KKyAgICBnbG9iYWwgZnVuY19pbmZvX3ZhcnMKKyAgICBmb3Jl YWNoIHZhciAkZnVuY19pbmZvX3ZhcnMgeworCWdsb2JhbCAkdmFyCisgICAgfQorCisgICAg Y3UgeyBsYWJlbCBjdV9sYWJlbCB2ZXJzaW9uICRkd2FyZl92ZXJzaW9uIH0geworCWNvbXBp bGVfdW5pdCB7e2xhbmd1YWdlIEBEV19MQU5HX0N9fSB7CisJICAgIHN1YnByb2dyYW0gewor CQl7RFdfQVRfbmFtZSBfc3RhcnR9CisJCXtEV19BVF9sb3dfcGMgJF9zdGFydF9zdGFydCBE V19GT1JNX2FkZHJ9CisJCXtEV19BVF9oaWdoX3BjICRfc3RhcnRfZW5kIERXX0ZPUk1fYWRk cn0KKwkgICAgfQorCX0KKyAgICB9CisKKyAgICB0dSB7IGxhYmVsIHR1X2xhYmVsIHZlcnNp b24gJGR3YXJmX3ZlcnNpb24gfSAweDhlY2U2NmY0MjI0ZmRkYjMgIiIgeworCXR5cGVfdW5p dCB7fSB7CisJICAgIGRlY2xhcmVfbGFiZWxzIGludF90eXBlCisKKwkgICAgc3RydWN0dXJl X3R5cGUgeworCQl7bmFtZSBzdHJ1Y3Rfd2l0aF9pbnRfbWVtYmVyfQorCQl7Ynl0ZV9zaXpl IDQgc2RhdGF9CisJICAgIH0geworCQltZW1iZXIgeworCQkgICAge25hbWUgbWVtYmVyfQor CQkgICAge3R5cGUgOiRpbnRfdHlwZX0KKwkJfQorCSAgICB9CisJICAgIGludF90eXBlOiBi YXNlX3R5cGUgeworCQl7bmFtZSBpbnR9CisJCXtlbmNvZGluZyBARFdfQVRFX3NpZ25lZH0K KwkJe2J5dGVfc2l6ZSA0IHNkYXRhfQorCSAgICB9CisJfQorICAgIH0KKworICAgIGRlYnVn X25hbWVzIHt9IHsKKwljdSBjdV9sYWJlbAorCXR1IHR1X2xhYmVsCisJbmFtZSBfc3RhcnQg c3VicHJvZ3JhbSBjdV9sYWJlbCAweEVEREI2MjMyCisJbmFtZSBzdHJ1Y3Rfd2l0aF9pbnRf bWVtYmVyIHN0cnVjdHVyZV90eXBlIHR1X2xhYmVsIDB4NTNBMkFFODYKKyAgICB9Cit9CisK K2lmIFtwcmVwYXJlX2Zvcl90ZXN0aW5nICJmYWlsZWQgdG8gcHJlcGFyZSIgJHRlc3RmaWxl ICIke2FzbV9maWxlfSAke3NyY2ZpbGV9IiBcCisJW2xpc3QgYWRkaXRpb25hbF9mbGFncz0t bm9zdGFydGZpbGVzXV0geworICAgIHJldHVybiAtMQorfQorCisjIFZlcmlmeSB0aGF0IC5k ZWJ1Z19uYW1lcyBzZWN0aW9uIGlzIG5vdCBpZ25vcmVkLgorc2V0IGluZGV4IFtoYXZlX2lu ZGV4ICRiaW5maWxlXQorZ2RiX2Fzc2VydCB7IFtzdHJpbmcgZXF1YWwgJGluZGV4ICJkZWJ1 Z19uYW1lcyJdIH0gIi5kZWJ1Z19uYW1lcyB1c2VkIgorCisjIFZlcmlmeSB0aGF0IHdlIGNh biBmaW5kIHRoZSB0eXBlIGluIHRoZSB0eXBlIHVuaXQuCitzZXQgcmUgXAorICAgIFttdWx0 aV9saW5lIFwKKwkgInR5cGUgPSBzdHJ1Y3Qgc3RydWN0X3dpdGhfaW50X21lbWJlciB7IiBc CisJICIgICAgaW50IG1lbWJlcjsiIFwKKwkgIn0iXQorZ2RiX3Rlc3QgInB0eXBlIHN0cnVj dCBzdHJ1Y3Rfd2l0aF9pbnRfbWVtYmVyIiAkcmUKZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3Vp dGUvbGliL2R3YXJmLmV4cCBiL2dkYi90ZXN0c3VpdGUvbGliL2R3YXJmLmV4cAppbmRleCBi MGUyNDhjOGUyZi4uNmRiMGVkMjhkZWIgMTAwNjQ0Ci0tLSBhL2dkYi90ZXN0c3VpdGUvbGli L2R3YXJmLmV4cAorKysgYi9nZGIvdGVzdHN1aXRlL2xpYi9kd2FyZi5leHAKQEAgLTE1NjMs NiArMTU2Myw3IEBAIG5hbWVzcGFjZSBldmFsIER3YXJmIHsKIAlzZXQgbGFiZWwgIiIKIAog CWZvcmVhY2ggeyBuYW1lIHZhbHVlIH0gJG9wdGlvbnMgeworCSAgICBzZXQgdmFsdWUgW3Vw bGV2ZWwgMSAic3Vic3QgXCIkdmFsdWVcIiJdCiAJICAgIHN3aXRjaCAtZXhhY3QgLS0gJG5h bWUgewogCQlpc182NCB7IHNldCBpc182NCAkdmFsdWUgfQogCQl2ZXJzaW9uIHsgc2V0IF9j dV92ZXJzaW9uICR2YWx1ZSB9CkBAIC0xNTgwLDkgKzE1ODEsMTIgQEAgbmFtZXNwYWNlIGV2 YWwgRHdhcmYgewogCSAgICB9CiAJfQogCXNldCBfY3Vfb2Zmc2V0X3NpemUgW2V4cHIgeyAk aXNfNjQgPyA4IDogNCB9XQorCWlmIHsgJF9jdV92ZXJzaW9uID09IDUgfSB7CisJICAgIHNl dCBzZWN0aW9uICIuZGVidWdfaW5mbyIKKwl9CiAJaWYgeyAkX2N1X2lzX2Zpc3Npb24gfSB7 Ci0JICAgIHNldCBzZWN0aW9uICIuZGVidWdfdHlwZXMuZHdvIgotCSAgICBzZXQgX2FiYnJl dl9zZWN0aW9uICIuZGVidWdfYWJicmV2LmR3byIKKwkgICAgc2V0IHNlY3Rpb24gIiRzZWN0 aW9uLmR3byIKKwkgICAgc2V0IF9hYmJyZXZfc2VjdGlvbiAiJHNlY3Rpb24uZHdvIgogCX0K IAogCV9zZWN0aW9uICRzZWN0aW9uCkBAIC0xNjA5LDggKzE2MTMsMTcgQEAgbmFtZXNwYWNl IGV2YWwgRHdhcmYgewogCX0KIAlkZWZpbmVfbGFiZWwgJHN0YXJ0X2xhYmVsCiAJX29wIC4y Ynl0ZSAkX2N1X3ZlcnNpb24gVmVyc2lvbgotCV9vcF9vZmZzZXQgJF9jdV9vZmZzZXRfc2l6 ZSAkbXlfYWJicmV2cyBBYmJyZXZzCi0JX29wIC5ieXRlICRfY3VfYWRkcl9zaXplICJQb2lu dGVyIHNpemUiCisKKwkjIFRoZSBDVSBoZWFkZXIgZm9yIERXQVJGIDQgYW5kIDUgYXJlIHNs aWdodGx5IGRpZmZlcmVudC4KKwlpZiB7ICRfY3VfdmVyc2lvbiA9PSA1IH0geworCSAgICBf b3AgLmJ5dGUgMHgyICJEV19VVF90eXBlIgorCSAgICBfb3AgLmJ5dGUgJF9jdV9hZGRyX3Np emUgIlBvaW50ZXIgc2l6ZSIKKwkgICAgX29wX29mZnNldCAkX2N1X29mZnNldF9zaXplICRt eV9hYmJyZXZzIEFiYnJldnMKKwl9IGVsc2UgeworCSAgICBfb3Bfb2Zmc2V0ICRfY3Vfb2Zm c2V0X3NpemUgJG15X2FiYnJldnMgQWJicmV2cworCSAgICBfb3AgLmJ5dGUgJF9jdV9hZGRy X3NpemUgIlBvaW50ZXIgc2l6ZSIKKwl9CisKIAlfb3AgLjhieXRlICRzaWduYXR1cmUgU2ln bmF0dXJlCiAJaWYgeyAkdHlwZV9sYWJlbCAhPSAiIiB9IHsKIAkgICAgdXBsZXZlbCBkZWNs YXJlX2xhYmVscyAkdHlwZV9sYWJlbAo= --------------1esExu8WuCW00xFAQWzQxZV0--