From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 25947 invoked by alias); 30 Jun 2011 17:37:57 -0000 Received: (qmail 25937 invoked by uid 22791); 30 Jun 2011 17:37:56 -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-qw0-f47.google.com (HELO mail-qw0-f47.google.com) (209.85.216.47) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Thu, 30 Jun 2011 17:37:40 +0000 Received: by qwh5 with SMTP id 5so1406916qwh.20 for ; Thu, 30 Jun 2011 10:37:39 -0700 (PDT) MIME-Version: 1.0 Received: by 10.229.79.196 with SMTP id q4mr1794560qck.132.1309455458509; Thu, 30 Jun 2011 10:37:38 -0700 (PDT) Received: by 10.229.214.83 with HTTP; Thu, 30 Jun 2011 10:37:38 -0700 (PDT) In-Reply-To: References: <20110625161357.GA5401@intel.com> <4E078E58.20903@redhat.com> <4E07A879.70509@redhat.com> <4E089A88.60401@redhat.com> <4E0C8361.5050403@redhat.com> <4E0C904E.8090504@redhat.com> Date: Thu, 30 Jun 2011 17:57: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=001636426b417423e404a6f15b0d 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/msg02384.txt.bz2 --001636426b417423e404a6f15b0d Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Content-length: 2447 On Thu, Jun 30, 2011 at 9:08 AM, H.J. Lu wrote: > On Thu, Jun 30, 2011 at 8:03 AM, Jason Merrill wrote: >> On 06/30/2011 10:42 AM, H.J. Lu wrote: >>> >>> Register may be saved/restored either by address or value. My patch >>> doesn't change the reg field. =A0The other way will be >>> >>> #ifdef USE_UNWIND_WORD >>> =A0 =A0 _Unwind_Word reg[DWARF_FRAME_REGISTERS+1]; >>> #else >>> =A0 =A0 =A0void *reg[DWARF_FRAME_REGISTERS+1]; >>> #endif >>> >>> We need it so that we are binary compatible with the existing >>> unwind context. =A0Once we do that we need many >>> >>> #ifdef USE_UNWIND_WORD >>> #endif >>> >>> whenever the reg field is accessed since the reg field is changed. >> >> But your patch already changes all but one place where reg is accessed. = =A0And >> we can avoid lots of ifdefs by abstraction with macros/inlines so there's >> one interface. > > I can do that. > >> Also, why change SIGNAL_FRAME_BIT? >> > > The current one is > > =A0/* Signal frame context. =A0*/ > #define SIGNAL_FRAME_BIT ((~(_Unwind_Word) 0 >> 1) + 1) > > It is defined such a strange way to be binary backward compatible. > Since there is no such a problem with if REG_VALUE_IN_UNWIND_CONTEXT > is defined, I simply define it as > > =A0/* Signal frame context. =A0*/ > #define SIGNAL_FRAME_BIT ((_Unwind_Word) 1 >> 0) > Here is the updated patch. OK for trunk if there are no regressions? Thanks. --=20 H.J. --- gcc/ 2011-06-30 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_Reg_Val): New. (_Unwind_Get_Unwind_Word): Likewise. (_Unwind_Get_Unwind_Context_Reg_Val): Likewise. (_Unwind_Context): Use _Unwind_Context_Reg_Val on the reg field. (SIGNAL_FRAME_BIT): Define if REG_VALUE_IN_UNWIND_CONTEXT is defined. (_Unwind_IsExtendedContext): Likewise. (EXTENDED_CONTEXT_BIT): Don't define if REG_VALUE_IN_UNWIND_CONTEXT is defined. (_Unwind_GetGR): Updated. (_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-30 H.J. Lu * config/i386/value-unwind.h: New. --001636426b417423e404a6f15b0d Content-Type: text/plain; charset=US-ASCII; name="gcc-x32-pr48007-4.patch" Content-Disposition: attachment; filename="gcc-x32-pr48007-4.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_gpjzxscy0 Content-length: 15076 Z2NjLwoKMjAxMS0wNi0zMCAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwu Y29tPgoKCSogY29uZmlnLmdjYyAobGliZ2NjX3RtX2ZpbGUpOiBBZGQgaTM4 Ni92YWx1ZS11bndpbmQuaCBmb3IKCUxpbnV4L3g4Ni4KCgkqIHN5c3RlbS5o IChSRUdfVkFMVUVfSU5fVU5XSU5EX0NPTlRFWFQpOiBQb2lzb25lZC4KCgkq IHVud2luZC1kdzIuYyAoX1Vud2luZF9Db250ZXh0X1JlZ19WYWwpOiBOZXcu CgkoX1Vud2luZF9HZXRfVW53aW5kX1dvcmQpOiBMaWtld2lzZS4KCShfVW53 aW5kX0dldF9VbndpbmRfQ29udGV4dF9SZWdfVmFsKTogTGlrZXdpc2UuCgko X1Vud2luZF9Db250ZXh0KTogVXNlIF9VbndpbmRfQ29udGV4dF9SZWdfVmFs IG9uIHRoZSByZWcgZmllbGQuCgkoU0lHTkFMX0ZSQU1FX0JJVCk6IERlZmlu ZSBpZiBSRUdfVkFMVUVfSU5fVU5XSU5EX0NPTlRFWFQgaXMKCWRlZmluZWQu CgkoX1Vud2luZF9Jc0V4dGVuZGVkQ29udGV4dCk6IExpa2V3aXNlLgoJKEVY VEVOREVEX0NPTlRFWFRfQklUKTogRG9uJ3QgZGVmaW5lIGlmIFJFR19WQUxV RV9JTl9VTldJTkRfQ09OVEVYVAoJaXMgZGVmaW5lZC4KCShfVW53aW5kX0dl dEdSKTogVXBkYXRlZC4KCShfVW53aW5kX1NldEdSKTogTGlrZXdpc2UuCgko X1Vud2luZF9HZXRHUlB0cik6IExpa2V3aXNlLgoJKF9VbndpbmRfU2V0R1JQ dHIpOiBMaWtld2lzZS4KCShfVW53aW5kX1NldEdSVmFsdWUpOiBMaWtld2lz ZS4KCShfVW53aW5kX0dSQnlWYWx1ZSk6IExpa2V3aXNlLgoJKF9fZnJhbWVf c3RhdGVfZm9yKTogTGlrZXdpc2UuCgkodXdfaW5zdGFsbF9jb250ZXh0XzEp OiBMaWtld2lzZS4KCgkqIGRvYy90bS50ZXhpLmluOiBEb2N1bWVudCBSRUdf VkFMVUVfSU5fVU5XSU5EX0NPTlRFWFQuCgkqIGRvYy90bS50ZXhpOiBSZWdl bmVyYXRlZC4KCmxpYmdjYy8KCjIwMTEtMDYtMzAgIEguSi4gTHUgIDxob25n aml1Lmx1QGludGVsLmNvbT4KCgkqIGNvbmZpZy9pMzg2L3ZhbHVlLXVud2lu ZC5oOiBOZXcuCgpkaWZmIC0tZ2l0IGEvZ2NjL2NvbmZpZy5nY2MgYi9nY2Mv Y29uZmlnLmdjYwppbmRleCA3M2M0N2Q3Li4yNzAyZGYyIDEwMDY0NAotLS0g YS9nY2MvY29uZmlnLmdjYworKysgYi9nY2MvY29uZmlnLmdjYwpAQCAtMTI3 Nyw3ICsxMjc3LDE3IEBAIGlbMzQ1NjddODYtKi1saW51eCogfCBpWzM0NTY3 XTg2LSota2ZyZWVic2QqLWdudSB8IGlbMzQ1NjddODYtKi1rbmV0YnNkKi1n bnUgfCBpCiAJCWlmIHRlc3QgeCRlbmFibGVfdGFyZ2V0cyA9IHhhbGw7IHRo ZW4KIAkJCXRtX2ZpbGU9IiR7dG1fZmlsZX0gaTM4Ni94ODYtNjQuaCBpMzg2 L2dudS11c2VyNjQuaCBpMzg2L2xpbnV4NjQuaCIKIAkJCXRtX2RlZmluZXM9 IiR7dG1fZGVmaW5lc30gVEFSR0VUX0JJX0FSQ0g9MSIKLQkJCXRtYWtlX2Zp bGU9IiR7dG1ha2VfZmlsZX0gaTM4Ni90LWxpbnV4NjQiCisJCQljYXNlIHgk e2VuYWJsZV94MzJ9JHtlbmFibGVfaWEzMn0gaW4KKwkJCXh5ZXN5ZXMpCisJ CQkJdG1ha2VfZmlsZT0iJHt0bWFrZV9maWxlfSBpMzg2L3QtbGludXgteDMy IgorCQkJCTs7CisJCQl4eWVzbm8pCisJCQkJdG1ha2VfZmlsZT0iJHt0bWFr ZV9maWxlfSBpMzg2L3QtbGludXg2NC14MzIiCisJCQkJOzsKKwkJCSopCisJ CQkJdG1ha2VfZmlsZT0iJHt0bWFrZV9maWxlfSBpMzg2L3QtbGludXg2NCIK KwkJCQk7OworCQkJZXNhYwogCQkJbmVlZF82NGJpdF9od2ludD15ZXMKIAkJ CW5lZWRfNjRiaXRfaXNhPXllcwogCQkJY2FzZSBYIiR7d2l0aF9jcHV9IiBp bgpAQCAtMTMxNSw3ICsxMzI1LDE4IEBAIHg4Nl82NC0qLWxpbnV4KiB8IHg4 Nl82NC0qLWtmcmVlYnNkKi1nbnUgfCB4ODZfNjQtKi1rbmV0YnNkKi1nbnUp CiAJeDg2XzY0LSota2ZyZWVic2QqLWdudSkgdG1fZmlsZT0iJHt0bV9maWxl fSBrZnJlZWJzZC1nbnUuaCBpMzg2L2tmcmVlYnNkLWdudTY0LmgiIDs7CiAJ eDg2XzY0LSota25ldGJzZCotZ251KSB0bV9maWxlPSIke3RtX2ZpbGV9IGtu ZXRic2QtZ251LmgiIDs7CiAJZXNhYwotCXRtYWtlX2ZpbGU9IiR7dG1ha2Vf ZmlsZX0gaTM4Ni90LWxpbnV4NjQgaTM4Ni90LWNydHN0dWZmIGkzODYvdC1j cnRwYyBpMzg2L3QtY3J0Zm0gdC1kZnBydWxlcyIKKwljYXNlIHgke2VuYWJs ZV94MzJ9JHtlbmFibGVfaWEzMn0gaW4KKwl4eWVzeWVzKQorCQl0bWFrZV9m aWxlPSIke3RtYWtlX2ZpbGV9IGkzODYvdC1saW51eC14MzIiCisJCTs7CisJ eHllc25vKQorCQl0bWFrZV9maWxlPSIke3RtYWtlX2ZpbGV9IGkzODYvdC1s aW51eDY0LXgzMiIKKwkJOzsKKwkqKQorCQl0bWFrZV9maWxlPSIke3RtYWtl X2ZpbGV9IGkzODYvdC1saW51eDY0IgorCQk7OworCWVzYWMKKwl0bWFrZV9m aWxlPSIke3RtYWtlX2ZpbGV9IGkzODYvdC1jcnRzdHVmZiBpMzg2L3QtY3J0 cGMgaTM4Ni90LWNydGZtIHQtZGZwcnVsZXMiCiAJOzsKIGlbMzQ1NjddODYt cGMtbXNkb3NkamdwcCopCiAJeG1fZmlsZT1pMzg2L3htLWRqZ3BwLmgKQEAg LTI2MzAsNiArMjY1MSw3IEBAIGVzYWMKIGNhc2UgJHt0YXJnZXR9IGluCiBp WzM0NTY3XTg2LSotbGludXgqIHwgeDg2XzY0LSotbGludXgqKQogCXRtYWtl X2ZpbGU9IiR7dG1ha2VfZmlsZX0gaTM4Ni90LXBtbV9tYWxsb2MgaTM4Ni90 LWkzODYiCisJbGliZ2NjX3RtX2ZpbGU9IiR7bGliZ2NjX3RtX2ZpbGV9IGkz ODYvdmFsdWUtdW53aW5kLmgiCiAJOzsKIGlbMzQ1NjddODYtKi0qIHwgeDg2 XzY0LSotKikKIAl0bWFrZV9maWxlPSIke3RtYWtlX2ZpbGV9IGkzODYvdC1n bW1fbWFsbG9jIGkzODYvdC1pMzg2IgpkaWZmIC0tZ2l0IGEvZ2NjL3N5c3Rl bS5oIGIvZ2NjL3N5c3RlbS5oCmluZGV4IGUwMmNiY2QuLmVkMzlkOTMgMTAw NjQ0Ci0tLSBhL2djYy9zeXN0ZW0uaAorKysgYi9nY2Mvc3lzdGVtLmgKQEAg LTc2NCw3ICs3NjQsNyBAQCBleHRlcm4gdm9pZCBmYW5jeV9hYm9ydCAoY29u c3QgY2hhciAqLCBpbnQsIGNvbnN0IGNoYXIgKikgQVRUUklCVVRFX05PUkVU VVJOOwogLyogVGFyZ2V0IG1hY3JvcyBvbmx5IHVzZWQgZm9yIGNvZGUgYnVp bHQgZm9yIHRoZSB0YXJnZXQsIHRoYXQgaGF2ZQogICAgbW92ZWQgdG8gbGli Z2NjLXRtLmggb3IgaGF2ZSBuZXZlciBiZWVuIHByZXNlbnQgZWxzZXdoZXJl LiAgKi8KICAjcHJhZ21hIEdDQyBwb2lzb24gREVDTEFSRV9MSUJSQVJZX1JF TkFNRVMgTElCR0NDMl9HTlVfUFJFRklYCQlcCi0JTURfVU5XSU5EX1NVUFBP UlQgRU5BQkxFX0VYRUNVVEVfU1RBQ0sKKwlNRF9VTldJTkRfU1VQUE9SVCBF TkFCTEVfRVhFQ1VURV9TVEFDSyBSRUdfVkFMVUVfSU5fVU5XSU5EX0NPTlRF WFQKIAogLyogT3RoZXIgb2Jzb2xldGUgdGFyZ2V0IG1hY3Jvcywgb3IgbWFj cm9zIHRoYXQgdXNlZCB0byBiZSBpbiB0YXJnZXQKICAgIGhlYWRlcnMgYW5k IHdlcmUgbm90IHVzZWQsIGFuZCBtYXkgYmUgb2Jzb2xldGUgb3IgbWF5IG5l dmVyIGhhdmUKZGlmZiAtLWdpdCBhL2djYy91bndpbmQtZHcyLmMgYi9nY2Mv dW53aW5kLWR3Mi5jCmluZGV4IDE5ZGEyOTkuLmM3NzI2NWMgMTAwNjQ0Ci0t LSBhL2djYy91bndpbmQtZHcyLmMKKysrIGIvZ2NjL3Vud2luZC1kdzIuYwpA QCAtNTksMjAgKzU5LDU2IEBACiAjZGVmaW5lIERXQVJGX1JFR19UT19VTldJ TkRfQ09MVU1OKFJFR05PKSAoUkVHTk8pCiAjZW5kaWYKIAorI2lmZGVmIFJF R19WQUxVRV9JTl9VTldJTkRfQ09OVEVYVAordHlwZWRlZiBfVW53aW5kX1dv cmQgX1Vud2luZF9Db250ZXh0X1JlZ19WYWw7CisvKiBTaWduYWwgZnJhbWUg Y29udGV4dC4gICovCisjZGVmaW5lIFNJR05BTF9GUkFNRV9CSVQgKChfVW53 aW5kX1dvcmQpIDEgPj4gMCkKKworI2RlZmluZSBfVW53aW5kX0lzRXh0ZW5k ZWRDb250ZXh0KGMpIDEKKworc3RhdGljIGlubGluZSBfVW53aW5kX1dvcmQK K19VbndpbmRfR2V0X1Vud2luZF9Xb3JkIChfVW53aW5kX0NvbnRleHRfUmVn X1ZhbCB2YWwpCit7CisgIHJldHVybiB2YWw7Cit9CisKK3N0YXRpYyBpbmxp bmUgX1Vud2luZF9Db250ZXh0X1JlZ19WYWwKK19VbndpbmRfR2V0X1Vud2lu ZF9Db250ZXh0X1JlZ19WYWwgKF9VbndpbmRfV29yZCB2YWwpCit7CisgIHJl dHVybiB2YWw7Cit9CisjZWxzZQordHlwZWRlZiB2b2lkICpfVW53aW5kX0Nv bnRleHRfUmVnX1ZhbDsKKy8qIFNpZ25hbCBmcmFtZSBjb250ZXh0LiAgKi8K KyNkZWZpbmUgU0lHTkFMX0ZSQU1FX0JJVCAoKH4oX1Vud2luZF9Xb3JkKSAw ID4+IDEpICsgMSkKKy8qIENvbnRleHQgd2hpY2ggaGFzIHZlcnNpb24vYXJn c19zaXplL2J5X3ZhbHVlIGZpZWxkcy4gICovCisjZGVmaW5lIEVYVEVOREVE X0NPTlRFWFRfQklUICgofihfVW53aW5kX1dvcmQpIDAgPj4gMikgKyAxKQor CisjZGVmaW5lIF9VbndpbmRfSXNFeHRlbmRlZENvbnRleHQoYykgKChjKS0+ ZmxhZ3MgJiBFWFRFTkRFRF9DT05URVhUX0JJVCkKKworc3RhdGljIGlubGlu ZSBfVW53aW5kX1dvcmQKK19VbndpbmRfR2V0X1Vud2luZF9Xb3JkIChfVW53 aW5kX0NvbnRleHRfUmVnX1ZhbCB2YWwpCit7CisgIHJldHVybiAoX1Vud2lu ZF9Xb3JkKSAoX1Vud2luZF9JbnRlcm5hbF9QdHIpIHZhbDsKK30KKworc3Rh dGljIGlubGluZSBfVW53aW5kX0NvbnRleHRfUmVnX1ZhbAorX1Vud2luZF9H ZXRfVW53aW5kX0NvbnRleHRfUmVnX1ZhbCAoX1Vud2luZF9Xb3JkIHZhbCkK K3sKKyAgcmV0dXJuIChfVW53aW5kX0NvbnRleHRfUmVnX1ZhbCkgKF9Vbndp bmRfSW50ZXJuYWxfUHRyKSB2YWw7Cit9CisjZW5kaWYKKwogLyogVGhpcyBp cyB0aGUgcmVnaXN0ZXIgYW5kIHVud2luZCBzdGF0ZSBmb3IgYSBwYXJ0aWN1 bGFyIGZyYW1lLiAgVGhpcwogICAgcHJvdmlkZXMgdGhlIGluZm9ybWF0aW9u IG5lY2Vzc2FyeSB0byB1bndpbmQgdXAgcGFzdCBhIGZyYW1lIGFuZCByZXR1 cm4KICAgIHRvIGl0cyBjYWxsZXIuICAqLwogc3RydWN0IF9VbndpbmRfQ29u dGV4dAogewotICB2b2lkICpyZWdbRFdBUkZfRlJBTUVfUkVHSVNURVJTKzFd OworICBfVW53aW5kX0NvbnRleHRfUmVnX1ZhbCByZWdbRFdBUkZfRlJBTUVf UkVHSVNURVJTKzFdOwogICB2b2lkICpjZmE7CiAgIHZvaWQgKnJhOwogICB2 b2lkICpsc2RhOwogICBzdHJ1Y3QgZHdhcmZfZWhfYmFzZXMgYmFzZXM7Ci0g IC8qIFNpZ25hbCBmcmFtZSBjb250ZXh0LiAgKi8KLSNkZWZpbmUgU0lHTkFM X0ZSQU1FX0JJVCAoKH4oX1Vud2luZF9Xb3JkKSAwID4+IDEpICsgMSkKLSAg LyogQ29udGV4dCB3aGljaCBoYXMgdmVyc2lvbi9hcmdzX3NpemUvYnlfdmFs dWUgZmllbGRzLiAgKi8KLSNkZWZpbmUgRVhURU5ERURfQ09OVEVYVF9CSVQg KCh+KF9VbndpbmRfV29yZCkgMCA+PiAyKSArIDEpCiAgIF9VbndpbmRfV29y ZCBmbGFnczsKICAgLyogMCBmb3Igbm93LCBjYW4gYmUgaW5jcmVhc2VkIHdo ZW4gZnVydGhlciBmaWVsZHMgYXJlIGFkZGVkIHRvCiAgICAgIHN0cnVjdCBf VW53aW5kX0NvbnRleHQuICAqLwpAQCAtMTQzLDEyICsxNzksNiBAQCBfVW53 aW5kX1NldFNpZ25hbEZyYW1lIChzdHJ1Y3QgX1Vud2luZF9Db250ZXh0ICpj b250ZXh0LCBpbnQgdmFsKQogICBlbHNlCiAgICAgY29udGV4dC0+ZmxhZ3Mg Jj0gflNJR05BTF9GUkFNRV9CSVQ7CiB9Ci0KLXN0YXRpYyBpbmxpbmUgX1Vu d2luZF9Xb3JkCi1fVW53aW5kX0lzRXh0ZW5kZWRDb250ZXh0IChzdHJ1Y3Qg X1Vud2luZF9Db250ZXh0ICpjb250ZXh0KQotewotICByZXR1cm4gY29udGV4 dC0+ZmxhZ3MgJiBFWFRFTkRFRF9DT05URVhUX0JJVDsKLX0KIAwKIC8qIEdl dCB0aGUgdmFsdWUgb2YgcmVnaXN0ZXIgSU5ERVggYXMgc2F2ZWQgaW4gQ09O VEVYVC4gICovCiAKQEAgLTE1Niw3ICsxODYsNyBAQCBpbmxpbmUgX1Vud2lu ZF9Xb3JkCiBfVW53aW5kX0dldEdSIChzdHJ1Y3QgX1Vud2luZF9Db250ZXh0 ICpjb250ZXh0LCBpbnQgaW5kZXgpCiB7CiAgIGludCBzaXplOwotICB2b2lk ICpwdHI7CisgIF9VbndpbmRfQ29udGV4dF9SZWdfVmFsIHZhbDsKIAogI2lm ZGVmIERXQVJGX1pFUk9fUkVHCiAgIGlmIChpbmRleCA9PSBEV0FSRl9aRVJP X1JFRykKQEAgLTE2NiwxOCArMTk2LDE4IEBAIF9VbndpbmRfR2V0R1IgKHN0 cnVjdCBfVW53aW5kX0NvbnRleHQgKmNvbnRleHQsIGludCBpbmRleCkKICAg aW5kZXggPSBEV0FSRl9SRUdfVE9fVU5XSU5EX0NPTFVNTiAoaW5kZXgpOwog ICBnY2NfYXNzZXJ0IChpbmRleCA8IChpbnQpIHNpemVvZihkd2FyZl9yZWdf c2l6ZV90YWJsZSkpOwogICBzaXplID0gZHdhcmZfcmVnX3NpemVfdGFibGVb aW5kZXhdOwotICBwdHIgPSBjb250ZXh0LT5yZWdbaW5kZXhdOworICB2YWwg PSBjb250ZXh0LT5yZWdbaW5kZXhdOwogCiAgIGlmIChfVW53aW5kX0lzRXh0 ZW5kZWRDb250ZXh0IChjb250ZXh0KSAmJiBjb250ZXh0LT5ieV92YWx1ZVtp bmRleF0pCi0gICAgcmV0dXJuIChfVW53aW5kX1dvcmQpIChfVW53aW5kX0lu dGVybmFsX1B0cikgcHRyOworICAgIHJldHVybiBfVW53aW5kX0dldF9Vbndp bmRfV29yZCAodmFsKTsKIAogICAvKiBUaGlzIHdpbGwgc2VnZmF1bHQgaWYg dGhlIHJlZ2lzdGVyIGhhc24ndCBiZWVuIHNhdmVkLiAgKi8KICAgaWYgKHNp emUgPT0gc2l6ZW9mKF9VbndpbmRfUHRyKSkKLSAgICByZXR1cm4gKiAoX1Vu d2luZF9QdHIgKikgcHRyOworICAgIHJldHVybiAqIChfVW53aW5kX1B0ciAq KSAoX1Vud2luZF9JbnRlcm5hbF9QdHIpIHZhbDsKICAgZWxzZQogICAgIHsK ICAgICAgIGdjY19hc3NlcnQgKHNpemUgPT0gc2l6ZW9mKF9VbndpbmRfV29y ZCkpOwotICAgICAgcmV0dXJuICogKF9VbndpbmRfV29yZCAqKSBwdHI7Cisg ICAgICByZXR1cm4gKiAoX1Vud2luZF9Xb3JkICopIChfVW53aW5kX0ludGVy bmFsX1B0cikgdmFsOwogICAgIH0KIH0KIApAQCAtMjA5LDExICsyMzksMTEg QEAgX1Vud2luZF9TZXRHUiAoc3RydWN0IF9VbndpbmRfQ29udGV4dCAqY29u dGV4dCwgaW50IGluZGV4LCBfVW53aW5kX1dvcmQgdmFsKQogCiAgIGlmIChf VW53aW5kX0lzRXh0ZW5kZWRDb250ZXh0IChjb250ZXh0KSAmJiBjb250ZXh0 LT5ieV92YWx1ZVtpbmRleF0pCiAgICAgewotICAgICAgY29udGV4dC0+cmVn W2luZGV4XSA9ICh2b2lkICopIChfVW53aW5kX0ludGVybmFsX1B0cikgdmFs OworICAgICAgY29udGV4dC0+cmVnW2luZGV4XSA9IF9VbndpbmRfR2V0X1Vu d2luZF9Db250ZXh0X1JlZ19WYWwgKHZhbCk7CiAgICAgICByZXR1cm47CiAg ICAgfQogCi0gIHB0ciA9IGNvbnRleHQtPnJlZ1tpbmRleF07CisgIHB0ciA9 ICh2b2lkICopIChfVW53aW5kX0ludGVybmFsX1B0cikgY29udGV4dC0+cmVn W2luZGV4XTsKIAogICBpZiAoc2l6ZSA9PSBzaXplb2YoX1Vud2luZF9QdHIp KQogICAgICogKF9VbndpbmRfUHRyICopIHB0ciA9IHZhbDsKQEAgLTIzMiw3 ICsyNjIsNyBAQCBfVW53aW5kX0dldEdSUHRyIChzdHJ1Y3QgX1Vud2luZF9D b250ZXh0ICpjb250ZXh0LCBpbnQgaW5kZXgpCiAgIGluZGV4ID0gRFdBUkZf UkVHX1RPX1VOV0lORF9DT0xVTU4gKGluZGV4KTsKICAgaWYgKF9VbndpbmRf SXNFeHRlbmRlZENvbnRleHQgKGNvbnRleHQpICYmIGNvbnRleHQtPmJ5X3Zh bHVlW2luZGV4XSkKICAgICByZXR1cm4gJmNvbnRleHQtPnJlZ1tpbmRleF07 Ci0gIHJldHVybiBjb250ZXh0LT5yZWdbaW5kZXhdOworICByZXR1cm4gKHZv aWQgKikgKF9VbndpbmRfSW50ZXJuYWxfUHRyKSBjb250ZXh0LT5yZWdbaW5k ZXhdOwogfQogCiAvKiBTZXQgdGhlIHBvaW50ZXIgdG8gYSByZWdpc3RlciBJ TkRFWCBhcyBzYXZlZCBpbiBDT05URVhULiAgKi8KQEAgLTI0Myw3ICsyNzMs NyBAQCBfVW53aW5kX1NldEdSUHRyIChzdHJ1Y3QgX1Vud2luZF9Db250ZXh0 ICpjb250ZXh0LCBpbnQgaW5kZXgsIHZvaWQgKnApCiAgIGluZGV4ID0gRFdB UkZfUkVHX1RPX1VOV0lORF9DT0xVTU4gKGluZGV4KTsKICAgaWYgKF9Vbndp bmRfSXNFeHRlbmRlZENvbnRleHQgKGNvbnRleHQpKQogICAgIGNvbnRleHQt PmJ5X3ZhbHVlW2luZGV4XSA9IDA7Ci0gIGNvbnRleHQtPnJlZ1tpbmRleF0g PSBwOworICBjb250ZXh0LT5yZWdbaW5kZXhdID0gKF9VbndpbmRfQ29udGV4 dF9SZWdfVmFsKSAoX1Vud2luZF9JbnRlcm5hbF9QdHIpIHA7CiB9CiAKIC8q IE92ZXJ3cml0ZSB0aGUgc2F2ZWQgdmFsdWUgZm9yIHJlZ2lzdGVyIElOREVY IGluIENPTlRFWFQgd2l0aCBWQUwuICAqLwpAQCAtMjU0LDEwICsyODQsMTAg QEAgX1Vud2luZF9TZXRHUlZhbHVlIChzdHJ1Y3QgX1Vud2luZF9Db250ZXh0 ICpjb250ZXh0LCBpbnQgaW5kZXgsCiB7CiAgIGluZGV4ID0gRFdBUkZfUkVH X1RPX1VOV0lORF9DT0xVTU4gKGluZGV4KTsKICAgZ2NjX2Fzc2VydCAoaW5k ZXggPCAoaW50KSBzaXplb2YoZHdhcmZfcmVnX3NpemVfdGFibGUpKTsKLSAg Z2NjX2Fzc2VydCAoZHdhcmZfcmVnX3NpemVfdGFibGVbaW5kZXhdID09IHNp emVvZiAoX1Vud2luZF9QdHIpKTsKKyAgZ2NjX2Fzc2VydCAoZHdhcmZfcmVn X3NpemVfdGFibGVbaW5kZXhdID09IHNpemVvZiAoX1Vud2luZF9Db250ZXh0 X1JlZ19WYWwpKTsKIAogICBjb250ZXh0LT5ieV92YWx1ZVtpbmRleF0gPSAx OwotICBjb250ZXh0LT5yZWdbaW5kZXhdID0gKHZvaWQgKikgKF9VbndpbmRf SW50ZXJuYWxfUHRyKSB2YWw7CisgIGNvbnRleHQtPnJlZ1tpbmRleF0gPSBf VW53aW5kX0dldF9VbndpbmRfQ29udGV4dF9SZWdfVmFsICh2YWwpOwogfQog CiAvKiBSZXR1cm4gbm9uemVybyBpZiByZWdpc3RlciBJTkRFWCBpcyBzdG9y ZWQgYnkgdmFsdWUgcmF0aGVyIHRoYW4KQEAgLTEyMTUsNyArMTI0NSw5IEBA IF9fZnJhbWVfc3RhdGVfZm9yICh2b2lkICpwY190YXJnZXQsIHN0cnVjdCBm cmFtZV9zdGF0ZSAqc3RhdGVfaW4pCiAgIGludCByZWc7CiAKICAgbWVtc2V0 ICgmY29udGV4dCwgMCwgc2l6ZW9mIChzdHJ1Y3QgX1Vud2luZF9Db250ZXh0 KSk7CisjaWZuZGVmIFJFR19WQUxVRV9JTl9VTldJTkRfQ09OVEVYVAogICBj b250ZXh0LmZsYWdzID0gRVhURU5ERURfQ09OVEVYVF9CSVQ7CisjZW5kaWYK ICAgY29udGV4dC5yYSA9IHBjX3RhcmdldCArIDE7CiAKICAgaWYgKHV3X2Zy YW1lX3N0YXRlX2ZvciAoJmNvbnRleHQsICZmcykgIT0gX1VSQ19OT19SRUFT T04pCkBAIC0xNDUzLDcgKzE0ODUsOSBAQCB1d19pbml0X2NvbnRleHRfMSAo c3RydWN0IF9VbndpbmRfQ29udGV4dCAqY29udGV4dCwKIAogICBtZW1zZXQg KGNvbnRleHQsIDAsIHNpemVvZiAoc3RydWN0IF9VbndpbmRfQ29udGV4dCkp OwogICBjb250ZXh0LT5yYSA9IHJhOworI2lmbmRlZiBSRUdfVkFMVUVfSU5f VU5XSU5EX0NPTlRFWFQKICAgY29udGV4dC0+ZmxhZ3MgPSBFWFRFTkRFRF9D T05URVhUX0JJVDsKKyNlbmRpZgogCiAgIGNvZGUgPSB1d19mcmFtZV9zdGF0 ZV9mb3IgKGNvbnRleHQsICZmcyk7CiAgIGdjY19hc3NlcnQgKGNvZGUgPT0g X1VSQ19OT19SRUFTT04pOwpAQCAtMTUzMiw4ICsxNTY2LDggQEAgdXdfaW5z dGFsbF9jb250ZXh0XzEgKHN0cnVjdCBfVW53aW5kX0NvbnRleHQgKmN1cnJl bnQsCiAKICAgZm9yIChpID0gMDsgaSA8IERXQVJGX0ZSQU1FX1JFR0lTVEVS UzsgKytpKQogICAgIHsKLSAgICAgIHZvaWQgKmMgPSBjdXJyZW50LT5yZWdb aV07Ci0gICAgICB2b2lkICp0ID0gdGFyZ2V0LT5yZWdbaV07CisgICAgICB2 b2lkICpjID0gKHZvaWQgKikgKF9VbndpbmRfSW50ZXJuYWxfUHRyKSBjdXJy ZW50LT5yZWdbaV07CisgICAgICB2b2lkICp0ID0gKHZvaWQgKikgKF9Vbndp bmRfSW50ZXJuYWxfUHRyKXRhcmdldC0+cmVnW2ldOwogCiAgICAgICBnY2Nf YXNzZXJ0IChjdXJyZW50LT5ieV92YWx1ZVtpXSA9PSAwKTsKICAgICAgIGlm ICh0YXJnZXQtPmJ5X3ZhbHVlW2ldICYmIGMpCmRpZmYgLS1naXQgYS9saWJn Y2MvY29uZmlnL2kzODYvdmFsdWUtdW53aW5kLmggYi9saWJnY2MvY29uZmln L2kzODYvdmFsdWUtdW53aW5kLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggMDAwMDAwMC4uMGRjZWI1YwotLS0gL2Rldi9udWxsCisrKyBiL2xpYmdj Yy9jb25maWcvaTM4Ni92YWx1ZS11bndpbmQuaApAQCAtMCwwICsxLDI2IEBA CisvKiBTdG9yZSByZWdpc3RlciB2YWx1ZXMgYXMgX1Vud2luZF9Xb3JkIHR5 cGUgaW4gRFdBUkYyIEVIIHVud2luZCBjb250ZXh0LgorICAgQ29weXJpZ2h0 IChDKSAyMDExCisgICBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4K KworICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgR0NDLgorCisgICBHQ0MgaXMg ZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29y IG1vZGlmeSBpdAorICAgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2Vu ZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQKKyAgIGJ5IHRoZSBG cmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDMsIG9y IChhdCB5b3VyCisgICBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorCisg ICBHQ0MgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxs IGJlIHVzZWZ1bCwgYnV0IFdJVEhPVVQKKyAgIEFOWSBXQVJSQU5UWTsgd2l0 aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJ TElUWQorICAgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0Uu ICBTZWUgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYworICAgTGljZW5zZSBmb3Ig bW9yZSBkZXRhaWxzLgorCisgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQg YSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhbmQK KyAgIGEgY29weSBvZiB0aGUgR0NDIFJ1bnRpbWUgTGlicmFyeSBFeGNlcHRp b24gYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07CisgICBzZWUgdGhlIGZpbGVz IENPUFlJTkczIGFuZCBDT1BZSU5HLlJVTlRJTUUgcmVzcGVjdGl2ZWx5LiAg SWYgbm90LCBzZWUKKyAgIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMv Pi4gICovCisKKy8qIERlZmluZSB0aGlzIG1hY3JvIGlmIHRoZSB0YXJnZXQg c3RvcmVzIHJlZ2lzdGVyIHZhbHVlcyBhcyBfVW53aW5kX1dvcmQKKyAgIHR5 cGUgaW4gdW53aW5kIGNvbnRleHQuICBPbmx5IGVuYWJsZSBpdCBmb3IgeDMy LiAgKi8KKyNpZiBkZWZpbmVkIF9feDg2XzY0ICYmICFkZWZpbmVkIF9fTFA2 NF9fCisjIGRlZmluZSBSRUdfVkFMVUVfSU5fVU5XSU5EX0NPTlRFWFQKKyNl bmRpZgo= --001636426b417423e404a6f15b0d--