From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from sender4-pp-o91.zoho.com (sender4-pp-o91.zoho.com [136.143.188.91]) by sourceware.org (Postfix) with ESMTPS id CC47A3857422; Fri, 21 May 2021 01:27:25 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org CC47A3857422 ARC-Seal: i=1; a=rsa-sha256; t=1621560442; cv=none; d=zohomail.com; s=zohoarc; b=VuxuGKGwAQYJ4BdoDBg3dTVVsIaNH/YCj4sCCARCJSV7qfaXX4CNgl1WAj2HCNTUJ8u7hBTdw1JBIVSeSx7cMThwegiP95e+DxOgLYQ/dxvOvOcH33+YPK422DK389j2+93ZUN5SlYoW+Mexc+fMHYDoDvDw4TiNFlRnpwqT2w0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1621560442; h=Content-Type:Date:From:MIME-Version:Message-ID:Subject:To; bh=E1VbDknH/FZPC1/kivE+R4dvq73pzYVonNO8+XkyhDw=; b=A6y8D2l45ImOi02jgvZo8u9+yLwnssZOrllQKOI+krfdjBOYd1QPXRTYVqnNWAVI08mOwUze4Un1I1YuFCly4sZPfctTLKefO1tcDVxfbvXPx6RP1UdcCwKMQmMDe11hklZK+FeO15CBY1p9Q+ZUkNsIuKj0UL4rYzvxUyki4+4= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass header.i=zoho.com; spf=pass smtp.mailfrom=bouanto@zoho.com; dmarc=pass header.from= Received: from [192.168.1.174] (38.87.11.6 [38.87.11.6]) by mx.zohomail.com with SMTPS id 1621560438551654.1066237975675; Thu, 20 May 2021 18:27:18 -0700 (PDT) Message-ID: <7d6762623f658712a4b802cc3d6524c106affa2b.camel@zoho.com> Subject: [PATCH] libgccjit: Add function to set the initial value of a global variable [PR96089] From: Antoni Boucher To: jit@gcc.gnu.org, gcc-patches@gcc.gnu.org Date: Thu, 20 May 2021 21:27:15 -0400 Content-Type: multipart/mixed; boundary="=-aq7vhqwMkIXa2Uglmyyy" User-Agent: Evolution 3.40.1 MIME-Version: 1.0 X-Zoho-Virus-Status: 1 X-ZohoMailClient: External X-Spam-Status: No, score=-12.5 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, FREEMAIL_FROM, GIT_PATCH_0, KAM_SHORT, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on server2.sourceware.org X-BeenThere: jit@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Jit mailing list List-Unsubscribe: , List-Archive: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 May 2021 01:27:29 -0000 --=-aq7vhqwMkIXa2Uglmyyy Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 7bit Hi. I made this patch to set an arbitrary value to a global variable. This patch suffers from the same issue as inline assembly (https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100380), i.e. it segfaults if the `rvalue` is created after the global variable. It seems to be a design issue so I'm not sure what would be the fix for it and having it fixed would allow me to test this new function much more and see if things are missing (i.e. it might require a way to create a constant struct). See the link above for an explanation of this issue. Thanks for the review. --=-aq7vhqwMkIXa2Uglmyyy Content-Disposition: attachment; filename*0=0001-Add-function-to-set-the-initial-value-of-a-global-va.pat; filename*1=ch Content-Transfer-Encoding: base64 Content-Type: text/x-patch; name="0001-Add-function-to-set-the-initial-value-of-a-global-va.patch"; charset="UTF-8" RnJvbSAwYTVmZDdmNzU5ZTFiZDdiZWNjOTkzZjAxYmRjZjg0ZmY4ZmM1ZmQ1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBbnRvbmkgQm91Y2hlciA8Ym91YW50b0B6b2hvLmNvbT4KRGF0 ZTogU2F0LCAxNSBNYXkgMjAyMSAxMDo1NDozNiAtMDQwMApTdWJqZWN0OiBbUEFUQ0hdIEFkZCBm dW5jdGlvbiB0byBzZXQgdGhlIGluaXRpYWwgdmFsdWUgb2YgYSBnbG9iYWwgdmFyaWFibGUKIFtQ Ujk2MDg5XQoKMjAyMS0wNS0yMCAgQW50b25pIEJvdWNoZXIgIDxib3VhbnRvQHpvaG8uY29tPgoK ICAgIGdjYy9qaXQvCiAgICAgICAgICAgIFBSIHRhcmdldC85NjA4OQogICAgICAgICAgICAqIGRv Y3MvdG9waWNzL2NvbXBhdGliaWxpdHkucnN0IChMSUJHQ0NKSVRfQUJJXzE5KTogTmV3IEFCSQog ICAgICAgICAgICB0YWcuCiAgICAgICAgICAgICogZG9jcy90b3BpY3MvZXhwcmVzc2lvbnMucnN0 OiBBZGQgZG9jdW1lbnRhdGlvbiBmb3IgdGhlCiAgICAgICAgICAgIGZ1bmN0aW9uIGdjY19qaXRf Z2xvYmFsX3NldF9pbml0aWFsaXplcl92YWx1ZS4KICAgICAgICAgICAgKiBqaXQtcGxheWJhY2su YzogTmV3IGZ1bmN0aW9uIChuZXdfZ2xvYmFsX3dpdGhfdmFsdWUpLgogICAgICAgICAgICAqIGpp dC1wbGF5YmFjay5oOiBOZXcgZnVuY3Rpb24gKG5ld19nbG9iYWxfd2l0aF92YWx1ZSkuCiAgICAg ICAgICAgICogaml0LXJlY29yZGluZy5jOiBBZGQgc3VwcG9ydCBmb3Igc2V0dGluZyBhIHZhbHVl IHRvIGEKICAgICAgICAgICAgZ2xvYmFsIHZhcmlhYmxlLgogICAgICAgICAgICAqIGppdC1yZWNv cmRpbmcuaDogTmV3IGZ1bmN0aW9uIChzZXRfaW5pdGlhbGl6ZXJfdmFsdWUpIGFuZAogICAgICAg ICAgICBuZXcgZmllbGQgbV9pbml0aWFsaXplcl92YWx1ZS4KICAgICAgICAgICAgKiBsaWJnY2Nq aXQuYzogTmV3IG1hY3JvIFJFVFVSTl9JRl9GQUlMX1BSSU5URjUgYW5kIG5ldwogICAgICAgICAg ICBmdW5jdGlvbiAoZ2NjX2ppdF9nbG9iYWxfc2V0X2luaXRpYWxpemVyX3ZhbHVlKS4KICAgICAg ICAgICAgKiBsaWJnY2NqaXQuaDogTmV3IGZ1bmN0aW9uIChnY2Nfaml0X2dsb2JhbF9zZXRfaW5p dGlhbGl6ZXJfdmFsdWUpLgogICAgICAgICAgICAqIGxpYmdjY2ppdC5tYXAgKExJQkdDQ0pJVF9B QklfMTkpOiBOZXcgQUJJIHRhZy4KCiAgICBnY2MvdGVzdHN1aXRlLwogICAgICAgICAgICBQUiB0 YXJnZXQvOTYwODkKICAgICAgICAgICAgKiBqaXQuZGcvdGVzdC1nbG9iYWwtc2V0LWluaXRpYWxp emVyLmM6IEFkZCB0ZXN0IGZvciB0aGUgbmV3CiAgICAgICAgICAgIGZ1bmN0aW9uIChnY2Nfaml0 X2dsb2JhbF9zZXRfaW5pdGlhbGl6ZXJfdmFsdWUpLgotLS0KIGdjYy9qaXQvZG9jcy90b3BpY3Mv Y29tcGF0aWJpbGl0eS5yc3QgICAgICAgICB8ICA5ICsrKysKIGdjYy9qaXQvZG9jcy90b3BpY3Mv ZXhwcmVzc2lvbnMucnN0ICAgICAgICAgICB8IDE0ICsrKysrKwogZ2NjL2ppdC9qaXQtcGxheWJh Y2suYyAgICAgICAgICAgICAgICAgICAgICAgIHwgMTggKysrKysrKysKIGdjYy9qaXQvaml0LXBs YXliYWNrLmggICAgICAgICAgICAgICAgICAgICAgICB8ICA3ICsrKwogZ2NjL2ppdC9qaXQtcmVj b3JkaW5nLmMgICAgICAgICAgICAgICAgICAgICAgIHwgMzQgKysrKysrKysrKysrLS0tCiBnY2Mv aml0L2ppdC1yZWNvcmRpbmcuaCAgICAgICAgICAgICAgICAgICAgICAgfCAgOCArKysrCiBnY2Mv aml0L2xpYmdjY2ppdC5jICAgICAgICAgICAgICAgICAgICAgICAgICAgfCA0MyArKysrKysrKysr KysrKysrKysrCiBnY2Mvaml0L2xpYmdjY2ppdC5oICAgICAgICAgICAgICAgICAgICAgICAgICAg fCAxMyArKysrKysKIGdjYy9qaXQvbGliZ2Njaml0Lm1hcCAgICAgICAgICAgICAgICAgICAgICAg ICB8IDE0ICsrKysrKwogLi4uL2ppdC5kZy90ZXN0LWdsb2JhbC1zZXQtaW5pdGlhbGl6ZXIuYyAg ICAgIHwgMTUgKysrKysrKwogMTAgZmlsZXMgY2hhbmdlZCwgMTY5IGluc2VydGlvbnMoKyksIDYg ZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZ2NjL2ppdC9kb2NzL3RvcGljcy9jb21wYXRpYmls aXR5LnJzdCBiL2djYy9qaXQvZG9jcy90b3BpY3MvY29tcGF0aWJpbGl0eS5yc3QKaW5kZXggMjM5 YjZhYTFhOTIuLjY2NmViM2ExYzUxIDEwMDY0NAotLS0gYS9nY2Mvaml0L2RvY3MvdG9waWNzL2Nv bXBhdGliaWxpdHkucnN0CisrKyBiL2djYy9qaXQvZG9jcy90b3BpY3MvY29tcGF0aWJpbGl0eS5y c3QKQEAgLTI0MywzICsyNDMsMTIgQEAgZW1iZWRkaW5nIGFzc2VtYmxlciBpbnN0cnVjdGlvbnM6 CiAgICogOmZ1bmM6YGdjY19qaXRfZXh0ZW5kZWRfYXNtX2FkZF9pbnB1dF9vcGVyYW5kYAogICAq IDpmdW5jOmBnY2Nfaml0X2V4dGVuZGVkX2FzbV9hZGRfY2xvYmJlcmAKICAgKiA6ZnVuYzpgZ2Nj X2ppdF9jb250ZXh0X2FkZF90b3BfbGV2ZWxfYXNtYAorCisuLiBfTElCR0NDSklUX0FCSV8xOToK KworYGBMSUJHQ0NKSVRfQUJJXzE5YGAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitgYExJQkdD Q0pJVF9BQklfMTlgYCBjb3ZlcnMgdGhlIGFkZGl0aW9uIG9mIGFuIEFQSSBlbnRyeXBvaW50IHRv IHNldCB0aGUgdmFsdWUKK29mIGEgZ2xvYmFsIHZhcmlhYmxlOgorCisgICogOmZ1bmM6YGdjY19q aXRfZ2xvYmFsX3NldF9pbml0aWFsaXplcl92YWx1ZWAKZGlmZiAtLWdpdCBhL2djYy9qaXQvZG9j cy90b3BpY3MvZXhwcmVzc2lvbnMucnN0IGIvZ2NjL2ppdC9kb2NzL3RvcGljcy9leHByZXNzaW9u cy5yc3QKaW5kZXggMzk2MjU5ZWYwN2UuLmY2MzhjYjY4ZmRkIDEwMDY0NAotLS0gYS9nY2Mvaml0 L2RvY3MvdG9waWNzL2V4cHJlc3Npb25zLnJzdAorKysgYi9nY2Mvaml0L2RvY3MvdG9waWNzL2V4 cHJlc3Npb25zLnJzdApAQCAtNjAzLDYgKzYwMywyMCBAQCBHbG9iYWwgdmFyaWFibGVzCiAKICAg ICAgICNpZmRlZiBMSUJHQ0NKSVRfSEFWRV9nY2Nfaml0X2dsb2JhbF9zZXRfaW5pdGlhbGl6ZXIK IAorLi4gZnVuY3Rpb246OiB2b2lkCisgICAgICAgICAgICAgIGdjY19qaXRfZ2xvYmFsX3NldF9p bml0aWFsaXplcl92YWx1ZSAoZ2NjX2ppdF9sdmFsdWUgKmdsb2JhbCxcCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2NjX2ppdF9ydmFsdWUgKnZh bHVlKQorCisgICBTZXQgYW4gaW5pdGlhbGl6ZXIgZm9yIGBgZ2xvYmFsYGAgdXNpbmcgdGhlIHNw ZWNpZmllZCB2YWx1ZS4KKyAgIGBgZ2xvYmFsYGAgbXVzdCBiZSB0aGUgc2FtZSB0eXBlIGFzIGBg dmFsdWVgYC4KKworICAgVGhpcyBlbnRyeXBvaW50IHdhcyBhZGRlZCBpbiA6cmVmOmBMSUJHQ0NK SVRfQUJJXzE5YDsgeW91IGNhbiB0ZXN0IGZvcgorICAgaXRzIHByZXNlbmNlIHVzaW5nCisKKyAg IC4uIGNvZGUtYmxvY2s6OiBjCisKKyAgICAgICNpZmRlZiBMSUJHQ0NKSVRfSEFWRV9nY2Nfaml0 X2dsb2JhbF9zZXRfaW5pdGlhbGl6ZXJfdmFsdWUKKwogV29ya2luZyB3aXRoIHBvaW50ZXJzLCBz dHJ1Y3RzIGFuZCB1bmlvbnMKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCiAKZGlmZiAtLWdpdCBhL2djYy9qaXQvaml0LXBsYXliYWNrLmMgYi9nY2Mvaml0L2ppdC1w bGF5YmFjay5jCmluZGV4IGM2MTM2MzAxMjQzLi5kODY3MDFhOGFlNiAxMDA2NDQKLS0tIGEvZ2Nj L2ppdC9qaXQtcGxheWJhY2suYworKysgYi9nY2Mvaml0L2ppdC1wbGF5YmFjay5jCkBAIC02NjQs NiArNjY0LDI0IEBAIG5ld19nbG9iYWxfaW5pdGlhbGl6ZWQgKGxvY2F0aW9uICpsb2MsCiAgIHJl dHVybiBnbG9iYWxfZmluYWxpemVfbHZhbHVlIChpbm5lcik7CiB9CiAKK3BsYXliYWNrOjpsdmFs dWUgKgorcGxheWJhY2s6OmNvbnRleHQ6OgorbmV3X2dsb2JhbF93aXRoX3ZhbHVlIChsb2NhdGlv biAqbG9jLAorCQkgICAgICAgZW51bSBnY2Nfaml0X2dsb2JhbF9raW5kIGtpbmQsCisJCSAgICAg ICB0eXBlICp0eXBlLAorCQkgICAgICAgcGxheWJhY2s6OnJ2YWx1ZSAqdmFsdWUsCisJCSAgICAg ICBjb25zdCBjaGFyICpuYW1lKQoreworICB0cmVlIGlubmVyID0gZ2xvYmFsX25ld19kZWNsIChs b2MsIGtpbmQsIHR5cGUsIG5hbWUpOworCisgIHRyZWUgaW5uZXJfdHlwZSA9IHR5cGUtPmFzX3Ry ZWUgKCk7CisgIHRyZWUgaW5pdGlhbCA9IHZhbHVlLT5hc190cmVlICgpOworICBnY2NfYXNzZXJ0 IChUUkVFX0NPTlNUQU5UIChpbml0aWFsKSk7CisgIERFQ0xfSU5JVElBTCAoaW5uZXIpID0gaW5p dGlhbDsKKworICByZXR1cm4gZ2xvYmFsX2ZpbmFsaXplX2x2YWx1ZSAoaW5uZXIpOworfQorCiAv KiBJbXBsZW1lbnRhdGlvbiBvZiB0aGUgdmFyaW91cwogICAgICAgZ2NjOjpqaXQ6OnBsYXliYWNr Ojpjb250ZXh0OjpuZXdfcnZhbHVlX2Zyb21fY29uc3QgPEhPU1RfVFlQRT4KICAgIG1ldGhvZHMu CmRpZmYgLS1naXQgYS9nY2Mvaml0L2ppdC1wbGF5YmFjay5oIGIvZ2NjL2ppdC9qaXQtcGxheWJh Y2suaAppbmRleCA4MjVhM2UxNzJlOS4uOTU4Mjg0ZGY1MzkgMTAwNjQ0Ci0tLSBhL2djYy9qaXQv aml0LXBsYXliYWNrLmgKKysrIGIvZ2NjL2ppdC9qaXQtcGxheWJhY2suaApAQCAtMTIwLDYgKzEy MCwxMyBAQCBwdWJsaWM6CiAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHZvaWQgKmlu aXRpYWxpemVyLAogICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICpuYW1lKTsK IAorICBsdmFsdWUqCisgIG5ld19nbG9iYWxfd2l0aF92YWx1ZSAobG9jYXRpb24gKmxvYywKKwkJ CSBlbnVtIGdjY19qaXRfZ2xvYmFsX2tpbmQga2luZCwKKwkJCSB0eXBlICp0eXBlLAorCQkJIHJ2 YWx1ZSAqdmFsdWUsCisJCQkgY29uc3QgY2hhciAqbmFtZSk7CisKICAgdGVtcGxhdGUgPHR5cGVu YW1lIEhPU1RfVFlQRT4KICAgcnZhbHVlICoKICAgbmV3X3J2YWx1ZV9mcm9tX2NvbnN0ICh0eXBl ICp0eXBlLApkaWZmIC0tZ2l0IGEvZ2NjL2ppdC9qaXQtcmVjb3JkaW5nLmMgYi9nY2Mvaml0L2pp dC1yZWNvcmRpbmcuYwppbmRleCAxMTdmZjcwMTE0Yy4uYTI2ZTQ5MjgwODQgMTAwNjQ0Ci0tLSBh L2djYy9qaXQvaml0LXJlY29yZGluZy5jCisrKyBiL2djYy9qaXQvaml0LXJlY29yZGluZy5jCkBA IC00NTQ3LDIwICs0NTQ3LDM0IEBAIHJlY29yZGluZzo6YmxvY2s6OmR1bXBfZWRnZXNfdG9fZG90 IChwcmV0dHlfcHJpbnRlciAqcHApCiB2b2lkCiByZWNvcmRpbmc6Omdsb2JhbDo6cmVwbGF5X2lu dG8gKHJlcGxheWVyICpyKQogewotICBzZXRfcGxheWJhY2tfb2JqICgKLSAgICBtX2luaXRpYWxp emVyCi0gICAgPyByLT5uZXdfZ2xvYmFsX2luaXRpYWxpemVkIChwbGF5YmFja19sb2NhdGlvbiAo ciwgbV9sb2MpLAorICBwbGF5YmFjazo6bHZhbHVlICogb2JqOworICBpZiAobV9pbml0aWFsaXpl cikKKyAgeworICAgICAgb2JqID0gci0+bmV3X2dsb2JhbF9pbml0aWFsaXplZCAocGxheWJhY2tf bG9jYXRpb24gKHIsIG1fbG9jKSwKIAkJCQkgbV9raW5kLAogCQkJCSBtX3R5cGUtPnBsYXliYWNr X3R5cGUgKCksCiAJCQkJIG1fdHlwZS0+ZGVyZWZlcmVuY2UgKCktPmdldF9zaXplICgpLAogCQkJ CSBtX2luaXRpYWxpemVyX251bV9ieXRlcwogCQkJCSAvIG1fdHlwZS0+ZGVyZWZlcmVuY2UgKCkt PmdldF9zaXplICgpLAogCQkJCSBtX2luaXRpYWxpemVyLAotCQkJCSBwbGF5YmFja19zdHJpbmcg KG1fbmFtZSkpCi0gICAgOiByLT5uZXdfZ2xvYmFsIChwbGF5YmFja19sb2NhdGlvbiAociwgbV9s b2MpLAorCQkJCSBwbGF5YmFja19zdHJpbmcgKG1fbmFtZSkpOworICB9CisgIGVsc2UgaWYgKG1f aW5pdGlhbGl6ZXJfdmFsdWUpCisgIHsKKyAgICAgIG9iaiA9IHItPm5ld19nbG9iYWxfd2l0aF92 YWx1ZSAocGxheWJhY2tfbG9jYXRpb24gKHIsIG1fbG9jKSwKKwkJCQkgbV9raW5kLAorCQkJCSBt X3R5cGUtPnBsYXliYWNrX3R5cGUgKCksCisJCQkJIG1faW5pdGlhbGl6ZXJfdmFsdWUtPnBsYXli YWNrX3J2YWx1ZSAoKSwKKwkJCQkgcGxheWJhY2tfc3RyaW5nIChtX25hbWUpKTsKKyAgfQorICBl bHNlCisgIHsKKyAgICAgIG9iaiA9IHItPm5ld19nbG9iYWwgKHBsYXliYWNrX2xvY2F0aW9uIChy LCBtX2xvYyksCiAJCSAgICAgbV9raW5kLAogCQkgICAgIG1fdHlwZS0+cGxheWJhY2tfdHlwZSAo KSwKLQkJICAgICBwbGF5YmFja19zdHJpbmcgKG1fbmFtZSkpKTsKKwkJICAgICBwbGF5YmFja19z dHJpbmcgKG1fbmFtZSkpOworICB9CisgIHNldF9wbGF5YmFja19vYmogKG9iaik7CiB9CiAKIC8q IE92ZXJyaWRlIHRoZSBkZWZhdWx0IGltcGxlbWVudGF0aW9uIG9mCkBAIC00Njc1LDYgKzQ2ODks MTQgQEAgcmVjb3JkaW5nOjpnbG9iYWw6OndyaXRlX3JlcHJvZHVjZXIgKHJlcHJvZHVjZXIgJnIp CiAgICAgci5nZXRfaWRlbnRpZmllcl9hc190eXBlIChnZXRfdHlwZSAoKSksCiAgICAgbV9uYW1l LT5nZXRfZGVidWdfc3RyaW5nICgpKTsKIAorICBpZiAobV9pbml0aWFsaXplcl92YWx1ZSkKKyAg eworICAgIHIud3JpdGUgKCIgIGdjY19qaXRfZ2xvYmFsX3NldF9pbml0aWFsaXplcl92YWx1ZSAo JXMsIC8qIGdjY19qaXRfbHZhbHVlICpnbG9iYWwgKi9cbiIKKyAgICAgICIgICAgJXMvKiBnY2Nf aml0X3J2YWx1ZSAqdmFsdWUgKi8pO1xuIiwKKyAgICBpZCwKKyAgICByLmdldF9pZGVudGlmaWVy X2FzX3J2YWx1ZSAobV9pbml0aWFsaXplcl92YWx1ZSkpOworICB9CisKICAgaWYgKG1faW5pdGlh bGl6ZXIpCiAgICAgc3dpdGNoIChtX3R5cGUtPmRlcmVmZXJlbmNlICgpLT5nZXRfc2l6ZSAoKSkK ICAgICAgIHsKZGlmZiAtLWdpdCBhL2djYy9qaXQvaml0LXJlY29yZGluZy5oIGIvZ2NjL2ppdC9q aXQtcmVjb3JkaW5nLmgKaW5kZXggMDNmYTExNjBjZjAuLjYxZGUyZTFkY2Q0IDEwMDY0NAotLS0g YS9nY2Mvaml0L2ppdC1yZWNvcmRpbmcuaAorKysgYi9nY2Mvaml0L2ppdC1yZWNvcmRpbmcuaApA QCAtMTM2MCw2ICsxMzYwLDcgQEAgcHVibGljOgogICAgIG1fbmFtZSAobmFtZSkKICAgewogICAg IG1faW5pdGlhbGl6ZXIgPSBOVUxMOworICAgIG1faW5pdGlhbGl6ZXJfdmFsdWUgPSBOVUxMOwog ICAgIG1faW5pdGlhbGl6ZXJfbnVtX2J5dGVzID0gMDsKICAgfQogICB+Z2xvYmFsICgpCkBAIC0x Mzg2LDYgKzEzODcsMTIgQEAgcHVibGljOgogICAgIG1faW5pdGlhbGl6ZXJfbnVtX2J5dGVzID0g bnVtX2J5dGVzOwogICB9CiAKKyAgdm9pZAorICBzZXRfaW5pdGlhbGl6ZXJfdmFsdWUgKHJ2YWx1 ZSogdmFsdWUpCisgIHsKKyAgICBtX2luaXRpYWxpemVyX3ZhbHVlID0gdmFsdWU7CisgIH0KKwog cHJpdmF0ZToKICAgc3RyaW5nICogbWFrZV9kZWJ1Z19zdHJpbmcgKCkgRklOQUwgT1ZFUlJJREUg eyByZXR1cm4gbV9uYW1lOyB9CiAgIHRlbXBsYXRlIDx0eXBlbmFtZSBUPgpAQCAtMTQwMCw2ICsx NDA3LDcgQEAgcHJpdmF0ZToKICAgZW51bSBnY2Nfaml0X2dsb2JhbF9raW5kIG1fa2luZDsKICAg c3RyaW5nICptX25hbWU7CiAgIHZvaWQgKm1faW5pdGlhbGl6ZXI7CisgIHJ2YWx1ZSAqbV9pbml0 aWFsaXplcl92YWx1ZTsKICAgc2l6ZV90IG1faW5pdGlhbGl6ZXJfbnVtX2J5dGVzOwogfTsKIApk aWZmIC0tZ2l0IGEvZ2NjL2ppdC9saWJnY2NqaXQuYyBiL2djYy9qaXQvbGliZ2Njaml0LmMKaW5k ZXggN2ZhOTQ4MDA3YWQuLmI3ZmQ0ZDliZWJiIDEwMDY0NAotLS0gYS9nY2Mvaml0L2xpYmdjY2pp dC5jCisrKyBiL2djYy9qaXQvbGliZ2Njaml0LmMKQEAgLTI2OSw2ICsyNjksMTcgQEAgc3RydWN0 IGdjY19qaXRfZXh0ZW5kZWRfYXNtIDogcHVibGljIGdjYzo6aml0OjpyZWNvcmRpbmc6OmV4dGVu ZGVkX2FzbQogICAgICAgfQkJCQkJCQkJXAogICBKSVRfRU5EX1NUTVQKIAorI2RlZmluZSBSRVRV Uk5fSUZfRkFJTF9QUklOVEY1KFRFU1RfRVhQUiwgQ1RYVCwgTE9DLCBFUlJfRk1ULCBBMCwgQTEs IEEyLCBBMywgXAorCQkJICAgICAgIEE0KSBcCisgIEpJVF9CRUdJTl9TVE1UCQkJCQkJCVwKKyAg ICBpZiAoIShURVNUX0VYUFIpKQkJCQkJCQlcCisgICAgICB7CQkJCQkJCQlcCisJaml0X2Vycm9y ICgoQ1RYVCksIChMT0MpLCAiJXM6ICIgRVJSX0ZNVCwJCQlcCisJCSAgIF9fZnVuY19fLCAoQTAp LCAoQTEpLCAoQTIpLCAoQTMpLCAoQTQpKTsJCVwKKwlyZXR1cm47CQkJCQkJCVwKKyAgICAgIH0J CQkJCQkJCVwKKyAgSklUX0VORF9TVE1UCisKIC8qIENoZWNrIHRoYXQgQkxPQ0sgaXMgbm9uLU5V TEwsIGFuZCB0aGF0IGl0J3MgT0sgdG8gYWRkIHN0YXRlbWVudHMgdG8KICAgIGl0LiAgVGhpcyB3 aWxsIGZhaWwgaWYgQkxPQ0sgaGFzIGFscmVhZHkgYmVlbiB0ZXJtaW5hdGVkIGJ5IHNvbWUKICAg IGtpbmQgb2YganVtcCBvciBhIHJldHVybi4gICovCkBAIC0xMTYxLDYgKzExNzIsMzggQEAgZ2Nj X2ppdF9nbG9iYWxfc2V0X2luaXRpYWxpemVyIChnY2Nfaml0X2x2YWx1ZSAqZ2xvYmFsLAogICBy ZXR1cm4gZ2xvYmFsOwogfQogCisvKiBQdWJsaWMgZW50cnlwb2ludC4gIFNlZSBkZXNjcmlwdGlv biBpbiBsaWJnY2NqaXQuaC4KKworICAgQWZ0ZXIgZXJyb3ItY2hlY2tpbmcsIHRoZSByZWFsIHdv cmsgaXMgZG9uZSBieSB0aGUKKyAgIGdjYzo6aml0OjpyZWNvcmRpbmc6Omdsb2JhbDo6c2V0X2lu aXRpYWxpemVyX3ZhbHVlIG1ldGhvZCwgaW4KKyAgIGppdC1yZWNvcmRpbmcuYy4gICovCisKK3Zv aWQKK2djY19qaXRfZ2xvYmFsX3NldF9pbml0aWFsaXplcl92YWx1ZSAoZ2NjX2ppdF9sdmFsdWUg Kmdsb2JhbCwKKwkJCQlnY2Nfaml0X3J2YWx1ZSAqdmFsdWUpCit7CisgIFJFVFVSTl9JRl9GQUlM IChnbG9iYWwsIE5VTEwsIE5VTEwsICJOVUxMIGdsb2JhbCIpOworICBSRVRVUk5fSUZfRkFJTCAo dmFsdWUsIE5VTEwsIE5VTEwsICJOVUxMIHZhbHVlIik7CisgIFJFVFVSTl9JRl9GQUlMX1BSSU5U RjEgKGdsb2JhbC0+aXNfZ2xvYmFsICgpLCBOVUxMLCBOVUxMLAorCQkJICAgICAgICJsdmFsdWUg XCIlc1wiIG5vdCBhIGdsb2JhbCIsCisJCQkgICAgICAgZ2xvYmFsLT5nZXRfZGVidWdfc3RyaW5n ICgpKTsKKworICAgICAgUkVUVVJOX0lGX0ZBSUxfUFJJTlRGNSAoCisJY29tcGF0aWJsZV90eXBl cyAoZ2xvYmFsLT5nZXRfdHlwZSAoKSwKKwkJCSAgdmFsdWUtPmdldF90eXBlICgpKSwKKwlOVUxM LCBOVUxMLAorCSJtaXNtYXRjaGluZyB0eXBlcyBmb3IgZ2xvYmFsIFwiJXNcIjoiCisJIiBhc3Np Z25tZW50IHRvIGdsb2JhbCAlcyAodHlwZTogJXMpIGZyb20gJXMgKHR5cGU6ICVzKSIsCisJZ2xv YmFsLT5nZXRfZGVidWdfc3RyaW5nICgpLAorCWdsb2JhbC0+Z2V0X2RlYnVnX3N0cmluZyAoKSwK KwlnbG9iYWwtPmdldF90eXBlICgpLT5nZXRfZGVidWdfc3RyaW5nICgpLAorCXZhbHVlLT5nZXRf ZGVidWdfc3RyaW5nICgpLAorCXZhbHVlLT5nZXRfdHlwZSAoKS0+Z2V0X2RlYnVnX3N0cmluZyAo KSk7CisKKyAgcmVpbnRlcnByZXRfY2FzdCA8Z2NjOjpqaXQ6OnJlY29yZGluZzo6Z2xvYmFsICo+ IChnbG9iYWwpCisgICAgLT5zZXRfaW5pdGlhbGl6ZXJfdmFsdWUgKHZhbHVlKTsKK30KKwogLyog UHVibGljIGVudHJ5cG9pbnQuICBTZWUgZGVzY3JpcHRpb24gaW4gbGliZ2Njaml0LmguCiAKICAg IEFmdGVyIGVycm9yLWNoZWNraW5nLCB0aGlzIGNhbGxzIHRoZSB0cml2aWFsCmRpZmYgLS1naXQg YS9nY2Mvaml0L2xpYmdjY2ppdC5oIGIvZ2NjL2ppdC9saWJnY2NqaXQuaAppbmRleCA1YzcyMmMy YzU3Zi4uOTg3NjJkMDUyNzEgMTAwNjQ0Ci0tLSBhL2djYy9qaXQvbGliZ2Njaml0LmgKKysrIGIv Z2NjL2ppdC9saWJnY2NqaXQuaApAQCAtODEwLDYgKzgxMCwxOSBAQCBnY2Nfaml0X2dsb2JhbF9z ZXRfaW5pdGlhbGl6ZXIgKGdjY19qaXRfbHZhbHVlICpnbG9iYWwsCiAJCQkJY29uc3Qgdm9pZCAq YmxvYiwKIAkJCQlzaXplX3QgbnVtX2J5dGVzKTsKIAorI2RlZmluZSBMSUJHQ0NKSVRfSEFWRV9n Y2Nfaml0X2dsb2JhbF9zZXRfaW5pdGlhbGl6ZXJfdmFsdWUKKworLyogU2V0IGFuIGluaXRpYWwg dmFsdWUgZm9yIGEgZ2xvYmFsLCB3aGljaCBtdXN0IGJlIGEgY29uc3RhbnQuCisKKyAgIFRoaXMg QVBJIGVudHJ5cG9pbnQgd2FzIGFkZGVkIGluIExJQkdDQ0pJVF9BQklfMTk7IHlvdSBjYW4gdGVz dCBmb3IgaXRzCisgICBwcmVzZW5jZSB1c2luZworICAgICAjaWZkZWYgTElCR0NDSklUX0hBVkVf Z2NjX2ppdF9nbG9iYWxfc2V0X2luaXRpYWxpemVyX3ZhbHVlCisqLworCitleHRlcm4gdm9pZAor Z2NjX2ppdF9nbG9iYWxfc2V0X2luaXRpYWxpemVyX3ZhbHVlIChnY2Nfaml0X2x2YWx1ZSAqZ2xv YmFsLAorCQkJCWdjY19qaXRfcnZhbHVlICp2YWx1ZSk7CisKIC8qIFVwY2FzdGluZy4gICovCiBl eHRlcm4gZ2NjX2ppdF9vYmplY3QgKgogZ2NjX2ppdF9sdmFsdWVfYXNfb2JqZWN0IChnY2Nfaml0 X2x2YWx1ZSAqbHZhbHVlKTsKZGlmZiAtLWdpdCBhL2djYy9qaXQvbGliZ2Njaml0Lm1hcCBiL2dj Yy9qaXQvbGliZ2Njaml0Lm1hcAppbmRleCAzMzdlYTZjN2ZlNC4uYTBlNzJjOTI1ZDAgMTAwNjQ0 Ci0tLSBhL2djYy9qaXQvbGliZ2Njaml0Lm1hcAorKysgYi9nY2Mvaml0L2xpYmdjY2ppdC5tYXAK QEAgLTIwNSwzICsyMDUsMTcgQEAgTElCR0NDSklUX0FCSV8xNSB7CiAgICAgZ2NjX2ppdF9leHRl bmRlZF9hc21fYWRkX2Nsb2JiZXI7CiAgICAgZ2NjX2ppdF9jb250ZXh0X2FkZF90b3BfbGV2ZWxf YXNtOwogfSBMSUJHQ0NKSVRfQUJJXzE0OworCitMSUJHQ0NKSVRfQUJJXzE2IHsKK30gTElCR0ND SklUX0FCSV8xNTsKKworTElCR0NDSklUX0FCSV8xNyB7Cit9IExJQkdDQ0pJVF9BQklfMTY7CisK K0xJQkdDQ0pJVF9BQklfMTggeworfSBMSUJHQ0NKSVRfQUJJXzE3OworCitMSUJHQ0NKSVRfQUJJ XzE5IHsKKyAgZ2xvYmFsOgorICAgIGdjY19qaXRfZ2xvYmFsX3NldF9pbml0aWFsaXplcl92YWx1 ZTsKK30gTElCR0NDSklUX0FCSV8xODsKZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvaml0LmRn L3Rlc3QtZ2xvYmFsLXNldC1pbml0aWFsaXplci5jIGIvZ2NjL3Rlc3RzdWl0ZS9qaXQuZGcvdGVz dC1nbG9iYWwtc2V0LWluaXRpYWxpemVyLmMKaW5kZXggZDM4YWJhN2Q3M2YuLjQxOGVkN2RjZjNm IDEwMDY0NAotLS0gYS9nY2MvdGVzdHN1aXRlL2ppdC5kZy90ZXN0LWdsb2JhbC1zZXQtaW5pdGlh bGl6ZXIuYworKysgYi9nY2MvdGVzdHN1aXRlL2ppdC5kZy90ZXN0LWdsb2JhbC1zZXQtaW5pdGlh bGl6ZXIuYwpAQCAtMjEsNiArMjEsNyBAQCBjcmVhdGVfY29kZSAoZ2NjX2ppdF9jb250ZXh0ICpj dHh0LCB2b2lkICp1c2VyX2RhdGEpCiAgICAgIHNpZ25lZCBjaGFyIGJpbl9ibG9iMVtdID0geyAw eGMsIDB4YSwgMHhmLCAweGYsIDB4ZSB9OwogICAgICB1bnNpZ25lZCBiaW5fYmxvYjJbXSA9IHsg MHgzLCAweDIsIDB4MSwgMHgwLCAweDEsIDB4MiwgMHgzIH07CiAgICAgIHVuc2lnbmVkIGNoYXIg YmluX2Jsb2IzWzQwOTZdLi4uCisgICAgIHVuc2lnbmVkIGludCBpbnRlZ2VyID0gNDI7CiAgICov CiAgIGdjY19qaXRfdHlwZSAqdW5zaWduZWRfY2hhcl90eXBlID0KICAgICBnY2Nfaml0X2NvbnRl eHRfZ2V0X3R5cGUgKGN0eHQsIEdDQ19KSVRfVFlQRV9VTlNJR05FRF9DSEFSKTsKQEAgLTU2LDYg KzU3LDE2IEBAIGNyZWF0ZV9jb2RlIChnY2Nfaml0X2NvbnRleHQgKmN0eHQsIHZvaWQgKnVzZXJf ZGF0YSkKIAkJCQkgICAgICBzaXplb2YgKHRlc3RfYmxvYjMpKSwKICAgICAgICJiaW5fYmxvYjMi KTsKICAgZ2NjX2ppdF9nbG9iYWxfc2V0X2luaXRpYWxpemVyIChnbG9iLCB0ZXN0X2Jsb2IzLCBz aXplb2YgKHRlc3RfYmxvYjMpKTsKKworICBnY2Nfaml0X3J2YWx1ZSAqZm9ydHlfdHdvID0gZ2Nj X2ppdF9jb250ZXh0X25ld19ydmFsdWVfZnJvbV9pbnQgKAorICAgICAgY3R4dCwgdW5zaWduZWRf dHlwZSwgNDIpOworCisgIGdsb2IgPQorICAgIGdjY19qaXRfY29udGV4dF9uZXdfZ2xvYmFsICgK KyAgICAgIGN0eHQsIE5VTEwsIEdDQ19KSVRfR0xPQkFMX0VYUE9SVEVELAorICAgICAgdW5zaWdu ZWRfdHlwZSwKKyAgICAgICJpbnRlZ2VyIik7CisgIGdjY19qaXRfZ2xvYmFsX3NldF9pbml0aWFs aXplcl92YWx1ZSAoZ2xvYiwgZm9ydHlfdHdvKTsKIH0KIAogdm9pZApAQCAtNzUsNCArODYsOCBA QCB2ZXJpZnlfY29kZSAoZ2NjX2ppdF9jb250ZXh0ICpjdHh0LCBnY2Nfaml0X3Jlc3VsdCAqcmVz dWx0KQogICBDSEVDS19OT05fTlVMTCAoZ2xvYik7CiAgIENIRUNLX1ZBTFVFIChtZW1jbXAgKHRl c3RfYmxvYjMsIGdsb2IsIHNpemVvZiAodGVzdF9ibG9iMykpLCAwKTsKIAorICBnbG9iID0gZ2Nj X2ppdF9yZXN1bHRfZ2V0X2dsb2JhbCAocmVzdWx0LCAiaW50ZWdlciIpOworICBDSEVDS19OT05f TlVMTCAoZ2xvYik7CisgIGludCAqdmFsdWUgPSBnbG9iOworICBDSEVDS19WQUxVRSAoKnZhbHVl LCA0Mik7CiB9Ci0tIAoyLjMxLjEKCg== --=-aq7vhqwMkIXa2Uglmyyy--