From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 24147 invoked by alias); 20 May 2015 15:12:47 -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 24137 invoked by uid 89); 20 May 2015 15:12:46 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-2.2 required=5.0 tests=AWL,BAYES_00,FREEMAIL_FROM,RCVD_IN_DNSWL_LOW,SPF_PASS autolearn=ham version=3.3.2 X-HELO: mail-ob0-f169.google.com Received: from mail-ob0-f169.google.com (HELO mail-ob0-f169.google.com) (209.85.214.169) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (AES128-GCM-SHA256 encrypted) ESMTPS; Wed, 20 May 2015 15:12:45 +0000 Received: by obfe9 with SMTP id e9so38959693obf.1 for ; Wed, 20 May 2015 08:12:43 -0700 (PDT) MIME-Version: 1.0 X-Received: by 10.60.97.164 with SMTP id eb4mr19409786oeb.15.1432134763493; Wed, 20 May 2015 08:12:43 -0700 (PDT) Received: by 10.202.221.85 with HTTP; Wed, 20 May 2015 08:12:43 -0700 (PDT) Date: Wed, 20 May 2015 15:12:00 -0000 Message-ID: Subject: [patch][gold] Change how we compute merge mapping for strings From: =?UTF-8?Q?Rafael_Esp=C3=ADndola?= To: Binutils Cc: Cary Coutant Content-Type: multipart/mixed; boundary=089e013a14c2d9e848051684dbb3 X-IsSubscribed: yes X-SW-Source: 2015-05/txt/msg00192.txt.bz2 --089e013a14c2d9e848051684dbb3 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Content-length: 653 Currently we first record the offset and hash of each string. We then walk that computing the size from the difference in the offsets. This doesn't work if not every string is kept, which is what I am trying to do (gc unused parts of SHF_MERGE sections). With the attached patch we first add a mapping that is missing the output offset and once the strings are merged we just set the output offset. Cheers, Rafael 2015-05-20 Rafael =C3=81vila de Esp=C3=ADndola * merge.cc (do_add_input_section): Create mappings with no output offset. (finalize_merged_data): Set the output offsets. * merge.h (Merged_string): Delete. --089e013a14c2d9e848051684dbb3 Content-Type: text/x-patch; charset=US-ASCII; name="t.patch" Content-Disposition: attachment; filename="t.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_i9wvu4vj0 Content-length: 5149 ZGlmZiAtLWdpdCBhL2dvbGQvbWVyZ2UuY2MgYi9nb2xkL21lcmdlLmNjCmlu ZGV4IGQzOTUzMTIuLmZhNzA2OTggMTAwNjQ0Ci0tLSBhL2dvbGQvbWVyZ2Uu Y2MKKysrIGIvZ29sZC9tZXJnZS5jYwpAQCAtNTA5LDYgKzUwOSw5IEBAIE91 dHB1dF9tZXJnZV9zdHJpbmc8Q2hhcl90eXBlPjo6ZG9fYWRkX2lucHV0X3Nl Y3Rpb24oUmVsb2JqKiBvYmplY3QsCiAgIHVpbnRwdHJfdCBpbml0X2FsaWdu X21vZHVsbyA9IChyZWludGVycHJldF9jYXN0PHVpbnRwdHJfdD4ocGRhdGEp CiAJCQkJICYgKHRoaXMtPmFkZHJhbGlnbigpIC0gMSkpOwogICBib29sIGhh c19taXNhbGlnbmVkX3N0cmluZ3MgPSBmYWxzZTsKKyAgT2JqZWN0X21lcmdl X21hcCogbWVyZ2VfbWFwID0gb2JqZWN0LT5nZXRfb3JfY3JlYXRlX21lcmdl X21hcCgpOworICBPYmplY3RfbWVyZ2VfbWFwOjpJbnB1dF9tZXJnZV9tYXAq IGlucHV0X21lcmdlX21hcCA9CisgICAgbWVyZ2VfbWFwLT5nZXRfb3JfbWFr ZV9pbnB1dF9tZXJnZV9tYXAodGhpcywgc2huZHgpOwogCiAgIHdoaWxlIChw IDwgcGVuZCkKICAgICB7CkBAIC01MjMsMTUgKzUyNiwxNSBAQCBPdXRwdXRf bWVyZ2Vfc3RyaW5nPENoYXJfdHlwZT46OmRvX2FkZF9pbnB1dF9zZWN0aW9u KFJlbG9iaiogb2JqZWN0LAogICAgICAgU3RyaW5ncG9vbDo6S2V5IGtleTsK ICAgICAgIHRoaXMtPnN0cmluZ3Bvb2xfLmFkZF93aXRoX2xlbmd0aChwLCBs ZW4sIHRydWUsICZrZXkpOwogCi0gICAgICBtZXJnZWRfc3RyaW5ncy5wdXNo X2JhY2soTWVyZ2VkX3N0cmluZyhpLCBrZXkpKTsKKyAgICAgIG1lcmdlZF9z dHJpbmdzLnB1c2hfYmFjayhrZXkpOworICAgICAgLy8gV2Ugd2lsbCBjb21w dXRlIHRoZSBvdXRwdXQgb2Zmc2V0IGFmdGVyd2FyZHMKKyAgICAgIHNpemVf dCBzaXplID0gKGxlbiArIDEpICogc2l6ZW9mKENoYXJfdHlwZSk7CisgICAg ICBpbnB1dF9tZXJnZV9tYXAtPmFkZF9tYXBwaW5nKGksIHNpemUsIDApOwor CiAgICAgICBwICs9IGxlbiArIDE7Ci0gICAgICBpICs9IChsZW4gKyAxKSAq IHNpemVvZihDaGFyX3R5cGUpOworICAgICAgaSArPSBzaXplOwogICAgIH0K IAotICAvLyBSZWNvcmQgdGhlIGxhc3Qgb2Zmc2V0IGluIHRoZSBpbnB1dCBz ZWN0aW9uIHNvIHRoYXQgd2UgY2FuCi0gIC8vIGNvbXB1dGUgdGhlIGxlbmd0 aCBvZiB0aGUgbGFzdCBzdHJpbmcuCi0gIG1lcmdlZF9zdHJpbmdzLnB1c2hf YmFjayhNZXJnZWRfc3RyaW5nKGksIDApKTsKLQogICB0aGlzLT5pbnB1dF9j b3VudF8gKz0gY291bnQ7CiAgIHRoaXMtPmlucHV0X3NpemVfICs9IGk7CiAK QEAgLTU2NSwyOCArNTY4LDI2IEBAIE91dHB1dF9tZXJnZV9zdHJpbmc8Q2hh cl90eXBlPjo6ZmluYWxpemVfbWVyZ2VkX2RhdGEoKQogICAgICAgIGwgIT0g dGhpcy0+bWVyZ2VkX3N0cmluZ3NfbGlzdHNfLmVuZCgpOwogICAgICAgICsr bCkKICAgICB7Ci0gICAgICBzZWN0aW9uX29mZnNldF90eXBlIGxhc3RfaW5w dXRfb2Zmc2V0ID0gMDsKLSAgICAgIHNlY3Rpb25fb2Zmc2V0X3R5cGUgbGFz dF9vdXRwdXRfb2Zmc2V0ID0gMDsKLSAgICAgIFJlbG9iaiAqb2JqZWN0ID0g KCpsKS0+b2JqZWN0OworICAgICAgY29uc3QgTWVyZ2VkX3N0cmluZ3NfbGlz dCAqbXMgPSAqbDsKKyAgICAgIFJlbG9iaiAqb2JqZWN0ID0gbXMtPm9iamVj dDsKICAgICAgIE9iamVjdF9tZXJnZV9tYXAqIG1lcmdlX21hcCA9IG9iamVj dC0+Z2V0X29yX2NyZWF0ZV9tZXJnZV9tYXAoKTsKICAgICAgIE9iamVjdF9t ZXJnZV9tYXA6OklucHV0X21lcmdlX21hcCogaW5wdXRfbWVyZ2VfbWFwID0K LSAgICAgICAgbWVyZ2VfbWFwLT5nZXRfb3JfbWFrZV9pbnB1dF9tZXJnZV9t YXAodGhpcywgKCpsKS0+c2huZHgpOworICAgICAgICBtZXJnZV9tYXAtPmdl dF9vcl9tYWtlX2lucHV0X21lcmdlX21hcCh0aGlzLCBtcy0+c2huZHgpOwor ICAgICAgZ29sZF9hc3NlcnQoaW5wdXRfbWVyZ2VfbWFwLT5zb3J0ZWQpOwor ICAgICAgT2JqZWN0X21lcmdlX21hcDo6SW5wdXRfbWVyZ2VfbWFwOjpFbnRy aWVzICZlbnRyaWVzID0KKyAgICAgICAgaW5wdXRfbWVyZ2VfbWFwLT5lbnRy aWVzOworICAgICAgT2JqZWN0X21lcmdlX21hcDo6SW5wdXRfbWVyZ2VfbWFw OjpFbnRyaWVzOjppdGVyYXRvciBlbnRyeV9pID0KKyAgICAgICAgZW50cmll cy5iZWdpbigpOwogCiAgICAgICBmb3IgKHR5cGVuYW1lIE1lcmdlZF9zdHJp bmdzOjpjb25zdF9pdGVyYXRvciBwID0KLQkgICAgICgqbCktPm1lcmdlZF9z dHJpbmdzLmJlZ2luKCk7Ci0JICAgcCAhPSAoKmwpLT5tZXJnZWRfc3RyaW5n cy5lbmQoKTsKLQkgICArK3ApCisJICAgICBtcy0+bWVyZ2VkX3N0cmluZ3Mu YmVnaW4oKSwKKwkgICAgIGUgPSBtcy0+bWVyZ2VkX3N0cmluZ3MuZW5kKCk7 CisJICAgcCAhPSBlOworCSAgICsrcCwgKytlbnRyeV9pKQogCXsKLQkgIHNl Y3Rpb25fc2l6ZV90eXBlIGxlbmd0aCA9IHAtPm9mZnNldCAtIGxhc3RfaW5w dXRfb2Zmc2V0OwotCSAgaWYgKGxlbmd0aCA+IDApCi0JICAgIGlucHV0X21l cmdlX21hcC0+YWRkX21hcHBpbmcobGFzdF9pbnB1dF9vZmZzZXQsIGxlbmd0 aCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg bGFzdF9vdXRwdXRfb2Zmc2V0KTsKLQkgIGxhc3RfaW5wdXRfb2Zmc2V0ID0g cC0+b2Zmc2V0OwotCSAgaWYgKHAtPnN0cmluZ3Bvb2xfa2V5ICE9IDApCi0J ICAgIGxhc3Rfb3V0cHV0X29mZnNldCA9Ci0JICAgICAgICB0aGlzLT5zdHJp bmdwb29sXy5nZXRfb2Zmc2V0X2Zyb21fa2V5KHAtPnN0cmluZ3Bvb2xfa2V5 KTsKKyAgICAgICAgICBlbnRyeV9pLT5vdXRwdXRfb2Zmc2V0ID0gdGhpcy0+ c3RyaW5ncG9vbF8uZ2V0X29mZnNldF9mcm9tX2tleSgqcCk7CiAJfQotICAg ICAgZGVsZXRlICpsOworICAgICAgZGVsZXRlIG1zOwogICAgIH0KIAogICAv LyBTYXZlIHNvbWUgbWVtb3J5LiAgVGhpcyBhbHNvIGVuc3VyZXMgdGhhdCB0 aGlzIGZ1bmN0aW9uIHdpbGwgd29yawpkaWZmIC0tZ2l0IGEvZ29sZC9tZXJn ZS5oIGIvZ29sZC9tZXJnZS5oCmluZGV4IDU0Y2FlZDguLmI5NTZlZTYgMTAw NjQ0Ci0tLSBhL2dvbGQvbWVyZ2UuaAorKysgYi9nb2xkL21lcmdlLmgKQEAg LTQ3NiwyMSArNDc2LDcgQEAgY2xhc3MgT3V0cHV0X21lcmdlX3N0cmluZyA6 IHB1YmxpYyBPdXRwdXRfbWVyZ2VfYmFzZQogICBjb25zdCBjaGFyKgogICBz dHJpbmdfbmFtZSgpOwogCi0gIC8vIEFzIHdlIHNlZSBpbnB1dCBzZWN0aW9u cywgd2UgYnVpbGQgYSBtYXBwaW5nIGZyb20gb2JqZWN0LCBzZWN0aW9uCi0g IC8vIGluZGV4IGFuZCBvZmZzZXQgdG8gc3RyaW5ncy4KLSAgc3RydWN0IE1l cmdlZF9zdHJpbmcKLSAgewotICAgIC8vIFRoZSBvZmZzZXQgaW4gdGhlIGlu cHV0IHNlY3Rpb24uCi0gICAgc2VjdGlvbl9vZmZzZXRfdHlwZSBvZmZzZXQ7 Ci0gICAgLy8gVGhlIGtleSBpbiB0aGUgU3RyaW5ncG9vbC4KLSAgICBTdHJp bmdwb29sOjpLZXkgc3RyaW5ncG9vbF9rZXk7Ci0KLSAgICBNZXJnZWRfc3Ry aW5nKHNlY3Rpb25fb2Zmc2V0X3R5cGUgb2Zmc2V0YSwgU3RyaW5ncG9vbDo6 S2V5IHN0cmluZ3Bvb2xfa2V5YSkKLSAgICAgIDogb2Zmc2V0KG9mZnNldGEp LCBzdHJpbmdwb29sX2tleShzdHJpbmdwb29sX2tleWEpCi0gICAgeyB9Ci0g IH07Ci0KLSAgdHlwZWRlZiBzdGQ6OnZlY3RvcjxNZXJnZWRfc3RyaW5nPiBN ZXJnZWRfc3RyaW5nczsKKyAgdHlwZWRlZiBzdGQ6OnZlY3RvcjxTdHJpbmdw b29sOjpLZXk+IE1lcmdlZF9zdHJpbmdzOwogCiAgIHN0cnVjdCBNZXJnZWRf c3RyaW5nc19saXN0CiAgIHsK --089e013a14c2d9e848051684dbb3--