From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 11342 invoked by alias); 11 Jan 2013 22:40:36 -0000 Received: (qmail 11266 invoked by uid 22791); 11 Jan 2013 22:40:34 -0000 X-SWARE-Spam-Status: No, hits=-4.5 required=5.0 tests=AWL,BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM,KHOP_RCVD_TRUST,RCVD_IN_DNSWL_LOW,RCVD_IN_HOSTKARMA_YE X-Spam-Check-By: sourceware.org Received: from mail-vc0-f169.google.com (HELO mail-vc0-f169.google.com) (209.85.220.169) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Fri, 11 Jan 2013 22:40:00 +0000 Received: by mail-vc0-f169.google.com with SMTP id gb23so1921772vcb.14 for ; Fri, 11 Jan 2013 14:39:59 -0800 (PST) Received: by 10.220.219.145 with SMTP id hu17mr94100418vcb.52.1357943999711; Fri, 11 Jan 2013 14:39:59 -0800 (PST) MIME-Version: 1.0 Received: by 10.58.215.38 with HTTP; Fri, 11 Jan 2013 14:39:19 -0800 (PST) From: Steven Bosscher Date: Fri, 11 Jan 2013 22:40:00 -0000 Message-ID: Subject: [lra] resync with trunk To: Vladimir Makarov Cc: GCC Patches Content-Type: multipart/mixed; boundary=14dae9cfce94ba498704d30af934 X-IsSubscribed: yes Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org X-SW-Source: 2013-01/txt/msg00630.txt.bz2 --14dae9cfce94ba498704d30af934 Content-Type: text/plain; charset=ISO-8859-1 Content-length: 529 Hello Vlad, The attached patch back-ports to the LRA branch (or foward-ports, depending on how you look at it :-) all the changes made on the trunk to LRA. Bootstrapped&tested on powerpc64-unknown-linux-gnu[1] and ia64-unknown-linux-gnu[2], and cross-built and tested mipsisa64-elf [3]. [1] http://gcc.gnu.org/ml/gcc-testresults/2013-01/msg01098.html [2] http://gcc.gnu.org/ml/gcc-testresults/2013-01/msg01129.html [3] http://gcc.gnu.org/ml/gcc-testresults/2013-01/msg01120.html OK for the LRA branch? Thanks, Ciao! Steven --14dae9cfce94ba498704d30af934 Content-Type: application/octet-stream; name="lra_trunk_resync.diff" Content-Disposition: attachment; filename="lra_trunk_resync.diff" Content-Transfer-Encoding: base64 X-Attachment-Id: f_hbtwrj8g0 Content-length: 19057 MjAxMy0wMS0xMSAgU3RldmVuIEJvc3NjaGVyICA8c3RldmVuQGdjYy5nbnUu b3JnPgoKCSogaXJhLWJ1aWxkLmMgKGlyYV9mbGF0dGVuaW5nKTogQ29tbWVu dCBmaXguCgoJUG9ydCB0aGUgZm9sbG93aW5nIExSQSBjaGFuZ2VzIG9uIHRy dW5rIGJhY2sgdG8gdGhlIExSQSBicmFuY2g6CgoJMjAxMy0wMS0xMCAgVmxh ZGltaXIgTWFrYXJvdiAgPHZtYWthcm92QHJlZGhhdC5jb20+CgoJUFIgcnRs LW9wdGltaXphdGlvbi9wcjU1NjcyCgkqIGxyYS1lbGltaW5hdGlvbnMuYyAo bWFya19ub3RfZWxpbW5hYmxlKTogUGVybWl0IGFkZGl0aW9uIHdpdGgKCWNv bnN0IHRvIGJlIGVsaW1uYWJsZS4KCgkyMDEyLTEyLTIxICBWbGFkaW1pciBN YWthcm92ICA8dm1ha2Fyb3ZAcmVkaGF0LmNvbT4KCglQUiBtaWRkbGUtZW5k LzU1Nzc1CgkqIGxyYS1hc3NpZ25zLmMgKGltcHJvdmVfaW5oZXJpdGFuY2Up OiBEbyBub3RoaW5nIGFmdGVyCglMUkFfTUFYX0lOSEVSSVRBTkNFX1BBU1NF UyBwYXNzLgoJKiBscmEtY29uc3RyYWludHMuYyAoTUFYX0NPTlNUUkFJTlRf SVRFUkFUSU9OX05VTUJFUik6IFJlbmFtZSB0bwoJTFJBX01BWF9DT05TVFJB SU5UX0lURVJBVElPTl9OVU1CRVIuICBNb3ZlIHRvIGxyYS1pbnQuaC4KCShN QVhfSU5IRVJJVEFOQ0VfUEFTU0VTKTogUmVuYW1lIHRvIExSQV9NQVhfSU5I RVJJVEFOQ0VfUEFTU0VTLgoJTW92ZSB0byBscmEtaW50LmguCgkqIGxyYS1p bnQuaCAoTFJBX01BWF9DT05TVFJBSU5UX0lURVJBVElPTl9OVU1CRVIpOiBN b3ZlIGZyb20KCWxyYS1jb25zdHJhaW50cy5jLgoJKExSQV9NQVhfSU5IRVJJ VEFOQ0VfUEFTU0VTKTogRGl0dG8uCgoJMjAxMi0xMi0yMSAgU3RldmUgRWxs Y2V5ICA8c2VsbGNleUBtaXBzLmNvbT4KCglQUiBib290c3RyYXAvNTQxMjgK CSogaXJhLmMgKGJ1aWxkX2luc25fY2hhaW4pOiBDaGVjayBvbmx5IE5PTkRF QlVHIGluc3RydWN0aW9ucyBmb3IKCXJlZ2lzdGVyIHVzYWdlLgoKCTIwMTIt MTItMTEgIEpha3ViIEplbGluZWsgIDxqYWt1YkByZWRoYXQuY29tPgoKCVBS IHJ0bC1vcHRpbWl6YXRpb24vNTUxOTMKCSogbHJhLWNvbnN0cmFpbnRzLmMg KGxvY19lcXVpdmFsZW5jZV9jYWxsYmFjayk6IE5ldyBmdW5jdGlvbi4KCShs cmFfY29uc3RyYWludHMpOiBDYWxsIHNpbXBsaWZ5X3JlcGxhY2VfZm5fcnR4 IGluc3RlYWQgb2YKCWxvY19lcXVpdmFsZW5jZV9jaGFuZ2VfcCBvbiBERUJV R19JTlNOcy4KCkluZGV4OiBpcmEtYnVpbGQuYwo9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09Ci0tLSBpcmEtYnVpbGQuYwkocmV2aXNpb24gMTk1MTAyKQorKysg aXJhLWJ1aWxkLmMJKHdvcmtpbmcgY29weSkKQEAgLTMwODAsNyArMzA4MCw3 IEBAIGlyYV9mbGF0dGVuaW5nIChpbnQgbWF4X3JlZ25vX2JlZm9yZV9lbWl0 LCBpbnQgaXJhCiAgICAgICBBTExPQ05PX0xPT1BfVFJFRV9OT0RFIChhKSA9 IGlyYV9sb29wX3RyZWVfcm9vdDsKICAgICAgIEFMTE9DTk9fUkVHTk8gKGEp ID0gUkVHTk8gKGFsbG9jbm9fZW1pdF9yZWcgKGEpKTsKICAgICAgIEFMTE9D Tk9fQ0FQIChhKSA9IE5VTEw7Ci0gICAgICAvKiBSZXN0b3JlIHVwZGF0ZWQg Y29zdHMgZm9yIGFzc2lnbm1lbnRzIGJ5IHJlbG9hZC4gICovCisgICAgICAv KiBSZXN0b3JlIHVwZGF0ZWQgY29zdHMgZm9yIGFzc2lnbm1lbnRzIGZyb20g cmVsb2FkLiAgKi8KICAgICAgIEFMTE9DTk9fVVBEQVRFRF9NRU1PUllfQ09T VCAoYSkgPSBBTExPQ05PX01FTU9SWV9DT1NUIChhKTsKICAgICAgIEFMTE9D Tk9fVVBEQVRFRF9DTEFTU19DT1NUIChhKSA9IEFMTE9DTk9fQ0xBU1NfQ09T VCAoYSk7CiAgICAgICBpZiAoISBBTExPQ05PX0FTU0lHTkVEX1AgKGEpKQpJ bmRleDogaXJhLmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gaXJhLmMJ KHJldmlzaW9uIDE5NTEwMikKKysrIGlyYS5jCSh3b3JraW5nIGNvcHkpCkBA IC0zNTYzLDcgKzM1NjMsNyBAQCBidWlsZF9pbnNuX2NoYWluICh2b2lkKQog CSAgICAgIGMtPmluc24gPSBpbnNuOwogCSAgICAgIGMtPmJsb2NrID0gYmIt PmluZGV4OwogCi0JICAgICAgaWYgKElOU05fUCAoaW5zbikpCisJICAgICAg aWYgKE5PTkRFQlVHX0lOU05fUCAoaW5zbikpCiAJCWZvciAoZGVmX3JlYyA9 IERGX0lOU05fVUlEX0RFRlMgKHVpZCk7ICpkZWZfcmVjOyBkZWZfcmVjKysp CiAJCSAgewogCQkgICAgZGZfcmVmIGRlZiA9ICpkZWZfcmVjOwpAQCAtMzY1 NCw3ICszNjU0LDcgQEAgYnVpbGRfaW5zbl9jaGFpbiAodm9pZCkKIAkgICAg ICBiaXRtYXBfYW5kX2NvbXBsX2ludG8gKGxpdmVfcmVsZXZhbnRfcmVncywg ZWxpbV9yZWdzZXQpOwogCSAgICAgIGJpdG1hcF9jb3B5ICgmYy0+bGl2ZV90 aHJvdWdob3V0LCBsaXZlX3JlbGV2YW50X3JlZ3MpOwogCi0JICAgICAgaWYg KElOU05fUCAoaW5zbikpCisJICAgICAgaWYgKE5PTkRFQlVHX0lOU05fUCAo aW5zbikpCiAJCWZvciAodXNlX3JlYyA9IERGX0lOU05fVUlEX1VTRVMgKHVp ZCk7ICp1c2VfcmVjOyB1c2VfcmVjKyspCiAJCSAgewogCQkgICAgZGZfcmVm IHVzZSA9ICp1c2VfcmVjOwpJbmRleDogbHJhLWludC5oCj09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0KLS0tIGxyYS1pbnQuaAkocmV2aXNpb24gMTk1MTAyKQor KysgbHJhLWludC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNDksNiArMjQ5LDI1 IEBAIHR5cGVkZWYgc3RydWN0IGxyYV9pbnNuX3JlY29nX2RhdGEgKmxyYV9p bnNuX3JlY29nCiAjZGVmaW5lIExSQV9MT1NFUl9DT1NUX0ZBQ1RPUiA2CiAj ZGVmaW5lIExSQV9NQVhfUkVKRUNUIDYwMAogCisvKiBNYXhpbXVtIGFsbG93 ZWQgbnVtYmVyIG9mIGNvbnN0cmFpbnQgcGFzcyBpdGVyYXRpb25zIGFmdGVy IHRoZSBsYXN0CisgICBzcGlsbCBwYXNzLglJdCBpcyBmb3IgcHJldmVudGlu ZyBMUkEgY3ljbGluZyBpbiBhIGJ1ZyBjYXNlLgkgKi8KKyNkZWZpbmUgTFJB X01BWF9DT05TVFJBSU5UX0lURVJBVElPTl9OVU1CRVIgMzAKKworLyogVGhl IG1heGltYWwgbnVtYmVyIG9mIGluaGVyaXRhbmNlL3NwbGl0IHBhc3NlcyBp biBMUkEuICBJdCBzaG91bGQKKyAgIGJlIG1vcmUgMSBpbiBvcmRlciB0byBw ZXJmb3JtIGNhbGxlciBzYXZlcyB0cmFuc2Zvcm1hdGlvbnMgYW5kIG11Y2gK KyAgIGxlc3MgTUFYX0NPTlNUUkFJTlRfSVRFUkFUSU9OX05VTUJFUiB0byBw cmV2ZW50IExSQSB0byBkbyBhcyBtYW55CisgICBhcyBwZXJtaXR0ZWQgY29u c3RyYWludCBwYXNzZXMgaW4gc29tZSBjb21wbGljYXRlZCBjYXNlcy4gIFRo ZQorICAgZmlyc3QgaW5oZXJpdGFuY2Uvc3BsaXQgcGFzcyBoYXMgYSBiaWdn ZXN0IGltcGFjdCBvbiBnZW5lcmF0ZWQgY29kZQorICAgcXVhbGl0eS4gIEVh Y2ggc3Vic2VxdWVudCBhZmZlY3RzIGdlbmVyYXRlZCBjb2RlIGluIGxlc3Mg ZGVncmVlLgorICAgRm9yIGV4YW1wbGUsIHRoZSAzcmQgcGFzcyBkb2VzIG5v dCBjaGFuZ2UgZ2VuZXJhdGVkIFNQRUMyMDAwIGNvZGUKKyAgIGF0IGFsbCBv biB4ODYtNjQuICAqLworI2RlZmluZSBMUkFfTUFYX0lOSEVSSVRBTkNFX1BB U1NFUyAyCisKKyNpZiBMUkFfTUFYX0lOSEVSSVRBTkNFX1BBU1NFUyA8PSAw IFwKKyAgICB8fCBMUkFfTUFYX0lOSEVSSVRBTkNFX1BBU1NFUyA+PSBMUkFf TUFYX0NPTlNUUkFJTlRfSVRFUkFUSU9OX05VTUJFUiAtIDgKKyNlcnJvciB3 cm9uZyBMUkFfTUFYX0lOSEVSSVRBTkNFX1BBU1NFUyB2YWx1ZQorI2VuZGlm CisKIC8qIGxyYS5jOiAqLwogCiBleHRlcm4gRklMRSAqbHJhX2R1bXBfZmls ZTsKSW5kZXg6IGxyYS1jb25zdHJhaW50cy5jCj09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0KLS0tIGxyYS1jb25zdHJhaW50cy5jCShyZXZpc2lvbiAxOTUxMDIp CisrKyBscmEtY29uc3RyYWludHMuYwkod29ya2luZyBjb3B5KQpAQCAtNjYw LDggKzY2MCw5IEBAIG5hcnJvd19yZWxvYWRfcHNldWRvX2NsYXNzIChydHgg cmVnLCBlbnVtIHJlZ19jbGFzCiAKIC8qIEdlbmVyYXRlIHJlbG9hZHMgZm9y IG1hdGNoaW5nIE9VVCBhbmQgSU5TIChhcnJheSBvZiBpbnB1dCBvcGVyYW5k CiAgICBudW1iZXJzIHdpdGggZW5kIG1hcmtlciAtMSkgd2l0aCByZWcgY2xh c3MgR09BTF9DTEFTUy4gIEFkZCBpbnB1dAotICAgYW5kIG91dHB1dCByZWxv YWRzIGNvcnJlc3BvbmRpbmdseSB0byB0aGUgbGlzdHMgKkJFRk9SRSBhbmQK LSAgICpBRlRFUi4gICovCisgICBhbmQgb3V0cHV0IHJlbG9hZHMgY29ycmVz cG9uZGluZ2x5IHRvIHRoZSBsaXN0cyAqQkVGT1JFIGFuZCAqQUZURVIuCisg ICBPVVQgbWlnaHQgYmUgbmVnYXRpdmUuICBJbiB0aGlzIGNhc2Ugd2UgZ2Vu ZXJhdGUgaW5wdXQgcmVsb2FkcyBmb3IKKyAgIG1hdGNoZWQgaW5wdXQgb3Bl cmFuZHMgSU5TLiAgKi8KIHN0YXRpYyB2b2lkCiBtYXRjaF9yZWxvYWQgKHNp Z25lZCBjaGFyIG91dCwgc2lnbmVkIGNoYXIgKmlucywgZW51bSByZWdfY2xh c3MgZ29hbF9jbGFzcywKIAkgICAgICBydHggKmJlZm9yZSwgcnR4ICphZnRl cikKQEAgLTY3MCwxMCArNjcxLDEwIEBAIG1hdGNoX3JlbG9hZCAoc2lnbmVk IGNoYXIgb3V0LCBzaWduZWQgY2hhciAqaW5zLCBlCiAgIHJ0eCBuZXdfaW5f cmVnLCBuZXdfb3V0X3JlZywgcmVnLCBjbG9iYmVyOwogICBlbnVtIG1hY2hp bmVfbW9kZSBpbm1vZGUsIG91dG1vZGU7CiAgIHJ0eCBpbl9ydHggPSAqY3Vy cl9pZC0+b3BlcmFuZF9sb2NbaW5zWzBdXTsKLSAgcnR4IG91dF9ydHggPSAq Y3Vycl9pZC0+b3BlcmFuZF9sb2Nbb3V0XTsKKyAgcnR4IG91dF9ydHggPSBv dXQgPCAwID8gaW5fcnR4IDogKmN1cnJfaWQtPm9wZXJhbmRfbG9jW291dF07 CiAKLSAgb3V0bW9kZSA9IGN1cnJfb3BlcmFuZF9tb2RlW291dF07CiAgIGlu bW9kZSA9IGN1cnJfb3BlcmFuZF9tb2RlW2luc1swXV07CisgIG91dG1vZGUg PSBvdXQgPCAwID8gaW5tb2RlIDogY3Vycl9vcGVyYW5kX21vZGVbb3V0XTsK ICAgcHVzaF90b19zZXF1ZW5jZSAoKmJlZm9yZSk7CiAgIGlmIChpbm1vZGUg IT0gb3V0bW9kZSkKICAgICB7CkBAIC03NTAsMTQgKzc1MSwxMyBAQCBtYXRj aF9yZWxvYWQgKHNpZ25lZCBjaGFyIG91dCwgc2lnbmVkIGNoYXIgKmlucywg ZQogCT0gbHJhX2NyZWF0ZV9uZXdfcmVnX3dpdGhfdW5pcXVlX3ZhbHVlIChv dXRtb2RlLCBvdXRfcnR4LAogCQkJCQkJZ29hbF9jbGFzcywgIiIpOwogICAg IH0KLSAgLyogSW4gYW5kIG91dCBvcGVyYW5kIGNhbiBiZSBnb3QgZnJvbSB0 cmFuc2Zvcm1hdGlvbnMgYmVmb3JlCi0gICAgIHByb2Nlc3NpbmcgaW5zbiBj b25zdHJhaW50cy4gIE9uZSBleGFtcGxlIG9mIHN1Y2ggdHJhbnNmb3JtYXRp b25zCi0gICAgIGlzIHN1YnJlZyByZWxvYWRpbmcgKHNlZSBmdW5jdGlvbiBz aW1wbGlmeV9vcGVyYW5kX3N1YnJlZykuICBUaGUKLSAgICAgbmV3IHBzZXVk b3MgY3JlYXRlZCBieSB0aGUgdHJhbnNmb3JtYXRpb25zIG1pZ2h0IGhhdmUg aW5hY2N1cmF0ZQorICAvKiBJbiBvcGVyYW5kIGNhbiBiZSBnb3QgZnJvbSB0 cmFuc2Zvcm1hdGlvbnMgYmVmb3JlIHByb2Nlc3NpbmcgaW5zbgorICAgICBj b25zdHJhaW50cy4gIE9uZSBleGFtcGxlIG9mIHN1Y2ggdHJhbnNmb3JtYXRp b25zIGlzIHN1YnJlZworICAgICByZWxvYWRpbmcgKHNlZSBmdW5jdGlvbiBz aW1wbGlmeV9vcGVyYW5kX3N1YnJlZykuICBUaGUgbmV3CisgICAgIHBzZXVk b3MgY3JlYXRlZCBieSB0aGUgdHJhbnNmb3JtYXRpb25zIG1pZ2h0IGhhdmUg aW5hY2N1cmF0ZQogICAgICBjbGFzcyAoQUxMX1JFR1MpIGFuZCB3ZSBzaG91 bGQgbWFrZSB0aGVpciBjbGFzc2VzIG1vcmUKICAgICAgYWNjdXJhdGUuICAq LwogICBuYXJyb3dfcmVsb2FkX3BzZXVkb19jbGFzcyAoaW5fcnR4LCBnb2Fs X2NsYXNzKTsKLSAgbmFycm93X3JlbG9hZF9wc2V1ZG9fY2xhc3MgKG91dF9y dHgsIGdvYWxfY2xhc3MpOwogICBscmFfZW1pdF9tb3ZlIChjb3B5X3J0eCAo bmV3X2luX3JlZyksIGluX3J0eCk7CiAgICpiZWZvcmUgPSBnZXRfaW5zbnMg KCk7CiAgIGVuZF9zZXF1ZW5jZSAoKTsKQEAgLTc2OSw2ICs3NjksMTAgQEAg bWF0Y2hfcmVsb2FkIChzaWduZWQgY2hhciBvdXQsIHNpZ25lZCBjaGFyICpp bnMsIGUKICAgICAgICpjdXJyX2lkLT5vcGVyYW5kX2xvY1tpbl0gPSBuZXdf aW5fcmVnOwogICAgIH0KICAgbHJhX3VwZGF0ZV9kdXBzIChjdXJyX2lkLCBp bnMpOworICBpZiAob3V0IDwgMCkKKyAgICByZXR1cm47CisgIC8qIFNlZSBh IGNvbW1lbnQgZm9yIHRoZSBpbnB1dCBvcGVyYW5kIGFib3ZlLiAgKi8KKyAg bmFycm93X3JlbG9hZF9wc2V1ZG9fY2xhc3MgKG91dF9ydHgsIGdvYWxfY2xh c3MpOwogICBpZiAoZmluZF9yZWdfbm90ZSAoY3Vycl9pbnNuLCBSRUdfVU5V U0VELCBvdXRfcnR4KSA9PSBOVUxMX1JUWCkKICAgICB7CiAgICAgICBzdGFy dF9zZXF1ZW5jZSAoKTsKQEAgLTE1MTYsNyArMTUyMCwxNyBAQCBwcm9jZXNz X2FsdF9vcGVyYW5kcyAoaW50IG9ubHlfYWx0ZXJuYXRpdmUpCiAJCSAgICBt YXRjaF9wID0gZmFsc2U7CiAJCSAgICBpZiAob3BlcmFuZHNfbWF0Y2hfcCAo KmN1cnJfaWQtPm9wZXJhbmRfbG9jW25vcF0sCiAJCQkJCSAgKmN1cnJfaWQt Pm9wZXJhbmRfbG9jW21dLCBtX2hyZWdubykpCi0JCSAgICAgIG1hdGNoX3Ag PSB0cnVlOworCQkgICAgICB7CisJCQkvKiBXZSBzaG91bGQgcmVqZWN0IG1h dGNoaW5nIG9mIGFuIGVhcmx5CisJCQkgICBjbG9iYmVyIG9wZXJhbmQgaWYg dGhlIG1hdGNoaW5nIG9wZXJhbmQgaXMKKwkJCSAgIG5vdCBkeWluZyBpbiB0 aGUgaW5zbi4gICovCisJCQlpZiAoISBjdXJyX3N0YXRpY19pZC0+b3BlcmFu ZFttXS5lYXJseV9jbG9iYmVyCisJCQkgICAgfHwgb3BlcmFuZF9yZWdbbm9w XSA9PSBOVUxMX1JUWAorCQkJICAgIHx8IChmaW5kX3JlZ25vX25vdGUgKGN1 cnJfaW5zbiwgUkVHX0RFQUQsCisJCQkJCQkgUkVHTk8gKG9wZXJhbmRfcmVn W25vcF0pKQorCQkJCQkJICE9IE5VTExfUlRYKSkKKwkJCSAgbWF0Y2hfcCA9 IHRydWU7CisJCSAgICAgIH0KIAkJICAgIGlmIChtYXRjaF9wKQogCQkgICAg ICB7CiAJCQkvKiBJZiB3ZSBhcmUgbWF0Y2hpbmcgYSBub24tb2Zmc2V0dGFi bGUKQEAgLTI2MTEsNiArMjYyNSw3IEBAIGN1cnJfaW5zbl90cmFuc2Zvcm0g KHZvaWQpCiAgIGludCBuX2FsdGVybmF0aXZlczsKICAgaW50IGNvbW11dGF0 aXZlOwogICBzaWduZWQgY2hhciBnb2FsX2FsdF9tYXRjaGVkW01BWF9SRUNP R19PUEVSQU5EU11bTUFYX1JFQ09HX09QRVJBTkRTXTsKKyAgc2lnbmVkIGNo YXIgbWF0Y2hfaW5wdXRzW01BWF9SRUNPR19PUEVSQU5EUyArIDFdOwogICBy dHggYmVmb3JlLCBhZnRlcjsKICAgYm9vbCBhbHRfcCA9IGZhbHNlOwogICAv KiBGbGFnIHRoYXQgdGhlIGluc24gaGFzIGJlZW4gY2hhbmdlZCB0aHJvdWdo IGEgdHJhbnNmb3JtYXRpb24uICAqLwpAQCAtMzA2OSwxNyArMzA4NCwyOCBA QCBjdXJyX2luc25fdHJhbnNmb3JtICh2b2lkKQogCSAgICAgICAmJiAoY3Vy cl9zdGF0aWNfaWQtPm9wZXJhbmRbZ29hbF9hbHRfbWF0Y2hlZFtpXVswXV0u dHlwZQogCQkgICA9PSBPUF9PVVQpKQogCXsKLQkgIHNpZ25lZCBjaGFyIGFy clsyXTsKLQotCSAgYXJyWzBdID0gaTsKLQkgIGFyclsxXSA9IC0xOwotCSAg bWF0Y2hfcmVsb2FkIChnb2FsX2FsdF9tYXRjaGVkW2ldWzBdLCBhcnIsCisJ ICAvKiBnZW5lcmF0ZSByZWxvYWRzIGZvciBpbnB1dCBhbmQgbWF0Y2hlZCBv dXRwdXRzLiAgKi8KKwkgIG1hdGNoX2lucHV0c1swXSA9IGk7CisJICBtYXRj aF9pbnB1dHNbMV0gPSAtMTsKKwkgIG1hdGNoX3JlbG9hZCAoZ29hbF9hbHRf bWF0Y2hlZFtpXVswXSwgbWF0Y2hfaW5wdXRzLAogCQkJZ29hbF9hbHRbaV0s ICZiZWZvcmUsICZhZnRlcik7CiAJfQogICAgICAgZWxzZSBpZiAoY3Vycl9z dGF0aWNfaWQtPm9wZXJhbmRbaV0udHlwZSA9PSBPUF9PVVQKIAkgICAgICAg JiYgKGN1cnJfc3RhdGljX2lkLT5vcGVyYW5kW2dvYWxfYWx0X21hdGNoZWRb aV1bMF1dLnR5cGUKIAkJICAgPT0gT1BfSU4pKQorCS8qIEdlbmVyYXRlIHJl bG9hZHMgZm9yIG91dHB1dCBhbmQgbWF0Y2hlZCBpbnB1dHMuICAqLwogCW1h dGNoX3JlbG9hZCAoaSwgZ29hbF9hbHRfbWF0Y2hlZFtpXSwgZ29hbF9hbHRb aV0sICZiZWZvcmUsICZhZnRlcik7CisgICAgICBlbHNlIGlmIChjdXJyX3N0 YXRpY19pZC0+b3BlcmFuZFtpXS50eXBlID09IE9QX0lOCisJICAgICAgICYm IChjdXJyX3N0YXRpY19pZC0+b3BlcmFuZFtnb2FsX2FsdF9tYXRjaGVkW2ld WzBdXS50eXBlCisJCSAgID09IE9QX0lOKSkKKwl7CisJICAvKiBHZW5lcmF0 ZSByZWxvYWRzIGZvciBtYXRjaGVkIGlucHV0cy4gICovCisJICBtYXRjaF9p bnB1dHNbMF0gPSBpOworCSAgZm9yIChqID0gMDsgKGsgPSBnb2FsX2FsdF9t YXRjaGVkW2ldW2pdKSA+PSAwOyBqKyspCisJICAgIG1hdGNoX2lucHV0c1tq ICsgMV0gPSBrOworCSAgbWF0Y2hfaW5wdXRzW2ogKyAxXSA9IC0xOworCSAg bWF0Y2hfcmVsb2FkICgtMSwgbWF0Y2hfaW5wdXRzLCBnb2FsX2FsdFtpXSwg JmJlZm9yZSwgJmFmdGVyKTsKKwl9CiAgICAgICBlbHNlCiAJLyogV2UgbXVz dCBnZW5lcmF0ZSBjb2RlIGluIGFueSBjYXNlIHdoZW4gZnVuY3Rpb24KIAkg ICBwcm9jZXNzX2FsdF9vcGVyYW5kcyBkZWNpZGVzIHRoYXQgaXQgaXMgcG9z c2libGUuICAqLwpAQCAtMzIwMywxMCArMzIyOSwyMSBAQCBsb2NfZXF1aXZh bGVuY2VfY2hhbmdlX3AgKHJ0eCAqbG9jKQogICByZXR1cm4gcmVzdWx0Owog fQogCi0vKiBNYXhpbXVtIGFsbG93ZWQgbnVtYmVyIG9mIGNvbnN0cmFpbnQg cGFzcyBpdGVyYXRpb25zIGFmdGVyIHRoZSBsYXN0Ci0gICBzcGlsbCBwYXNz LglJdCBpcyBmb3IgcHJldmVudGluZyBMUkEgY3ljbGluZyBpbiBhIGJ1ZyBj YXNlLgkgKi8KLSNkZWZpbmUgTUFYX0NPTlNUUkFJTlRfSVRFUkFUSU9OX05V TUJFUiAzMAorLyogU2ltaWxhciB0byBsb2NfZXF1aXZhbGVuY2VfY2hhbmdl X3AsIGJ1dCBmb3IgdXNlIGFzCisgICBzaW1wbGlmeV9yZXBsYWNlX2ZuX3J0 eCBjYWxsYmFjay4gICovCitzdGF0aWMgcnR4Citsb2NfZXF1aXZhbGVuY2Vf Y2FsbGJhY2sgKHJ0eCBsb2MsIGNvbnN0X3J0eCwgdm9pZCAqKQoreworICBp ZiAoIVJFR19QIChsb2MpKQorICAgIHJldHVybiBOVUxMX1JUWDsKIAorICBy dHggc3Vic3QgPSBnZXRfZXF1aXZfc3Vic3RpdHV0aW9uIChsb2MpOworICBp ZiAoc3Vic3QgIT0gbG9jKQorICAgIHJldHVybiBzdWJzdDsKKworICByZXR1 cm4gTlVMTF9SVFg7Cit9CisKIC8qIE1heGltdW0gbnVtYmVyIG9mIGdlbmVy YXRlZCByZWxvYWQgaW5zbnMgcGVyIGFuIGluc24uICBJdCBpcyBmb3IKICAg IHByZXZlbnRpbmcgdGhpcyBwYXNzIGN5Y2xpbmcgaW4gYSBidWcgY2FzZS4J Ki8KICNkZWZpbmUgTUFYX1JFTE9BRF9JTlNOU19OVU1CRVIgTFJBX01BWF9J TlNOX1JFTE9BRFMKQEAgLTMzMzAsMTAgKzMzNjcsMTAgQEAgbHJhX2NvbnN0 cmFpbnRzIChib29sIGZpcnN0X3ApCiAgICAgZnByaW50ZiAobHJhX2R1bXBf ZmlsZSwgIlxuKioqKioqKioqKiBMb2NhbCAjJWQ6ICoqKioqKioqKipcblxu IiwKIAkgICAgIGxyYV9jb25zdHJhaW50X2l0ZXIpOwogICBscmFfY29uc3Ry YWludF9pdGVyX2FmdGVyX3NwaWxsKys7Ci0gIGlmIChscmFfY29uc3RyYWlu dF9pdGVyX2FmdGVyX3NwaWxsID4gTUFYX0NPTlNUUkFJTlRfSVRFUkFUSU9O X05VTUJFUikKKyAgaWYgKGxyYV9jb25zdHJhaW50X2l0ZXJfYWZ0ZXJfc3Bp bGwgPiBMUkFfTUFYX0NPTlNUUkFJTlRfSVRFUkFUSU9OX05VTUJFUikKICAg ICBpbnRlcm5hbF9lcnJvcgogICAgICAgKCJNYXhpbXVtIG51bWJlciBvZiBM UkEgY29uc3RyYWludCBwYXNzZXMgaXMgYWNoaWV2ZWQgKCVkKVxuIiwKLSAg ICAgICBNQVhfQ09OU1RSQUlOVF9JVEVSQVRJT05fTlVNQkVSKTsKKyAgICAg ICBMUkFfTUFYX0NPTlNUUkFJTlRfSVRFUkFUSU9OX05VTUJFUik7CiAgIGNo YW5nZWRfcCA9IGZhbHNlOwogICBscmFfcmlza3lfdHJhbnNmb3JtYXRpb25z X3AgPSBmYWxzZTsKICAgbmV3X2luc25fdWlkX3N0YXJ0ID0gZ2V0X21heF91 aWQgKCk7CkBAIC0zNDM5LDExICszNDc2LDE3IEBAIGxyYV9jb25zdHJhaW50 cyAoYm9vbCBmaXJzdF9wKQogCSAgLyogV2UgbmVlZCB0byBjaGVjayBlcXVp dmFsZW5jZSBpbiBkZWJ1ZyBpbnNuIGFuZCBjaGFuZ2UKIAkgICAgIHBzZXVk byB0byB0aGUgZXF1aXZhbGVudCB2YWx1ZSBpZiBuZWNlc3NhcnkuICAqLwog CSAgY3Vycl9pZCA9IGxyYV9nZXRfaW5zbl9yZWNvZ19kYXRhIChjdXJyX2lu c24pOwotCSAgaWYgKGJpdG1hcF9iaXRfcCAoJmVxdWl2X2luc25fYml0bWFw LCBJTlNOX1VJRCAoY3Vycl9pbnNuKSkKLQkgICAgICAmJiBsb2NfZXF1aXZh bGVuY2VfY2hhbmdlX3AgKGN1cnJfaWQtPm9wZXJhbmRfbG9jWzBdKSkKKwkg IGlmIChiaXRtYXBfYml0X3AgKCZlcXVpdl9pbnNuX2JpdG1hcCwgSU5TTl9V SUQgKGN1cnJfaW5zbikpKQogCSAgICB7Ci0JICAgICAgbHJhX3VwZGF0ZV9p bnNuX3JlZ25vX2luZm8gKGN1cnJfaW5zbik7Ci0JICAgICAgY2hhbmdlZF9w ID0gdHJ1ZTsKKwkgICAgICBydHggb2xkID0gKmN1cnJfaWQtPm9wZXJhbmRf bG9jWzBdOworCSAgICAgICpjdXJyX2lkLT5vcGVyYW5kX2xvY1swXQorCQk9 IHNpbXBsaWZ5X3JlcGxhY2VfZm5fcnR4IChvbGQsIE5VTExfUlRYLAorCQkJ CQkgICBsb2NfZXF1aXZhbGVuY2VfY2FsbGJhY2ssIE5VTEwpOworCSAgICAg IGlmIChvbGQgIT0gKmN1cnJfaWQtPm9wZXJhbmRfbG9jWzBdKQorCQl7CisJ CSAgbHJhX3VwZGF0ZV9pbnNuX3JlZ25vX2luZm8gKGN1cnJfaW5zbik7CisJ CSAgY2hhbmdlZF9wID0gdHJ1ZTsKKwkJfQogCSAgICB9CiAJfQogICAgICAg ZWxzZSBpZiAoSU5TTl9QIChjdXJyX2luc24pKQpAQCAtNDY5NCwyMSArNDcz Nyw2IEBAIGluaGVyaXRfaW5fZWJiIChydHggaGVhZCwgcnR4IHRhaWwpCiAg IHJldHVybiBjaGFuZ2VfcDsKIH0KIAotLyogVGhlIG1heGltYWwgbnVtYmVy IG9mIGluaGVyaXRhbmNlL3NwbGl0IHBhc3NlcyBpbiBMUkEuICBJdCBzaG91 bGQKLSAgIGJlIG1vcmUgMSBpbiBvcmRlciB0byBwZXJmb3JtIGNhbGxlciBz YXZlcyB0cmFuc2Zvcm1hdGlvbnMgYW5kIG11Y2gKLSAgIGxlc3MgTUFYX0NP TlNUUkFJTlRfSVRFUkFUSU9OX05VTUJFUiB0byBwcmV2ZW50IExSQSB0byBk byBhcyBtYW55Ci0gICBhcyBwZXJtaXR0ZWQgY29uc3RyYWludCBwYXNzZXMg aW4gc29tZSBjb21wbGljYXRlZCBjYXNlcy4gIFRoZQotICAgZmlyc3QgaW5o ZXJpdGFuY2Uvc3BsaXQgcGFzcyBoYXMgYSBiaWdnZXN0IGltcGFjdCBvbiBn ZW5lcmF0ZWQgY29kZQotICAgcXVhbGl0eS4gIEVhY2ggc3Vic2VxdWVudCBh ZmZlY3RzIGdlbmVyYXRlZCBjb2RlIGluIGxlc3MgZGVncmVlLgotICAgRm9y IGV4YW1wbGUsIHRoZSAzcmQgcGFzcyBkb2VzIG5vdCBjaGFuZ2UgZ2VuZXJh dGVkIFNQRUMyMDAwIGNvZGUKLSAgIGF0IGFsbCBvbiB4ODYtNjQuICAqLwot I2RlZmluZSBNQVhfSU5IRVJJVEFOQ0VfUEFTU0VTIDIKLQotI2lmIE1BWF9J TkhFUklUQU5DRV9QQVNTRVMgPD0gMCBcCi0gICAgfHwgTUFYX0lOSEVSSVRB TkNFX1BBU1NFUyA+PSBNQVhfQ09OU1RSQUlOVF9JVEVSQVRJT05fTlVNQkVS IC0gOAotI2Vycm9yIHdyb25nIE1BWF9JTkhFUklUQU5DRV9QQVNTRVMgdmFs dWUKLSNlbmRpZgotCiAvKiBUaGlzIHZhbHVlIGFmZmVjdHMgRUJCIGZvcm1p bmcuICBJZiBwcm9iYWJpbGl0eSBvZiBlZGdlIGZyb20gRUJCIHRvCiAgICBh IEJCIGlzIG5vdCBncmVhdGVyIHRoYW4gdGhlIGZvbGxvd2luZyB2YWx1ZSwg d2UgZG9uJ3QgYWRkIHRoZSBCQgogICAgdG8gRUJCLiAgKi8KQEAgLTQ3MjYs NyArNDc1NCw3IEBAIGxyYV9pbmhlcml0YW5jZSAodm9pZCkKICAgZWRnZSBl OwogCiAgIGxyYV9pbmhlcml0YW5jZV9pdGVyKys7Ci0gIGlmIChscmFfaW5o ZXJpdGFuY2VfaXRlciA+IE1BWF9JTkhFUklUQU5DRV9QQVNTRVMpCisgIGlm IChscmFfaW5oZXJpdGFuY2VfaXRlciA+IExSQV9NQVhfSU5IRVJJVEFOQ0Vf UEFTU0VTKQogICAgIHJldHVybjsKICAgdGltZXZhcl9wdXNoIChUVl9MUkFf SU5IRVJJVEFOQ0UpOwogICBpZiAobHJhX2R1bXBfZmlsZSAhPSBOVUxMKQpA QCAtNDk5Niw3ICs1MDI0LDcgQEAgbHJhX3VuZG9faW5oZXJpdGFuY2UgKHZv aWQpCiAgIGJvb2wgY2hhbmdlX3A7CiAKICAgbHJhX3VuZG9faW5oZXJpdGFu Y2VfaXRlcisrOwotICBpZiAobHJhX3VuZG9faW5oZXJpdGFuY2VfaXRlciA+ IE1BWF9JTkhFUklUQU5DRV9QQVNTRVMpCisgIGlmIChscmFfdW5kb19pbmhl cml0YW5jZV9pdGVyID4gTFJBX01BWF9JTkhFUklUQU5DRV9QQVNTRVMpCiAg ICAgcmV0dXJuIGZhbHNlOwogICBpZiAobHJhX2R1bXBfZmlsZSAhPSBOVUxM KQogICAgIGZwcmludGYgKGxyYV9kdW1wX2ZpbGUsCkluZGV4OiBscmEtYXNz aWducy5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGxyYS1hc3NpZ25z LmMJKHJldmlzaW9uIDE5NTEwMikKKysrIGxyYS1hc3NpZ25zLmMJKHdvcmtp bmcgY29weSkKQEAgLTEwODQsNiArMTA4NCw4IEBAIGltcHJvdmVfaW5oZXJp dGFuY2UgKGJpdG1hcCBjaGFuZ2VkX3BzZXVkb3MpCiAgIGxyYV9jb3B5X3Qg Y3AsIG5leHRfY3A7CiAgIGJpdG1hcF9pdGVyYXRvciBiaTsKIAorICBpZiAo bHJhX2luaGVyaXRhbmNlX2l0ZXIgPiBMUkFfTUFYX0lOSEVSSVRBTkNFX1BB U1NFUykKKyAgICByZXR1cm47CiAgIG4gPSAwOwogICBFWEVDVVRFX0lGX1NF VF9JTl9CSVRNQVAgKCZscmFfaW5oZXJpdGFuY2VfcHNldWRvcywgMCwgaywg YmkpCiAgICAgaWYgKHJlZ19yZW51bWJlcltrXSA+PSAwICYmIGxyYV9yZWdf aW5mb1trXS5ucmVmcyAhPSAwKQpJbmRleDogbHJhLWVsaW1pbmF0aW9ucy5j Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGxyYS1lbGltaW5hdGlvbnMu YwkocmV2aXNpb24gMTk1MTAyKQorKysgbHJhLWVsaW1pbmF0aW9ucy5jCSh3 b3JraW5nIGNvcHkpCkBAIC02NTcsNyArNjU3LDcgQEAgbWFya19ub3RfZWxp bWluYWJsZSAocnR4IHgpCiAgICAgY2FzZSBQUkVfTU9ESUZZOgogICAgICAg aWYgKFJFR19QIChYRVhQICh4LCAwKSkgJiYgUkVHTk8gKFhFWFAgKHgsIDAp KSA8IEZJUlNUX1BTRVVET19SRUdJU1RFUikKIAkvKiBJZiB3ZSBtb2RpZnkg dGhlIHNvdXJjZSBvZiBhbiBlbGltaW5hdGlvbiBydWxlLCBkaXNhYmxlCi0J ICAgaXQuIERvIHRoZSBzYW1lIGlmIGl0IGlzIHRoZSBzb3VyY2UgYW5kIG5v dCB0aGUgaGFyZCBmcmFtZQorCSAgIGl0LiAgRG8gdGhlIHNhbWUgaWYgaXQg aXMgdGhlIHNvdXJjZSBhbmQgbm90IHRoZSBoYXJkIGZyYW1lCiAJICAgcmVn aXN0ZXIuICAqLwogCWZvciAoZXAgPSByZWdfZWxpbWluYXRlOwogCSAgICAg ZXAgPCAmcmVnX2VsaW1pbmF0ZVtOVU1fRUxJTUlOQUJMRV9SRUdTXTsKQEAg LTcxNiw3ICs3MTYsMTAgQEAgbWFya19ub3RfZWxpbWluYWJsZSAocnR4IHgp CiAJICAgICAgIGVwIDwgJnJlZ19lbGltaW5hdGVbTlVNX0VMSU1JTkFCTEVf UkVHU107CiAJICAgICAgIGVwKyspCiAJICAgIGlmIChlcC0+dG9fcnR4ID09 IFNFVF9ERVNUICh4KQotCQkmJiBTRVRfREVTVCAoeCkgIT0gaGFyZF9mcmFt ZV9wb2ludGVyX3J0eCkKKwkJJiYgU0VUX0RFU1QgKHgpICE9IGhhcmRfZnJh bWVfcG9pbnRlcl9ydHgKKwkJJiYgKEdFVF9DT0RFIChTRVRfU1JDICh4KSkg IT0gUExVUworCQkgICAgfHwgWEVYUCAoU0VUX1NSQyAoeCksIDApICE9IFNF VF9ERVNUICh4KQorCQkgICAgfHwgISBDT05TVF9JTlRfUCAoWEVYUCAoU0VU X1NSQyAoeCksIDEpKSkpCiAJICAgICAgc2V0dXBfY2FuX2VsaW1pbmF0ZSAo ZXAsIGZhbHNlKTsKIAl9CiAK --14dae9cfce94ba498704d30af934--