From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 75722 invoked by alias); 5 Mar 2015 14:39:16 -0000 Mailing-List: contact binutils-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: binutils-owner@sourceware.org Received: (qmail 75676 invoked by uid 89); 5 Mar 2015 14:39:15 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: Yes, score=5.4 required=5.0 tests=AWL,BAYES_99,FREEMAIL_FROM,KAM_FROM_URIBL_PCCC,RCVD_IN_DNSWL_LOW,SPF_PASS autolearn=no version=3.3.2 X-Spam-User: qpsmtpd, 2 recipients X-HELO: mail-oi0-f46.google.com Received: from mail-oi0-f46.google.com (HELO mail-oi0-f46.google.com) (209.85.218.46) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (AES128-GCM-SHA256 encrypted) ESMTPS; Thu, 05 Mar 2015 14:39:13 +0000 Received: by oifu20 with SMTP id u20so11966850oif.11; Thu, 05 Mar 2015 06:39:11 -0800 (PST) MIME-Version: 1.0 X-Received: by 10.202.191.194 with SMTP id p185mr6856186oif.128.1425566351329; Thu, 05 Mar 2015 06:39:11 -0800 (PST) Received: by 10.76.134.102 with HTTP; Thu, 5 Mar 2015 06:39:10 -0800 (PST) Date: Thu, 05 Mar 2015 14:39:00 -0000 Message-ID: Subject: Re: RFC: PATCHES: Properly handle reference to protected data on x86 From: "H.J. Lu" To: GCC Patches , GNU C Library , Binutils Content-Type: multipart/mixed; boundary=001a113d6a52f9ad5b05108b87db X-IsSubscribed: yes X-SW-Source: 2015-03/txt/msg00043.txt.bz2 --001a113d6a52f9ad5b05108b87db Content-Type: text/plain; charset=UTF-8 Content-length: 1894 On Wed, Mar 4, 2015 at 3:26 PM, H.J. Lu wrote: > Protected symbol means that it can't be pre-emptied. It > doesn't mean its address won't be external. This is true > for pointer to protected function. With copy relocation, > address of protected data defined in the shared library may > also be external. We only know that for sure at run-time. > Here are patches for glibc, binutils and GCC to handle it > properly. > > Any comments? This is the binutils patch I checked in. It basically reverted the change for https://sourceware.org/bugzilla/show_bug.cgi?id=15228 on x86. Copy relocations against protected symbols should work. -- H.J. --- bfd/ PR ld/pr15228 PR ld/pr17709 * elf-bfd.h (elf_backend_data): Add extern_protected_data. * elf32-i386.c (elf_backend_extern_protected_data): New. Defined to 1. * elf64-x86-64.c (elf_backend_extern_protected_data): Likewise. * elflink.c (_bfd_elf_adjust_dynamic_copy): Don't error on copy relocs against protected symbols if extern_protected_data is true. (_bfd_elf_symbol_refs_local_p): Don't return true on protected non-function symbols if extern_protected_data is true. * elfxx-target.h (elf_backend_extern_protected_data): New. Default to 0. (elfNN_bed): Initialize extern_protected_data with elf_backend_extern_protected_data. ld/testsuite/ PR ld/pr15228 PR ld/pr17709 * ld-i386/i386.exp (i386tests): Add a test for PR ld/17709. * ld-i386/pr17709-nacl.rd: New file. * ld-i386/pr17709.rd: Likewise. * ld-i386/pr17709a.s: Likewise. * ld-i386/pr17709b.s: Likewise. * ld-i386/protected3.d: Updated. * ld-i386/protected3.s: Likewise. * ld-x86-64/pr17709-nacl.rd: New file. * ld-x86-64/pr17709.rd: Likewise. * ld-x86-64/pr17709a.s: Likewise. * ld-x86-64/pr17709b.s: Likewise. * ld-x86-64/protected3.d: Updated. * ld-x86-64/protected3.s: Likewise. * ld-x86-64/x86-64.exp (x86_64tests): Add a test for PR ld/17709. --001a113d6a52f9ad5b05108b87db Content-Type: text/x-patch; charset=US-ASCII; name="0001-Add-extern_protected_data-and-set-it-for-x86.patch" Content-Disposition: attachment; filename="0001-Add-extern_protected_data-and-set-it-for-x86.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_i6w9abqd3 Content-length: 19346 RnJvbSBjYTNmZTk1ZTQ2OWI5ZGFlYzE1M2NhYTJjOTA2NjVmNWRhYWVjMmI1 IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiAiSC5KLiBMdSIgPGhq bC50b29sc0BnbWFpbC5jb20+CkRhdGU6IFRodSwgNSBNYXIgMjAxNSAwNjoz NDozOSAtMDgwMApTdWJqZWN0OiBbUEFUQ0hdIEFkZCBleHRlcm5fcHJvdGVj dGVkX2RhdGEgYW5kIHNldCBpdCBmb3IgeDg2CgpXaXRoIGNvcHkgcmVsb2Nh dGlvbiwgYWRkcmVzcyBvZiBwcm90ZWN0ZWQgZGF0YSBkZWZpbmVkIGluIHRo ZSBzaGFyZWQKbGlicmFyeSBtYXkgYmUgZXh0ZXJuYWwuICBUaGlzIHBhdGNo IGFkZHMgZXh0ZXJuX3Byb3RlY3RlZF9kYXRhIGFuZApjaGFuZ2VzIF9iZmRf ZWxmX3N5bWJvbF9yZWZzX2xvY2FsX3AgdG8gcmV0dXJuIGZhbHNlIGZvciBw cm90ZWN0ZWQgZGF0YQppZiBleHRlcm5fcHJvdGVjdGVkX2RhdGEgaXMgdHJ1 ZS4KCmJmZC8KCglQUiBsZC9wcjE1MjI4CglQUiBsZC9wcjE3NzA5CgkqIGVs Zi1iZmQuaCAoZWxmX2JhY2tlbmRfZGF0YSk6IEFkZCBleHRlcm5fcHJvdGVj dGVkX2RhdGEuCgkqIGVsZjMyLWkzODYuYyAoZWxmX2JhY2tlbmRfZXh0ZXJu X3Byb3RlY3RlZF9kYXRhKTogTmV3LgoJRGVmaW5lZCB0byAxLgoJKiBlbGY2 NC14ODYtNjQuYyAoZWxmX2JhY2tlbmRfZXh0ZXJuX3Byb3RlY3RlZF9kYXRh KTogTGlrZXdpc2UuCgkqIGVsZmxpbmsuYyAoX2JmZF9lbGZfYWRqdXN0X2R5 bmFtaWNfY29weSk6IERvbid0IGVycm9yIG9uCgljb3B5IHJlbG9jcyBhZ2Fp bnN0IHByb3RlY3RlZCBzeW1ib2xzIGlmIGV4dGVybl9wcm90ZWN0ZWRfZGF0 YQoJaXMgdHJ1ZS4KCShfYmZkX2VsZl9zeW1ib2xfcmVmc19sb2NhbF9wKTog RG9uJ3QgcmV0dXJuIHRydWUgb24gcHJvdGVjdGVkCglub24tZnVuY3Rpb24g c3ltYm9scyBpZiBleHRlcm5fcHJvdGVjdGVkX2RhdGEgaXMgdHJ1ZS4KCSog ZWxmeHgtdGFyZ2V0LmggKGVsZl9iYWNrZW5kX2V4dGVybl9wcm90ZWN0ZWRf ZGF0YSk6IE5ldy4KCURlZmF1bHQgdG8gMC4KCShlbGZOTl9iZWQpOiBJbml0 aWFsaXplIGV4dGVybl9wcm90ZWN0ZWRfZGF0YSB3aXRoCgllbGZfYmFja2Vu ZF9leHRlcm5fcHJvdGVjdGVkX2RhdGEuCgpsZC90ZXN0c3VpdGUvCgoJUFIg bGQvcHIxNTIyOAoJUFIgbGQvcHIxNzcwOQoJKiBsZC1pMzg2L2kzODYuZXhw IChpMzg2dGVzdHMpOiBBZGQgYSB0ZXN0IGZvciBQUiBsZC8xNzcwOS4KCSog bGQtaTM4Ni9wcjE3NzA5LW5hY2wucmQ6IE5ldyBmaWxlLgoJKiBsZC1pMzg2 L3ByMTc3MDkucmQ6IExpa2V3aXNlLgoJKiBsZC1pMzg2L3ByMTc3MDlhLnM6 IExpa2V3aXNlLgoJKiBsZC1pMzg2L3ByMTc3MDliLnM6IExpa2V3aXNlLgoJ KiBsZC1pMzg2L3Byb3RlY3RlZDMuZDogVXBkYXRlZC4KCSogbGQtaTM4Ni9w cm90ZWN0ZWQzLnM6IExpa2V3aXNlLgoJKiBsZC14ODYtNjQvcHIxNzcwOS1u YWNsLnJkOiBOZXcgZmlsZS4KCSogbGQteDg2LTY0L3ByMTc3MDkucmQ6IExp a2V3aXNlLgoJKiBsZC14ODYtNjQvcHIxNzcwOWEuczogTGlrZXdpc2UuCgkq IGxkLXg4Ni02NC9wcjE3NzA5Yi5zOiBMaWtld2lzZS4KCSogbGQteDg2LTY0 L3Byb3RlY3RlZDMuZDogVXBkYXRlZC4KCSogbGQteDg2LTY0L3Byb3RlY3Rl ZDMuczogTGlrZXdpc2UuCgkqIGxkLXg4Ni02NC94ODYtNjQuZXhwICh4ODZf NjR0ZXN0cyk6IEFkZCBhIHRlc3QgZm9yIFBSIGxkLzE3NzA5LgotLS0KIGJm ZC9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMTggKysr KysrKysrKysrKysrKysrCiBiZmQvZWxmLWJmZC5oICAgICAgICAgICAgICAg ICAgICAgICAgICB8ICA0ICsrKysKIGJmZC9lbGYzMi1pMzg2LmMgICAgICAg ICAgICAgICAgICAgICAgIHwgIDEgKwogYmZkL2VsZjY0LXg4Ni02NC5jICAg ICAgICAgICAgICAgICAgICAgfCAgMSArCiBiZmQvZWxmbGluay5jICAgICAg ICAgICAgICAgICAgICAgICAgICB8ICA5ICsrKysrKy0tLQogYmZkL2VsZnh4 LXRhcmdldC5oICAgICAgICAgICAgICAgICAgICAgfCAgNiArKysrKy0KIGxk L3Rlc3RzdWl0ZS9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgIHwgMTkgKysr KysrKysrKysrKysrKysrKwogbGQvdGVzdHN1aXRlL2xkLWkzODYvaTM4Ni5l eHAgICAgICAgICAgfCAgNCArKysrCiBsZC90ZXN0c3VpdGUvbGQtaTM4Ni9w cjE3NzA5LW5hY2wucmQgICB8ICA0ICsrKysKIGxkL3Rlc3RzdWl0ZS9sZC1p Mzg2L3ByMTc3MDkucmQgICAgICAgIHwgIDQgKysrKwogbGQvdGVzdHN1aXRl L2xkLWkzODYvcHIxNzcwOWEucyAgICAgICAgfCAgOCArKysrKysrKwogbGQv dGVzdHN1aXRlL2xkLWkzODYvcHIxNzcwOWIucyAgICAgICAgfCAgNSArKysr KwogbGQvdGVzdHN1aXRlL2xkLWkzODYvcHJvdGVjdGVkMy5kICAgICAgfCAg MyArKy0KIGxkL3Rlc3RzdWl0ZS9sZC1pMzg2L3Byb3RlY3RlZDMucyAgICAg IHwgIDMgKystCiBsZC90ZXN0c3VpdGUvbGQteDg2LTY0L3ByMTc3MDktbmFj bC5yZCB8ICA0ICsrKysKIGxkL3Rlc3RzdWl0ZS9sZC14ODYtNjQvcHIxNzcw OS5yZCAgICAgIHwgIDQgKysrKwogbGQvdGVzdHN1aXRlL2xkLXg4Ni02NC9w cjE3NzA5YS5zICAgICAgfCAgOCArKysrKysrKwogbGQvdGVzdHN1aXRlL2xk LXg4Ni02NC9wcjE3NzA5Yi5zICAgICAgfCAgNSArKysrKwogbGQvdGVzdHN1 aXRlL2xkLXg4Ni02NC9wcm90ZWN0ZWQzLmQgICAgfCAgMyArKy0KIGxkL3Rl c3RzdWl0ZS9sZC14ODYtNjQvcHJvdGVjdGVkMy5zICAgIHwgIDMgKystCiBs ZC90ZXN0c3VpdGUvbGQteDg2LTY0L3g4Ni02NC5leHAgICAgICB8ICA0ICsr KysKIDIxIGZpbGVzIGNoYW5nZWQsIDExMiBpbnNlcnRpb25zKCspLCA4IGRl bGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IGxkL3Rlc3RzdWl0ZS9s ZC1pMzg2L3ByMTc3MDktbmFjbC5yZAogY3JlYXRlIG1vZGUgMTAwNjQ0IGxk L3Rlc3RzdWl0ZS9sZC1pMzg2L3ByMTc3MDkucmQKIGNyZWF0ZSBtb2RlIDEw MDY0NCBsZC90ZXN0c3VpdGUvbGQtaTM4Ni9wcjE3NzA5YS5zCiBjcmVhdGUg bW9kZSAxMDA2NDQgbGQvdGVzdHN1aXRlL2xkLWkzODYvcHIxNzcwOWIucwog Y3JlYXRlIG1vZGUgMTAwNjQ0IGxkL3Rlc3RzdWl0ZS9sZC14ODYtNjQvcHIx NzcwOS1uYWNsLnJkCiBjcmVhdGUgbW9kZSAxMDA2NDQgbGQvdGVzdHN1aXRl L2xkLXg4Ni02NC9wcjE3NzA5LnJkCiBjcmVhdGUgbW9kZSAxMDA2NDQgbGQv dGVzdHN1aXRlL2xkLXg4Ni02NC9wcjE3NzA5YS5zCiBjcmVhdGUgbW9kZSAx MDA2NDQgbGQvdGVzdHN1aXRlL2xkLXg4Ni02NC9wcjE3NzA5Yi5zCgpkaWZm IC0tZ2l0IGEvYmZkL0NoYW5nZUxvZyBiL2JmZC9DaGFuZ2VMb2cKaW5kZXgg M2Y4Y2M4Ni4uZjI5ZGVjNSAxMDA2NDQKLS0tIGEvYmZkL0NoYW5nZUxvZwor KysgYi9iZmQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTUtMDMt MDUgIEguSi4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4KKworCVBSIGxk L3ByMTUyMjgKKwlQUiBsZC9wcjE3NzA5CisJKiBlbGYtYmZkLmggKGVsZl9i YWNrZW5kX2RhdGEpOiBBZGQgZXh0ZXJuX3Byb3RlY3RlZF9kYXRhLgorCSog ZWxmMzItaTM4Ni5jIChlbGZfYmFja2VuZF9leHRlcm5fcHJvdGVjdGVkX2Rh dGEpOiBOZXcuCisJRGVmaW5lZCB0byAxLgorCSogZWxmNjQteDg2LTY0LmMg KGVsZl9iYWNrZW5kX2V4dGVybl9wcm90ZWN0ZWRfZGF0YSk6IExpa2V3aXNl LgorCSogZWxmbGluay5jIChfYmZkX2VsZl9hZGp1c3RfZHluYW1pY19jb3B5 KTogRG9uJ3QgZXJyb3Igb24KKwljb3B5IHJlbG9jcyBhZ2FpbnN0IHByb3Rl Y3RlZCBzeW1ib2xzIGlmIGV4dGVybl9wcm90ZWN0ZWRfZGF0YQorCWlzIHRy dWUuCisJKF9iZmRfZWxmX3N5bWJvbF9yZWZzX2xvY2FsX3ApOiBEb24ndCBy ZXR1cm4gdHJ1ZSBvbiBwcm90ZWN0ZWQKKwlub24tZnVuY3Rpb24gc3ltYm9s cyBpZiBleHRlcm5fcHJvdGVjdGVkX2RhdGEgaXMgdHJ1ZS4KKwkqIGVsZnh4 LXRhcmdldC5oIChlbGZfYmFja2VuZF9leHRlcm5fcHJvdGVjdGVkX2RhdGEp OiBOZXcuCisJRGVmYXVsdCB0byAwLgorCShlbGZOTl9iZWQpOiBJbml0aWFs aXplIGV4dGVybl9wcm90ZWN0ZWRfZGF0YSB3aXRoCisJZWxmX2JhY2tlbmRf ZXh0ZXJuX3Byb3RlY3RlZF9kYXRhLgorCiAyMDE1LTAzLTA1ICBOaWNrIENs aWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgogCiAJUFIgYmludXRpbHMvMTgw MjUKZGlmZiAtLWdpdCBhL2JmZC9lbGYtYmZkLmggYi9iZmQvZWxmLWJmZC5o CmluZGV4IDE1NmVlYzcuLjEzYzMyZTAgMTAwNjQ0Ci0tLSBhL2JmZC9lbGYt YmZkLmgKKysrIGIvYmZkL2VsZi1iZmQuaApAQCAtMTM1OSw2ICsxMzU5LDEw IEBAIHN0cnVjdCBlbGZfYmFja2VuZF9kYXRhCiAgICAgIGluIGxlbmd0aCBy YXRoZXIgdGhhbiBzZWMtPnNpemUgaW4gbGVuZ3RoLCBpZiBzZWMtPnJhd3Np emUgaXMKICAgICAgbm9uLXplcm8gYW5kIHNtYWxsZXIgdGhhbiBzZWMtPnNp emUuICAqLwogICB1bnNpZ25lZCBjYWNoZXNfcmF3c2l6ZSA6IDE7CisKKyAg LyogQWRkcmVzcyBvZiBwcm90ZWN0ZWQgZGF0YSBkZWZpbmVkIGluIHRoZSBz aGFyZWQgbGlicmFyeSBtYXkgYmUKKyAgICAgZXh0ZXJuYWwsIGkuZS4sIGR1 ZSB0byBjb3B5IHJlbG9jYXRpb24uICAgKi8KKyAgdW5zaWduZWQgZXh0ZXJu X3Byb3RlY3RlZF9kYXRhIDogMTsKIH07CiAKIC8qIEluZm9ybWF0aW9uIGFi b3V0IHJlbG9jIHNlY3Rpb25zIGFzc29jaWF0ZWQgd2l0aCBhIGJmZF9lbGZf c2VjdGlvbl9kYXRhCmRpZmYgLS1naXQgYS9iZmQvZWxmMzItaTM4Ni5jIGIv YmZkL2VsZjMyLWkzODYuYwppbmRleCAzZjE2ZmMxLi41MmY0ZDMzIDEwMDY0 NAotLS0gYS9iZmQvZWxmMzItaTM4Ni5jCisrKyBiL2JmZC9lbGYzMi1pMzg2 LmMKQEAgLTUyOTIsNiArNTI5Miw3IEBAIGVsZl9pMzg2X2FkZF9zeW1ib2xf aG9vayAoYmZkICogYWJmZCwKICNkZWZpbmUgZWxmX2JhY2tlbmRfd2FudF9w bHRfc3ltCTAKICNkZWZpbmUgZWxmX2JhY2tlbmRfZ290X2hlYWRlcl9zaXpl CTEyCiAjZGVmaW5lIGVsZl9iYWNrZW5kX3BsdF9hbGlnbm1lbnQJNAorI2Rl ZmluZSBlbGZfYmFja2VuZF9leHRlcm5fcHJvdGVjdGVkX2RhdGEgMQogCiAv KiBTdXBwb3J0IFJFTEEgZm9yIG9iamR1bXAgb2YgcHJlbGluayBvYmplY3Rz LiAgKi8KICNkZWZpbmUgZWxmX2luZm9fdG9faG93dG8JCSAgICAgIGVsZl9p Mzg2X2luZm9fdG9faG93dG9fcmVsCmRpZmYgLS1naXQgYS9iZmQvZWxmNjQt eDg2LTY0LmMgYi9iZmQvZWxmNjQteDg2LTY0LmMKaW5kZXggYTQ5NzRjZS4u NzRkMWQwNiAxMDA2NDQKLS0tIGEvYmZkL2VsZjY0LXg4Ni02NC5jCisrKyBi L2JmZC9lbGY2NC14ODYtNjQuYwpAQCAtNTg2OCw2ICs1ODY4LDcgQEAgc3Rh dGljIGNvbnN0IHN0cnVjdCBiZmRfZWxmX3NwZWNpYWxfc2VjdGlvbgogI2Rl ZmluZSBlbGZfYmFja2VuZF9nb3RfaGVhZGVyX3NpemUJICAgIChHT1RfRU5U UllfU0laRSozKQogI2RlZmluZSBlbGZfYmFja2VuZF9yZWxhX25vcm1hbAkJ ICAgIDEKICNkZWZpbmUgZWxmX2JhY2tlbmRfcGx0X2FsaWdubWVudCAgICAg ICAgICAgNAorI2RlZmluZSBlbGZfYmFja2VuZF9leHRlcm5fcHJvdGVjdGVk X2RhdGEgICAxCiAKICNkZWZpbmUgZWxmX2luZm9fdG9faG93dG8JCSAgICBl bGZfeDg2XzY0X2luZm9fdG9faG93dG8KIApkaWZmIC0tZ2l0IGEvYmZkL2Vs ZmxpbmsuYyBiL2JmZC9lbGZsaW5rLmMKaW5kZXggZWMxZTRkZi4uNmVlNjQ5 OSAxMDA2NDQKLS0tIGEvYmZkL2VsZmxpbmsuYworKysgYi9iZmQvZWxmbGlu ay5jCkBAIC0yNjcxLDcgKzI2NzEsOSBAQCBfYmZkX2VsZl9hZGp1c3RfZHlu YW1pY19jb3B5IChzdHJ1Y3QgYmZkX2xpbmtfaW5mbyAqaW5mbywKICAgLyog SW5jcmVtZW50IHRoZSBzaXplIG9mIERZTkJTUyB0byBtYWtlIHJvb20gZm9y IHRoZSBzeW1ib2wuICAqLwogICBkeW5ic3MtPnNpemUgKz0gaC0+c2l6ZTsK IAotICBpZiAoaC0+cHJvdGVjdGVkX2RlZikKKyAgLyogTm8gZXJyb3IgaWYg ZXh0ZXJuX3Byb3RlY3RlZF9kYXRhIGlzIHRydWUuICAqLworICBpZiAoaC0+ cHJvdGVjdGVkX2RlZgorICAgICAgJiYgIWdldF9lbGZfYmFja2VuZF9kYXRh IChkeW5ic3MtPm93bmVyKS0+ZXh0ZXJuX3Byb3RlY3RlZF9kYXRhKQogICAg IHsKICAgICAgIGluZm8tPmNhbGxiYWNrcy0+ZWluZm8KIAkoXygiJVA6IGNv cHkgcmVsb2MgYWdhaW5zdCBwcm90ZWN0ZWQgYCVUJyBpcyBpbnZhbGlkXG4i KSwKQEAgLTI4MzUsOCArMjgzNyw5IEBAIF9iZmRfZWxmX3N5bWJvbF9yZWZz X2xvY2FsX3AgKHN0cnVjdCBlbGZfbGlua19oYXNoX2VudHJ5ICpoLAogCiAg IGJlZCA9IGdldF9lbGZfYmFja2VuZF9kYXRhIChoYXNoX3RhYmxlLT5keW5v YmopOwogCi0gIC8qIFNUVl9QUk9URUNURUQgbm9uLWZ1bmN0aW9uIHN5bWJv bHMgYXJlIGxvY2FsLiAgKi8KLSAgaWYgKCFiZWQtPmlzX2Z1bmN0aW9uX3R5 cGUgKGgtPnR5cGUpKQorICAvKiBJZiBleHRlcm5fcHJvdGVjdGVkX2RhdGEg aXMgZmFsc2UsIFNUVl9QUk9URUNURUQgbm9uLWZ1bmN0aW9uCisgICAgIHN5 bWJvbHMgYXJlIGxvY2FsLiAgKi8KKyAgaWYgKCFiZWQtPmV4dGVybl9wcm90 ZWN0ZWRfZGF0YSAmJiAhYmVkLT5pc19mdW5jdGlvbl90eXBlIChoLT50eXBl KSkKICAgICByZXR1cm4gVFJVRTsKIAogICAvKiBGdW5jdGlvbiBwb2ludGVy IGVxdWFsaXR5IHRlc3RzIG1heSByZXF1aXJlIHRoYXQgU1RWX1BST1RFQ1RF RApkaWZmIC0tZ2l0IGEvYmZkL2VsZnh4LXRhcmdldC5oIGIvYmZkL2VsZnh4 LXRhcmdldC5oCmluZGV4IDIxMWMwYTEuLjk3NjBkYjQgMTAwNjQ0Ci0tLSBh L2JmZC9lbGZ4eC10YXJnZXQuaAorKysgYi9iZmQvZWxmeHgtdGFyZ2V0LmgK QEAgLTExNyw2ICsxMTcsOSBAQAogI2lmbmRlZiBlbGZfYmFja2VuZF9jYWNo ZXNfcmF3c2l6ZQogI2RlZmluZSBlbGZfYmFja2VuZF9jYWNoZXNfcmF3c2l6 ZSAwCiAjZW5kaWYKKyNpZm5kZWYgZWxmX2JhY2tlbmRfZXh0ZXJuX3Byb3Rl Y3RlZF9kYXRhCisjZGVmaW5lIGVsZl9iYWNrZW5kX2V4dGVybl9wcm90ZWN0 ZWRfZGF0YSAwCisjZW5kaWYKICNpZm5kZWYgZWxmX2JhY2tlbmRfc3RhY2tf YWxpZ24KICNkZWZpbmUgZWxmX2JhY2tlbmRfc3RhY2tfYWxpZ24gMTYKICNl bmRpZgpAQCAtODAxLDcgKzgwNCw4IEBAIHN0YXRpYyBzdHJ1Y3QgZWxmX2Jh Y2tlbmRfZGF0YSBlbGZOTl9iZWQgPQogICBlbGZfYmFja2VuZF93YW50X2R5 bmJzcywKICAgZWxmX2JhY2tlbmRfd2FudF9wX3BhZGRyX3NldF90b196ZXJv LAogICBlbGZfYmFja2VuZF9kZWZhdWx0X2V4ZWNzdGFjaywKLSAgZWxmX2Jh Y2tlbmRfY2FjaGVzX3Jhd3NpemUKKyAgZWxmX2JhY2tlbmRfY2FjaGVzX3Jh d3NpemUsCisgIGVsZl9iYWNrZW5kX2V4dGVybl9wcm90ZWN0ZWRfZGF0YQog fTsKIAogLyogRm9yd2FyZCBkZWNsYXJhdGlvbiBmb3IgdXNlIHdoZW4gaW5p dGlhbGlzaW5nIGFsdGVybmF0aXZlX3RhcmdldCBmaWVsZC4gICovCmRpZmYg LS1naXQgYS9sZC90ZXN0c3VpdGUvQ2hhbmdlTG9nIGIvbGQvdGVzdHN1aXRl L0NoYW5nZUxvZwppbmRleCBhY2Q2ZDgxLi5iN2RlZmFkIDEwMDY0NAotLS0g YS9sZC90ZXN0c3VpdGUvQ2hhbmdlTG9nCisrKyBiL2xkL3Rlc3RzdWl0ZS9D aGFuZ2VMb2cKQEAgLTEsMyArMSwyMiBAQAorMjAxNS0wMy0wNSAgSC5KLiBM dSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgorCisJUFIgbGQvcHIxNTIyOAor CVBSIGxkL3ByMTc3MDkKKwkqIGxkLWkzODYvaTM4Ni5leHAgKGkzODZ0ZXN0 cyk6IEFkZCBhIHRlc3QgZm9yIFBSIGxkLzE3NzA5LgorCSogbGQtaTM4Ni9w cjE3NzA5LW5hY2wucmQ6IE5ldyBmaWxlLgorCSogbGQtaTM4Ni9wcjE3NzA5 LnJkOiBMaWtld2lzZS4KKwkqIGxkLWkzODYvcHIxNzcwOWEuczogTGlrZXdp c2UuCisJKiBsZC1pMzg2L3ByMTc3MDliLnM6IExpa2V3aXNlLgorCSogbGQt aTM4Ni9wcm90ZWN0ZWQzLmQ6IFVwZGF0ZWQuCisJKiBsZC1pMzg2L3Byb3Rl Y3RlZDMuczogTGlrZXdpc2UuCisJKiBsZC14ODYtNjQvcHIxNzcwOS1uYWNs LnJkOiBOZXcgZmlsZS4KKwkqIGxkLXg4Ni02NC9wcjE3NzA5LnJkOiBMaWtl d2lzZS4KKwkqIGxkLXg4Ni02NC9wcjE3NzA5YS5zOiBMaWtld2lzZS4KKwkq IGxkLXg4Ni02NC9wcjE3NzA5Yi5zOiBMaWtld2lzZS4KKwkqIGxkLXg4Ni02 NC9wcm90ZWN0ZWQzLmQ6IFVwZGF0ZWQuCisJKiBsZC14ODYtNjQvcHJvdGVj dGVkMy5zOiBMaWtld2lzZS4KKwkqIGxkLXg4Ni02NC94ODYtNjQuZXhwICh4 ODZfNjR0ZXN0cyk6IEFkZCBhIHRlc3QgZm9yIFBSIGxkLzE3NzA5LgorCiAy MDE1LTAzLTA0ICBSaWNoYXJkIFNhbmRpZm9yZCAgPHJpY2hhcmQuc2FuZGlm b3JkQGFybS5jb20+CiAKIAlQUiBnYXMvMTc4NDMKZGlmZiAtLWdpdCBhL2xk L3Rlc3RzdWl0ZS9sZC1pMzg2L2kzODYuZXhwIGIvbGQvdGVzdHN1aXRlL2xk LWkzODYvaTM4Ni5leHAKaW5kZXggNGZjMjM1OS4uM2ZkZDM5YyAxMDA2NDQK LS0tIGEvbGQvdGVzdHN1aXRlL2xkLWkzODYvaTM4Ni5leHAKKysrIGIvbGQv dGVzdHN1aXRlL2xkLWkzODYvaTM4Ni5leHAKQEAgLTE5MSw2ICsxOTEsMTAg QEAgc2V0IGkzODZ0ZXN0cyB7CiAgICAgICItLTMyIiB7cHIxNzMwNmIuc30g e30gIiJ9CiAgICAgeyJQUiBsZC8xNzMwNiAoMikiICItbWVsZl9pMzg2IC1z aGFyZWQgLUJzeW1ib2xpYyAtLWp1c3Qtc3ltYm9scz10bXBkaXIvcHIxNzMw NmIubyIgIiIKICAgICAgIi0tMzIiIHtwcjE3MzA2YS5zfSB7fSAibGlicHIx NzMwNi5zbyJ9CisgICAgeyJQUiBsZC8xNzcwOSAoMSkiICItbWVsZl9pMzg2 IC1zaGFyZWQiICIiCisgICAgICItLTMyIiB7cHIxNzcwOWEuc30ge30gImxp YnByMTc3MDkuc28ifQorICAgIHsiUFIgbGQvMTc3MDkgKDIpIiAiLW1lbGZf aTM4NiB0bXBkaXIvbGlicHIxNzcwOS5zbyIgIiIKKyAgICAgIi0tMzIiIHtw cjE3NzA5Yi5zfSB7e3JlYWRlbGYgLXIgcHIxNzcwOS5yZH19ICJwcjE3NzA5 In0KIH0KIAogIyBTbyBhcyB0byBhdm9pZCByZXdyaXRpbmcgZXZlcnkgbGFz dCB0ZXN0IGNhc2UgaGVyZSBpbiBhIG5hY2wgdmFyaWFudCwKZGlmZiAtLWdp dCBhL2xkL3Rlc3RzdWl0ZS9sZC1pMzg2L3ByMTc3MDktbmFjbC5yZCBiL2xk L3Rlc3RzdWl0ZS9sZC1pMzg2L3ByMTc3MDktbmFjbC5yZApuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hYzlkMTc0Ci0tLSAvZGV2L251 bGwKKysrIGIvbGQvdGVzdHN1aXRlL2xkLWkzODYvcHIxNzcwOS1uYWNsLnJk CkBAIC0wLDAgKzEsNCBAQAorCitSZWxvY2F0aW9uIHNlY3Rpb24gJy5yZWxc Li4qJyBhdCBvZmZzZXQgLiogY29udGFpbnMgMSBlbnRyaWVzOgorIE9mZnNl dCAgICAgSW5mbyAgICBUeXBlICAgICAgICAgICAgU3ltXC5WYWx1ZSAgU3lt XC4gTmFtZQorWzAtOWEtZiBdK1JfMzg2X0NPUFkgK1swLTlhLWZdKyArZm9v CmRpZmYgLS1naXQgYS9sZC90ZXN0c3VpdGUvbGQtaTM4Ni9wcjE3NzA5LnJk IGIvbGQvdGVzdHN1aXRlL2xkLWkzODYvcHIxNzcwOS5yZApuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hYzlkMTc0Ci0tLSAvZGV2L251 bGwKKysrIGIvbGQvdGVzdHN1aXRlL2xkLWkzODYvcHIxNzcwOS5yZApAQCAt MCwwICsxLDQgQEAKKworUmVsb2NhdGlvbiBzZWN0aW9uICcucmVsXC4uKicg YXQgb2Zmc2V0IC4qIGNvbnRhaW5zIDEgZW50cmllczoKKyBPZmZzZXQgICAg IEluZm8gICAgVHlwZSAgICAgICAgICAgIFN5bVwuVmFsdWUgIFN5bVwuIE5h bWUKK1swLTlhLWYgXStSXzM4Nl9DT1BZICtbMC05YS1mXSsgK2ZvbwpkaWZm IC0tZ2l0IGEvbGQvdGVzdHN1aXRlL2xkLWkzODYvcHIxNzcwOWEucyBiL2xk L3Rlc3RzdWl0ZS9sZC1pMzg2L3ByMTc3MDlhLnMKbmV3IGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggMDAwMDAwMC4uODc1MGY1ZQotLS0gL2Rldi9udWxsCisr KyBiL2xkL3Rlc3RzdWl0ZS9sZC1pMzg2L3ByMTc3MDlhLnMKQEAgLTAsMCAr MSw4IEBACisJLnByb3RlY3RlZAlmb28KKy5nbG9ibCBmb28KKwkuZGF0YQor CS5hbGlnbiA0CisJLnR5cGUJZm9vLCBAb2JqZWN0CisJLnNpemUJZm9vLCA0 Citmb286CisJLmxvbmcJMQpkaWZmIC0tZ2l0IGEvbGQvdGVzdHN1aXRlL2xk LWkzODYvcHIxNzcwOWIucyBiL2xkL3Rlc3RzdWl0ZS9sZC1pMzg2L3ByMTc3 MDliLnMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzU3 ZjQwNAotLS0gL2Rldi9udWxsCisrKyBiL2xkL3Rlc3RzdWl0ZS9sZC1pMzg2 L3ByMTc3MDliLnMKQEAgLTAsMCArMSw1IEBACisJLnRleHQKKwkuZ2xvYmwJ X3N0YXJ0CisJLnR5cGUJX3N0YXJ0LCBAZnVuY3Rpb24KK19zdGFydDoKKwlt b3ZsCWZvbywgJWVheApkaWZmIC0tZ2l0IGEvbGQvdGVzdHN1aXRlL2xkLWkz ODYvcHJvdGVjdGVkMy5kIGIvbGQvdGVzdHN1aXRlL2xkLWkzODYvcHJvdGVj dGVkMy5kCmluZGV4IGFhZmEyZDguLjQ3YWI0ZTEgMTAwNjQ0Ci0tLSBhL2xk L3Rlc3RzdWl0ZS9sZC1pMzg2L3Byb3RlY3RlZDMuZAorKysgYi9sZC90ZXN0 c3VpdGUvbGQtaTM4Ni9wcm90ZWN0ZWQzLmQKQEAgLTgsNiArOCw3IEBACiBE aXNhc3NlbWJseSBvZiBzZWN0aW9uIC50ZXh0OgogCiAwK1thLWYwLTldKyA8 YmFyPjoKLVsgCV0qW2EtZjAtOV0rOgk4YiA4MSBbYS1mMC05XVthLWYwLTld IFthLWYwLTldW2EtZjAtOV0gMDAgMDAgICAgCW1vdiAgICAweFthLWYwLTld K1woJWVjeFwpLCVlYXgKK1sgCV0qW2EtZjAtOV0rOgk4YiA4MSBbYS1mMC05 XVthLWYwLTldIFthLWYwLTldW2EtZjAtOV0gZmYgZmYgICAgCW1vdiAgICAt MHhbYS1mMC05XStcKCVlY3hcKSwlZWF4CitbIAldKlthLWYwLTldKzoJOGIg MDAgICAgICAgICAgICAgICAgCW1vdiAgICBcKCVlYXhcKSwlZWF4CiBbIAld KlthLWYwLTldKzoJYzMgICAgICAgICAgICAgICAgICAgCXJldCAgICAKICNw YXNzCmRpZmYgLS1naXQgYS9sZC90ZXN0c3VpdGUvbGQtaTM4Ni9wcm90ZWN0 ZWQzLnMgYi9sZC90ZXN0c3VpdGUvbGQtaTM4Ni9wcm90ZWN0ZWQzLnMKaW5k ZXggN2E2MDVhMi4uNGRkMjExNSAxMDA2NDQKLS0tIGEvbGQvdGVzdHN1aXRl L2xkLWkzODYvcHJvdGVjdGVkMy5zCisrKyBiL2xkL3Rlc3RzdWl0ZS9sZC1p Mzg2L3Byb3RlY3RlZDMucwpAQCAtMTAsNiArMTAsNyBAQCBmb286CiAuZ2xv YmwgYmFyCiAJLnR5cGUJYmFyLCBAZnVuY3Rpb24KIGJhcjoKLQltb3ZsCWZv b0BHT1RPRkYoJWVjeCksICVlYXgKKwltb3ZsCWZvb0BHT1QoJWVjeCksICVl YXgKKwltb3ZsCSglZWF4KSwgJWVheAogCXJldAogCS5zaXplCWJhciwgLi1i YXIKZGlmZiAtLWdpdCBhL2xkL3Rlc3RzdWl0ZS9sZC14ODYtNjQvcHIxNzcw OS1uYWNsLnJkIGIvbGQvdGVzdHN1aXRlL2xkLXg4Ni02NC9wcjE3NzA5LW5h Y2wucmQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjFi YWEzOAotLS0gL2Rldi9udWxsCisrKyBiL2xkL3Rlc3RzdWl0ZS9sZC14ODYt NjQvcHIxNzcwOS1uYWNsLnJkCkBAIC0wLDAgKzEsNCBAQAorCitSZWxvY2F0 aW9uIHNlY3Rpb24gJy5yZWxhXC4uKicgYXQgb2Zmc2V0IC4qIGNvbnRhaW5z IDEgZW50cmllczoKKyArT2Zmc2V0ICtJbmZvICtUeXBlICtTeW1ib2wncyBW YWx1ZSArU3ltYm9sJ3MgTmFtZSBcKyBBZGRlbmQKK1swLTlhLWYgXStSX1g4 Nl82NF9DT1BZK1swLTlhLWYgXSsgK2ZvbyBcKyAwCmRpZmYgLS1naXQgYS9s ZC90ZXN0c3VpdGUvbGQteDg2LTY0L3ByMTc3MDkucmQgYi9sZC90ZXN0c3Vp dGUvbGQteDg2LTY0L3ByMTc3MDkucmQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggMDAwMDAwMC4uZjFiYWEzOAotLS0gL2Rldi9udWxsCisrKyBiL2xk L3Rlc3RzdWl0ZS9sZC14ODYtNjQvcHIxNzcwOS5yZApAQCAtMCwwICsxLDQg QEAKKworUmVsb2NhdGlvbiBzZWN0aW9uICcucmVsYVwuLionIGF0IG9mZnNl dCAuKiBjb250YWlucyAxIGVudHJpZXM6CisgK09mZnNldCArSW5mbyArVHlw ZSArU3ltYm9sJ3MgVmFsdWUgK1N5bWJvbCdzIE5hbWUgXCsgQWRkZW5kCitb MC05YS1mIF0rUl9YODZfNjRfQ09QWStbMC05YS1mIF0rICtmb28gXCsgMApk aWZmIC0tZ2l0IGEvbGQvdGVzdHN1aXRlL2xkLXg4Ni02NC9wcjE3NzA5YS5z IGIvbGQvdGVzdHN1aXRlL2xkLXg4Ni02NC9wcjE3NzA5YS5zCm5ldyBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg3NTBmNWUKLS0tIC9kZXYv bnVsbAorKysgYi9sZC90ZXN0c3VpdGUvbGQteDg2LTY0L3ByMTc3MDlhLnMK QEAgLTAsMCArMSw4IEBACisJLnByb3RlY3RlZAlmb28KKy5nbG9ibCBmb28K KwkuZGF0YQorCS5hbGlnbiA0CisJLnR5cGUJZm9vLCBAb2JqZWN0CisJLnNp emUJZm9vLCA0Citmb286CisJLmxvbmcJMQpkaWZmIC0tZ2l0IGEvbGQvdGVz dHN1aXRlL2xkLXg4Ni02NC9wcjE3NzA5Yi5zIGIvbGQvdGVzdHN1aXRlL2xk LXg4Ni02NC9wcjE3NzA5Yi5zCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDAwMDAwMDAuLmM1N2Y0MDQKLS0tIC9kZXYvbnVsbAorKysgYi9sZC90ZXN0 c3VpdGUvbGQteDg2LTY0L3ByMTc3MDliLnMKQEAgLTAsMCArMSw1IEBACisJ LnRleHQKKwkuZ2xvYmwJX3N0YXJ0CisJLnR5cGUJX3N0YXJ0LCBAZnVuY3Rp b24KK19zdGFydDoKKwltb3ZsCWZvbywgJWVheApkaWZmIC0tZ2l0IGEvbGQv dGVzdHN1aXRlL2xkLXg4Ni02NC9wcm90ZWN0ZWQzLmQgYi9sZC90ZXN0c3Vp dGUvbGQteDg2LTY0L3Byb3RlY3RlZDMuZAppbmRleCAyMmEzNmFjLi5kOGYw OWRhIDEwMDY0NAotLS0gYS9sZC90ZXN0c3VpdGUvbGQteDg2LTY0L3Byb3Rl Y3RlZDMuZAorKysgYi9sZC90ZXN0c3VpdGUvbGQteDg2LTY0L3Byb3RlY3Rl ZDMuZApAQCAtOCw2ICs4LDcgQEAKIERpc2Fzc2VtYmx5IG9mIHNlY3Rpb24g LnRleHQ6CiAKIDArW2EtZjAtOV0rIDxiYXI+OgotWyAJXSpbYS1mMC05XSs6 CThiIDA1IChbMC05YS1mXXsyfSApezR9ICoJbW92ICAgIDB4W2EtZjAtOV0r XCglcmlwXCksJWVheCAgICAgICAgIyBbYS1mMC05XSsgPGZvbz4KK1sgCV0q W2EtZjAtOV0rOgk0OCA4YiAwNSAoWzAtOWEtZl17Mn0gKXs0fSAqCW1vdiAg ICAweFthLWYwLTldK1woJXJpcFwpLCVyYXggICAgICAgICMgW2EtZjAtOV0r IDxfRFlOQU1JQ1wrMHhbYS1mMC05XSs+CitbIAldKlthLWYwLTldKzoJOGIg MDAgICAgICAgICAgICAgICAgCW1vdiAgICBcKCVyYXhcKSwlZWF4CiBbIAld KlthLWYwLTldKzoJYzMgICAgICAgICAgICAgICAgICAgCXJldHEgKgogI3Bh c3MKZGlmZiAtLWdpdCBhL2xkL3Rlc3RzdWl0ZS9sZC14ODYtNjQvcHJvdGVj dGVkMy5zIGIvbGQvdGVzdHN1aXRlL2xkLXg4Ni02NC9wcm90ZWN0ZWQzLnMK aW5kZXggZTRhZjZlNy4uNzUzODA1MCAxMDA2NDQKLS0tIGEvbGQvdGVzdHN1 aXRlL2xkLXg4Ni02NC9wcm90ZWN0ZWQzLnMKKysrIGIvbGQvdGVzdHN1aXRl L2xkLXg4Ni02NC9wcm90ZWN0ZWQzLnMKQEAgLTEwLDYgKzEwLDcgQEAgZm9v OgogLmdsb2JsIGJhcgogCS50eXBlCWJhciwgQGZ1bmN0aW9uCiBiYXI6Ci0J bW92bAlmb28oJXJpcCksICVlYXgKKwltb3ZxCWZvb0BHT1RQQ1JFTCglcmlw KSwgJXJheAorCW1vdmwJKCVyYXgpLCAlZWF4CiAJcmV0CiAJLnNpemUJYmFy LCAuLWJhcgpkaWZmIC0tZ2l0IGEvbGQvdGVzdHN1aXRlL2xkLXg4Ni02NC94 ODYtNjQuZXhwIGIvbGQvdGVzdHN1aXRlL2xkLXg4Ni02NC94ODYtNjQuZXhw CmluZGV4IDliYjA4YmQuLjQzNDI3YmUgMTAwNjQ0Ci0tLSBhL2xkL3Rlc3Rz dWl0ZS9sZC14ODYtNjQveDg2LTY0LmV4cAorKysgYi9sZC90ZXN0c3VpdGUv bGQteDg2LTY0L3g4Ni02NC5leHAKQEAgLTE0NCw2ICsxNDQsMTAgQEAgc2V0 IHg4Nl82NHRlc3RzIHsKICAgICAgIi0tNjQiIHtwcjE3MzA2Yi5zfSB7fSAi In0KICAgICB7IlBSIGxkLzE3MzA2ICgyKSIgIi1tZWxmX3g4Nl82NCAtc2hh cmVkIC1Cc3ltYm9saWMgLS1qdXN0LXN5bWJvbHM9dG1wZGlyL3ByMTczMDZi Lm8iICIiCiAgICAgICItLTY0IiB7cHIxNzMwNmEuc30ge30gImxpYnByMTcz MDYuc28ifQorICAgIHsiUFIgbGQvMTc3MDkgKDEpIiAiLW1lbGZfeDg2XzY0 IC1zaGFyZWQiICIiCisgICAgICItLTY0IiB7cHIxNzcwOWEuc30ge30gImxp YnByMTc3MDkuc28ifQorICAgIHsiUFIgbGQvMTc3MDkgKDIpIiAiLW1lbGZf eDg2XzY0IHRtcGRpci9saWJwcjE3NzA5LnNvIiAiIgorICAgICAiLS02NCIg e3ByMTc3MDliLnN9IHt7cmVhZGVsZiAtclcgcHIxNzcwOS5yZH19ICJwcjE3 NzA5In0KIH0KIAogIyBTbyBhcyB0byBhdm9pZCByZXdyaXRpbmcgZXZlcnkg bGFzdCB0ZXN0IGNhc2UgaGVyZSBpbiBhIG5hY2wgdmFyaWFudCwKLS0gCjIu MS4wCgo= --001a113d6a52f9ad5b05108b87db--