From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 20319 invoked by alias); 9 Mar 2015 17:16:52 -0000 Mailing-List: contact binutils-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: binutils-owner@sourceware.org Received: (qmail 20296 invoked by uid 89); 9 Mar 2015 17:16:51 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00,RCVD_IN_DNSWL_LOW,SPF_PASS,T_RP_MATCHES_RCVD autolearn=ham version=3.3.2 X-HELO: mail-qc0-f169.google.com Received: from mail-qc0-f169.google.com (HELO mail-qc0-f169.google.com) (209.85.216.169) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (AES128-GCM-SHA256 encrypted) ESMTPS; Mon, 09 Mar 2015 17:16:46 +0000 Received: by qcyl6 with SMTP id l6so10234239qcy.10 for ; Mon, 09 Mar 2015 10:16:43 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc:content-type; bh=yOcZUoRshXQCg2T9wBrmQ4PyapBlgTZp8I339Fq+ZWM=; b=G8EACSsBLkBniiNWK0kfncant0q2BbQg95RoEOsp0eW75I6Mkw+TwkuWyA9dpzLnOQ IG7cjTELdMgdVGwTEaMO0quUcB+pNU81UKDLChxzX/SenbTjtV1PAJgNWu1onkWeB558 Jgbq3pAHm9yEQV/2aITk5m+FZojwtgPALhC5xiHtPx0hEaPQ9Fh3SeDJo8paWEKEnp6w p09bHzX7EHbhPbZIz7vOKdgRV1BjC6gNEeswAWzHWLeXv1EChV8AMpJM1WBwX4XSs97c /st9pz9/xGxb3Zfvw+yqrKmFsY7UEzf8SsWHgi9eMFEhSLRgO3LBetmcq7BkQpIqEXNf DDYw== X-Gm-Message-State: ALoCoQlcQ4YhBEY2RtdIgg5Nu/hA4cQx1I1trB5i4LwQKqNI4BH8f4qaUeaCvpsj0BrvhWXYMgnt MIME-Version: 1.0 X-Received: by 10.55.21.40 with SMTP id f40mr33688668qkh.96.1425921403642; Mon, 09 Mar 2015 10:16:43 -0700 (PDT) Received: by 10.140.83.81 with HTTP; Mon, 9 Mar 2015 10:16:43 -0700 (PDT) In-Reply-To: References: <20140331200446.A09B074430@topped-with-meat.com> <20140331214025.E61517447E@topped-with-meat.com> <20140910225238.0B6362C39CF@topped-with-meat.com> <20141220135811.GA7161@gmail.com> <20150107131655.GA7818@gmail.com> <20150107144300.GA498@gmail.com> Date: Mon, 09 Mar 2015 17:16:00 -0000 Message-ID: Subject: Re: PATCH: PR gold/14675: No eh_frame info registered in exception_static_test From: Cary Coutant To: "H.J. Lu" Cc: Ian Lance Taylor , Roland McGrath , Alan Modra , Binutils , =?UTF-8?Q?Rafael_=C3=81vila_de_Esp=C3=ADndola?= Content-Type: multipart/mixed; boundary=001a1147d3eabe338a0510de3233 X-IsSubscribed: yes X-SW-Source: 2015-03/txt/msg00071.txt.bz2 --001a1147d3eabe338a0510de3233 Content-Type: text/plain; charset=UTF-8 Content-length: 1048 > Any progress? I've committed the attached patch to fix this problem by delaying the attachment of the optimized .eh_frame sections to the output section until we see the end marker section (or to the end of pass 1 if we never see an end marker). -cary 2015-03-09 Cary Coutant gold/ PR gold/14675 * ehframe.cc (Eh_frame::add_ehframe_input_section): Change return type; return enum indicating whether .eh_frame section is empty, optimizable, unrecognized, or an end marker. Adjust explicit instantiations. * ehframe.h (Eh_frame::Eh_frame_section_disposition): New enum type. (Eh_frame::add_ehframe_input_section): Change return type. * gold.cc (queue_middle_tasks): Call Layout::finalize_eh_frame_section. * layout.cc (Layout::layout_eh_frame): Don't add optimized sections to the .eh_frame output section until we see the end marker. (Layout::finalize_eh_frame_section): New. * layout.h: (Layout::finalize_eh_frame_section): New. --001a1147d3eabe338a0510de3233 Content-Type: application/octet-stream; name="gold-ehframe-static.patch" Content-Disposition: attachment; filename="gold-ehframe-static.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_i724sbze0 Content-length: 13201 Rml4IGZhaWx1cmUgaW4gZXhjZXB0aW9uX3N0YXRpY190ZXN0LgoKQmVjYXVz ZSB0aGUgX19FSF9GUkFNRV9CRUdJTl9fIHN5bWJvbCBpcyBwcm92aWRlZCBp biBhbiBlbXB0eSAuZWhfZnJhbWUKc2VjdGlvbiBpbiBjcnRiZWdpblQubywg aWYgY3J0MS5vIGhhcyBhIG5vbi1lbXB0eSAuZWhfZnJhbWUgc2VjdGlvbiwK d2UgcGxhY2UgYWxsIG9wdGltaXplZCAuZWhfZnJhbWUgc2VjdGlvbnMgaW50 byB0aGUgb3V0cHV0IHNlY3Rpb24gYWhlYWQKb2YgdGhlIF9fRUhfRlJBTUVf QkVHSU5fXyBzeW1ib2wsIHdoaWNoIGJyZWFrcyBFSCBmb3Igc3RhdGljYWxs eS1saW5rZWQKYmluYXJpZXMuCgpUaGlzIHBhdGNoIGZpeGVzIHRoZSBwcm9i bGVtIGJ5IGRlbGF5aW5nIHRoZSBhdHRhY2htZW50IG9mIHRoZSBvcHRpbWl6 ZWQKLmVoX2ZyYW1lIHNlY3Rpb25zIHRvIHRoZSBvdXRwdXQgc2VjdGlvbiB1 bnRpbCB3ZSBzZWUgdGhlIGVuZCBtYXJrZXIKc2VjdGlvbiAob3IgdG8gdGhl IGVuZCBvZiBwYXNzIDEgaWYgd2UgbmV2ZXIgc2VlIGFuIGVuZCBtYXJrZXIp LgoKMjAxNS0wMy0wOSAgQ2FyeSBDb3V0YW50ICA8Y2NvdXRhbnRAZ29vZ2xl LmNvbT4KCmdvbGQvCglQUiBnb2xkLzE0Njc1CgkqIGVoZnJhbWUuY2MgKEVo X2ZyYW1lOjphZGRfZWhmcmFtZV9pbnB1dF9zZWN0aW9uKTogQ2hhbmdlIHJl dHVybiB0eXBlOwoJcmV0dXJuIGVudW0gaW5kaWNhdGluZyB3aGV0aGVyIC5l aF9mcmFtZSBzZWN0aW9uIGlzIGVtcHR5LCBvcHRpbWl6YWJsZSwKCXVucmVj b2duaXplZCwgb3IgYW4gZW5kIG1hcmtlci4gQWRqdXN0IGV4cGxpY2l0IGlu c3RhbnRpYXRpb25zLgoJKiBlaGZyYW1lLmggKEVoX2ZyYW1lOjpFaF9mcmFt ZV9zZWN0aW9uX2Rpc3Bvc2l0aW9uKTogTmV3IGVudW0gdHlwZS4KCShFaF9m cmFtZTo6YWRkX2VoZnJhbWVfaW5wdXRfc2VjdGlvbik6IENoYW5nZSByZXR1 cm4gdHlwZS4KCSogZ29sZC5jYyAocXVldWVfbWlkZGxlX3Rhc2tzKTogQ2Fs bCBMYXlvdXQ6OmZpbmFsaXplX2VoX2ZyYW1lX3NlY3Rpb24uCgkqIGxheW91 dC5jYyAoTGF5b3V0OjpsYXlvdXRfZWhfZnJhbWUpOiBEb24ndCBhZGQgb3B0 aW1pemVkIHNlY3Rpb25zCgl0byB0aGUgLmVoX2ZyYW1lIG91dHB1dCBzZWN0 aW9uIHVudGlsIHdlIHNlZSB0aGUgZW5kIG1hcmtlci4KCShMYXlvdXQ6OmZp bmFsaXplX2VoX2ZyYW1lX3NlY3Rpb24pOiBOZXcuCgkqIGxheW91dC5oOiAo TGF5b3V0OjpmaW5hbGl6ZV9laF9mcmFtZV9zZWN0aW9uKTogTmV3LgoKCmRp ZmYgLS1naXQgYS9nb2xkL2VoZnJhbWUuY2MgYi9nb2xkL2VoZnJhbWUuY2MK aW5kZXggNzExMTAzYi4uMjYyNzY2ZSAxMDA2NDQKLS0tIGEvZ29sZC9laGZy YW1lLmNjCisrKyBiL2dvbGQvZWhmcmFtZS5jYwpAQCAtNTY3LDcgKzU2Nyw3 IEBAIEVoX2ZyYW1lOjpza2lwX2xlYjEyOChjb25zdCB1bnNpZ25lZCBjaGFy KiogcHAsIGNvbnN0IHVuc2lnbmVkIGNoYXIqIHBlbmQpCiAvLyBzZWN0aW9u LgogCiB0ZW1wbGF0ZTxpbnQgc2l6ZSwgYm9vbCBiaWdfZW5kaWFuPgotYm9v bAorRWhfZnJhbWU6OkVoX2ZyYW1lX3NlY3Rpb25fZGlzcG9zaXRpb24KIEVo X2ZyYW1lOjphZGRfZWhmcmFtZV9pbnB1dF9zZWN0aW9uKAogICAgIFNpemVk X3JlbG9ial9maWxlPHNpemUsIGJpZ19lbmRpYW4+KiBvYmplY3QsCiAgICAg Y29uc3QgdW5zaWduZWQgY2hhciogc3ltYm9scywKQEAgLTU4NCw3ICs1ODQs NyBAQCBFaF9mcmFtZTo6YWRkX2VoZnJhbWVfaW5wdXRfc2VjdGlvbigKIAkJ CQkJCQkgICAgJmNvbnRlbnRzX2xlbiwKIAkJCQkJCQkgICAgZmFsc2UpOwog ICBpZiAoY29udGVudHNfbGVuID09IDApCi0gICAgcmV0dXJuIGZhbHNlOwor ICAgIHJldHVybiBFSF9FTVBUWV9TRUNUSU9OOwogCiAgIC8vIElmIHRoaXMg aXMgdGhlIG1hcmtlciBzZWN0aW9uIGZvciB0aGUgZW5kIG9mIHRoZSBkYXRh LCB0aGVuCiAgIC8vIHJldHVybiBmYWxzZSB0byBmb3JjZSBpdCB0byBiZSBo YW5kbGVkIGFzIGFuIG9yZGluYXJ5IGlucHV0CkBAIC01OTIsNyArNTkyLDcg QEAgRWhfZnJhbWU6OmFkZF9laGZyYW1lX2lucHV0X3NlY3Rpb24oCiAgIC8v IG9mIHVucmVjb2duaXplZCAuZWhfZnJhbWUgc2VjdGlvbnMuCiAgIGlmIChj b250ZW50c19sZW4gPT0gNAogICAgICAgJiYgZWxmY3BwOjpTd2FwPDMyLCBi aWdfZW5kaWFuPjo6cmVhZHZhbChwY29udGVudHMpID09IDApCi0gICAgcmV0 dXJuIGZhbHNlOworICAgIHJldHVybiBFSF9FTkRfTUFSS0VSX1NFQ1RJT047 CiAKICAgTmV3X2NpZXMgbmV3X2NpZXM7CiAgIGlmICghdGhpcy0+ZG9fYWRk X2VoZnJhbWVfaW5wdXRfc2VjdGlvbihvYmplY3QsIHN5bWJvbHMsIHN5bWJv bHNfc2l6ZSwKQEAgLTYwOSw3ICs2MDksNyBAQCBFaF9mcmFtZTo6YWRkX2Vo ZnJhbWVfaW5wdXRfc2VjdGlvbigKIAkgICArK3ApCiAJZGVsZXRlIHAtPmZp cnN0OwogCi0gICAgICByZXR1cm4gZmFsc2U7CisgICAgICByZXR1cm4gRUhf VU5SRUNPR05JWkVEX1NFQ1RJT047CiAgICAgfQogCiAgIC8vIE5vdyB0aGF0 IHdlIGtub3cgd2UgYXJlIHVzaW5nIHRoaXMgc2VjdGlvbiwgcmVjb3JkIGFu eSBuZXcgQ0lFcwpAQCAtNjI0LDcgKzYyNCw3IEBAIEVoX2ZyYW1lOjphZGRf ZWhmcmFtZV9pbnB1dF9zZWN0aW9uKAogCXRoaXMtPnVubWVyZ2VhYmxlX2Np ZV9vZmZzZXRzXy5wdXNoX2JhY2socC0+Zmlyc3QpOwogICAgIH0KIAotICBy ZXR1cm4gdHJ1ZTsKKyAgcmV0dXJuIEVIX09QVElNSVpBQkxFX1NFQ1RJT047 CiB9CiAKIC8vIFRoZSBidWxrIG9mIHRoZSBpbXBsZW1lbnRhdGlvbiBvZiBh ZGRfZWhmcmFtZV9pbnB1dF9zZWN0aW9uLgpAQCAtMTIwNiw3ICsxMjA2LDcg QEAgRWhfZnJhbWU6OmRvX3NpemVkX3dyaXRlKHVuc2lnbmVkIGNoYXIqIG92 aWV3KQogCiAjaWZkZWYgSEFWRV9UQVJHRVRfMzJfTElUVExFCiB0ZW1wbGF0 ZQotYm9vbAorRWhfZnJhbWU6OkVoX2ZyYW1lX3NlY3Rpb25fZGlzcG9zaXRp b24KIEVoX2ZyYW1lOjphZGRfZWhmcmFtZV9pbnB1dF9zZWN0aW9uPDMyLCBm YWxzZT4oCiAgICAgU2l6ZWRfcmVsb2JqX2ZpbGU8MzIsIGZhbHNlPiogb2Jq ZWN0LAogICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIqIHN5bWJvbHMsCkBAIC0x MjIwLDcgKzEyMjAsNyBAQCBFaF9mcmFtZTo6YWRkX2VoZnJhbWVfaW5wdXRf c2VjdGlvbjwzMiwgZmFsc2U+KAogCiAjaWZkZWYgSEFWRV9UQVJHRVRfMzJf QklHCiB0ZW1wbGF0ZQotYm9vbAorRWhfZnJhbWU6OkVoX2ZyYW1lX3NlY3Rp b25fZGlzcG9zaXRpb24KIEVoX2ZyYW1lOjphZGRfZWhmcmFtZV9pbnB1dF9z ZWN0aW9uPDMyLCB0cnVlPigKICAgICBTaXplZF9yZWxvYmpfZmlsZTwzMiwg dHJ1ZT4qIG9iamVjdCwKICAgICBjb25zdCB1bnNpZ25lZCBjaGFyKiBzeW1i b2xzLApAQCAtMTIzNCw3ICsxMjM0LDcgQEAgRWhfZnJhbWU6OmFkZF9laGZy YW1lX2lucHV0X3NlY3Rpb248MzIsIHRydWU+KAogCiAjaWZkZWYgSEFWRV9U QVJHRVRfNjRfTElUVExFCiB0ZW1wbGF0ZQotYm9vbAorRWhfZnJhbWU6OkVo X2ZyYW1lX3NlY3Rpb25fZGlzcG9zaXRpb24KIEVoX2ZyYW1lOjphZGRfZWhm cmFtZV9pbnB1dF9zZWN0aW9uPDY0LCBmYWxzZT4oCiAgICAgU2l6ZWRfcmVs b2JqX2ZpbGU8NjQsIGZhbHNlPiogb2JqZWN0LAogICAgIGNvbnN0IHVuc2ln bmVkIGNoYXIqIHN5bWJvbHMsCkBAIC0xMjQ4LDcgKzEyNDgsNyBAQCBFaF9m cmFtZTo6YWRkX2VoZnJhbWVfaW5wdXRfc2VjdGlvbjw2NCwgZmFsc2U+KAog CiAjaWZkZWYgSEFWRV9UQVJHRVRfNjRfQklHCiB0ZW1wbGF0ZQotYm9vbAor RWhfZnJhbWU6OkVoX2ZyYW1lX3NlY3Rpb25fZGlzcG9zaXRpb24KIEVoX2Zy YW1lOjphZGRfZWhmcmFtZV9pbnB1dF9zZWN0aW9uPDY0LCB0cnVlPigKICAg ICBTaXplZF9yZWxvYmpfZmlsZTw2NCwgdHJ1ZT4qIG9iamVjdCwKICAgICBj b25zdCB1bnNpZ25lZCBjaGFyKiBzeW1ib2xzLApkaWZmIC0tZ2l0IGEvZ29s ZC9laGZyYW1lLmggYi9nb2xkL2VoZnJhbWUuaAppbmRleCBiYjQ3MzgxLi5l NmUyMWIyIDEwMDY0NAotLS0gYS9nb2xkL2VoZnJhbWUuaAorKysgYi9nb2xk L2VoZnJhbWUuaApAQCAtMzU5LDYgKzM1OSwxNCBAQCBleHRlcm4gYm9vbCBv cGVyYXRvcj09KGNvbnN0IENpZSYsIGNvbnN0IENpZSYpOwogY2xhc3MgRWhf ZnJhbWUgOiBwdWJsaWMgT3V0cHV0X3NlY3Rpb25fZGF0YQogewogIHB1Ymxp YzoKKyAgZW51bSBFaF9mcmFtZV9zZWN0aW9uX2Rpc3Bvc2l0aW9uCisgIHsK KyAgICBFSF9FTVBUWV9TRUNUSU9OLAorICAgIEVIX1VOUkVDT0dOSVpFRF9T RUNUSU9OLAorICAgIEVIX09QVElNSVpBQkxFX1NFQ1RJT04sCisgICAgRUhf RU5EX01BUktFUl9TRUNUSU9OCisgIH07CisKICAgRWhfZnJhbWUoKTsKIAog ICAvLyBSZWNvcmQgdGhlIGFzc29jaWF0ZWQgRWhfZnJhbWVfaGRyLCBpZiBh bnkuCkBAIC0zNzQsNyArMzgyLDcgQEAgY2xhc3MgRWhfZnJhbWUgOiBwdWJs aWMgT3V0cHV0X3NlY3Rpb25fZGF0YQogICAvLyByZXR1cm5zIHdoZXRoZXIg dGhlIHNlY3Rpb24gd2FzIGluY29ycG9yYXRlZCBpbnRvIHRoZSAuZWhfZnJh bWUKICAgLy8gZGF0YS4KICAgdGVtcGxhdGU8aW50IHNpemUsIGJvb2wgYmln X2VuZGlhbj4KLSAgYm9vbAorICBFaF9mcmFtZV9zZWN0aW9uX2Rpc3Bvc2l0 aW9uCiAgIGFkZF9laGZyYW1lX2lucHV0X3NlY3Rpb24oU2l6ZWRfcmVsb2Jq X2ZpbGU8c2l6ZSwgYmlnX2VuZGlhbj4qIG9iamVjdCwKIAkJCSAgICBjb25z dCB1bnNpZ25lZCBjaGFyKiBzeW1ib2xzLAogCQkJICAgIHNlY3Rpb25fc2l6 ZV90eXBlIHN5bWJvbHNfc2l6ZSwKZGlmZiAtLWdpdCBhL2dvbGQvZ29sZC5j YyBiL2dvbGQvZ29sZC5jYwppbmRleCBhYjE1OTgwLi5lMzQ1ODg3IDEwMDY0 NAotLS0gYS9nb2xkL2dvbGQuY2MKKysrIGIvZ29sZC9nb2xkLmNjCkBAIC00 OTIsNiArNDkyLDkgQEAgcXVldWVfbWlkZGxlX3Rhc2tzKGNvbnN0IEdlbmVy YWxfb3B0aW9ucyYgb3B0aW9ucywKICAgaWYgKHRpbWVyICE9IE5VTEwpCiAg ICAgdGltZXItPnN0YW1wKDApOwogCisgIC8vIEZpbmFsaXplIHRoZSAuZWhf ZnJhbWUgc2VjdGlvbi4KKyAgbGF5b3V0LT5maW5hbGl6ZV9laF9mcmFtZV9z ZWN0aW9uKCk7CisKICAgLy8gQWRkIGFueSBzeW1ib2xzIG5hbWVkIHdpdGgg LXUgb3B0aW9ucyB0byB0aGUgc3ltYm9sIHRhYmxlLgogICBzeW10YWItPmFk ZF91bmRlZmluZWRfc3ltYm9sc19mcm9tX2NvbW1hbmRfbGluZShsYXlvdXQp OwogCmRpZmYgLS1naXQgYS9nb2xkL2xheW91dC5jYyBiL2dvbGQvbGF5b3V0 LmNjCmluZGV4IDc4MzY2NDAuLjE0YmZkYTAgMTAwNjQ0Ci0tLSBhL2dvbGQv bGF5b3V0LmNjCisrKyBiL2dvbGQvbGF5b3V0LmNjCkBAIC0xNDIwLDE1ICsx NDIwLDIxIEBAIExheW91dDo6bGF5b3V0X2VoX2ZyYW1lKFNpemVkX3JlbG9i al9maWxlPHNpemUsIGJpZ19lbmRpYW4+KiBvYmplY3QsCiAKICAgZWxmY3Bw OjpFbGZfWHdvcmQgb3JpZ19mbGFncyA9IG9zLT5mbGFncygpOwogCi0gIGlm ICghcGFyYW1ldGVycy0+aW5jcmVtZW50YWwoKQotICAgICAgJiYgdGhpcy0+ ZWhfZnJhbWVfZGF0YV8tPmFkZF9laGZyYW1lX2lucHV0X3NlY3Rpb24ob2Jq ZWN0LAotCQkJCQkJCSBzeW1ib2xzLAotCQkJCQkJCSBzeW1ib2xzX3NpemUs Ci0JCQkJCQkJIHN5bWJvbF9uYW1lcywKLQkJCQkJCQkgc3ltYm9sX25hbWVz X3NpemUsCi0JCQkJCQkJIHNobmR4LAotCQkJCQkJCSByZWxvY19zaG5keCwK LQkJCQkJCQkgcmVsb2NfdHlwZSkpCisgIEVoX2ZyYW1lOjpFaF9mcmFtZV9z ZWN0aW9uX2Rpc3Bvc2l0aW9uIGRpc3AgPQorICAgICAgRWhfZnJhbWU6OkVI X1VOUkVDT0dOSVpFRF9TRUNUSU9OOworICBpZiAoIXBhcmFtZXRlcnMtPmlu Y3JlbWVudGFsKCkpCisgICAgeworICAgICAgZGlzcCA9IHRoaXMtPmVoX2Zy YW1lX2RhdGFfLT5hZGRfZWhmcmFtZV9pbnB1dF9zZWN0aW9uKG9iamVjdCwK KwkJCQkJCQkgICAgIHN5bWJvbHMsCisJCQkJCQkJICAgICBzeW1ib2xzX3Np emUsCisJCQkJCQkJICAgICBzeW1ib2xfbmFtZXMsCisJCQkJCQkJICAgICBz eW1ib2xfbmFtZXNfc2l6ZSwKKwkJCQkJCQkgICAgIHNobmR4LAorCQkJCQkJ CSAgICAgcmVsb2Nfc2huZHgsCisJCQkJCQkJICAgICByZWxvY190eXBlKTsK KyAgICB9CisKKyAgaWYgKGRpc3AgPT0gRWhfZnJhbWU6OkVIX09QVElNSVpB QkxFX1NFQ1RJT04pCiAgICAgewogICAgICAgb3MtPnVwZGF0ZV9mbGFnc19m b3JfaW5wdXRfc2VjdGlvbihzaGRyLmdldF9zaF9mbGFncygpKTsKIApAQCAt MTQ0MCwzNSArMTQ0Niw0OSBAQCBMYXlvdXQ6OmxheW91dF9laF9mcmFtZShT aXplZF9yZWxvYmpfZmlsZTxzaXplLCBiaWdfZW5kaWFuPiogb2JqZWN0LAog CSAgb3MtPnNldF9vcmRlcihPUkRFUl9SRUxSTyk7CiAJfQogCi0gICAgICAv LyBXZSBmb3VuZCBhIC5laF9mcmFtZSBzZWN0aW9uIHdlIGFyZSBnb2luZyB0 byBvcHRpbWl6ZSwgc28gbm93Ci0gICAgICAvLyB3ZSBjYW4gYWRkIHRoZSBz ZXQgb2Ygb3B0aW1pemVkIHNlY3Rpb25zIHRvIHRoZSBvdXRwdXQKLSAgICAg IC8vIHNlY3Rpb24uICBXZSBuZWVkIHRvIHBvc3Rwb25lIGFkZGluZyB0aGlz IHVudGlsIHdlJ3ZlIGZvdW5kIGEKLSAgICAgIC8vIHNlY3Rpb24gd2UgY2Fu IG9wdGltaXplIHNvIHRoYXQgdGhlIC5laF9mcmFtZSBzZWN0aW9uIGluCi0g ICAgICAvLyBjcnRiZWdpbi5vIHdpbmRzIHVwIGF0IHRoZSBzdGFydCBvZiB0 aGUgb3V0cHV0IHNlY3Rpb24uCi0gICAgICBpZiAoIXRoaXMtPmFkZGVkX2Vo X2ZyYW1lX2RhdGFfKQotCXsKLQkgIG9zLT5hZGRfb3V0cHV0X3NlY3Rpb25f ZGF0YSh0aGlzLT5laF9mcmFtZV9kYXRhXyk7Ci0JICB0aGlzLT5hZGRlZF9l aF9mcmFtZV9kYXRhXyA9IHRydWU7Ci0JfQogICAgICAgKm9mZiA9IC0xOwor ICAgICAgcmV0dXJuIG9zOwogICAgIH0KLSAgZWxzZQorCisgIGlmIChkaXNw ID09IEVoX2ZyYW1lOjpFSF9FTkRfTUFSS0VSX1NFQ1RJT04gJiYgIXRoaXMt PmFkZGVkX2VoX2ZyYW1lX2RhdGFfKQogICAgIHsKLSAgICAgIC8vIFdlIGNv dWxkbid0IGhhbmRsZSB0aGlzIC5laF9mcmFtZSBzZWN0aW9uIGZvciBzb21l IHJlYXNvbi4KLSAgICAgIC8vIEFkZCBpdCBhcyBhIG5vcm1hbCBzZWN0aW9u LgotICAgICAgYm9vbCBzYXdfc2VjdGlvbnNfY2xhdXNlID0gdGhpcy0+c2Ny aXB0X29wdGlvbnNfLT5zYXdfc2VjdGlvbnNfY2xhdXNlKCk7Ci0gICAgICAq b2ZmID0gb3MtPmFkZF9pbnB1dF9zZWN0aW9uKHRoaXMsIG9iamVjdCwgc2hu ZHgsICIuZWhfZnJhbWUiLCBzaGRyLAotCQkJCSAgIHJlbG9jX3NobmR4LCBz YXdfc2VjdGlvbnNfY2xhdXNlKTsKLSAgICAgIHRoaXMtPmhhdmVfYWRkZWRf aW5wdXRfc2VjdGlvbl8gPSB0cnVlOworICAgICAgLy8gV2UgZm91bmQgdGhl IGVuZCBtYXJrZXIgc2VjdGlvbiwgc28gbm93IHdlIGNhbiBhZGQgdGhlIHNl dCBvZgorICAgICAgLy8gb3B0aW1pemVkIHNlY3Rpb25zIHRvIHRoZSBvdXRw dXQgc2VjdGlvbi4gIFdlIG5lZWQgdG8gcG9zdHBvbmUKKyAgICAgIC8vIGFk ZGluZyB0aGlzIHVudGlsIHdlJ3ZlIGZvdW5kIGEgc2VjdGlvbiB3ZSBjYW4g b3B0aW1pemUgc28gdGhhdAorICAgICAgLy8gdGhlIC5laF9mcmFtZSBzZWN0 aW9uIGluIGNydGJlZ2luVC5vIHdpbmRzIHVwIGF0IHRoZSBzdGFydCBvZgor ICAgICAgLy8gdGhlIG91dHB1dCBzZWN0aW9uLgorICAgICAgb3MtPmFkZF9v dXRwdXRfc2VjdGlvbl9kYXRhKHRoaXMtPmVoX2ZyYW1lX2RhdGFfKTsKKyAg ICAgIHRoaXMtPmFkZGVkX2VoX2ZyYW1lX2RhdGFfID0gdHJ1ZTsKKyAgICAg fQogCi0gICAgICBpZiAoKG9yaWdfZmxhZ3MgJiAoZWxmY3BwOjpTSEZfV1JJ VEUgfCBlbGZjcHA6OlNIRl9FWEVDSU5TVFIpKQotCSAgIT0gKG9zLT5mbGFn cygpICYgKGVsZmNwcDo6U0hGX1dSSVRFIHwgZWxmY3BwOjpTSEZfRVhFQ0lO U1RSKSkpCi0Jb3MtPnNldF9vcmRlcih0aGlzLT5kZWZhdWx0X3NlY3Rpb25f b3JkZXIob3MsIGZhbHNlKSk7Ci0gICAgfQorICAvLyBXZSBjb3VsZG4ndCBo YW5kbGUgdGhpcyAuZWhfZnJhbWUgc2VjdGlvbiBmb3Igc29tZSByZWFzb24u CisgIC8vIEFkZCBpdCBhcyBhIG5vcm1hbCBzZWN0aW9uLgorICBib29sIHNh d19zZWN0aW9uc19jbGF1c2UgPSB0aGlzLT5zY3JpcHRfb3B0aW9uc18tPnNh d19zZWN0aW9uc19jbGF1c2UoKTsKKyAgKm9mZiA9IG9zLT5hZGRfaW5wdXRf c2VjdGlvbih0aGlzLCBvYmplY3QsIHNobmR4LCAiLmVoX2ZyYW1lIiwgc2hk ciwKKwkJCSAgICAgICByZWxvY19zaG5keCwgc2F3X3NlY3Rpb25zX2NsYXVz ZSk7CisgIHRoaXMtPmhhdmVfYWRkZWRfaW5wdXRfc2VjdGlvbl8gPSB0cnVl OworCisgIGlmICgob3JpZ19mbGFncyAmIChlbGZjcHA6OlNIRl9XUklURSB8 IGVsZmNwcDo6U0hGX0VYRUNJTlNUUikpCisgICAgICAhPSAob3MtPmZsYWdz KCkgJiAoZWxmY3BwOjpTSEZfV1JJVEUgfCBlbGZjcHA6OlNIRl9FWEVDSU5T VFIpKSkKKyAgICBvcy0+c2V0X29yZGVyKHRoaXMtPmRlZmF1bHRfc2VjdGlv bl9vcmRlcihvcywgZmFsc2UpKTsKIAogICByZXR1cm4gb3M7CiB9CiAKK3Zv aWQKK0xheW91dDo6ZmluYWxpemVfZWhfZnJhbWVfc2VjdGlvbigpCit7Cisg IC8vIElmIHdlIG5ldmVyIGZvdW5kIGFuIGVuZCBtYXJrZXIgc2VjdGlvbiwg d2UgbmVlZCB0byBhZGQgdGhlCisgIC8vIG9wdGltaXplZCBlaCBzZWN0aW9u cyB0byB0aGUgb3V0cHV0IHNlY3Rpb24gbm93LgorICBpZiAoIXBhcmFtZXRl cnMtPmluY3JlbWVudGFsKCkKKyAgICAgICYmIHRoaXMtPmVoX2ZyYW1lX3Nl Y3Rpb25fICE9IE5VTEwKKyAgICAgICYmICF0aGlzLT5hZGRlZF9laF9mcmFt ZV9kYXRhXykKKyAgICB7CisgICAgICB0aGlzLT5laF9mcmFtZV9zZWN0aW9u Xy0+YWRkX291dHB1dF9zZWN0aW9uX2RhdGEodGhpcy0+ZWhfZnJhbWVfZGF0 YV8pOworICAgICAgdGhpcy0+YWRkZWRfZWhfZnJhbWVfZGF0YV8gPSB0cnVl OworICAgIH0KK30KKwogLy8gQ3JlYXRlIGFuZCByZXR1cm4gdGhlIG1hZ2lj IC5laF9mcmFtZSBzZWN0aW9uLiAgQ3JlYXRlCiAvLyAuZWhfZnJhbWVfaGRy IGFsc28gaWYgYXBwcm9wcmlhdGUuICBPQkpFQ1QgaXMgdGhlIG9iamVjdCB3 aXRoIHRoZQogLy8gaW5wdXQgLmVoX2ZyYW1lIHNlY3Rpb247IGl0IG1heSBi ZSBOVUxMLgpkaWZmIC0tZ2l0IGEvZ29sZC9sYXlvdXQuaCBiL2dvbGQvbGF5 b3V0LmgKaW5kZXggYWVjMGM1My4uOTAzOWVlOCAxMDA2NDQKLS0tIGEvZ29s ZC9sYXlvdXQuaAorKysgYi9nb2xkL2xheW91dC5oCkBAIC02MzUsNiArNjM1 LDEyIEBAIGNsYXNzIExheW91dAogCQkgIHVuc2lnbmVkIGludCByZWxvY19z aG5keCwgdW5zaWduZWQgaW50IHJlbG9jX3R5cGUsCiAJCSAgb2ZmX3QqIG9m ZnNldCk7CiAKKyAgLy8gQWZ0ZXIgcHJvY2Vzc2luZyBhbGwgaW5wdXQgZmls ZXMsIHdlIGNhbGwgdGhpcyB0byBtYWtlIHN1cmUgdGhhdAorICAvLyB0aGUg b3B0aW1pemVkIC5laF9mcmFtZSBzZWN0aW9ucyBoYXZlIGJlZW4gYWRkZWQg dG8gdGhlIG91dHB1dAorICAvLyBzZWN0aW9uLgorICB2b2lkCisgIGZpbmFs aXplX2VoX2ZyYW1lX3NlY3Rpb24oKTsKKwogICAvLyBBZGQgLmVoX2ZyYW1l IGluZm9ybWF0aW9uIGZvciBhIFBMVC4gIFRoZSBGREUgbXVzdCBzdGFydCB3 aXRoIGEKICAgLy8gNC1ieXRlIFBDLXJlbGF0aXZlIHJlZmVyZW5jZSB0byB0 aGUgc3RhcnQgb2YgdGhlIFBMVCwgZm9sbG93ZWQgYnkKICAgLy8gYSA0LWJ5 dGUgc2l6ZSBvZiBQTFQuCg== --001a1147d3eabe338a0510de3233--