From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-ot1-x335.google.com (mail-ot1-x335.google.com [IPv6:2607:f8b0:4864:20::335]) by sourceware.org (Postfix) with ESMTPS id 3832238618D4 for ; Wed, 3 Mar 2021 13:38:06 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org 3832238618D4 Received: by mail-ot1-x335.google.com with SMTP id s3so23556233otg.5 for ; Wed, 03 Mar 2021 05:38:06 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=wPIeiyqOcAgW38ZV2WKlM4gSpxyJMWth/AQ3voPK1Mw=; b=St9jpGfaEY2SZWLTJbMcH1+7ZH09lxScNGIqWUxOe71WZ5S1X+xxD+I8CL/e/Hmnhx jM2fX62HXyGIp/jmU7IcXb/ctKNz86z+MI8p8D3wUdMWLW6iLItmyy9Sa5gpyMfpr6Gv MU0wR35PG1d64jChT5Rbo2n+Jej5ABL5m01Tl5Tg6vMLbz5DX1geH3O2Qwh05bwQeb// +RV7EwnPdV2RcB1GP+0rvgrtb/eP8wl4UTt5pjzYDFP83qjF89i6Rdw43rb7wI4E0z8p a7/6ivocsgaHjZKEdvlXtAnsYLmTToOenUIpsTonvURNuGdWwyqKxavEVv3+Etd13K3N 27GQ== X-Gm-Message-State: AOAM533rhBEZBGdKJJesFRTxsQacXW00f8At3r3KNo5fjbWnfkl+kZ85 nbYuUtLEMoeI34m8dJKKMRbrmX1D7xQPmAaJai4= X-Google-Smtp-Source: ABdhPJzoECrDXU/94/fT5FbwWGlrbQMQyh8zbXmzAxfFVhDpAC0emVLx3I67uuEYJXH5DYbaoZ1lcp/1Fd2mfu+4baY= X-Received: by 2002:a05:6830:1098:: with SMTP id y24mr14611114oto.269.1614778685268; Wed, 03 Mar 2021 05:38:05 -0800 (PST) MIME-Version: 1.0 References: <20210202215112.1002416-1-hjl.tools@gmail.com> <87k0rom825.fsf@oldenburg.str.redhat.com> <6586609.jJDZkT8p0M@farino> <87k0rk8968.fsf@oldenburg.str.redhat.com> <87pn1a1tvb.fsf@oldenburg.str.redhat.com> <871rd875cp.fsf@oldenburg.str.redhat.com> <87im6k5hyn.fsf@oldenburg.str.redhat.com> <878s76eu2x.fsf@oldenburg.str.redhat.com> <87h7luda0m.fsf@oldenburg.str.redhat.com> In-Reply-To: From: "H.J. Lu" Date: Wed, 3 Mar 2021 05:37:29 -0800 Message-ID: Subject: [PATCH v4] x86: Set minimum x86-64 level marker [BZ #27318] To: Florian Weimer Cc: "H.J. Lu via Libc-alpha" , Joseph Myers Content-Type: multipart/mixed; boundary="000000000000ede51105bca1f5e8" X-Spam-Status: No, score=-3035.0 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, FREEMAIL_FROM, GIT_PATCH_0, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP, URIBL_BLACK 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: libc-alpha@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Libc-alpha mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 03 Mar 2021 13:38:10 -0000 --000000000000ede51105bca1f5e8 Content-Type: text/plain; charset="UTF-8" On Mon, Mar 1, 2021 at 11:09 AM H.J. Lu wrote: > > On Mon, Mar 1, 2021 at 10:05 AM Florian Weimer wrote: > > > > * H. J. Lu: > > > > >> I think we should do the following: (a) disable the build note > > >> generation in glibc, (b) backport --list-diagnostics or something > > >> similar. The second part will hopefully help with analyzing failures > > >> due to CPU support mismatches. > > > > > > My patch does (a). > > > > But not completely so, see the issue regarding post-v4 flags. > > It is the issue of "works on processors with the ISA level" since > we don't check if other ISA features are required. > > > > But I think the ISA level meaning should be changed from "works on > > > processors with the ISA level" to "require processors with the ISA > > > level to work". > > > > Hmm. Is this compatible with the glibc-hwcaps directory assignment > > logic in ldconfig? > > Given that we don't check the extra ISA features in the binary, this > is a logical change. Since the full ISA set used in an ELF binary is unknown to compiler, an x86-64 ISA level marker indicates the minimum, not maximum, ISA set required to run such an ELF binary. We never guarantee a library with an x86-64 ISA level v3 marker doesn't contain other ISAs beyond x86-64 ISA level v3, like AVX VNNI. We check the x86-64 ISA level marker for the minimum ISA set. Here is the updated patch. OK for master? -- H.J. --000000000000ede51105bca1f5e8 Content-Type: text/x-patch; charset="US-ASCII"; name="v4-0001-x86-Set-minimum-x86-64-level-marker-BZ-27318.patch" Content-Disposition: attachment; filename="v4-0001-x86-Set-minimum-x86-64-level-marker-BZ-27318.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_klthh4tx0 RnJvbSBlMjM4ZGMzZGI4YmI2OTUwZjE2NzFjOWMwYjI0NjczODZlOGU3OThkIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAiSC5KLiBMdSIgPGhqbC50b29sc0BnbWFpbC5jb20+CkRhdGU6 IFR1ZSwgMiBGZWIgMjAyMSAxMzo0NTo1OCAtMDgwMApTdWJqZWN0OiBbUEFUQ0ggdjRdIHg4Njog U2V0IG1pbmltdW0geDg2LTY0IGxldmVsIG1hcmtlciBbQlogIzI3MzE4XQoKU2luY2UgdGhlIGZ1 bGwgSVNBIHNldCB1c2VkIGluIGFuIEVMRiBiaW5hcnkgaXMgdW5rbm93biB0byBjb21waWxlciwK YW4geDg2LTY0IElTQSBsZXZlbCBtYXJrZXIgaW5kaWNhdGVzIHRoZSBtaW5pbXVtLCBub3QgbWF4 aW11bSwgSVNBIHNldApyZXF1aXJlZCB0byBydW4gc3VjaCBhbiBFTEYgYmluYXJ5LiAgV2UgbmV2 ZXIgZ3VhcmFudGVlIGEgbGlicmFyeSB3aXRoCmFuIHg4Ni02NCBJU0EgbGV2ZWwgdjMgbWFya2Vy IGRvZXNuJ3QgY29udGFpbiBvdGhlciBJU0FzIGJleW9uZCB4ODYtNjQKSVNBIGxldmVsIHYzLCBs aWtlIEFWWCBWTk5JLiAgV2UgY2hlY2sgdGhlIHg4Ni02NCBJU0EgbGV2ZWwgbWFya2VyIGZvcgp0 aGUgbWluaW11bSBJU0Egc2V0LiAgU2luY2UgLW1hcmNoPXNhbmR5YnJpZGdlIGVuYWJsZXMgb25s eSBzb21lIElTQXMKaW4geDg2LTY0IElTQSBsZXZlbCB2Mywgd2Ugc2hvdWxkIHNldCB0aGUgbmVl ZGVkIElTQSBtYXJrZXIgdG8gdjIuCk90aGVyd2lzZSwgbGliYyBpcyBjb21waWxlZCB3aXRoIC1t YXJjaD1zYW5keWJyaWRnZSB3aWxsIGZhaWwgdG8gcnVuIG9uClNhbmR5IEJyaWRnZToKCiQgLi9l bGYvbGQuc28gLi9saWJjLnNvCi4vbGliYy5zbzogKHApIENQVSBJU0EgbGV2ZWwgaXMgbG93ZXIg dGhhbiByZXF1aXJlZDogbmVlZGVkOiA3OyBnb3Q6IDMKCjEuIERpc2FibGUgeDg2LTY0IElTQSBs ZXZlbCBtYXJrZXIgZm9yIDMyLWJpdCBidWlsZC4KMi4gU2V0IG1pbmltdW0sIGluc3RlYWQgb2Yg bWF4aW11bSwgeDg2LTY0IElTQSBsZXZlbCBtYXJrZXIuCgpUaGlzIHNob3VsZCBoYXZlIG5vIGlt cGFjdCBvbiB0aGUgZ2xpYmMtaHdjYXBzIGRpcmVjdG9yeSBhc3NpZ25tZW50CmxvZ2ljIGluIGxk Y29uZmlnIGFuZCBsZC5zby4KLS0tCiBjb25maWcuaC5pbiAgICAgICAgICAgICAgfCAgMyArKwog c3lzZGVwcy94ODYvY29uZmlndXJlICAgIHwgODggKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrLQogc3lzZGVwcy94ODYvY29uZmlndXJlLmFjIHwgNzAgKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKy0KIHN5c2RlcHMveDg2L2lzYS1sZXZlbC5jICB8IDMzICstLS0t LS0tLS0tLS0tLQogNCBmaWxlcyBjaGFuZ2VkLCAxNjAgaW5zZXJ0aW9ucygrKSwgMzQgZGVsZXRp b25zKC0pCgpkaWZmIC0tZ2l0IGEvY29uZmlnLmguaW4gYi9jb25maWcuaC5pbgppbmRleCAwNmVl OGFlMjZhLi4zYzkwMzVjMmYyIDEwMDY0NAotLS0gYS9jb25maWcuaC5pbgorKysgYi9jb25maWcu aC5pbgpAQCAtMjc1LDQgKzI3NSw3IEBACiAvKiBEZWZpbmUgaWYgeDg2IElTQSBsZXZlbCBzaG91 bGQgYmUgaW5jbHVkZWQgaW4gc2hhcmVkIGxpYnJhcmllcy4gICovCiAjdW5kZWYgSU5DTFVERV9Y ODZfSVNBX0xFVkVMCiAKKy8qIFRoZSBkZWZhdWx0IHg4NiBJU0EgbGV2ZWwuICAqLworI2RlZmlu ZSBERUZBVUxUX0lTQV9MRVZFTCAwCisKICNlbmRpZgpkaWZmIC0tZ2l0IGEvc3lzZGVwcy94ODYv Y29uZmlndXJlIGIvc3lzZGVwcy94ODYvY29uZmlndXJlCmluZGV4IDVlMzJkYzYyYjMuLmZmYTEw ZTJmNDUgMTAwNjQ0Ci0tLSBhL3N5c2RlcHMveDg2L2NvbmZpZ3VyZQorKysgYi9zeXNkZXBzL3g4 Ni9jb25maWd1cmUKQEAgLTEzNCw3ICsxMzQsODkgQEAgaWYgeyBhY190cnk9JyR7Q0MtY2N9ICRD RkxBR1MgJENQUEZMQUdTIC1ub3N0YXJ0ZmlsZXMgLW5vc3RkbGliIC1yIC1vIGNvbmZ0ZXN0IGMK ICAgdGVzdCAkYWNfc3RhdHVzID0gMDsgfTsgfTsgdGhlbgogICBjb3VudD1gTENfQUxMPUMgJFJF QURFTEYgLW4gY29uZnRlc3QgfCBncmVwIE5UX0dOVV9QUk9QRVJUWV9UWVBFXzAgfCB3YyAtbGAK ICAgaWYgdGVzdCAiJGNvdW50IiA9IDE7IHRoZW4KLSAgICBsaWJjX2N2X2luY2x1ZGVfeDg2X2lz YV9sZXZlbD15ZXMKKyAgICBjYXQgPiBjb25mdGVzdC5jIDw8RU9GCitleHRlcm4gbG9uZyBkb3Vi bGUgZm1vZGwobG9uZyBkb3VibGUgeCwgbG9uZyBkb3VibGUgeSk7CitleHRlcm4gbG9uZyBkb3Vi bGUgeCwgeTsKK2xvbmcgZG91YmxlCitmb28gKHZvaWQpCit7CisgIHJldHVybiBmbW9kbCAoeCwg eSk7Cit9CitFT0YKKyAgICBJU0FfTEVWRUxfQ1BQRkxBR1M9CisgICAgaWYgeyBhY190cnk9JyR7 Q0MtY2N9ICRDRkxBR1MgJENQUEZMQUdTIC1PcyAtZmZhc3QtbWF0aCAtUyAtbyAtIGNvbmZ0ZXN0 LmMnCisgIHsgeyBldmFsIGVjaG8gIlwiXCRhc19tZVwiOiR7YXNfbGluZW5vLSRMSU5FTk99OiBc IiRhY190cnlcIiI7IH0gPiY1CisgIChldmFsICRhY190cnkpIDI+JjUKKyAgYWNfc3RhdHVzPSQ/ CisgICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IFwkPyA9ICRhY19zdGF0 dXMiID4mNQorICB0ZXN0ICRhY19zdGF0dXMgPSAwOyB9OyB9IHwgZ3JlcCAtcSAiCXNhaGYiOyB0 aGVuCisgICAgICBJU0FfTEVWRUxfQ1BQRkxBR1M9LURIQVNfTEFIRl9TQUhGCisgICAgZmkKKyAg ICBjYXQgPiBjb25mdGVzdC5jIDw8RU9GCitleHRlcm4gaW50IHg7CitpbnQKK2JhciAoKQorewor ICByZXR1cm4gX19idWlsdGluX2Jzd2FwMzIgKHgpOworfQorRU9GCisgICAgaWYgeyBhY190cnk9 JyR7Q0MtY2N9ICRDRkxBR1MgJENQUEZMQUdTIC1PMiAtUyAtbyAtIGNvbmZ0ZXN0LmMnCisgIHsg eyBldmFsIGVjaG8gIlwiXCRhc19tZVwiOiR7YXNfbGluZW5vLSRMSU5FTk99OiBcIiRhY190cnlc IiI7IH0gPiY1CisgIChldmFsICRhY190cnkpIDI+JjUKKyAgYWNfc3RhdHVzPSQ/CisgICRhc19l Y2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IFwkPyA9ICRhY19zdGF0dXMiID4mNQor ICB0ZXN0ICRhY19zdGF0dXMgPSAwOyB9OyB9IHwgZ3JlcCAtcSAiCW1vdmJlIjsgdGhlbgorICAg ICAgSVNBX0xFVkVMX0NQUEZMQUdTPSIkSVNBX0xFVkVMX0NQUEZMQUdTIC1ESEFTX01PVkJFIgor ICAgIGZpCisgICAgY2F0ID4gY29uZnRlc3QuYyA8PEVPRgorI2lmbmRlZiBfX3g4Nl82NF9fCisj IGVycm9yICJ4ODYtNjQgSVNBIGxldmVsIGlzIG9ubHkgZm9yIHg4Ni02NCIKKyNlbmRpZgorCisj aWYgZGVmaW5lZCBfX1NTRV9fICYmIGRlZmluZWQgX19TU0UyX18KKy8qIE5COiBJU0FzIGluIHg4 Ni02NCBJU0EgbGV2ZWwgYmFzZWxpbmUgYXJlIHVzZWQuICAqLworIyBkZWZpbmUgSVNBX0JBU0VM SU5FCUdOVV9QUk9QRVJUWV9YODZfSVNBXzFfQkFTRUxJTkUKKyNlbHNlCisjIGRlZmluZSBJU0Ff QkFTRUxJTkUJMAorI2VuZGlmCisKKyNpZiBkZWZpbmVkIF9fR0NDX0hBVkVfU1lOQ19DT01QQVJF X0FORF9TV0FQXzE2IFwKKyAgICAmJiBkZWZpbmVkIEhBU19MQUhGX1NBSEYgJiYgZGVmaW5lZCBf X1BPUENOVF9fICYmIGRlZmluZWQgX19TU0UzX18gXAorICAgICYmIGRlZmluZWQgX19TU1NFM19f ICYmIGRlZmluZWQgX19TU0U0XzFfXyAmJiBkZWZpbmVkIF9fU1NFNF8yX18KKy8qIE5COiBJU0Fz IGluIHg4Ni02NCBJU0EgbGV2ZWwgdjIgYXJlIHVzZWQuICAqLworIyBkZWZpbmUgSVNBX1YyCUdO VV9QUk9QRVJUWV9YODZfSVNBXzFfVjIKKyNlbHNlCisjIGRlZmluZSBJU0FfVjIJMAorI2VuZGlm CisKKyNpZiBkZWZpbmVkIF9fQVZYX18gJiYgZGVmaW5lZCBfX0FWWDJfXyAmJiBkZWZpbmVkIF9f RjE2Q19fIFwKKyAgICAmJiBkZWZpbmVkIF9fRk1BX18gJiYgZGVmaW5lZCBfX0xaQ05UX18gJiYg ZGVmaW5lZCBIQVNfTU9WQkUKKy8qIE5COiBTb21lIElTQXMgaW4geDg2LTY0IElTQSBsZXZlbCB2 MyBhcmUgdXNlZC4gICovCisjIGRlZmluZSBJU0FfVjMJR05VX1BST1BFUlRZX1g4Nl9JU0FfMV9W MworI2Vsc2UKKyMgZGVmaW5lIElTQV9WMwkwCisjZW5kaWYKKworI2lmIGRlZmluZWQgX19BVlg1 MTJGX18gJiYgZGVmaW5lZCBfX0FWWDUxMkJXX18gXAorICAgICYmIGRlZmluZWQgX19BVlg1MTJD RF9fICYmIGRlZmluZWQgX19BVlg1MTJEUV9fIFwKKyAgICAmJiBkZWZpbmVkIF9fQVZYNTEyVkxf XworLyogTkI6IElTQXMgaW4geDg2LTY0IElTQSBsZXZlbCB2NCBhcmUgdXNlZC4gICovCisjIGRl ZmluZSBJU0FfVjQJR05VX1BST1BFUlRZX1g4Nl9JU0FfMV9WNAorI2Vsc2UKKyMgZGVmaW5lIElT QV9WNAkwCisjZW5kaWYKKworREVGQVVMVF9JU0FfTEVWRUw9KElTQV9CQVNFTElORSB8IElTQV9W MiB8IElTQV9WMyB8IElTQV9WNCkKK0VPRgorICAgIGlmIHsgYWNfdHJ5PScke0NDLWNjfSAkQ0ZM QUdTICRDUFBGTEFHUyAkSVNBX0xFVkVMX0NQUEZMQUdTIC1FIC1vIGNvbmZ0ZXN0LmkgY29uZnRl c3QuYycKKyAgeyB7IGV2YWwgZWNobyAiXCJcJGFzX21lXCI6JHthc19saW5lbm8tJExJTkVOT306 IFwiJGFjX3RyeVwiIjsgfSA+JjUKKyAgKGV2YWwgJGFjX3RyeSkgMj4mNQorICBhY19zdGF0dXM9 JD8KKyAgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogXCQ/ID0gJGFjX3N0 YXR1cyIgPiY1CisgIHRlc3QgJGFjX3N0YXR1cyA9IDA7IH07IH07IHRoZW4KKyAgICAgIGV2YWwg YGdyZXAgREVGQVVMVF9JU0FfTEVWRUw9IGNvbmZ0ZXN0LmkgfCBzZWQgLWUgInMvREVGQVVMVF9J U0FfTEVWRUw9XCguKlwpL0RFRkFVTFRfSVNBX0xFVkVMPVwiXDFcIi8iYAorICAgICAgbGliY19j dl9pbmNsdWRlX3g4Nl9pc2FfbGV2ZWw9eWVzCisgICAgZmkKICAgZmkKIGZpCiBybSAtZiBjb25m dGVzdCoKQEAgLTE0NCw2ICsyMjYsMTAgQEAgJGFzX2VjaG8gIiRsaWJjX2N2X2luY2x1ZGVfeDg2 X2lzYV9sZXZlbCIgPiY2OyB9CiBpZiB0ZXN0ICRsaWJjX2N2X2luY2x1ZGVfeDg2X2lzYV9sZXZl bCA9IHllczsgdGhlbgogICAkYXNfZWNobyAiI2RlZmluZSBJTkNMVURFX1g4Nl9JU0FfTEVWRUwg MSIgPj5jb25mZGVmcy5oCiAKKyAgY2F0ID4+Y29uZmRlZnMuaCA8PF9BQ0VPRgorI2RlZmluZSBE RUZBVUxUX0lTQV9MRVZFTCAkREVGQVVMVF9JU0FfTEVWRUwKK19BQ0VPRgorCiBmaQogY29uZmln X3ZhcnM9IiRjb25maWdfdmFycwogZW5hYmxlLXg4Ni1pc2EtbGV2ZWwgPSAkbGliY19jdl9pbmNs dWRlX3g4Nl9pc2FfbGV2ZWwiCmRpZmYgLS1naXQgYS9zeXNkZXBzL3g4Ni9jb25maWd1cmUuYWMg Yi9zeXNkZXBzL3g4Ni9jb25maWd1cmUuYWMKaW5kZXggZjk0MDg4ZjM3Ny4uODY2ZGQ5ODRkZiAx MDA2NDQKLS0tIGEvc3lzZGVwcy94ODYvY29uZmlndXJlLmFjCisrKyBiL3N5c2RlcHMveDg2L2Nv bmZpZ3VyZS5hYwpAQCAtMTAxLDExICsxMDEsNzkgQEAgbGliY19jdl9pbmNsdWRlX3g4Nl9pc2Ff bGV2ZWw9bm8KIGlmIEFDX1RSWV9DT01NQU5EKCR7Q0MtY2N9ICRDRkxBR1MgJENQUEZMQUdTIC1u b3N0YXJ0ZmlsZXMgLW5vc3RkbGliIC1yIC1vIGNvbmZ0ZXN0IGNvbmZ0ZXN0MS5TIGNvbmZ0ZXN0 Mi5TKTsgdGhlbgogICBjb3VudD1gTENfQUxMPUMgJFJFQURFTEYgLW4gY29uZnRlc3QgfCBncmVw IE5UX0dOVV9QUk9QRVJUWV9UWVBFXzAgfCB3YyAtbGAKICAgaWYgdGVzdCAiJGNvdW50IiA9IDE7 IHRoZW4KLSAgICBsaWJjX2N2X2luY2x1ZGVfeDg2X2lzYV9sZXZlbD15ZXMKKyAgICBjYXQgPiBj b25mdGVzdC5jIDw8RU9GCitleHRlcm4gbG9uZyBkb3VibGUgZm1vZGwobG9uZyBkb3VibGUgeCwg bG9uZyBkb3VibGUgeSk7CitleHRlcm4gbG9uZyBkb3VibGUgeCwgeTsKK2xvbmcgZG91YmxlCitm b28gKHZvaWQpCit7CisgIHJldHVybiBmbW9kbCAoeCwgeSk7Cit9CitFT0YKKyAgICBJU0FfTEVW RUxfQ1BQRkxBR1M9CisgICAgaWYgQUNfVFJZX0NPTU1BTkQoJHtDQy1jY30gJENGTEFHUyAkQ1BQ RkxBR1MgLU9zIC1mZmFzdC1tYXRoIC1TIC1vIC0gY29uZnRlc3QuYykgfCBncmVwIC1xICIJc2Fo ZiI7IHRoZW4KKyAgICAgIElTQV9MRVZFTF9DUFBGTEFHUz0tREhBU19MQUhGX1NBSEYKKyAgICBm aQorICAgIGNhdCA+IGNvbmZ0ZXN0LmMgPDxFT0YKK2V4dGVybiBpbnQgeDsKK2ludAorYmFyICgp Cit7CisgIHJldHVybiBfX2J1aWx0aW5fYnN3YXAzMiAoeCk7Cit9CitFT0YKKyAgICBpZiBBQ19U UllfQ09NTUFORCgke0NDLWNjfSAkQ0ZMQUdTICRDUFBGTEFHUyAtTzIgLVMgLW8gLSBjb25mdGVz dC5jKSB8IGdyZXAgLXEgIgltb3ZiZSI7IHRoZW4KKyAgICAgIElTQV9MRVZFTF9DUFBGTEFHUz0i JElTQV9MRVZFTF9DUFBGTEFHUyAtREhBU19NT1ZCRSIKKyAgICBmaQorICAgIGNhdCA+IGNvbmZ0 ZXN0LmMgPDxFT0YKKyNpZm5kZWYgX194ODZfNjRfXworIyBlcnJvciAieDg2LTY0IElTQSBsZXZl bCBpcyBvbmx5IGZvciB4ODYtNjQiCisjZW5kaWYKKworI2lmIGRlZmluZWQgX19TU0VfXyAmJiBk ZWZpbmVkIF9fU1NFMl9fCisvKiBOQjogSVNBcyBpbiB4ODYtNjQgSVNBIGxldmVsIGJhc2VsaW5l IGFyZSB1c2VkLiAgKi8KKyMgZGVmaW5lIElTQV9CQVNFTElORQlHTlVfUFJPUEVSVFlfWDg2X0lT QV8xX0JBU0VMSU5FCisjZWxzZQorIyBkZWZpbmUgSVNBX0JBU0VMSU5FCTAKKyNlbmRpZgorCisj aWYgZGVmaW5lZCBfX0dDQ19IQVZFX1NZTkNfQ09NUEFSRV9BTkRfU1dBUF8xNiBcCisgICAgJiYg ZGVmaW5lZCBIQVNfTEFIRl9TQUhGICYmIGRlZmluZWQgX19QT1BDTlRfXyAmJiBkZWZpbmVkIF9f U1NFM19fIFwKKyAgICAmJiBkZWZpbmVkIF9fU1NTRTNfXyAmJiBkZWZpbmVkIF9fU1NFNF8xX18g JiYgZGVmaW5lZCBfX1NTRTRfMl9fCisvKiBOQjogSVNBcyBpbiB4ODYtNjQgSVNBIGxldmVsIHYy IGFyZSB1c2VkLiAgKi8KKyMgZGVmaW5lIElTQV9WMglHTlVfUFJPUEVSVFlfWDg2X0lTQV8xX1Yy CisjZWxzZQorIyBkZWZpbmUgSVNBX1YyCTAKKyNlbmRpZgorCisjaWYgZGVmaW5lZCBfX0FWWF9f ICYmIGRlZmluZWQgX19BVlgyX18gJiYgZGVmaW5lZCBfX0YxNkNfXyBcCisgICAgJiYgZGVmaW5l ZCBfX0ZNQV9fICYmIGRlZmluZWQgX19MWkNOVF9fICYmIGRlZmluZWQgSEFTX01PVkJFCisvKiBO QjogU29tZSBJU0FzIGluIHg4Ni02NCBJU0EgbGV2ZWwgdjMgYXJlIHVzZWQuICAqLworIyBkZWZp bmUgSVNBX1YzCUdOVV9QUk9QRVJUWV9YODZfSVNBXzFfVjMKKyNlbHNlCisjIGRlZmluZSBJU0Ff VjMJMAorI2VuZGlmCisKKyNpZiBkZWZpbmVkIF9fQVZYNTEyRl9fICYmIGRlZmluZWQgX19BVlg1 MTJCV19fIFwKKyAgICAmJiBkZWZpbmVkIF9fQVZYNTEyQ0RfXyAmJiBkZWZpbmVkIF9fQVZYNTEy RFFfXyBcCisgICAgJiYgZGVmaW5lZCBfX0FWWDUxMlZMX18KKy8qIE5COiBJU0FzIGluIHg4Ni02 NCBJU0EgbGV2ZWwgdjQgYXJlIHVzZWQuICAqLworIyBkZWZpbmUgSVNBX1Y0CUdOVV9QUk9QRVJU WV9YODZfSVNBXzFfVjQKKyNlbHNlCisjIGRlZmluZSBJU0FfVjQJMAorI2VuZGlmCisKK0RFRkFV TFRfSVNBX0xFVkVMPShJU0FfQkFTRUxJTkUgfCBJU0FfVjIgfCBJU0FfVjMgfCBJU0FfVjQpCitF T0YKKyAgICBpZiBBQ19UUllfQ09NTUFORCgke0NDLWNjfSAkQ0ZMQUdTICRDUFBGTEFHUyAkSVNB X0xFVkVMX0NQUEZMQUdTIC1FIC1vIGNvbmZ0ZXN0LmkgY29uZnRlc3QuYyk7IHRoZW4KKyAgICAg IGV2YWwgYGdyZXAgREVGQVVMVF9JU0FfTEVWRUw9IGNvbmZ0ZXN0LmkgfCBzZWQgLWUgInMvREVG QVVMVF9JU0FfTEVWRUw9XCguKlwpL0RFRkFVTFRfSVNBX0xFVkVMPVwiXDFcIi8iYAorICAgICAg bGliY19jdl9pbmNsdWRlX3g4Nl9pc2FfbGV2ZWw9eWVzCisgICAgZmkKICAgZmkKIGZpCiBybSAt ZiBjb25mdGVzdCpdKQogaWYgdGVzdCAkbGliY19jdl9pbmNsdWRlX3g4Nl9pc2FfbGV2ZWwgPSB5 ZXM7IHRoZW4KICAgQUNfREVGSU5FKElOQ0xVREVfWDg2X0lTQV9MRVZFTCkKKyAgQUNfREVGSU5F X1VOUVVPVEVEKFtERUZBVUxUX0lTQV9MRVZFTF0sIFskREVGQVVMVF9JU0FfTEVWRUxdKQogZmkK IExJQkNfQ09ORklHX1ZBUihbZW5hYmxlLXg4Ni1pc2EtbGV2ZWxdLCBbJGxpYmNfY3ZfaW5jbHVk ZV94ODZfaXNhX2xldmVsXSkKZGlmZiAtLWdpdCBhL3N5c2RlcHMveDg2L2lzYS1sZXZlbC5jIGIv c3lzZGVwcy94ODYvaXNhLWxldmVsLmMKaW5kZXggYWFmNTI0Y2I1Ni4uY2I3NjY3ZDlkNSAxMDA2 NDQKLS0tIGEvc3lzZGVwcy94ODYvaXNhLWxldmVsLmMKKysrIGIvc3lzZGVwcy94ODYvaXNhLWxl dmVsLmMKQEAgLTI5LDM5ICsyOSw4IEBACiAKIC8qIEVMRiBwcm9ncmFtIHByb3BlcnR5IGZvciB4 ODYgSVNBIGxldmVsLiAgKi8KICNpZmRlZiBJTkNMVURFX1g4Nl9JU0FfTEVWRUwKLSMgaWYgZGVm aW5lZCBfX3g4Nl82NF9fIHx8IGRlZmluZWQgX19GWFNSX18gfHwgIWRlZmluZWQgX1NPRlRfRkxP QVQgXAotICAgICB8fCBkZWZpbmVkICBfX01NWF9fIHx8IGRlZmluZWQgX19TU0VfXyB8fCBkZWZp bmVkIF9fU1NFMl9fCi0jICBkZWZpbmUgSVNBX0JBU0VMSU5FCUdOVV9QUk9QRVJUWV9YODZfSVNB XzFfQkFTRUxJTkUKLSMgZWxzZQotIyAgZGVmaW5lIElTQV9CQVNFTElORQkwCi0jIGVuZGlmCi0K LSMgaWYgZGVmaW5lZCBfX0dDQ19IQVZFX1NZTkNfQ09NUEFSRV9BTkRfU1dBUF8xNiBcCi0gICAg IHx8IChkZWZpbmVkIF9feDg2XzY0X18gJiYgZGVmaW5lZCBfX0xBSEZfU0FIRl9fKSBcCi0gICAg IHx8IGRlZmluZWQgX19QT1BDTlRfXyB8fCBkZWZpbmVkIF9fU1NFM19fIFwKLSAgICAgfHwgZGVm aW5lZCBfX1NTU0UzX18gfHwgZGVmaW5lZCBfX1NTRTRfMV9fIHx8IGRlZmluZWQgX19TU0U0XzJf XwotIyAgZGVmaW5lIElTQV9WMglHTlVfUFJPUEVSVFlfWDg2X0lTQV8xX1YyCi0jIGVsc2UKLSMg IGRlZmluZSBJU0FfVjIJMAotIyBlbmRpZgotCi0jIGlmIGRlZmluZWQgX19BVlhfXyB8fCBkZWZp bmVkIF9fQVZYMl9fIHx8IGRlZmluZWQgX19GMTZDX18gXAotICAgICB8fCBkZWZpbmVkIF9fRk1B X18gfHwgZGVmaW5lZCBfX0xaQ05UX18gfHwgZGVmaW5lZCBfX01PVkJFX18gXAotICAgICB8fCBk ZWZpbmVkIF9fWFNBVkVfXwotIyAgZGVmaW5lIElTQV9WMwlHTlVfUFJPUEVSVFlfWDg2X0lTQV8x X1YzCi0jIGVsc2UKLSMgIGRlZmluZSBJU0FfVjMJMAotIyBlbmRpZgotCi0jIGlmIGRlZmluZWQg X19BVlg1MTJGX18gfHwgZGVmaW5lZCBfX0FWWDUxMkJXX18gfHwgZGVmaW5lZCBfX0FWWDUxMkNE X18gXAotICAgICB8fCBkZWZpbmVkIF9fQVZYNTEyRFFfXyB8fCBkZWZpbmVkIF9fQVZYNTEyVkxf XwotIyAgZGVmaW5lIElTQV9WNAlHTlVfUFJPUEVSVFlfWDg2X0lTQV8xX1Y0Ci0jIGVsc2UKLSMg IGRlZmluZSBJU0FfVjQJMAotIyBlbmRpZgotCiAjIGlmbmRlZiBJU0FfTEVWRUwKLSMgIGRlZmlu ZSBJU0FfTEVWRUwgKElTQV9CQVNFTElORSB8IElTQV9WMiB8IElTQV9WMyB8IElTQV9WNCkKKyMg IGRlZmluZSBJU0FfTEVWRUwgREVGQVVMVF9JU0FfTEVWRUwKICMgZW5kaWYKIAogIyBpZiBJU0Ff TEVWRUwKLS0gCjIuMjkuMgoK --000000000000ede51105bca1f5e8--