From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 90472 invoked by alias); 22 Apr 2016 12:35:52 -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 90456 invoked by uid 89); 22 Apr 2016 12:35:51 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-2.3 required=5.0 tests=AWL,BAYES_00,FREEMAIL_FROM,RCVD_IN_DNSWL_LOW,SPF_PASS autolearn=ham version=3.3.2 spammy=x, elf_hash_table, hans-peter.nilsson@axis.com, hanspeternilssonaxiscom X-HELO: mail-qk0-f178.google.com Received: from mail-qk0-f178.google.com (HELO mail-qk0-f178.google.com) (209.85.220.178) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (AES128-GCM-SHA256 encrypted) ESMTPS; Fri, 22 Apr 2016 12:35:39 +0000 Received: by mail-qk0-f178.google.com with SMTP id r184so37655158qkc.1 for ; Fri, 22 Apr 2016 05:35:39 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc; bh=MmYXMYep90UbKwmsPigbLLcB8N7GTZY8sgeSWFWH12c=; b=BjF469Fk/EKdkPpGIB1xa7O7XFYfWkukAYaBoAg6WPlXBJAFw4fvXaz0SbcsdnGeIM 4oD4EugDx/yaVNbkpsXDt+2PDpRBu0okMMgcSWGX0ZqyK9bB793Qn7AeDJRji5OXJlc0 ZZc9U7b2428w7HXLJk5fzdbOAIE1e2NWn1oiGKAHasy4BMruj35svs/LwNUKQ2gJEwJ3 PYmCbbN8mCEWXsjuqlUlFYWT1kLpQyUJrAefBsEAvpj07iXrGbgHRGaSxCZqAWv2XJtg Km3dzKAhAyHZHEj7vSE2vdfUpZ5pHM0ErfMqa2StzLMLTPTh5ZT7Of/RRHqJOkYkPKI+ ioRQ== X-Gm-Message-State: AOPr4FVqesin3T5BpcykQInYz7JSEgImS0eU23J+CF+jOdA0ciPDiRWCl/oPgfW9cjP7zWLro/MiJcduw2EMSQ== MIME-Version: 1.0 X-Received: by 10.55.20.83 with SMTP id e80mr4495143qkh.196.1461328536891; Fri, 22 Apr 2016 05:35:36 -0700 (PDT) Received: by 10.55.217.134 with HTTP; Fri, 22 Apr 2016 05:35:36 -0700 (PDT) In-Reply-To: <20160422085522.GE27353@bubble.grove.modra.org> References: <20160421033150.GA24027@intel.com> <201604220339.u3M3dtEo021701@ignucius.se.axis.com> <20160422085522.GE27353@bubble.grove.modra.org> Date: Fri, 22 Apr 2016 12:35:00 -0000 Message-ID: Subject: Re: [PATCH] Set dynobj to a normal input file if possible From: "H.J. Lu" To: Alan Modra Cc: Hans-Peter Nilsson , Binutils Content-Type: multipart/mixed; boundary=001a11405b765bd2570531121061 X-IsSubscribed: yes X-SW-Source: 2016-04/txt/msg00375.txt.bz2 --001a11405b765bd2570531121061 Content-Type: text/plain; charset=UTF-8 Content-length: 2679 On Fri, Apr 22, 2016 at 1:55 AM, Alan Modra wrote: > On Thu, Apr 21, 2016 at 09:49:50PM -0700, H.J. Lu wrote: >> On Thu, Apr 21, 2016 at 8:39 PM, Hans-Peter Nilsson >> wrote: >> >> Date: Wed, 20 Apr 2016 20:31:50 -0700 >> >> From: "H.J. Lu" >> > >> >> * elflink.c (_bfd_elf_link_create_dynstrtab): Set dynobj to a >> >> normal input file if possible. >> > >> > Looks like this caused, for a cross -m32 build to arm-unknown-eabi: >> > >> > Running /tmp/hpautotest-binutils/bsrc/src/ld/testsuite/ld-arm/arm-elf.exp ... >> > FAIL: Indirect cross-library function reference >> > FAIL: TLS dynamic application >> > FAIL: GOT relocations in executables >> > FAIL: Thumb and -gc-sections >> > FAIL: Simple dynamic application >> > FAIL: Simple dynamic application without .rel.plt in linker script >> > FAIL: Non-pcrel function reference >> > FAIL: Mixed ARM/Thumb dynamic application >> > FAIL: Mixed ARM/Thumb arch5 dynamic application >> > FAIL: Using Thumb lib by another lib >> > FAIL: MOVW/MOVT against shared libraries >> > FAIL: Mixed ARM/Thumb dynamic application with farcalls >> > FAIL: Mixed ARM/Thumb arch5 dynamic application with farcalls >> > FAIL: TLS long plt >> > FAIL: IFUNC test 7 >> > FAIL: IFUNC test 8 >> > FAIL: IFUNC test 9 >> > FAIL: IFUNC test 10 >> > FAIL: IFUNC test 13 >> > FAIL: IFUNC test 14 >> > FAIL: IFUNC test 15 >> > FAIL: IFUNC test 16 >> > FAIL: Preempt Thumb symbol >> > FAIL: ld-arm/unresolved-1-dyn > > Sounds like something should be fixed in the arm backend. Powerpc64 > deliberately sets dynobj to the linker created "stub bfd", so there > isn't some underlying generic problem with attaching the linker > sections to a linker created bfd. In fact, it's a good idea. > > Hmm. > ld-new: linker stubs: file class ELFCLASSNONE incompatible with ELFCLASS32 > ld-new: final link failed: File in wrong format > > Yes, looks like there needs to be a small tweak. See bfd/elf64-ppc.c > ppc64_elf_init_stub_bfd They need something like elf_elfheader (fake_bfd)->e_ident[EI_CLASS] = (get_elf_backend_data (link_info.output_bfd)->s->arch_size == 64 ? ELFCLASS64 : ELFCLASS32); Currently, we hold linker created dynamic sections in an input shared object, which has its own dynamic sections, when the first input file from linker is a shared object. It may lead to conflicts between linker created dynamic sections and shared object's dynamic sections. We can use a a fake bfd to hold linker created dynamic sections. Unfortunately, it doesn't work due to BFD_LINKER_CREATED. Dynamic sections in bfd with BFD_LINKER_CREATED may be ignored. -- H.J. --001a11405b765bd2570531121061 Content-Type: text/x-patch; charset=US-ASCII; name="0001-Add-a-fake-bfd-to-hold-linker-created-dynamic-sectio.patch" Content-Disposition: attachment; filename="0001-Add-a-fake-bfd-to-hold-linker-created-dynamic-sectio.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_inbp8loz0 Content-length: 17019 RnJvbSA0Y2JlNDJlYTIzNmJjZTMyZGE0MjYyZjZmMTIzMjhiNThiYWM4ZjBm IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiAiSC5KLiBMdSIgPGhq bC50b29sc0BnbWFpbC5jb20+CkRhdGU6IEZyaSwgMjIgQXByIDIwMTYgMDU6 MjU6MjUgLTA3MDAKU3ViamVjdDogW1BBVENIXSBBZGQgYSBmYWtlIGJmZCB0 byBob2xkIGxpbmtlciBjcmVhdGVkIGR5bmFtaWMgc2VjdGlvbnMKCkN1cnJl bnRseSwgd2UgaG9sZCBsaW5rZXIgY3JlYXRlZCBkeW5hbWljIHNlY3Rpb25z IGluIGFuIGlucHV0IHNoYXJlZApvYmplY3QsIHdoaWNoIGhhcyBpdHMgb3du IGR5bmFtaWMgc2VjdGlvbnMsIHdoZW4gdGhlIGZpcnN0IGlucHV0IGZpbGUK ZnJvbSBsaW5rZXIgaXMgYSBzaGFyZWQgb2JqZWN0LiAgSXQgbWF5IGxlYWQg dG8gY29uZmxpY3RzIGJldHdlZW4KbGlua2VyIGNyZWF0ZWQgZHluYW1pYyBz ZWN0aW9ucyBhbmQgc2hhcmVkIG9iamVjdCdzIGR5bmFtaWMgc2VjdGlvbnMu CldlIGNhbiB1c2UgYSBhIGZha2UgYmZkIHRvIGhvbGQgbGlua2VyIGNyZWF0 ZWQgZHluYW1pYyBzZWN0aW9ucy4KVW5mb3J0dW5hdGVseSwgaXQgZG9lc24n dCB3b3JrIGR1ZSB0byBCRkRfTElOS0VSX0NSRUFURUQuICBEeW5hbWljCnNl Y3Rpb25zIGluIGJmZCB3aXRoIEJGRF9MSU5LRVJfQ1JFQVRFRCBtYXkgYmUg aWdub3JlZC4KLS0tCiBiZmQvZWxmbGluay5jICAgICAgICAgICAgICB8IDMz ICsrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogbGQvZW11bHRl bXBsL2FhcmNoNjRlbGYuZW0gfCAgMiArKwogbGQvZW11bHRlbXBsL2FybWVs Zi5lbSAgICAgfCAgMiArKwogbGQvZW11bHRlbXBsL2F2cmVsZi5lbSAgICAg fCAgMSArCiBsZC9lbXVsdGVtcGwvZWxmMzIuZW0gICAgICB8IDQ1ICsrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLQogbGQv ZW11bHRlbXBsL2hwcGFlbGYuZW0gICAgfCAgMiArKwogbGQvZW11bHRlbXBs L202OGhjMXhlbGYuZW0gfCAgMiArKwogbGQvZW11bHRlbXBsL202OGtlbGYu ZW0gICAgfCAgMiArKwogbGQvZW11bHRlbXBsL21ldGFnZWxmLmVtICAgfCAg MiArKwogbGQvZW11bHRlbXBsL21pcHNlbGYuZW0gICAgfCAgMiArKwogbGQv ZW11bHRlbXBsL25kczMyZWxmLmVtICAgfCAgMiArKwogbGQvZW11bHRlbXBs L25pb3MyZWxmLmVtICAgfCAgMiArKwogbGQvZW11bHRlbXBsL3BwYzMyZWxm LmVtICAgfCAgMiArKwogbGQvZW11bHRlbXBsL3BwYzY0ZWxmLmVtICAgfCAg MiArKwogbGQvZW11bHRlbXBsL3J4ZWxmLmVtICAgICAgfCAgMiArKwogMTUg ZmlsZXMgY2hhbmdlZCwgNzUgaW5zZXJ0aW9ucygrKSwgMjggZGVsZXRpb25z KC0pCgpkaWZmIC0tZ2l0IGEvYmZkL2VsZmxpbmsuYyBiL2JmZC9lbGZsaW5r LmMKaW5kZXggNmY2NzI2Ni4uNTY1NmNhMCAxMDA2NDQKLS0tIGEvYmZkL2Vs ZmxpbmsuYworKysgYi9iZmQvZWxmbGluay5jCkBAIC0xOTgsMzEgKzE5OCwx MSBAQCBfYmZkX2VsZl9jcmVhdGVfZ290X3NlY3Rpb24gKGJmZCAqYWJmZCwg c3RydWN0IGJmZF9saW5rX2luZm8gKmluZm8pCiAMCiAvKiBDcmVhdGUgYSBz dHJ0YWIgdG8gaG9sZCB0aGUgZHluYW1pYyBzeW1ib2wgbmFtZXMuICAqLwog c3RhdGljIGJmZF9ib29sZWFuCi1fYmZkX2VsZl9saW5rX2NyZWF0ZV9keW5z dHJ0YWIgKGJmZCAqYWJmZCwgc3RydWN0IGJmZF9saW5rX2luZm8gKmluZm8p CitfYmZkX2VsZl9saW5rX2NyZWF0ZV9keW5zdHJ0YWIgKHN0cnVjdCBiZmRf bGlua19pbmZvICppbmZvKQogewogICBzdHJ1Y3QgZWxmX2xpbmtfaGFzaF90 YWJsZSAqaGFzaF90YWJsZTsKIAogICBoYXNoX3RhYmxlID0gZWxmX2hhc2hf dGFibGUgKGluZm8pOwotICBpZiAoaGFzaF90YWJsZS0+ZHlub2JqID09IE5V TEwpCi0gICAgewotICAgICAgLyogV2UgbWF5IG5vdCBzZXQgZHlub2JqLCBh biBpbnB1dCBmaWxlIGhvbGRpbmcgbGlua2VyIGNyZWF0ZWQKLQkgZHluYW1p YyBzZWN0aW9ucyB0byBhYmZkLCB3aGljaCBtYXkgYmUgYSBkeW5hbWljIG9i amVjdCB3aXRoCi0JIGl0cyBvd24gZHluYW1pYyBzZWN0aW9ucy4gIFdlIG5l ZWQgdG8gZmluZCBhIG5vcm1hbCBpbnB1dCBmaWxlCi0JIHRvIGhvbGQgbGlu a2VyIGNyZWF0ZWQgc2VjdGlvbnMgaWYgcG9zc2libGUuICAqLwotICAgICAg aWYgKChhYmZkLT5mbGFncyAmIChEWU5BTUlDIHwgQkZEX1BMVUdJTikpICE9 IDApCi0JewotCSAgYmZkICppYmZkOwotCSAgZm9yIChpYmZkID0gaW5mby0+ aW5wdXRfYmZkczsgaWJmZDsgaWJmZCA9IGliZmQtPmxpbmsubmV4dCkKLQkg ICAgaWYgKChpYmZkLT5mbGFncwotCQkgJiAoRFlOQU1JQyB8IEJGRF9MSU5L RVJfQ1JFQVRFRCB8IEJGRF9QTFVHSU4pKSA9PSAwKQotCSAgICAgIHsKLQkJ YWJmZCA9IGliZmQ7Ci0JCWJyZWFrOwotCSAgICAgIH0KLQl9Ci0gICAgICBo YXNoX3RhYmxlLT5keW5vYmogPSBhYmZkOwotICAgIH0KLQogICBpZiAoaGFz aF90YWJsZS0+ZHluc3RyID09IE5VTEwpCiAgICAgewogICAgICAgaGFzaF90 YWJsZS0+ZHluc3RyID0gX2JmZF9lbGZfc3RydGFiX2luaXQgKCk7CkBAIC0y NTMsNyArMjMzLDcgQEAgX2JmZF9lbGZfbGlua19jcmVhdGVfZHluYW1pY19z ZWN0aW9ucyAoYmZkICphYmZkLCBzdHJ1Y3QgYmZkX2xpbmtfaW5mbyAqaW5m bykKICAgaWYgKGVsZl9oYXNoX3RhYmxlIChpbmZvKS0+ZHluYW1pY19zZWN0 aW9uc19jcmVhdGVkKQogICAgIHJldHVybiBUUlVFOwogCi0gIGlmICghX2Jm ZF9lbGZfbGlua19jcmVhdGVfZHluc3RydGFiIChhYmZkLCBpbmZvKSkKKyAg aWYgKCFfYmZkX2VsZl9saW5rX2NyZWF0ZV9keW5zdHJ0YWIgKGluZm8pKQog ICAgIHJldHVybiBGQUxTRTsKIAogICBhYmZkID0gZWxmX2hhc2hfdGFibGUg KGluZm8pLT5keW5vYmo7CkBAIC0zMjA2LDE1ICszMTg2LDE0IEBAIF9iZmRf ZWxmX2FkZF9keW5hbWljX2VudHJ5IChzdHJ1Y3QgYmZkX2xpbmtfaW5mbyAq aW5mbywKICAgIDEgaWYgYSBEVF9ORUVERUQgdGFnIGFscmVhZHkgZXhpc3Rz LCBhbmQgMCBvbiBzdWNjZXNzLiAgKi8KIAogc3RhdGljIGludAotZWxmX2Fk ZF9kdF9uZWVkZWRfdGFnIChiZmQgKmFiZmQsCi0JCSAgICAgICBzdHJ1Y3Qg YmZkX2xpbmtfaW5mbyAqaW5mbywKK2VsZl9hZGRfZHRfbmVlZGVkX3RhZyAo c3RydWN0IGJmZF9saW5rX2luZm8gKmluZm8sCiAJCSAgICAgICBjb25zdCBj aGFyICpzb25hbWUsCiAJCSAgICAgICBiZmRfYm9vbGVhbiBkb19pdCkKIHsK ICAgc3RydWN0IGVsZl9saW5rX2hhc2hfdGFibGUgKmhhc2hfdGFibGU7CiAg IGJmZF9zaXplX3R5cGUgc3RyaW5kZXg7CiAKLSAgaWYgKCFfYmZkX2VsZl9s aW5rX2NyZWF0ZV9keW5zdHJ0YWIgKGFiZmQsIGluZm8pKQorICBpZiAoIV9i ZmRfZWxmX2xpbmtfY3JlYXRlX2R5bnN0cnRhYiAoaW5mbykpCiAgICAgcmV0 dXJuIC0xOwogCiAgIGhhc2hfdGFibGUgPSBlbGZfaGFzaF90YWJsZSAoaW5m byk7CkBAIC0zOTA4LDcgKzM4ODcsNyBAQCBlcnJvcl9mcmVlX2R5bjoKIAkg d2lsbCBuZWVkIHRvIGtub3cgaXQuICAqLwogICAgICAgZWxmX2R0X25hbWUg KGFiZmQpID0gc29uYW1lOwogCi0gICAgICByZXQgPSBlbGZfYWRkX2R0X25l ZWRlZF90YWcgKGFiZmQsIGluZm8sIHNvbmFtZSwgYWRkX25lZWRlZCk7Cisg ICAgICByZXQgPSBlbGZfYWRkX2R0X25lZWRlZF90YWcgKGluZm8sIHNvbmFt ZSwgYWRkX25lZWRlZCk7CiAgICAgICBpZiAocmV0IDwgMCkKIAlnb3RvIGVy cm9yX3JldHVybjsKIApAQCAtNDcxNyw3ICs0Njk2LDcgQEAgZXJyb3JfZnJl ZV9keW46CiAJCShlbGZfZHluX2xpYl9jbGFzcyAoYWJmZCkgJiB+RFlOX0FT X05FRURFRCk7CiAKIAkgICAgICBhZGRfbmVlZGVkID0gVFJVRTsKLQkgICAg ICByZXQgPSBlbGZfYWRkX2R0X25lZWRlZF90YWcgKGFiZmQsIGluZm8sIHNv bmFtZSwgYWRkX25lZWRlZCk7CisJICAgICAgcmV0ID0gZWxmX2FkZF9kdF9u ZWVkZWRfdGFnIChpbmZvLCBzb25hbWUsIGFkZF9uZWVkZWQpOwogCSAgICAg IGlmIChyZXQgPCAwKQogCQlnb3RvIGVycm9yX2ZyZWVfdmVyczsKIApkaWZm IC0tZ2l0IGEvbGQvZW11bHRlbXBsL2FhcmNoNjRlbGYuZW0gYi9sZC9lbXVs dGVtcGwvYWFyY2g2NGVsZi5lbQppbmRleCA5OTIzYmUzLi5jOTYxYjllIDEw MDY0NAotLS0gYS9sZC9lbXVsdGVtcGwvYWFyY2g2NGVsZi5lbQorKysgYi9s ZC9lbXVsdGVtcGwvYWFyY2g2NGVsZi5lbQpAQCAtMzIyLDYgKzMyMiw4IEBA IGFhcmNoNjRfZWxmX2NyZWF0ZV9vdXRwdXRfc2VjdGlvbl9zdGF0ZW1lbnRz ICh2b2lkKQogCiAgIHN0dWJfZmlsZS0+dGhlX2JmZC0+ZmxhZ3MgfD0gQkZE X0xJTktFUl9DUkVBVEVEOwogICBsZGxhbmdfYWRkX2ZpbGUgKHN0dWJfZmls ZSk7CisKKyAgZ2xkJHtFTVVMQVRJT05fTkFNRX1fY3JlYXRlX291dHB1dF9z ZWN0aW9uX3N0YXRlbWVudHMgKCk7CiB9CiAKIC8qIEF2b2lkIHByb2Nlc3Np bmcgdGhlIGZha2Ugc3R1Yl9maWxlIGluIHZlcmNoZWNrLCBzdGF0X25lZWRl ZCBhbmQKZGlmZiAtLWdpdCBhL2xkL2VtdWx0ZW1wbC9hcm1lbGYuZW0gYi9s ZC9lbXVsdGVtcGwvYXJtZWxmLmVtCmluZGV4IDJlNDMxNzIuLmI3Yjk0NjMg MTAwNjQ0Ci0tLSBhL2xkL2VtdWx0ZW1wbC9hcm1lbGYuZW0KKysrIGIvbGQv ZW11bHRlbXBsL2FybWVsZi5lbQpAQCAtNTE0LDYgKzUxNCw4IEBAIGFybV9l bGZfY3JlYXRlX291dHB1dF9zZWN0aW9uX3N0YXRlbWVudHMgKHZvaWQpCiAg IC8qIEFsc28gdXNlIHRoZSBzdHViIGZpbGUgZm9yIHN0dWJzIHBsYWNlZCBp biBhIHNpbmdsZSBvdXRwdXQgc2VjdGlvbi4gICovCiAgIGJmZF9lbGYzMl9h cm1fYWRkX2dsdWVfc2VjdGlvbnNfdG9fYmZkIChzdHViX2ZpbGUtPnRoZV9i ZmQsICZsaW5rX2luZm8pOwogICBiZmRfZWxmMzJfYXJtX2dldF9iZmRfZm9y X2ludGVyd29ya2luZyAoc3R1Yl9maWxlLT50aGVfYmZkLCAmbGlua19pbmZv KTsKKworICBnbGQke0VNVUxBVElPTl9OQU1FfV9jcmVhdGVfb3V0cHV0X3Nl Y3Rpb25fc3RhdGVtZW50cyAoKTsKIH0KIAogLyogQXZvaWQgcHJvY2Vzc2lu ZyB0aGUgZmFrZSBzdHViX2ZpbGUgaW4gdmVyY2hlY2ssIHN0YXRfbmVlZGVk IGFuZApkaWZmIC0tZ2l0IGEvbGQvZW11bHRlbXBsL2F2cmVsZi5lbSBiL2xk L2VtdWx0ZW1wbC9hdnJlbGYuZW0KaW5kZXggNDcxMGI2ZS4uODA1MjZhYyAx MDA2NDQKLS0tIGEvbGQvZW11bHRlbXBsL2F2cmVsZi5lbQorKysgYi9sZC9l bXVsdGVtcGwvYXZyZWxmLmVtCkBAIC0xMzYsNiArMTM2LDcgQEAgYXZyX2Vs Zl9jcmVhdGVfb3V0cHV0X3NlY3Rpb25fc3RhdGVtZW50cyAodm9pZCkKIAog ICBsZGxhbmdfYWRkX2ZpbGUgKHN0dWJfZmlsZSk7CiAKKyAgZ2xkJHtFTVVM QVRJT05fTkFNRX1fY3JlYXRlX291dHB1dF9zZWN0aW9uX3N0YXRlbWVudHMg KCk7CiAgIHJldHVybjsKIAogICBlcnJfcmV0OgpkaWZmIC0tZ2l0IGEvbGQv ZW11bHRlbXBsL2VsZjMyLmVtIGIvbGQvZW11bHRlbXBsL2VsZjMyLmVtCmlu ZGV4IDRmNWQxYTQuLmU5MGFmNDggMTAwNjQ0Ci0tLSBhL2xkL2VtdWx0ZW1w bC9lbGYzMi5lbQorKysgYi9sZC9lbXVsdGVtcGwvZWxmMzIuZW0KQEAgLTY0 LDYgKzY0LDcgQEAgc3RhdGljIHZvaWQgZ2xkJHtFTVVMQVRJT05fTkFNRX1f YWZ0ZXJfcGFyc2UgKHZvaWQpOwogc3RhdGljIHZvaWQgZ2xkJHtFTVVMQVRJ T05fTkFNRX1fYWZ0ZXJfb3BlbiAodm9pZCk7CiBzdGF0aWMgdm9pZCBnbGQk e0VNVUxBVElPTl9OQU1FfV9iZWZvcmVfYWxsb2NhdGlvbiAodm9pZCk7CiBz dGF0aWMgdm9pZCBnbGQke0VNVUxBVElPTl9OQU1FfV9hZnRlcl9hbGxvY2F0 aW9uICh2b2lkKTsKK3N0YXRpYyB2b2lkIGdsZCR7RU1VTEFUSU9OX05BTUV9 X2NyZWF0ZV9vdXRwdXRfc2VjdGlvbl9zdGF0ZW1lbnRzICh2b2lkKTsKIHN0 YXRpYyBsYW5nX291dHB1dF9zZWN0aW9uX3N0YXRlbWVudF90eXBlICpnbGQk e0VNVUxBVElPTl9OQU1FfV9wbGFjZV9vcnBoYW4KICAgKGFzZWN0aW9uICos IGNvbnN0IGNoYXIgKiwgaW50KTsKIEVPRgpAQCAtMjYzLDYgKzI2NCw4IEBA IGdsZCR7RU1VTEFUSU9OX05BTUV9X3N0YXRfbmVlZGVkIChsYW5nX2lucHV0 X3N0YXRlbWVudF90eXBlICpzKQogICAgIHJldHVybjsKICAgaWYgKHMtPnRo ZV9iZmQgPT0gTlVMTCkKICAgICByZXR1cm47CisgIGlmICgocy0+dGhlX2Jm ZC0+ZmxhZ3MgJiBCRkRfTElOS0VSX0NSRUFURUQpICE9IDApCisgICAgcmV0 dXJuOwogCiAgIC8qIElmIHRoaXMgaW5wdXQgZmlsZSB3YXMgYW4gYXMtbmVl ZGVkIGVudHJ5LCBhbmQgd2Fzbid0IGZvdW5kIHRvIGJlCiAgICAgIG5lZWRl ZCBhdCB0aGUgc3RhZ2UgaXQgd2FzIGxpbmtlZCwgdGhlbiBkb24ndCBzYXkg d2UgaGF2ZSBsb2FkZWQgaXQuICAqLwpAQCAtMTQwMCw2ICsxNDAzLDQ2IEBA IGdsZCR7RU1VTEFUSU9OX05BTUV9X2ZpbmRfc3RhdGVtZW50X2Fzc2lnbm1l bnQgKGxhbmdfc3RhdGVtZW50X3VuaW9uX3R5cGUgKnMpCiAKIEVPRgogCitp ZiB0ZXN0IHgiJExERU1VTF9DUkVBVEVfT1VUUFVUX1NFQ1RJT05fU1RBVEVN RU5UUyIgIT0geGdsZCIkRU1VTEFUSU9OX05BTUUiY3JlYXRlX291dHB1dF9z ZWN0aW9uX3N0YXRlbWVudHM7IHRoZW4KK2ZyYWdtZW50IDw8RU9GCisKKy8q IEZha2UgaW5wdXQgZmlsZSBmb3IgZHluYW1pYyBzZWN0aW9ucy4gICovCitz dGF0aWMgbGFuZ19pbnB1dF9zdGF0ZW1lbnRfdHlwZSAqZHlub2JqOworCisv KiBUaGlzIGlzIGNhbGxlZCBiZWZvcmUgdGhlIGlucHV0IGZpbGVzIGFyZSBv cGVuZWQuICBXZSBjcmVhdGUgYSBuZXcKKyAgIGZha2UgaW5wdXQgZmlsZSB0 byBob2xkIHRoZSBkeW5hbWljIHNlY3Rpb25zLiAgKi8KKworc3RhdGljIHZv aWQKK2dsZCR7RU1VTEFUSU9OX05BTUV9X2NyZWF0ZV9vdXRwdXRfc2VjdGlv bl9zdGF0ZW1lbnRzICh2b2lkKQoreworICBpZiAoYmZkX2dldF9mbGF2b3Vy IChsaW5rX2luZm8ub3V0cHV0X2JmZCkgIT0gYmZkX3RhcmdldF9lbGZfZmxh dm91cikKKyAgICByZXR1cm47CisKKyAgZHlub2JqID0gbGFuZ19hZGRfaW5w dXRfZmlsZSAoIiBkeW5vYmogIiwKKwkJCQlsYW5nX2lucHV0X2ZpbGVfaXNf ZmFrZV9lbnVtLAorCQkJCU5VTEwpOworICBkeW5vYmotPnRoZV9iZmQgPSBi ZmRfY3JlYXRlICgiIGR5bm9iaiAiLCBsaW5rX2luZm8ub3V0cHV0X2JmZCk7 CisgIGlmIChkeW5vYmotPnRoZV9iZmQgPT0gTlVMTAorICAgICAgfHwgIWJm ZF9zZXRfYXJjaF9tYWNoIChkeW5vYmotPnRoZV9iZmQsCisJCQkgICAgIGJm ZF9nZXRfYXJjaCAobGlua19pbmZvLm91dHB1dF9iZmQpLAorCQkJICAgICBi ZmRfZ2V0X21hY2ggKGxpbmtfaW5mby5vdXRwdXRfYmZkKSkpCisgICAgewor ICAgICAgZWluZm8gKCIlRiVQOiBjYW4gbm90IGNyZWF0ZSBCRkQgdG8gaG9s ZCBkeW5hbWljIHNlY3Rpb25zOiAlRVxuIik7CisgICAgICByZXR1cm47Cisg ICAgfQorCisgIGR5bm9iai0+dGhlX2JmZC0+ZmxhZ3MgfD0gQkZEX0xJTktF Ul9DUkVBVEVEOworICBlbGZfZWxmaGVhZGVyIChkeW5vYmotPnRoZV9iZmQp LT5lX2lkZW50W0VJX0NMQVNTXQorICAgID0gKGdldF9lbGZfYmFja2VuZF9k YXRhIChsaW5rX2luZm8ub3V0cHV0X2JmZCktPnMtPmFyY2hfc2l6ZSA9PSA2 NAorICAgICAgID8gRUxGQ0xBU1M2NCA6IEVMRkNMQVNTMzIpOworICBlbGZf aGFzaF90YWJsZSAoJmxpbmtfaW5mbyktPmR5bm9iaiA9IGR5bm9iai0+dGhl X2JmZDsKKworICBsZGxhbmdfYWRkX2ZpbGUgKGR5bm9iaik7Cit9CisKK0VP RgorZmkKKwogaWYgdGVzdCB4IiRMREVNVUxfQkVGT1JFX0FMTE9DQVRJT04i ICE9IHhnbGQiJEVNVUxBVElPTl9OQU1FIl9iZWZvcmVfYWxsb2NhdGlvbjsg dGhlbgogICBpZiB0ZXN0IHgiJHtFTEZfSU5URVJQUkVURVJfTkFNRStzZXR9 IiA9IHhzZXQ7IHRoZW4KICAgICBFTEZfSU5URVJQUkVURVJfU0VUX0RFRkFV TFQ9IgpAQCAtMjUxNSw3ICsyNTU4LDcgQEAgc3RydWN0IGxkX2VtdWxhdGlv bl94ZmVyX3N0cnVjdCBsZF8ke0VNVUxBVElPTl9OQU1FfV9lbXVsYXRpb24g PQogICAiJHtFTVVMQVRJT05fTkFNRX0iLAogICAiJHtPVVRQVVRfRk9STUFU fSIsCiAgICR7TERFTVVMX0ZJTklTSC1maW5pc2hfZGVmYXVsdH0sCi0gICR7 TERFTVVMX0NSRUFURV9PVVRQVVRfU0VDVElPTl9TVEFURU1FTlRTLU5VTEx9 LAorICAke0xERU1VTF9DUkVBVEVfT1VUUFVUX1NFQ1RJT05fU1RBVEVNRU5U Uy1nbGQke0VNVUxBVElPTl9OQU1FfV9jcmVhdGVfb3V0cHV0X3NlY3Rpb25f c3RhdGVtZW50c30sCiAgICR7TERFTVVMX09QRU5fRFlOQU1JQ19BUkNISVZF LWdsZCR7RU1VTEFUSU9OX05BTUV9X29wZW5fZHluYW1pY19hcmNoaXZlfSwK ICAgJHtMREVNVUxfUExBQ0VfT1JQSEFOLWdsZCR7RU1VTEFUSU9OX05BTUV9 X3BsYWNlX29ycGhhbn0sCiAgICR7TERFTVVMX1NFVF9TWU1CT0xTLU5VTEx9 LApkaWZmIC0tZ2l0IGEvbGQvZW11bHRlbXBsL2hwcGFlbGYuZW0gYi9sZC9l bXVsdGVtcGwvaHBwYWVsZi5lbQppbmRleCBhMWQyZTgwLi41OTY1ZTliIDEw MDY0NAotLS0gYS9sZC9lbXVsdGVtcGwvaHBwYWVsZi5lbQorKysgYi9sZC9l bXVsdGVtcGwvaHBwYWVsZi5lbQpAQCAtODgsNiArODgsOCBAQCBocHBhZWxm X2NyZWF0ZV9vdXRwdXRfc2VjdGlvbl9zdGF0ZW1lbnRzICh2b2lkKQogCiAg IHN0dWJfZmlsZS0+dGhlX2JmZC0+ZmxhZ3MgfD0gQkZEX0xJTktFUl9DUkVB VEVEOwogICBsZGxhbmdfYWRkX2ZpbGUgKHN0dWJfZmlsZSk7CisKKyAgZ2xk JHtFTVVMQVRJT05fTkFNRX1fY3JlYXRlX291dHB1dF9zZWN0aW9uX3N0YXRl bWVudHMgKCk7CiB9CiAKIApkaWZmIC0tZ2l0IGEvbGQvZW11bHRlbXBsL202 OGhjMXhlbGYuZW0gYi9sZC9lbXVsdGVtcGwvbTY4aGMxeGVsZi5lbQppbmRl eCA3Mzk0NzlkLi5iMmU4ZmExIDEwMDY0NAotLS0gYS9sZC9lbXVsdGVtcGwv bTY4aGMxeGVsZi5lbQorKysgYi9sZC9lbXVsdGVtcGwvbTY4aGMxeGVsZi5l bQpAQCAtMTU1LDYgKzE1NSw4IEBAIG02OGhjMTFlbGZfY3JlYXRlX291dHB1 dF9zZWN0aW9uX3N0YXRlbWVudHMgKHZvaWQpCiAgICAgfQogCiAgIGxkbGFu Z19hZGRfZmlsZSAoc3R1Yl9maWxlKTsKKworICBnbGQke0VNVUxBVElPTl9O QU1FfV9jcmVhdGVfb3V0cHV0X3NlY3Rpb25fc3RhdGVtZW50cyAoKTsKIH0K IAogCmRpZmYgLS1naXQgYS9sZC9lbXVsdGVtcGwvbTY4a2VsZi5lbSBiL2xk L2VtdWx0ZW1wbC9tNjhrZWxmLmVtCmluZGV4IGMxYTUxNGMuLjE3MTUwYWMg MTAwNjQ0Ci0tLSBhL2xkL2VtdWx0ZW1wbC9tNjhrZWxmLmVtCisrKyBiL2xk L2VtdWx0ZW1wbC9tNjhrZWxmLmVtCkBAIC0yMDgsNiArMjA4LDggQEAgc3Rh dGljIHZvaWQKIGVsZl9tNjhrX2NyZWF0ZV9vdXRwdXRfc2VjdGlvbl9zdGF0 ZW1lbnRzICh2b2lkKQogewogICBiZmRfZWxmX202OGtfc2V0X3RhcmdldF9v cHRpb25zICgmbGlua19pbmZvLCBnb3RfaGFuZGxpbmcpOworCisgIGdsZCR7 RU1VTEFUSU9OX05BTUV9X2NyZWF0ZV9vdXRwdXRfc2VjdGlvbl9zdGF0ZW1l bnRzICgpOwogfQogCiBFT0YKZGlmZiAtLWdpdCBhL2xkL2VtdWx0ZW1wbC9t ZXRhZ2VsZi5lbSBiL2xkL2VtdWx0ZW1wbC9tZXRhZ2VsZi5lbQppbmRleCA1 NjI2ZWNhLi45NTkwMGQ3IDEwMDY0NAotLS0gYS9sZC9lbXVsdGVtcGwvbWV0 YWdlbGYuZW0KKysrIGIvbGQvZW11bHRlbXBsL21ldGFnZWxmLmVtCkBAIC02 NSw2ICs2NSw4IEBAIG1ldGFnZWxmX2NyZWF0ZV9vdXRwdXRfc2VjdGlvbl9z dGF0ZW1lbnRzICh2b2lkKQogCiAgIHN0dWJfZmlsZS0+dGhlX2JmZC0+Zmxh Z3MgfD0gQkZEX0xJTktFUl9DUkVBVEVEOwogICBsZGxhbmdfYWRkX2ZpbGUg KHN0dWJfZmlsZSk7CisKKyAgZ2xkJHtFTVVMQVRJT05fTkFNRX1fY3JlYXRl X291dHB1dF9zZWN0aW9uX3N0YXRlbWVudHMgKCk7CiB9CiAKIApkaWZmIC0t Z2l0IGEvbGQvZW11bHRlbXBsL21pcHNlbGYuZW0gYi9sZC9lbXVsdGVtcGwv bWlwc2VsZi5lbQppbmRleCBkYmZmMzZiLi5kNjRjYTBkIDEwMDY0NAotLS0g YS9sZC9lbXVsdGVtcGwvbWlwc2VsZi5lbQorKysgYi9sZC9lbXVsdGVtcGwv bWlwc2VsZi5lbQpAQCAtMjA2LDYgKzIwNiw4IEBAIG1pcHNfY3JlYXRlX291 dHB1dF9zZWN0aW9uX3N0YXRlbWVudHMgKHZvaWQpCiAKICAgaWYgKGlzX21p cHNfZWxmIChsaW5rX2luZm8ub3V0cHV0X2JmZCkpCiAgICAgX2JmZF9taXBz X2VsZl9pbml0X3N0dWJzICgmbGlua19pbmZvLCBtaXBzX2FkZF9zdHViX3Nl Y3Rpb24pOworCisgIGdsZCR7RU1VTEFUSU9OX05BTUV9X2NyZWF0ZV9vdXRw dXRfc2VjdGlvbl9zdGF0ZW1lbnRzICgpOwogfQogCiAvKiBUaGlzIGlzIGNh bGxlZCBhZnRlciB3ZSBoYXZlIG1lcmdlZCB0aGUgcHJpdmF0ZSBkYXRhIG9m IHRoZSBpbnB1dCBiZmRzLiAgKi8KZGlmZiAtLWdpdCBhL2xkL2VtdWx0ZW1w bC9uZHMzMmVsZi5lbSBiL2xkL2VtdWx0ZW1wbC9uZHMzMmVsZi5lbQppbmRl eCAwOGRhNjk1Li5lZWU1MDg3IDEwMDY0NAotLS0gYS9sZC9lbXVsdGVtcGwv bmRzMzJlbGYuZW0KKysrIGIvbGQvZW11bHRlbXBsL25kczMyZWxmLmVtCkBA IC02NSw2ICs2NSw4IEBAIG5kczMyX2VsZl9jcmVhdGVfb3V0cHV0X3NlY3Rp b25fc3RhdGVtZW50cyAodm9pZCkKIAkJCQkgICAgIGV4OV9leHBvcnRfZmls ZSwgZXg5X2ltcG9ydF9maWxlLAogCQkJCSAgICAgdXBkYXRlX2V4OV90YWJs ZSwgZXg5X2xpbWl0LAogCQkJCSAgICAgZXg5X2xvb3BfYXdhcmUsIGlmY19s b29wX2F3YXJlKTsKKworICBnbGQke0VNVUxBVElPTl9OQU1FfV9jcmVhdGVf b3V0cHV0X3NlY3Rpb25fc3RhdGVtZW50cyAoKTsKIH0KIAogc3RhdGljIHZv aWQKZGlmZiAtLWdpdCBhL2xkL2VtdWx0ZW1wbC9uaW9zMmVsZi5lbSBiL2xk L2VtdWx0ZW1wbC9uaW9zMmVsZi5lbQppbmRleCBkYTRiZWEwLi4zYjEyNzVj IDEwMDY0NAotLS0gYS9sZC9lbXVsdGVtcGwvbmlvczJlbGYuZW0KKysrIGIv bGQvZW11bHRlbXBsL25pb3MyZWxmLmVtCkBAIC03MCw2ICs3MCw4IEBAIG5p b3MyZWxmX2NyZWF0ZV9vdXRwdXRfc2VjdGlvbl9zdGF0ZW1lbnRzICh2b2lk KQogCiAgIHN0dWJfZmlsZS0+dGhlX2JmZC0+ZmxhZ3MgfD0gQkZEX0xJTktF Ul9DUkVBVEVEOwogICBsZGxhbmdfYWRkX2ZpbGUgKHN0dWJfZmlsZSk7CisK KyAgZ2xkJHtFTVVMQVRJT05fTkFNRX1fY3JlYXRlX291dHB1dF9zZWN0aW9u X3N0YXRlbWVudHMgKCk7CiB9CiAKIApkaWZmIC0tZ2l0IGEvbGQvZW11bHRl bXBsL3BwYzMyZWxmLmVtIGIvbGQvZW11bHRlbXBsL3BwYzMyZWxmLmVtCmlu ZGV4IGEwMjU1Y2QuLjM3ZGNjOTUgMTAwNjQ0Ci0tLSBhL2xkL2VtdWx0ZW1w bC9wcGMzMmVsZi5lbQorKysgYi9sZC9lbXVsdGVtcGwvcHBjMzJlbGYuZW0K QEAgLTUzLDYgKzUzLDggQEAgcHBjX2FmdGVyX29wZW5fb3V0cHV0ICh2b2lk KQogICAgIHBhZ2VzaXplID0gY29uZmlnLmNvbW1vbnBhZ2VzaXplOwogICBw YXJhbXMucGFnZXNpemVfcDIgPSBiZmRfbG9nMiAocGFnZXNpemUpOwogICBw cGNfZWxmX2xpbmtfcGFyYW1zICgmbGlua19pbmZvLCAmcGFyYW1zKTsKKwor ICBnbGQke0VNVUxBVElPTl9OQU1FfV9jcmVhdGVfb3V0cHV0X3NlY3Rpb25f c3RhdGVtZW50cyAoKTsKIH0KIAogRU9GCmRpZmYgLS1naXQgYS9sZC9lbXVs dGVtcGwvcHBjNjRlbGYuZW0gYi9sZC9lbXVsdGVtcGwvcHBjNjRlbGYuZW0K aW5kZXggZDdjMDY4Ni4uMWY0OGFiMSAxMDA2NDQKLS0tIGEvbGQvZW11bHRl bXBsL3BwYzY0ZWxmLmVtCisrKyBiL2xkL2VtdWx0ZW1wbC9wcGM2NGVsZi5l bQpAQCAtOTgsNiArOTgsOCBAQCBwcGNfY3JlYXRlX291dHB1dF9zZWN0aW9u X3N0YXRlbWVudHMgKHZvaWQpCiAgICAgcGFyYW1zLnNhdmVfcmVzdG9yZV9m dW5jcyA9ICFiZmRfbGlua19yZWxvY2F0YWJsZSAoJmxpbmtfaW5mbyk7CiAg IGlmICghcHBjNjRfZWxmX2luaXRfc3R1Yl9iZmQgKCZsaW5rX2luZm8sICZw YXJhbXMpKQogICAgIGVpbmZvICgiJUYlUDogY2FuIG5vdCBpbml0IEJGRDog JUVcbiIpOworCisgIGdsZCR7RU1VTEFUSU9OX05BTUV9X2NyZWF0ZV9vdXRw dXRfc2VjdGlvbl9zdGF0ZW1lbnRzICgpOwogfQogCiAvKiBDYWxsZWQgYWZ0 ZXIgb3BlbmluZyBmaWxlcyBidXQgYmVmb3JlIG1hcHBpbmcgc2VjdGlvbnMu ICAqLwpkaWZmIC0tZ2l0IGEvbGQvZW11bHRlbXBsL3J4ZWxmLmVtIGIvbGQv ZW11bHRlbXBsL3J4ZWxmLmVtCmluZGV4IDM2YmUxYmEuLmQxZmM5ZmEgMTAw NjQ0Ci0tLSBhL2xkL2VtdWx0ZW1wbC9yeGVsZi5lbQorKysgYi9sZC9lbXVs dGVtcGwvcnhlbGYuZW0KQEAgLTM4LDYgKzM4LDggQEAgcnhfZWxmX2NyZWF0 ZV9vdXRwdXRfc2VjdGlvbl9zdGF0ZW1lbnRzICh2b2lkKQogICBleHRlcm4g dm9pZCBiZmRfZWxmMzJfcnhfc2V0X3RhcmdldF9mbGFncyAoYmZkX2Jvb2xl YW4sIGJmZF9ib29sZWFuKTsKIAogICBiZmRfZWxmMzJfcnhfc2V0X3Rhcmdl dF9mbGFncyAobm9fZmxhZ19taXNtYXRjaF93YXJuaW5ncywgaWdub3JlX2xt YSk7CisKKyAgZ2xkJHtFTVVMQVRJT05fTkFNRX1fY3JlYXRlX291dHB1dF9z ZWN0aW9uX3N0YXRlbWVudHMgKCk7CiB9CiAKIEVPRgotLSAKMi41LjUKCg== --001a11405b765bd2570531121061--