From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 31475 invoked by alias); 28 Jun 2011 18:54:12 -0000 Received: (qmail 31466 invoked by uid 22791); 28 Jun 2011 18:54:11 -0000 X-SWARE-Spam-Status: No, hits=-2.3 required=5.0 tests=AWL,BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM,RCVD_IN_DNSWL_LOW,TW_GM,TW_PM X-Spam-Check-By: sourceware.org Received: from mail-qy0-f175.google.com (HELO mail-qy0-f175.google.com) (209.85.216.175) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Tue, 28 Jun 2011 18:53:56 +0000 Received: by qyk30 with SMTP id 30so2144374qyk.20 for ; Tue, 28 Jun 2011 11:53:55 -0700 (PDT) MIME-Version: 1.0 Received: by 10.224.219.10 with SMTP id hs10mr6027989qab.80.1309287234537; Tue, 28 Jun 2011 11:53:54 -0700 (PDT) Received: by 10.229.214.83 with HTTP; Tue, 28 Jun 2011 11:53:54 -0700 (PDT) In-Reply-To: <4E089A88.60401@redhat.com> References: <20110625161357.GA5401@intel.com> <4E078E58.20903@redhat.com> <4E07A879.70509@redhat.com> <4E089A88.60401@redhat.com> Date: Tue, 28 Jun 2011 19:25:00 -0000 Message-ID: Subject: Re: PATCH [8/n]: Prepare x32: PR other/48007: Unwind library doesn't work with UNITS_PER_WORD > sizeof (void *) From: "H.J. Lu" To: Jason Merrill Cc: gcc-patches@gcc.gnu.org, Richard Henderson , Jakub Jelinek Content-Type: multipart/mixed; boundary=20cf3010edd586080204a6ca3027 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: 2011-06/txt/msg02165.txt.bz2 --20cf3010edd586080204a6ca3027 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Content-length: 2768 On Mon, Jun 27, 2011 at 7:58 AM, Jason Merrill wrote: > On 06/26/2011 05:58 PM, H.J. Lu wrote: >> >> The current unwind library scheme provides only one unwind >> context and is backward compatible with multiple different unwind >> contexts from multiple unwind libraries: >> >> http://gcc.gnu.org/ml/gcc-patches/2006-12/msg01769.html >> >> My patch fixes UNITS_PER_WORD > sizeof (void *) and >> enforces single unwind context when backward compatibility >> isn't needed. > > OK, there seem to be two things going on in this patch: > > 1) Handle registers larger than pointers. > 2) Require that all code share a single copy of the unwinder. > > For #2, how are you avoiding the issues Jakub describes in that message? > =A0Isn't his scenario 2 still possible? =A0Are you deciding that it's bet= ter to > abort at run-time in that case? > > It seems to me that for targets newer than Jakub's patch we can hard-wire > _Unwind_IsExtendedContext to true, but making further assumptions would b= e a > mistake. > > Then, if we're still trying to handle versioning, I think your earlier pa= tch > for #1 (r170716) that just changes the type of the reg array is a better = way > to go. =A0But that change should be dependent on a target macro to avoid = ABI > changes for existing targets. > This updated patch. It allows multiple unwind contexts. It replaces char by_value[DWARF_FRAME_REGISTERS+1]; with _Unwind_Word value[DWARF_FRAME_REGISTERS+1]; The code is cleaner than conditionally replacing void *reg[DWARF_FRAME_REGISTERS+1]; with _Unwind_Word reg[DWARF_FRAME_REGISTERS+1]; with a bigger unwind context. But it is more flexible if we want to extend unwind context later, like saving/restoring 128bit or vector registers which may be bigger than the current _Unwind_Word. Thanks. --=20 H.J. ---- gcc/ 2011-06-28 H.J. Lu * config.gcc (libgcc_tm_file): Add i386/value-unwind.h for Linux/x86. * system.h (REG_VALUE_IN_UNWIND_CONTEXT): Poisoned. * unwind-dw2.c (_Unwind_Context): If REG_VALUE_IN_UNWIND_CONTEXT is defined, add value and remove by_value. (SIGNAL_FRAME_BIT): Define if REG_VALUE_IN_UNWIND_CONTEXT is defined. (EXTENDED_CONTEXT_BIT): Don't define if REG_VALUE_IN_UNWIND_CONTEXT is defined. (_Unwind_IsExtendedContext): Likewise. (_Unwind_GetGR): Support REG_VALUE_IN_UNWIND_CONTEXT. (_Unwind_SetGR): Likewise. (_Unwind_GetGRPtr): Likewise. (_Unwind_SetGRPtr): Likewise. (_Unwind_SetGRValue): Likewise. (_Unwind_GRByValue): Likewise. (__frame_state_for): Likewise. (uw_install_context_1): Likewise. * doc/tm.texi.in: Document REG_VALUE_IN_UNWIND_CONTEXT. * doc/tm.texi: Regenerated. libgcc/ 2011-06-28 H.J. Lu * config/i386/value-unwind.h: New. --20cf3010edd586080204a6ca3027 Content-Type: text/plain; charset=US-ASCII; name="gcc-x32-pr48007-3.patch" Content-Disposition: attachment; filename="gcc-x32-pr48007-3.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_gph7k9gn0 Content-length: 12912 Z2NjLwoKMjAxMS0wNi0yOCAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwu Y29tPgoKCSogY29uZmlnLmdjYyAobGliZ2NjX3RtX2ZpbGUpOiBBZGQgaTM4 Ni92YWx1ZS11bndpbmQuaCBmb3IKCUxpbnV4L3g4Ni4KCgkqIHN5c3RlbS5o IChSRUdfVkFMVUVfSU5fVU5XSU5EX0NPTlRFWFQpOiBQb2lzb25lZC4KCgkq IHVud2luZC1kdzIuYyAoX1Vud2luZF9Db250ZXh0KTogSWYgUkVHX1ZBTFVF X0lOX1VOV0lORF9DT05URVhUCglpcyBkZWZpbmVkLCBhZGQgdmFsdWUgYW5k IHJlbW92ZSBieV92YWx1ZS4KCShTSUdOQUxfRlJBTUVfQklUKTogRGVmaW5l IGlmIFJFR19WQUxVRV9JTl9VTldJTkRfQ09OVEVYVCBpcwoJZGVmaW5lZC4K CShFWFRFTkRFRF9DT05URVhUX0JJVCk6IERvbid0IGRlZmluZSBpZiBSRUdf VkFMVUVfSU5fVU5XSU5EX0NPTlRFWFQKCWlzIGRlZmluZWQuCgkoX1Vud2lu ZF9Jc0V4dGVuZGVkQ29udGV4dCk6IExpa2V3aXNlLgoJKF9VbndpbmRfR2V0 R1IpOiBTdXBwb3J0IFJFR19WQUxVRV9JTl9VTldJTkRfQ09OVEVYVC4KCShf VW53aW5kX1NldEdSKTogTGlrZXdpc2UuCgkoX1Vud2luZF9HZXRHUlB0cik6 IExpa2V3aXNlLgoJKF9VbndpbmRfU2V0R1JQdHIpOiBMaWtld2lzZS4KCShf VW53aW5kX1NldEdSVmFsdWUpOiBMaWtld2lzZS4KCShfVW53aW5kX0dSQnlW YWx1ZSk6IExpa2V3aXNlLgoJKF9fZnJhbWVfc3RhdGVfZm9yKTogTGlrZXdp c2UuCgkodXdfaW5zdGFsbF9jb250ZXh0XzEpOiBMaWtld2lzZS4KCgkqIGRv Yy90bS50ZXhpLmluOiBEb2N1bWVudCBSRUdfVkFMVUVfSU5fVU5XSU5EX0NP TlRFWFQuCgkqIGRvYy90bS50ZXhpOiBSZWdlbmVyYXRlZC4KCmxpYmdjYy8K CjIwMTEtMDYtMjggIEguSi4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4K CgkqIGNvbmZpZy9pMzg2L3ZhbHVlLXVud2luZC5oOiBOZXcuCgpkaWZmIC0t Z2l0IGEvZ2NjL2NvbmZpZy5nY2MgYi9nY2MvY29uZmlnLmdjYwppbmRleCBh MWRiZDFhLi5jOTg2N2EyIDEwMDY0NAotLS0gYS9nY2MvY29uZmlnLmdjYwor KysgYi9nY2MvY29uZmlnLmdjYwpAQCAtMjYyNyw2ICsyNjQ4LDcgQEAgZXNh YwogY2FzZSAke3RhcmdldH0gaW4KIGlbMzQ1NjddODYtKi1saW51eCogfCB4 ODZfNjQtKi1saW51eCopCiAJdG1ha2VfZmlsZT0iJHt0bWFrZV9maWxlfSBp Mzg2L3QtcG1tX21hbGxvYyBpMzg2L3QtaTM4NiIKKwlsaWJnY2NfdG1fZmls ZT0iJHtsaWJnY2NfdG1fZmlsZX0gaTM4Ni92YWx1ZS11bndpbmQuaCIKIAk7 OwogaVszNDU2N104Ni0qLSogfCB4ODZfNjQtKi0qKQogCXRtYWtlX2ZpbGU9 IiR7dG1ha2VfZmlsZX0gaTM4Ni90LWdtbV9tYWxsb2MgaTM4Ni90LWkzODYi CmRpZmYgLS1naXQgYS9nY2MvZG9jL3RtLnRleGkgYi9nY2MvZG9jL3RtLnRl eGkKaW5kZXggMzQxNjI4Yi4uMjY2NjcxNiAxMDA2NDQKLS0tIGEvZ2NjL2Rv Yy90bS50ZXhpCisrKyBiL2djYy9kb2MvdG0udGV4aQpAQCAtMzcwMSw2ICsz NzAxLDE0IEBAIHJldHVybiBAY29kZXtAdmFye3JlZ25vfX0uCiAKIEBlbmQg ZGVmbWFjCiAKK0BkZWZtYWMgUkVHX1ZBTFVFX0lOX1VOV0lORF9DT05URVhU CisKK0RlZmluZSB0aGlzIG1hY3JvIGlmIHRoZSB0YXJnZXQgc3RvcmVzIHJl Z2lzdGVyIHZhbHVlcyBhcworQGNvZGV7X1Vud2luZF9Xb3JkfSB0eXBlIGlu IHVud2luZCBjb250ZXh0LiAgVGhlIGRlZmF1bHQgaXMgdG8KK3N0b3JlIHJl Z2lzdGVyIHZhbHVlcyBhcyBAY29kZXt2b2lkICp9IHR5cGUuCisKK0BlbmQg ZGVmbWFjCisKIEBub2RlIEVsaW1pbmF0aW9uCiBAc3Vic2VjdGlvbiBFbGlt aW5hdGluZyBGcmFtZSBQb2ludGVyIGFuZCBBcmcgUG9pbnRlcgogCmRpZmYg LS1naXQgYS9nY2MvZG9jL3RtLnRleGkuaW4gYi9nY2MvZG9jL3RtLnRleGku aW4KaW5kZXggZjdjMTZlOS4uNjkwZmE1MiAxMDA2NDQKLS0tIGEvZ2NjL2Rv Yy90bS50ZXhpLmluCisrKyBiL2djYy9kb2MvdG0udGV4aS5pbgpAQCAtMzY4 Nyw2ICszNjg3LDE0IEBAIHJldHVybiBAY29kZXtAdmFye3JlZ25vfX0uCiAK IEBlbmQgZGVmbWFjCiAKK0BkZWZtYWMgUkVHX1ZBTFVFX0lOX1VOV0lORF9D T05URVhUCisKK0RlZmluZSB0aGlzIG1hY3JvIGlmIHRoZSB0YXJnZXQgc3Rv cmVzIHJlZ2lzdGVyIHZhbHVlcyBhcworQGNvZGV7X1Vud2luZF9Xb3JkfSB0 eXBlIGluIHVud2luZCBjb250ZXh0LiAgVGhlIGRlZmF1bHQgaXMgdG8KK3N0 b3JlIHJlZ2lzdGVyIHZhbHVlcyBhcyBAY29kZXt2b2lkICp9IHR5cGUuCisK K0BlbmQgZGVmbWFjCisKIEBub2RlIEVsaW1pbmF0aW9uCiBAc3Vic2VjdGlv biBFbGltaW5hdGluZyBGcmFtZSBQb2ludGVyIGFuZCBBcmcgUG9pbnRlcgog CmRpZmYgLS1naXQgYS9nY2Mvc3lzdGVtLmggYi9nY2Mvc3lzdGVtLmgKaW5k ZXggZTAyY2JjZC4uZWQzOWQ5MyAxMDA2NDQKLS0tIGEvZ2NjL3N5c3RlbS5o CisrKyBiL2djYy9zeXN0ZW0uaApAQCAtNzY0LDcgKzc2NCw3IEBAIGV4dGVy biB2b2lkIGZhbmN5X2Fib3J0IChjb25zdCBjaGFyICosIGludCwgY29uc3Qg Y2hhciAqKSBBVFRSSUJVVEVfTk9SRVRVUk47CiAvKiBUYXJnZXQgbWFjcm9z IG9ubHkgdXNlZCBmb3IgY29kZSBidWlsdCBmb3IgdGhlIHRhcmdldCwgdGhh dCBoYXZlCiAgICBtb3ZlZCB0byBsaWJnY2MtdG0uaCBvciBoYXZlIG5ldmVy IGJlZW4gcHJlc2VudCBlbHNld2hlcmUuICAqLwogICNwcmFnbWEgR0NDIHBv aXNvbiBERUNMQVJFX0xJQlJBUllfUkVOQU1FUyBMSUJHQ0MyX0dOVV9QUkVG SVgJCVwKLQlNRF9VTldJTkRfU1VQUE9SVCBFTkFCTEVfRVhFQ1VURV9TVEFD SworCU1EX1VOV0lORF9TVVBQT1JUIEVOQUJMRV9FWEVDVVRFX1NUQUNLIFJF R19WQUxVRV9JTl9VTldJTkRfQ09OVEVYVAogCiAvKiBPdGhlciBvYnNvbGV0 ZSB0YXJnZXQgbWFjcm9zLCBvciBtYWNyb3MgdGhhdCB1c2VkIHRvIGJlIGlu IHRhcmdldAogICAgaGVhZGVycyBhbmQgd2VyZSBub3QgdXNlZCwgYW5kIG1h eSBiZSBvYnNvbGV0ZSBvciBtYXkgbmV2ZXIgaGF2ZQpkaWZmIC0tZ2l0IGEv Z2NjL3Vud2luZC1kdzIuYyBiL2djYy91bndpbmQtZHcyLmMKaW5kZXggMTlk YTI5OS4uODAxNGExYiAxMDA2NDQKLS0tIGEvZ2NjL3Vud2luZC1kdzIuYwor KysgYi9nY2MvdW53aW5kLWR3Mi5jCkBAIC02OSwxNiArNjksMjUgQEAgc3Ry dWN0IF9VbndpbmRfQ29udGV4dAogICB2b2lkICpyYTsKICAgdm9pZCAqbHNk YTsKICAgc3RydWN0IGR3YXJmX2VoX2Jhc2VzIGJhc2VzOworI2lmZGVmIFJF R19WQUxVRV9JTl9VTldJTkRfQ09OVEVYVAorICAvKiBTaWduYWwgZnJhbWUg Y29udGV4dC4gICovCisjZGVmaW5lIFNJR05BTF9GUkFNRV9CSVQgKChfVW53 aW5kX1dvcmQpIDEgPj4gMCkKKyNlbHNlCiAgIC8qIFNpZ25hbCBmcmFtZSBj b250ZXh0LiAgKi8KICNkZWZpbmUgU0lHTkFMX0ZSQU1FX0JJVCAoKH4oX1Vu d2luZF9Xb3JkKSAwID4+IDEpICsgMSkKICAgLyogQ29udGV4dCB3aGljaCBo YXMgdmVyc2lvbi9hcmdzX3NpemUvYnlfdmFsdWUgZmllbGRzLiAgKi8KICNk ZWZpbmUgRVhURU5ERURfQ09OVEVYVF9CSVQgKCh+KF9VbndpbmRfV29yZCkg MCA+PiAyKSArIDEpCisjZW5kaWYKICAgX1Vud2luZF9Xb3JkIGZsYWdzOwog ICAvKiAwIGZvciBub3csIGNhbiBiZSBpbmNyZWFzZWQgd2hlbiBmdXJ0aGVy IGZpZWxkcyBhcmUgYWRkZWQgdG8KICAgICAgc3RydWN0IF9VbndpbmRfQ29u dGV4dC4gICovCiAgIF9VbndpbmRfV29yZCB2ZXJzaW9uOwogICBfVW53aW5k X1dvcmQgYXJnc19zaXplOworI2lmZGVmIFJFR19WQUxVRV9JTl9VTldJTkRf Q09OVEVYVAorICBfVW53aW5kX1dvcmQgdmFsdWVbRFdBUkZfRlJBTUVfUkVH SVNURVJTKzFdOworI2Vsc2UKICAgY2hhciBieV92YWx1ZVtEV0FSRl9GUkFN RV9SRUdJU1RFUlMrMV07CisjZW5kaWYKIH07CiAKIC8qIEJ5dGUgc2l6ZSBv ZiBldmVyeSByZWdpc3RlciBtYW5hZ2VkIGJ5IHRoZXNlIHJvdXRpbmVzLiAg Ki8KQEAgLTE0NCwxMSArMTUzLDEzIEBAIF9VbndpbmRfU2V0U2lnbmFsRnJh bWUgKHN0cnVjdCBfVW53aW5kX0NvbnRleHQgKmNvbnRleHQsIGludCB2YWwp CiAgICAgY29udGV4dC0+ZmxhZ3MgJj0gflNJR05BTF9GUkFNRV9CSVQ7CiB9 CiAKKyNpZm5kZWYgUkVHX1ZBTFVFX0lOX1VOV0lORF9DT05URVhUCiBzdGF0 aWMgaW5saW5lIF9VbndpbmRfV29yZAogX1Vud2luZF9Jc0V4dGVuZGVkQ29u dGV4dCAoc3RydWN0IF9VbndpbmRfQ29udGV4dCAqY29udGV4dCkKIHsKICAg cmV0dXJuIGNvbnRleHQtPmZsYWdzICYgRVhURU5ERURfQ09OVEVYVF9CSVQ7 CiB9CisjZW5kaWYKIAwKIC8qIEdldCB0aGUgdmFsdWUgb2YgcmVnaXN0ZXIg SU5ERVggYXMgc2F2ZWQgaW4gQ09OVEVYVC4gICovCiAKQEAgLTE2OCw4ICsx NzksMTMgQEAgX1Vud2luZF9HZXRHUiAoc3RydWN0IF9VbndpbmRfQ29udGV4 dCAqY29udGV4dCwgaW50IGluZGV4KQogICBzaXplID0gZHdhcmZfcmVnX3Np emVfdGFibGVbaW5kZXhdOwogICBwdHIgPSBjb250ZXh0LT5yZWdbaW5kZXhd OwogCisjaWZkZWYgUkVHX1ZBTFVFX0lOX1VOV0lORF9DT05URVhUCisgIGlm IChjb250ZXh0LT5yZWdbaW5kZXhdID09ICZjb250ZXh0LT52YWx1ZVtpbmRl eF0pCisgICAgcmV0dXJuIGNvbnRleHQtPnZhbHVlW2luZGV4XTsKKyNlbHNl CiAgIGlmIChfVW53aW5kX0lzRXh0ZW5kZWRDb250ZXh0IChjb250ZXh0KSAm JiBjb250ZXh0LT5ieV92YWx1ZVtpbmRleF0pCiAgICAgcmV0dXJuIChfVW53 aW5kX1dvcmQpIChfVW53aW5kX0ludGVybmFsX1B0cikgcHRyOworI2VuZGlm CiAKICAgLyogVGhpcyB3aWxsIHNlZ2ZhdWx0IGlmIHRoZSByZWdpc3RlciBo YXNuJ3QgYmVlbiBzYXZlZC4gICovCiAgIGlmIChzaXplID09IHNpemVvZihf VW53aW5kX1B0cikpCkBAIC0yMDcsMTEgKzIyMywxOSBAQCBfVW53aW5kX1Nl dEdSIChzdHJ1Y3QgX1Vud2luZF9Db250ZXh0ICpjb250ZXh0LCBpbnQgaW5k ZXgsIF9VbndpbmRfV29yZCB2YWwpCiAgIGdjY19hc3NlcnQgKGluZGV4IDwg KGludCkgc2l6ZW9mKGR3YXJmX3JlZ19zaXplX3RhYmxlKSk7CiAgIHNpemUg PSBkd2FyZl9yZWdfc2l6ZV90YWJsZVtpbmRleF07CiAKKyNpZmRlZiBSRUdf VkFMVUVfSU5fVU5XSU5EX0NPTlRFWFQKKyAgaWYgKGNvbnRleHQtPnJlZ1tp bmRleF0gPT0gJmNvbnRleHQtPnZhbHVlW2luZGV4XSkKKyAgICB7CisgICAg ICBjb250ZXh0LT52YWx1ZVtpbmRleF0gPSB2YWw7CisgICAgICByZXR1cm47 CisgICAgfQorI2Vsc2UKICAgaWYgKF9VbndpbmRfSXNFeHRlbmRlZENvbnRl eHQgKGNvbnRleHQpICYmIGNvbnRleHQtPmJ5X3ZhbHVlW2luZGV4XSkKICAg ICB7CiAgICAgICBjb250ZXh0LT5yZWdbaW5kZXhdID0gKHZvaWQgKikgKF9V bndpbmRfSW50ZXJuYWxfUHRyKSB2YWw7CiAgICAgICByZXR1cm47CiAgICAg fQorI2VuZGlmCiAKICAgcHRyID0gY29udGV4dC0+cmVnW2luZGV4XTsKIApA QCAtMjMwLDggKzI1NCwxMCBAQCBzdGF0aWMgaW5saW5lIHZvaWQgKgogX1Vu d2luZF9HZXRHUlB0ciAoc3RydWN0IF9VbndpbmRfQ29udGV4dCAqY29udGV4 dCwgaW50IGluZGV4KQogewogICBpbmRleCA9IERXQVJGX1JFR19UT19VTldJ TkRfQ09MVU1OIChpbmRleCk7CisjaWZuZGVmIFJFR19WQUxVRV9JTl9VTldJ TkRfQ09OVEVYVAogICBpZiAoX1Vud2luZF9Jc0V4dGVuZGVkQ29udGV4dCAo Y29udGV4dCkgJiYgY29udGV4dC0+YnlfdmFsdWVbaW5kZXhdKQogICAgIHJl dHVybiAmY29udGV4dC0+cmVnW2luZGV4XTsKKyNlbmRpZgogICByZXR1cm4g Y29udGV4dC0+cmVnW2luZGV4XTsKIH0KIApAQCAtMjQxLDggKzI2NywxMCBA QCBzdGF0aWMgaW5saW5lIHZvaWQKIF9VbndpbmRfU2V0R1JQdHIgKHN0cnVj dCBfVW53aW5kX0NvbnRleHQgKmNvbnRleHQsIGludCBpbmRleCwgdm9pZCAq cCkKIHsKICAgaW5kZXggPSBEV0FSRl9SRUdfVE9fVU5XSU5EX0NPTFVNTiAo aW5kZXgpOworI2lmbmRlZiBSRUdfVkFMVUVfSU5fVU5XSU5EX0NPTlRFWFQK ICAgaWYgKF9VbndpbmRfSXNFeHRlbmRlZENvbnRleHQgKGNvbnRleHQpKQog ICAgIGNvbnRleHQtPmJ5X3ZhbHVlW2luZGV4XSA9IDA7CisjZW5kaWYKICAg Y29udGV4dC0+cmVnW2luZGV4XSA9IHA7CiB9CiAKQEAgLTI1NCwxMCArMjgy LDE1IEBAIF9VbndpbmRfU2V0R1JWYWx1ZSAoc3RydWN0IF9VbndpbmRfQ29u dGV4dCAqY29udGV4dCwgaW50IGluZGV4LAogewogICBpbmRleCA9IERXQVJG X1JFR19UT19VTldJTkRfQ09MVU1OIChpbmRleCk7CiAgIGdjY19hc3NlcnQg KGluZGV4IDwgKGludCkgc2l6ZW9mKGR3YXJmX3JlZ19zaXplX3RhYmxlKSk7 CisjaWZkZWYgUkVHX1ZBTFVFX0lOX1VOV0lORF9DT05URVhUCisgIGdjY19h c3NlcnQgKGR3YXJmX3JlZ19zaXplX3RhYmxlW2luZGV4XSA9PSBzaXplb2Yg KF9VbndpbmRfV29yZCkpOworICBjb250ZXh0LT52YWx1ZVtpbmRleF0gPSB2 YWw7CisgIGNvbnRleHQtPnJlZ1tpbmRleF0gPSAmY29udGV4dC0+dmFsdWVb aW5kZXhdOworI2Vsc2UKICAgZ2NjX2Fzc2VydCAoZHdhcmZfcmVnX3NpemVf dGFibGVbaW5kZXhdID09IHNpemVvZiAoX1Vud2luZF9QdHIpKTsKLQogICBj b250ZXh0LT5ieV92YWx1ZVtpbmRleF0gPSAxOwogICBjb250ZXh0LT5yZWdb aW5kZXhdID0gKHZvaWQgKikgKF9VbndpbmRfSW50ZXJuYWxfUHRyKSB2YWw7 CisjZW5kaWYKIH0KIAogLyogUmV0dXJuIG5vbnplcm8gaWYgcmVnaXN0ZXIg SU5ERVggaXMgc3RvcmVkIGJ5IHZhbHVlIHJhdGhlciB0aGFuCkBAIC0yNjcs NyArMzAwLDExIEBAIHN0YXRpYyBpbmxpbmUgaW50CiBfVW53aW5kX0dSQnlW YWx1ZSAoc3RydWN0IF9VbndpbmRfQ29udGV4dCAqY29udGV4dCwgaW50IGlu ZGV4KQogewogICBpbmRleCA9IERXQVJGX1JFR19UT19VTldJTkRfQ09MVU1O IChpbmRleCk7CisjaWZkZWYgUkVHX1ZBTFVFX0lOX1VOV0lORF9DT05URVhU CisgIHJldHVybiBjb250ZXh0LT5yZWdbaW5kZXhdID09ICZjb250ZXh0LT52 YWx1ZVtpbmRleF07CisjZWxzZQogICByZXR1cm4gY29udGV4dC0+YnlfdmFs dWVbaW5kZXhdOworI2VuZGlmCiB9CiAKIC8qIFJldHJpZXZlIHRoZSByZXR1 cm4gYWRkcmVzcyBmb3IgQ09OVEVYVC4gICovCkBAIC0xMjE1LDcgKzEyNTIs OSBAQCBfX2ZyYW1lX3N0YXRlX2ZvciAodm9pZCAqcGNfdGFyZ2V0LCBzdHJ1 Y3QgZnJhbWVfc3RhdGUgKnN0YXRlX2luKQogICBpbnQgcmVnOwogCiAgIG1l bXNldCAoJmNvbnRleHQsIDAsIHNpemVvZiAoc3RydWN0IF9VbndpbmRfQ29u dGV4dCkpOworI2lmbmRlZiBSRUdfVkFMVUVfSU5fVU5XSU5EX0NPTlRFWFQK ICAgY29udGV4dC5mbGFncyA9IEVYVEVOREVEX0NPTlRFWFRfQklUOworI2Vu ZGlmCiAgIGNvbnRleHQucmEgPSBwY190YXJnZXQgKyAxOwogCiAgIGlmICh1 d19mcmFtZV9zdGF0ZV9mb3IgKCZjb250ZXh0LCAmZnMpICE9IF9VUkNfTk9f UkVBU09OKQpAQCAtMTQ1Myw3ICsxNDkyLDkgQEAgdXdfaW5pdF9jb250ZXh0 XzEgKHN0cnVjdCBfVW53aW5kX0NvbnRleHQgKmNvbnRleHQsCiAKICAgbWVt c2V0IChjb250ZXh0LCAwLCBzaXplb2YgKHN0cnVjdCBfVW53aW5kX0NvbnRl eHQpKTsKICAgY29udGV4dC0+cmEgPSByYTsKKyNpZm5kZWYgUkVHX1ZBTFVF X0lOX1VOV0lORF9DT05URVhUCiAgIGNvbnRleHQtPmZsYWdzID0gRVhURU5E RURfQ09OVEVYVF9CSVQ7CisjZW5kaWYKIAogICBjb2RlID0gdXdfZnJhbWVf c3RhdGVfZm9yIChjb250ZXh0LCAmZnMpOwogICBnY2NfYXNzZXJ0IChjb2Rl ID09IF9VUkNfTk9fUkVBU09OKTsKQEAgLTE1MzUsOCArMTU3NiwxMyBAQCB1 d19pbnN0YWxsX2NvbnRleHRfMSAoc3RydWN0IF9VbndpbmRfQ29udGV4dCAq Y3VycmVudCwKICAgICAgIHZvaWQgKmMgPSBjdXJyZW50LT5yZWdbaV07CiAg ICAgICB2b2lkICp0ID0gdGFyZ2V0LT5yZWdbaV07CiAKKyNpZmRlZiBSRUdf VkFMVUVfSU5fVU5XSU5EX0NPTlRFWFQKKyAgICAgIGdjY19hc3NlcnQgKGN1 cnJlbnQtPnJlZ1tpXSAhPSAmY3VycmVudC0+dmFsdWVbaV0pOworICAgICAg aWYgKHRhcmdldC0+cmVnW2ldID09ICZ0YXJnZXQtPnZhbHVlW2ldICYmIGMp CisjZWxzZQogICAgICAgZ2NjX2Fzc2VydCAoY3VycmVudC0+YnlfdmFsdWVb aV0gPT0gMCk7CiAgICAgICBpZiAodGFyZ2V0LT5ieV92YWx1ZVtpXSAmJiBj KQorI2VuZGlmCiAJewogCSAgX1Vud2luZF9Xb3JkIHc7CiAJICBfVW53aW5k X1B0ciBwOwpkaWZmIC0tZ2l0IGEvbGliZ2NjL2NvbmZpZy9pMzg2L3ZhbHVl LXVud2luZC5oIGIvbGliZ2NjL2NvbmZpZy9pMzg2L3ZhbHVlLXVud2luZC5o Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjBkY2ViNWMK LS0tIC9kZXYvbnVsbAorKysgYi9saWJnY2MvY29uZmlnL2kzODYvdmFsdWUt dW53aW5kLmgKQEAgLTAsMCArMSwyNiBAQAorLyogU3RvcmUgcmVnaXN0ZXIg dmFsdWVzIGFzIF9VbndpbmRfV29yZCB0eXBlIGluIERXQVJGMiBFSCB1bndp bmQgY29udGV4dC4KKyAgIENvcHlyaWdodCAoQykgMjAxMQorICAgRnJlZSBT b2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisKKyAgIFRoaXMgZmlsZSBpcyBw YXJ0IG9mIEdDQy4KKworICAgR0NDIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBj YW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQKKyAgIHVuZGVy IHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2Ug YXMgcHVibGlzaGVkCisgICBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0 aW9uOyBlaXRoZXIgdmVyc2lvbiAzLCBvciAoYXQgeW91cgorICAgb3B0aW9u KSBhbnkgbGF0ZXIgdmVyc2lvbi4KKworICAgR0NDIGlzIGRpc3RyaWJ1dGVk IGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRI T1VUCisgICBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGll ZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkKKyAgIG9yIEZJVE5FU1Mg Rk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUgR2VuZXJh bCBQdWJsaWMKKyAgIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKworICAg WW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdl bmVyYWwgUHVibGljIExpY2Vuc2UgYW5kCisgICBhIGNvcHkgb2YgdGhlIEdD QyBSdW50aW1lIExpYnJhcnkgRXhjZXB0aW9uIGFsb25nIHdpdGggdGhpcyBw cm9ncmFtOworICAgc2VlIHRoZSBmaWxlcyBDT1BZSU5HMyBhbmQgQ09QWUlO Ry5SVU5USU1FIHJlc3BlY3RpdmVseS4gIElmIG5vdCwgc2VlCisgICA8aHR0 cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uICAqLworCisvKiBEZWZpbmUg dGhpcyBtYWNybyBpZiB0aGUgdGFyZ2V0IHN0b3JlcyByZWdpc3RlciB2YWx1 ZXMgYXMgX1Vud2luZF9Xb3JkCisgICB0eXBlIGluIHVud2luZCBjb250ZXh0 LiAgT25seSBlbmFibGUgaXQgZm9yIHgzMi4gICovCisjaWYgZGVmaW5lZCBf X3g4Nl82NCAmJiAhZGVmaW5lZCBfX0xQNjRfXworIyBkZWZpbmUgUkVHX1ZB TFVFX0lOX1VOV0lORF9DT05URVhUCisjZW5kaWYK --20cf3010edd586080204a6ca3027--