From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 23044 invoked by alias); 14 Sep 2009 11:59:38 -0000 Received: (qmail 23034 invoked by uid 22791); 14 Sep 2009 11:59:37 -0000 X-SWARE-Spam-Status: No, hits=-1.3 required=5.0 tests=AWL,BAYES_00,J_CHICKENPOX_32,J_CHICKENPOX_62,SARE_MSGID_LONG40,SPF_PASS X-Spam-Check-By: sourceware.org Received: from mail-yx0-f179.google.com (HELO mail-yx0-f179.google.com) (209.85.210.179) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Mon, 14 Sep 2009 11:59:31 +0000 Received: by yxe9 with SMTP id 9so4105287yxe.26 for ; Mon, 14 Sep 2009 04:59:29 -0700 (PDT) MIME-Version: 1.0 Received: by 10.150.15.42 with SMTP id 42mr2045827ybo.266.1252929569734; Mon, 14 Sep 2009 04:59:29 -0700 (PDT) In-Reply-To: <20090914003943.GU28290@bubble.grove.modra.org> References: <8ba6bed40908281313s1938e0a6l9c2676bf5df6b31f@mail.gmail.com> <8ba6bed40908290341t46a3af19w38434d3d76722548@mail.gmail.com> <8ba6bed40909120821q57bf8695y60ec29a793323acb@mail.gmail.com> <20090914003943.GU28290@bubble.grove.modra.org> Date: Mon, 14 Sep 2009 11:59:00 -0000 Message-ID: <8ba6bed40909140459j561e3d13g81390a9ced8a08a0@mail.gmail.com> Subject: Re: PATCH/RFC: ld add -p/-P options From: Matt Rice To: Matt Rice , Binutils Content-Type: multipart/mixed; boundary=000e0cd73422eec2c60473886555 X-IsSubscribed: yes 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 X-SW-Source: 2009-09/txt/msg00388.txt.bz2 --000e0cd73422eec2c60473886555 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Content-length: 3271 On Sun, Sep 13, 2009 at 5:39 PM, Alan Modra wrote: > On Sat, Sep 12, 2009 at 08:21:35AM -0700, Matt Rice wrote: >> =A0 =A0 =A0 (gld${EMULATION_NAME}_add_options): Add -p and -P options. > > There's a small problem here. =A0See armelf.em:PARSE_AND_LIST_SHORTOPTS. > You'll need to get approval from one of the ARM maintainers to remove > that from armelf.em. doesn't look like this is going to be an option, this is still passed to ld by the linux kernel http://git.kernel.org/?p=3Dlinux/kernel/git/next/linux-next.git;a=3Dblob;f= =3Darch/arm/Makefile;h=3D54661125a8bfff2b69a1daee5d6de3ae5ebd1395;hb=3DHEAD 13 LDFLAGS_vmlinux :=3D-p --no-undefined -X http://sourceware.org/ml/binutils/2004-11/msg00401.html is the thread where this option was turned into a nop. a possible hack I hesitate to mention is to make -p on gnu-ld accept an optional argument, in that case '-pfoo.so' will work with both linkers, the -p in '-p --other-option' will be a ignored, but '-p foo.so' will fail to recognize 'foo.so' as an argument to -p though.... there is probably some caveat i'm missing, but it does seem to maintain compatibility with the existing -p in armelf, and give the ability to use a command line which will also work under solaris. Personally, I prefer just adding --audit with no short option and seeing if solaris won't add a long option for compatibilty with us. then if the armelf guys feel like deprecating their -p and going through that whole process we could add -p as a short option to --audit. that doesn't help in the interim, but i'm going to need configure checks to see if ld supports the option anyways. if the hack is wanted i can send a follow up patch. >> +static void gld${EMULATION_NAME}_append_to_separated_string(char **, ch= ar *); > > No need for a prototype. Fixed >> +gld${EMULATION_NAME}_append_to_separated_string(char **to, char *optarg) > > Space before (. =A0Other than that the patch looks good. And fixed. >> I guess the *.rd files might be a bit fragile if it ever decides to be >> something other than the 4th line. > >Write it like this: >#... >.*Audit library: \[tmpdir/audit.so\].* >#pass Thanks, I also removed the auditlib.c from the tests since it was unused. 2009-09-12 Matt Rice * bfd-in.h (bfd_elf_size_dynamic_sections): Add audit and depaudit arguments. * elflink.c (bfd_elf_size_dynamic_sections): Generate DT_AUDIT, DT_DEPAUDIT from audit/depaudit arguments. (elf_finalize_dynstr): finalize DT_AUDIT and DT_DEPAUDIT strtab entr= ies. * bfd-in2.h: Regenerate. 2009-09-12 Matt Rice * emultempl/elf32.em: (gld${EMULATION_NAME}_add_options): Add --audit, --depaudit, and -P options. (gld${EULATION_NAME}_handle_options): Ditto. (gld${EULATION_NAME}_list_options): Ditto. (gld${EMULATION_NAME}_append_to_separated_string): New function for handling rpath-like colon separated strings. (gld${EMULATION_NAME}_before_allocation): Pass the audit and depaudit libs to bfd. ld.texinfo: Document new options. 2009-09-12 Matt Rice ld-elf/audit.exp: New. ld-elf/audit.rd: New. ld-elf/depaudit.rd: New. --000e0cd73422eec2c60473886555 Content-Type: application/octet-stream; name="audit2.diff" Content-Disposition: attachment; filename="audit2.diff" Content-Transfer-Encoding: base64 X-Attachment-Id: f_fzl504xq0 Content-length: 15991 PyBiZmQvQ2hhbmdlTG9nLnNuaXAKSW5kZXg6IGxkL2xkLnRleGluZm8KPT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9zcmMvc3JjL2xk L2xkLnRleGluZm8sdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuMjQ3CmRpZmYg LXUgLXAgLXIxLjI0NyBsZC50ZXhpbmZvCi0tLSBsZC9sZC50ZXhpbmZvCTYg SnVsIDIwMDkgMTM6NDg6NTEgLTAwMDAJMS4yNDcKKysrIGxkL2xkLnRleGlu Zm8JMTQgU2VwIDIwMDkgMTE6MjI6MzUgLTAwMDAKQEAgLTM2NCw2ICszNjQs MTQgQEAgYXJndW1lbnQgbXVzdCBiZSBvbmUgb2YgdGhlIHN0cmluZ3MgQHNh bQogQHNhbXB7LUJzdGF0aWN9LCBhbmQgdGhlIG90aGVyIHR3byBrZXl3b3Jk cyBhcmUgZnVuY3Rpb25hbGx5IGVxdWl2YWxlbnQKIHRvIEBzYW1wey1CZHlu YW1pY30uICBUaGlzIG9wdGlvbiBtYXkgYmUgdXNlZCBhbnkgbnVtYmVyIG9m IHRpbWVzLgogCitAa2luZGV4IC0tYXVkaXQgQHZhcntBVURJVExJQn0KK0Bp dGVtIC0tYXVkaXQgQHZhcntBVURJVExJQn0KK0FkZHMgQHZhcntBVURJVExJ Qn0gdG8gdGhlIEBjb2Rle0RUX0FVRElUfSBlbnRyeSBvZiB0aGUgZHluYW1p YyBzZWN0aW9uLgorQHZhcntBVURJVExJQn0gaXMgbm90IGNoZWNrZWQgZm9y IGV4aXN0ZW5jZSwgbm9yIHdpbGwgaXQgdXNlIHRoZSBEVF9TT05BTUUKK3Nw ZWNpZmllZCBpbiB0aGUgbGlicmFyeS4gIElmIHNwZWNpZmllZCBtdWx0aXBs ZSB0aW1lcyBAY29kZXtEVF9BVURJVH0KK3dpbGwgY29udGFpbiBhIGNvbG9u IHNlcGFyYXRlZCBsaXN0IG9mIGF1ZGl0IGludGVyZmFjZXMgdG8gdXNlLiAg VGhpcworb3B0aW9uIGlzIG9ubHkgbWVhbmluZ2Z1bCBvbiBFTEYgcGxhdGZv cm1zIHN1cHBvcnRpbmcgdGhlIHJ0bGQtYXVkaXQgaW50ZXJmYWNlLiAgCisK IEBpZnNldCBJOTYwCiBAY2luZGV4IGFyY2hpdGVjdHVyZXMKIEBraW5kZXgg LUEgQHZhcnthcmNofQpAQCAtNDUxLDYgKzQ1OSwxNyBAQCBldmVuIGlmIGEg cmVsb2NhdGFibGUgb3V0cHV0IGZpbGUgaXMgc3BlCiBzY3JpcHQgY29tbWFu ZCBAY29kZXtGT1JDRV9DT01NT05fQUxMT0NBVElPTn0gaGFzIHRoZSBzYW1l IGVmZmVjdC4KIEB4cmVme01pc2NlbGxhbmVvdXMgQ29tbWFuZHN9LgogCitA a2luZGV4IC0tZGVwYXVkaXQgQHZhcntBVURJVExJQn0KK0BraW5kZXggLVAg QHZhcntBVURJVExJQn0KK0BpdGVtIC0tZGVwYXVkaXQgQHZhcntBVURJVExJ Qn0KK0BpdGVteCAtUCBAdmFye0FVRElUTElCfQorQWRkcyBAdmFye0FVRElU TElCfSB0byB0aGUgQGNvZGV7RFRfREVQQVVESVR9IGVudHJ5IG9mIHRoZSBk eW5hbWljIHNlY3Rpb24uCitAdmFye0FVRElUTElCfSBpcyBub3QgY2hlY2tl ZCBmb3IgZXhpc3RlbmNlLCBub3Igd2lsbCBpdCB1c2UgdGhlIERUX1NPTkFN RQorc3BlY2lmaWVkIGluIHRoZSBsaWJyYXJ5LiAgSWYgc3BlY2lmaWVkIG11 bHRpcGxlIHRpbWVzIEBjb2Rle0RUX0RFUEFVRElUfQord2lsbCBjb250YWlu IGEgY29sb24gc2VwYXJhdGVkIGxpc3Qgb2YgYXVkaXQgaW50ZXJmYWNlcyB0 byB1c2UuICBUaGlzCitvcHRpb24gaXMgb25seSBtZWFuaW5nZnVsIG9uIEVM RiBwbGF0Zm9ybXMgc3VwcG9ydGluZyB0aGUgcnRsZC1hdWRpdCBpbnRlcmZh Y2UuCitUaGUgLVAgb3B0aW9uIGlzIHByb3ZpZGVkIGZvciBTb2xhcmlzIGNv bXBhdGliaWxpdHkuICAKKwogQGNpbmRleCBlbnRyeSBwb2ludCwgZnJvbSBj b21tYW5kIGxpbmUKIEBraW5kZXggLWUgQHZhcntlbnRyeX0KIEBraW5kZXgg LS1lbnRyeT1AdmFye2VudHJ5fQpJbmRleDogbGQvZW11bHRlbXBsL2VsZjMy LmVtCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvc3Jj L3NyYy9sZC9lbXVsdGVtcGwvZWxmMzIuZW0sdgpyZXRyaWV2aW5nIHJldmlz aW9uIDEuMjAzCmRpZmYgLXUgLXAgLXIxLjIwMyBlbGYzMi5lbQotLS0gbGQv ZW11bHRlbXBsL2VsZjMyLmVtCTExIFNlcCAyMDA5IDE1OjI3OjM1IC0wMDAw CTEuMjAzCisrKyBsZC9lbXVsdGVtcGwvZWxmMzIuZW0JMTQgU2VwIDIwMDkg MTE6MjI6MzUgLTAwMDAKQEAgLTE1Nyw2ICsxNTcsMTAgQEAgc3RhdGljIGxh bmdfaW5wdXRfc3RhdGVtZW50X3R5cGUgKmdsb2JhbAogc3RhdGljIHN0cnVj dCBiZmRfbGlua19uZWVkZWRfbGlzdCAqZ2xvYmFsX3ZlcmNoZWNrX25lZWRl ZDsKIHN0YXRpYyBiZmRfYm9vbGVhbiBnbG9iYWxfdmVyY2hlY2tfZmFpbGVk OwogCisvKiBUaGVzZSB2YXJpYWJsZXMgYXJlIHVzZWQgdG8gaW1wbGVtZW50 IHRhcmdldCBvcHRpb25zICovCisKK3N0YXRpYyBjaGFyICphdWRpdDsgLyog Y29sb24gKHR5cGljYWxseSkgc2VwYXJhdGVkIGxpc3Qgb2YgbGlicyAqLwor c3RhdGljIGNoYXIgKmRlcGF1ZGl0OyAvKiBjb2xvbiAodHlwaWNhbGx5KSBz ZXBhcmF0ZWQgbGlzdCBvZiBsaWJzICovCiAKIC8qIE9uIExpbnV4LCBpdCdz IHBvc3NpYmxlIHRvIGhhdmUgZGlmZmVyZW50IHZlcnNpb25zIG9mIHRoZSBz YW1lCiAgICBzaGFyZWQgbGlicmFyeSBsaW5rZWQgYWdhaW5zdCBkaWZmZXJl bnQgdmVyc2lvbnMgb2YgbGliYy4gIFRoZQpAQCAtMTQyMCw3ICsxNDI0LDcg QEAgZ2xkJHtFTVVMQVRJT05fTkFNRX1fYmVmb3JlX2FsbG9jYXRpb24gKAog ICAgIHJwYXRoID0gKGNvbnN0IGNoYXIgKikgZ2V0ZW52ICgiTERfUlVOX1BB VEgiKTsKICAgaWYgKCEgKGJmZF9lbGZfc2l6ZV9keW5hbWljX3NlY3Rpb25z CiAJIChsaW5rX2luZm8ub3V0cHV0X2JmZCwgY29tbWFuZF9saW5lLnNvbmFt ZSwgcnBhdGgsCi0JICBjb21tYW5kX2xpbmUuZmlsdGVyX3NobGliLAorCSAg Y29tbWFuZF9saW5lLmZpbHRlcl9zaGxpYiwgYXVkaXQsIGRlcGF1ZGl0LAog CSAgKGNvbnN0IGNoYXIgKiBjb25zdCAqKSBjb21tYW5kX2xpbmUuYXV4aWxp YXJ5X2ZpbHRlcnMsCiAJICAmbGlua19pbmZvLCAmc2ludGVycCwgbGFuZ19l bGZfdmVyc2lvbl9pbmZvKSkpCiAgICAgZWluZm8gKCIlUCVGOiBmYWlsZWQg dG8gc2V0IGR5bmFtaWMgc2VjdGlvbiBzaXplczogJUVcbiIpOwpAQCAtMjAw NywxNSArMjAxMSwxOSBAQCBmcmFnbWVudCA8PEVPRgogI2RlZmluZSBPUFRJ T05fRVhDTFVERV9MSUJTCQkoT1BUSU9OX0VIX0ZSQU1FX0hEUiArIDEpCiAj ZGVmaW5lIE9QVElPTl9IQVNIX1NUWUxFCQkoT1BUSU9OX0VYQ0xVREVfTElC UyArIDEpCiAjZGVmaW5lIE9QVElPTl9CVUlMRF9JRAkJCShPUFRJT05fSEFT SF9TVFlMRSArIDEpCisjZGVmaW5lIE9QVElPTl9BVURJVAkJCShPUFRJT05f QlVJTERfSUQgKyAxKQorI2RlZmluZSBPUFRJT05fREVQQVVESVQJCQkoT1BU SU9OX0FVRElUICsgMSkKIAogc3RhdGljIHZvaWQKIGdsZCR7RU1VTEFUSU9O X05BTUV9X2FkZF9vcHRpb25zCiAgIChpbnQgbnMsIGNoYXIgKipzaG9ydG9w dHMsIGludCBubCwgc3RydWN0IG9wdGlvbiAqKmxvbmdvcHRzLAogICAgaW50 IG5ybCBBVFRSSUJVVEVfVU5VU0VELCBzdHJ1Y3Qgb3B0aW9uICoqcmVhbGx5 X2xvbmdvcHRzIEFUVFJJQlVURV9VTlVTRUQpCiB7Ci0gIHN0YXRpYyBjb25z dCBjaGFyIHh0cmFfc2hvcnRbXSA9ICIke1BBUlNFX0FORF9MSVNUX1NIT1JU T1BUU316OiI7CisgIHN0YXRpYyBjb25zdCBjaGFyIHh0cmFfc2hvcnRbXSA9 ICIke1BBUlNFX0FORF9MSVNUX1NIT1JUT1BUU316OlA6IjsKICAgc3RhdGlj IGNvbnN0IHN0cnVjdCBvcHRpb24geHRyYV9sb25nW10gPSB7CiAgICAgeyJi dWlsZC1pZCIsIG9wdGlvbmFsX2FyZ3VtZW50LCBOVUxMLCBPUFRJT05fQlVJ TERfSUR9LAorICAgIHsiYXVkaXQiLCByZXF1aXJlZF9hcmd1bWVudCwgTlVM TCwgT1BUSU9OX0FVRElUfSwKKyAgICB7ImRlcGF1ZGl0IiwgcmVxdWlyZWRf YXJndW1lbnQsIE5VTEwsIE9QVElPTl9ERVBBVURJVH0sCiBFT0YKIAogaWYg dGVzdCB4IiRHRU5FUkFURV9TSExJQl9TQ1JJUFQiID0geHllczsgdGhlbgpA QCAtMjA0OCw2ICsyMDU2LDQ1IEBAIGZyYWdtZW50IDw8RU9GCiAKICNkZWZp bmUgREVGQVVMVF9CVUlMRF9JRF9TVFlMRQkic2hhMSIKIAorc3RhdGljIHZv aWQgCitnbGQke0VNVUxBVElPTl9OQU1FfV9hcHBlbmRfdG9fc2VwYXJhdGVk X3N0cmluZyAoY2hhciAqKnRvLCBjaGFyICpvcHRhcmcpCit7CisgIGlmICgq dG8gPT0gTlVMTCkKKyAgICAqdG8gPSB4c3RyZHVwIChvcHRhcmcpOworICBl bHNlCisgICAgeworICAgICAgc2l6ZV90IHRvX2xlbiA9IHN0cmxlbiAoKnRv KTsKKyAgICAgIHNpemVfdCBvcHRhcmdfbGVuID0gc3RybGVuIChvcHRhcmcp OworICAgICAgY2hhciAqYnVmOworICAgICAgY2hhciAqY3AgPSAqdG87CisK KyAgICAgIC8qIEZpcnN0IHNlZSB3aGV0aGVyIE9QVEFSRyBpcyBhbHJlYWR5 IGluIHRoZSBwYXRoLiAgKi8KKyAgICAgIGRvCisJeworCSAgaWYgKHN0cm5j bXAgKG9wdGFyZywgY3AsIG9wdGFyZ19sZW4pID09IDAKKwkgICAgICAmJiAo Y3Bbb3B0YXJnX2xlbl0gPT0gMAorCQkgIHx8IGNwW29wdGFyZ19sZW5dID09 IGNvbmZpZy5ycGF0aF9zZXBhcmF0b3IpKQorCSAgICAvKiBXZSBmb3VuZCBp dC4gICovCisJICAgIGJyZWFrOworCisJICAvKiBOb3QgeWV0IGZvdW5kLiAg Ki8KKwkgIGNwID0gc3RyY2hyIChjcCwgY29uZmlnLnJwYXRoX3NlcGFyYXRv cik7CisJICBpZiAoY3AgIT0gTlVMTCkKKwkgICAgKytjcDsKKwl9CisgICAg ICB3aGlsZSAoY3AgIT0gTlVMTCk7CisKKyAgICAgIGlmIChjcCA9PSBOVUxM KQorCXsKKwkgIGJ1ZiA9IHhtYWxsb2MgKHRvX2xlbiArIG9wdGFyZ19sZW4g KyAyKTsKKwkgIHNwcmludGYgKGJ1ZiwgIiVzJWMlcyIsICp0bywKKwkJICAg Y29uZmlnLnJwYXRoX3NlcGFyYXRvciwgb3B0YXJnKTsKKwkgIGZyZWUgKCp0 byk7CisJICAqdG8gPSBidWY7CisJfQorICAgIH0KK30KKwogc3RhdGljIGJm ZF9ib29sZWFuCiBnbGQke0VNVUxBVElPTl9OQU1FfV9oYW5kbGVfb3B0aW9u IChpbnQgb3B0YykKIHsKQEAgLTIwNjcsNiArMjExNCwxMyBAQCBnbGQke0VN VUxBVElPTl9OQU1FfV9oYW5kbGVfb3B0aW9uIChpbnQgCiAgICAgICBpZiAo c3RyY21wIChvcHRhcmcsICJub25lIikpCiAJbGlua19pbmZvLmVtaXRfbm90 ZV9nbnVfYnVpbGRfaWQgPSB4c3RyZHVwIChvcHRhcmcpOwogICAgICAgYnJl YWs7CisgICAgY2FzZSBPUFRJT05fQVVESVQ6CisgIAlnbGQke0VNVUxBVElP Tl9OQU1FfV9hcHBlbmRfdG9fc2VwYXJhdGVkX3N0cmluZygmYXVkaXQsIG9w dGFyZyk7IAorCWJyZWFrOworICAgIGNhc2UgT1BUSU9OX0RFUEFVRElUOgor ICAgIGNhc2UgJ1AnOgorCWdsZCR7RU1VTEFUSU9OX05BTUV9X2FwcGVuZF90 b19zZXBhcmF0ZWRfc3RyaW5nKCZkZXBhdWRpdCwgb3B0YXJnKTsKKwlicmVh azsKIAogRU9GCiAKQEAgLTIyMTgsNiArMjI3MiwxMSBAQCBnbGQke0VNVUxB VElPTl9OQU1FfV9saXN0X29wdGlvbnMgKEZJTEUgCiB7CiAgIGZwcmludGYg KGZpbGUsIF8oIlwKICAgLS1idWlsZC1pZFs9U1RZTEVdICAgICAgICAgIEdl bmVyYXRlIGJ1aWxkIElEIG5vdGVcbiIpKTsKKyAgZnByaW50ZiAoZmlsZSwg XygiXAorICAtLWF1ZGl0PUFVRElUTElCICAgICAgICAgICAgU3BlY2lmeSBh IGxpYnJhcnkgdG8gdXNlIGZvciBhdWRpdGluZ1xuIikpOworICBmcHJpbnRm IChmaWxlLCBfKCJcCisgIC1QIEFVRElUTElCLCAtLWRlcGF1ZGl0PUFVRElU TElCXG4iICJcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTcGVj aWZ5IGEgbGlicmFyeSB0byB1c2UgZm9yIGF1ZGl0aW5nIGRlcGVuZGVuY2ll c1xuIikpOwogRU9GCiAKIGlmIHRlc3QgeCIkR0VORVJBVEVfU0hMSUJfU0NS SVBUIiA9IHh5ZXM7IHRoZW4KSW5kZXg6IGxkL3Rlc3RzdWl0ZS9sZC1lbGYv YXVkaXQuZXhwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IGxk L3Rlc3RzdWl0ZS9sZC1lbGYvYXVkaXQuZXhwCmRpZmYgLU4gbGQvdGVzdHN1 aXRlL2xkLWVsZi9hdWRpdC5leHAKLS0tIC9kZXYvbnVsbAkxIEphbiAxOTcw IDAwOjAwOjAwIC0wMDAwCisrKyBsZC90ZXN0c3VpdGUvbGQtZWxmL2F1ZGl0 LmV4cAkxNCBTZXAgMjAwOSAxMToyMjozNSAtMDAwMApAQCAtMCwwICsxLDUx IEBACisjIEV4cGVjdCBzY3JpcHQgZm9yIHZhcmlvdXMgRUxGIHRlc3RzLgor IyAgIENvcHlyaWdodCAyMDA5IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwg SW5jLgorIworIyBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgR05VIEJpbnV0 aWxzLgorIworIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91 IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorIyBpdCB1bmRl ciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl IGFzIHB1Ymxpc2hlZCBieQorIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0 aW9uOyBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvcgorIyAo YXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorIworIyBUaGlz IHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3 aWxsIGJlIHVzZWZ1bCwKKyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3 aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyMgTUVSQ0hB TlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF LiAgU2VlIHRoZQorIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3Ig bW9yZSBkZXRhaWxzLgorIworIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQg YSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorIyBh bG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUg RnJlZSBTb2Z0d2FyZQorIyBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xp biBTdHJlZXQgLSBGaWZ0aCBGbG9vciwgQm9zdG9uLAorIyBNQSAwMjExMC0x MzAxLCBVU0EuCisjCisKKyMgRXhjbHVkZSBub24tRUxGIHRhcmdldHMuCisK K2lmICFbaXNfZWxmX2Zvcm1hdF0geworICAgIHJldHVybgorfQorCisjIFRo ZSBmb2xsb3dpbmcgdGVzdHMgcmVxdWlyZSBydW5uaW5nIHRoZSBleGVjdXRh YmxlIGdlbmVyYXRlZCBieSBsZC4KK2lmICFbaXNuYXRpdmVdIHsKKyAgICBy ZXR1cm4KK30KKworIyBDaGVjayBpZiBjb21waWxlciB3b3JrcworaWYgeyBb d2hpY2ggJENDXSA9PSAwIH0geworICAgIHJldHVybgorfQorCitzZXQgYnVp bGRfdGVzdHMgeworICB7IlJ1biB3aXRoIC1wYXVkaXQuc28iCisgICAgICIt V2wsLS1hdWRpdD10bXBkaXIvYXVkaXQuc28iICIiCisgICAgIHttYWluLmN9 IHt7InJlYWRlbGYiIHstZH0gImF1ZGl0LnJkIn19ICJhdWRpdC5vdXQifQor ICB7IlJ1biB3aXRoIC1QYXVkaXQuc28iCisgICAgICItV2wsLVB0bXBkaXIv YXVkaXQuc28iICIiCisgICAgIHttYWluLmN9IHt7InJlYWRlbGYiIHstZH0g ImRlcGF1ZGl0LnJkIn19ICJkZXBhdWRpdC5vdXQifQorICB7IlJ1biB3aXRo IC0tZGVwYXVkaXQ9YXVkaXQuc28iCisgICAgICItV2wsLS1kZXBhdWRpdD10 bXBkaXIvYXVkaXQuc28iICIiCisgICAgIHttYWluLmN9IHt7InJlYWRlbGYi IHstZH0gImRlcGF1ZGl0LnJkIn19ICJkZXBhdWRpdDIub3V0In0KK30KKwor cnVuX2NjX2xpbmtfdGVzdHMgJGJ1aWxkX3Rlc3RzCisKSW5kZXg6IGxkL3Rl c3RzdWl0ZS9sZC1lbGYvYXVkaXQucmQKPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQpSQ1MgZmlsZTogbGQvdGVzdHN1aXRlL2xkLWVsZi9hdWRpdC5yZApkaWZm IC1OIGxkL3Rlc3RzdWl0ZS9sZC1lbGYvYXVkaXQucmQKLS0tIC9kZXYvbnVs bAkxIEphbiAxOTcwIDAwOjAwOjAwIC0wMDAwCisrKyBsZC90ZXN0c3VpdGUv bGQtZWxmL2F1ZGl0LnJkCTE0IFNlcCAyMDA5IDExOjIyOjM1IC0wMDAwCkBA IC0wLDAgKzEsMyBAQAorIy4uLgorLipBdWRpdCBsaWJyYXJ5OiBcW3RtcGRp ci9hdWRpdC5zb1xdLioKKyNwYXNzCkluZGV4OiBsZC90ZXN0c3VpdGUvbGQt ZWxmL2RlcGF1ZGl0LnJkCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZp bGU6IGxkL3Rlc3RzdWl0ZS9sZC1lbGYvZGVwYXVkaXQucmQKZGlmZiAtTiBs ZC90ZXN0c3VpdGUvbGQtZWxmL2RlcGF1ZGl0LnJkCi0tLSAvZGV2L251bGwJ MSBKYW4gMTk3MCAwMDowMDowMCAtMDAwMAorKysgbGQvdGVzdHN1aXRlL2xk LWVsZi9kZXBhdWRpdC5yZAkxNCBTZXAgMjAwOSAxMToyMjozNSAtMDAwMApA QCAtMCwwICsxLDMgQEAKKyMuLi4KKy4qRGVwZW5kZW5jeSBhdWRpdCBsaWJy YXJ5OiBcW3RtcGRpci9hdWRpdC5zb1xdLioKKyNwYXNzCkluZGV4OiBiZmQv YmZkLWluLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2 cy9zcmMvc3JjL2JmZC9iZmQtaW4uaCx2CnJldHJpZXZpbmcgcmV2aXNpb24g MS4xNDYKZGlmZiAtdSAtcCAtcjEuMTQ2IGJmZC1pbi5oCi0tLSBiZmQvYmZk LWluLmgJMiBTZXAgMjAwOSAwNzoxODozNSAtMDAwMAkxLjE0NgorKysgYmZk L2JmZC1pbi5oCTE0IFNlcCAyMDA5IDExOjIyOjM1IC0wMDAwCkBAIC02MzUs OCArNjM1LDggQEAgZXh0ZXJuIHN0cnVjdCBiZmRfbGlua19uZWVkZWRfbGlz dCAqYmZkXwogZXh0ZXJuIGJmZF9ib29sZWFuIGJmZF9lbGZfZ2V0X2JmZF9u ZWVkZWRfbGlzdAogICAoYmZkICosIHN0cnVjdCBiZmRfbGlua19uZWVkZWRf bGlzdCAqKik7CiBleHRlcm4gYmZkX2Jvb2xlYW4gYmZkX2VsZl9zaXplX2R5 bmFtaWNfc2VjdGlvbnMKLSAgKGJmZCAqLCBjb25zdCBjaGFyICosIGNvbnN0 IGNoYXIgKiwgY29uc3QgY2hhciAqLCBjb25zdCBjaGFyICogY29uc3QgKiwK LSAgIHN0cnVjdCBiZmRfbGlua19pbmZvICosIHN0cnVjdCBiZmRfc2VjdGlv biAqKiwKKyAgKGJmZCAqLCBjb25zdCBjaGFyICosIGNvbnN0IGNoYXIgKiwg Y29uc3QgY2hhciAqLCBjb25zdCBjaGFyICosIGNvbnN0IGNoYXIgKiwKKyAg IGNvbnN0IGNoYXIgKiBjb25zdCAqLCBzdHJ1Y3QgYmZkX2xpbmtfaW5mbyAq LCBzdHJ1Y3QgYmZkX3NlY3Rpb24gKiosCiAgICBzdHJ1Y3QgYmZkX2VsZl92 ZXJzaW9uX3RyZWUgKik7CiBleHRlcm4gYmZkX2Jvb2xlYW4gYmZkX2VsZl9z aXplX2R5bnN5bV9oYXNoX2R5bnN0cgogICAoYmZkICosIHN0cnVjdCBiZmRf bGlua19pbmZvICopOwpJbmRleDogYmZkL2JmZC1pbjIuaAo9PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3NyYy9zcmMvYmZkL2JmZC1p bjIuaCx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS40OTMKZGlmZiAtdSAtcCAt cjEuNDkzIGJmZC1pbjIuaAotLS0gYmZkL2JmZC1pbjIuaAk5IFNlcCAyMDA5 IDIxOjM4OjU3IC0wMDAwCTEuNDkzCisrKyBiZmQvYmZkLWluMi5oCTE0IFNl cCAyMDA5IDExOjIyOjM1IC0wMDAwCkBAIC02NDIsOCArNjQyLDggQEAgZXh0 ZXJuIHN0cnVjdCBiZmRfbGlua19uZWVkZWRfbGlzdCAqYmZkXwogZXh0ZXJu IGJmZF9ib29sZWFuIGJmZF9lbGZfZ2V0X2JmZF9uZWVkZWRfbGlzdAogICAo YmZkICosIHN0cnVjdCBiZmRfbGlua19uZWVkZWRfbGlzdCAqKik7CiBleHRl cm4gYmZkX2Jvb2xlYW4gYmZkX2VsZl9zaXplX2R5bmFtaWNfc2VjdGlvbnMK LSAgKGJmZCAqLCBjb25zdCBjaGFyICosIGNvbnN0IGNoYXIgKiwgY29uc3Qg Y2hhciAqLCBjb25zdCBjaGFyICogY29uc3QgKiwKLSAgIHN0cnVjdCBiZmRf bGlua19pbmZvICosIHN0cnVjdCBiZmRfc2VjdGlvbiAqKiwKKyAgKGJmZCAq LCBjb25zdCBjaGFyICosIGNvbnN0IGNoYXIgKiwgY29uc3QgY2hhciAqLCBj b25zdCBjaGFyICosIGNvbnN0IGNoYXIgKiwgCisgICBjb25zdCBjaGFyICog Y29uc3QgKiwgc3RydWN0IGJmZF9saW5rX2luZm8gKiwgc3RydWN0IGJmZF9z ZWN0aW9uICoqLAogICAgc3RydWN0IGJmZF9lbGZfdmVyc2lvbl90cmVlICop OwogZXh0ZXJuIGJmZF9ib29sZWFuIGJmZF9lbGZfc2l6ZV9keW5zeW1faGFz aF9keW5zdHIKICAgKGJmZCAqLCBzdHJ1Y3QgYmZkX2xpbmtfaW5mbyAqKTsK SW5kZXg6IGJmZC9lbGZsaW5rLmMKPT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpS Q1MgZmlsZTogL2N2cy9zcmMvc3JjL2JmZC9lbGZsaW5rLmMsdgpyZXRyaWV2 aW5nIHJldmlzaW9uIDEuMzUzCmRpZmYgLXUgLXAgLXIxLjM1MyBlbGZsaW5r LmMKLS0tIGJmZC9lbGZsaW5rLmMJOSBTZXAgMjAwOSAyMTozODo1NyAtMDAw MAkxLjM1MworKysgYmZkL2VsZmxpbmsuYwkxNCBTZXAgMjAwOSAxMToyMjoz NiAtMDAwMApAQCAtMzIzNCw2ICszMjM0LDggQEAgZWxmX2ZpbmFsaXplX2R5 bnN0ciAoYmZkICpvdXRwdXRfYmZkLCBzdAogCWNhc2UgRFRfUlVOUEFUSDoK IAljYXNlIERUX0ZJTFRFUjoKIAljYXNlIERUX0FVWElMSUFSWToKKwljYXNl IERUX0FVRElUOgorCWNhc2UgRFRfREVQQVVESVQ6CiAJICBkeW4uZF91bi5k X3ZhbCA9IF9iZmRfZWxmX3N0cnRhYl9vZmZzZXQgKGR5bnN0ciwgZHluLmRf dW4uZF92YWwpOwogCSAgYnJlYWs7CiAJZGVmYXVsdDoKQEAgLTU0NTEsNiAr NTQ1Myw4IEBAIGJmZF9lbGZfc2l6ZV9keW5hbWljX3NlY3Rpb25zIChiZmQg Km91dHAKIAkJCSAgICAgICBjb25zdCBjaGFyICpzb25hbWUsCiAJCQkgICAg ICAgY29uc3QgY2hhciAqcnBhdGgsCiAJCQkgICAgICAgY29uc3QgY2hhciAq ZmlsdGVyX3NobGliLAorCQkJICAgICAgIGNvbnN0IGNoYXIgKmF1ZGl0LAor CQkJICAgICAgIGNvbnN0IGNoYXIgKmRlcGF1ZGl0LAogCQkJICAgICAgIGNv bnN0IGNoYXIgKiBjb25zdCAqYXV4aWxpYXJ5X2ZpbHRlcnMsCiAJCQkgICAg ICAgc3RydWN0IGJmZF9saW5rX2luZm8gKmluZm8sCiAJCQkgICAgICAgYXNl Y3Rpb24gKipzaW50ZXJwcHRyLApAQCAtNTYwMyw2ICs1NjA3LDI4IEBAIGJm ZF9lbGZfc2l6ZV9keW5hbWljX3NlY3Rpb25zIChiZmQgKm91dHAKIAkgICAg fQogCX0KIAorICAgICAgaWYgKGF1ZGl0ICE9IE5VTEwpCisJeworCSAgYmZk X3NpemVfdHlwZSBpbmR4OworCisJICBpbmR4ID0gX2JmZF9lbGZfc3RydGFi X2FkZCAoZWxmX2hhc2hfdGFibGUgKGluZm8pLT5keW5zdHIsIGF1ZGl0LAor CQkJCSAgICAgIFRSVUUpOworCSAgaWYgKGluZHggPT0gKGJmZF9zaXplX3R5 cGUpIC0xCisJICAgICAgfHwgIV9iZmRfZWxmX2FkZF9keW5hbWljX2VudHJ5 IChpbmZvLCBEVF9BVURJVCwgaW5keCkpCisJICAgIHJldHVybiBGQUxTRTsK Kwl9CisKKyAgICAgIGlmIChkZXBhdWRpdCAhPSBOVUxMKQorCXsKKwkgIGJm ZF9zaXplX3R5cGUgaW5keDsKKworCSAgaW5keCA9IF9iZmRfZWxmX3N0cnRh Yl9hZGQgKGVsZl9oYXNoX3RhYmxlIChpbmZvKS0+ZHluc3RyLCBkZXBhdWRp dCwKKwkJCQkgICAgICBUUlVFKTsKKwkgIGlmIChpbmR4ID09IChiZmRfc2l6 ZV90eXBlKSAtMQorCSAgICAgIHx8ICFfYmZkX2VsZl9hZGRfZHluYW1pY19l bnRyeSAoaW5mbywgRFRfREVQQVVESVQsIGluZHgpKQorCSAgICByZXR1cm4g RkFMU0U7CisJfQorCiAgICAgICBlaWYuaW5mbyA9IGluZm87CiAgICAgICBl aWYudmVyZGVmcyA9IHZlcmRlZnM7CiAgICAgICBlaWYuZmFpbGVkID0gRkFM U0U7Cg== --000e0cd73422eec2c60473886555--