From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 19114 invoked by alias); 20 Dec 2017 18:09:00 -0000 Mailing-List: contact elfutils-devel-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Post: List-Help: List-Subscribe: Sender: elfutils-devel-owner@sourceware.org Received: (qmail 19101 invoked by uid 89); 20 Dec 2017 18:09:00 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Checked: by ClamAV 0.99.2 on sourceware.org X-Virus-Found: No X-Spam-SWARE-Status: No, score=-25.9 required=5.0 tests=BAYES_00,GIT_PATCH_0,GIT_PATCH_1,GIT_PATCH_2,GIT_PATCH_3,KAM_LAZY_DOMAIN_SECURITY autolearn=ham version=3.3.2 spammy=peel X-Spam-Status: No, score=-25.9 required=5.0 tests=BAYES_00,GIT_PATCH_0,GIT_PATCH_1,GIT_PATCH_2,GIT_PATCH_3,KAM_LAZY_DOMAIN_SECURITY autolearn=ham version=3.3.2 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on sourceware.org X-Spam-Level: X-HELO: gnu.wildebeest.org Received: from wildebeest.demon.nl (HELO gnu.wildebeest.org) (212.238.236.112) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Wed, 20 Dec 2017 18:08:58 +0000 Received: from tarox.wildebeest.org (tarox.wildebeest.org [172.31.17.39]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by gnu.wildebeest.org (Postfix) with ESMTPSA id 9053732B90E4; Wed, 20 Dec 2017 19:08:56 +0100 (CET) Received: by tarox.wildebeest.org (Postfix, from userid 1000) id 836734000AFA; Wed, 20 Dec 2017 19:08:56 +0100 (CET) Message-ID: <1513793336.3236.23.camel@klomp.org> Subject: Re: [PATCH 2/2 v2] Generalize cu_sec_idx From: Mark Wielaard To: Ulf Hermann , elfutils-devel@sourceware.org Date: Wed, 20 Dec 2017 18:09:00 -0000 In-Reply-To: <7ba4e217-ebd7-1fea-31c7-5c2ff6ba166b@qt.io> References: <1513259491.15696.82.camel@klomp.org> <7ba4e217-ebd7-1fea-31c7-5c2ff6ba166b@qt.io> Content-Type: multipart/mixed; boundary="=-0TbA81nh6n/TCgLmshDQ" X-Mailer: Evolution 3.22.6 (3.22.6-10.el7) Mime-Version: 1.0 X-Spam-Flag: NO X-IsSubscribed: yes X-SW-Source: 2017-q4/txt/msg00116.txt.bz2 --=-0TbA81nh6n/TCgLmshDQ Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Content-length: 969 On Thu, 2017-12-14 at 14:53 +0100, Ulf Hermann wrote: > On 12/14/2017 02:51 PM, Mark Wielaard wrote: > > This is clever and indeed cu_sec_idx () is not generic enough. > > But this is also somewhat inefficient. I am working on DWARF5 support > > and there a CU can come from even more different sections (or file). So > > I am changing Dwarf_CU to have an explicit section to which is it is > > associated. This can then also be used by the "fake" CUs like created > > in dwarf_getmacros. >=20 > Mind that the two most common cases are 0 and 1. In fact nothing else > was supported before this change. So, most of the time this will not > do a lot of iteration. yes, but the original code really was not correct. The attached patch fixes it by adding an explicit sec_idx field to the Dwarf_CU struct that is set whenever a struct Dwarf_CU is created, so that we never have to guess. This patch combined with the overflow fix makes all testcases PASS. Cheers, Mark= --=-0TbA81nh6n/TCgLmshDQ Content-Disposition: inline; filename*0=0001-libdw-Add-explicit-section-index-to-struct-Dwarf_CU.patc; filename*1=h Content-Transfer-Encoding: base64 Content-Type: text/x-patch; name="0001-libdw-Add-explicit-section-index-to-struct-Dwarf_CU.patch"; charset="UTF-8" Content-length: 5454 RnJvbSA1MWE3MjkyYjdlYzdkZGViY2QyYWJkZGM3ZWZmZjlkNjA0NDk0ZDQ0 IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBNYXJrIFdpZWxhYXJk IDxtYXJrQGtsb21wLm9yZz4KRGF0ZTogV2VkLCAyMCBEZWMgMjAxNyAxNjo1 MDo1NyArMDEwMApTdWJqZWN0OiBbUEFUQ0ggMS8yXSBsaWJkdzogQWRkIGV4 cGxpY2l0IHNlY3Rpb24gaW5kZXggdG8gc3RydWN0IER3YXJmX0NVLgoKVGhl IERJRSAoYXR0cmlidXRlKSBkYXRhIG1pZ2h0IGNvbWUgZnJvbSBlaXRoZXIg dGhlIG1haW4gLmRlYnVnX2luZm8Kc2VjdGlvbiBvciBmb3IgRFdBUkZ2NCBm cm9tIGEgc2VwYXJhdGUgLmRlYnVnX3R5cGVzIHNlY3Rpb24uIE9yIGluCmNh c2Ugb2YgdGhlIGZha2VfbG9jX2N1IGZyb20gdGhlIC5kZWJ1Z19sb2Mgc2Vj dGlvbiBhbmQgaW4gdGhlIGNhc2UKb2YgbWFjcm9zIGZyb20gdGhlIC5kZWJ1 Z19tYWNpbmZvIG9yIC5kZWJ1Z19tYWNybyBzZWN0aW9uLgoKV2UgZGlkbid0 IGhhbmRsZSB0aGUgbGFzdCB0d28gImZha2UiIENVIGNhc2VzIGNvcnJlY3Rs eSB3aGVuIHNhbml0eQpjaGVja2luZyBvZmZzZXRzIGluIF9fbGliZHdfcmVh ZF9hZGRyZXNzIGFuZCBfX2xpYmR3X3JlYWRfb2Zmc2V0LgoKQWRkIGFuIGV4 cGxpY2l0IHNlY19pZHggZmllbGQgdG8gc3RydWN0IER3YXJmX0NVIHRoYXQg aXMgYWx3YXlzIHNldAp0byB0aGUgYWN0dWFsIHNlY3Rpb24gdGhhdCB0aGUg ZGF0YSBjYW1lIGZyb20uCgpTaWduZWQtb2ZmLWJ5OiBNYXJrIFdpZWxhYXJk IDxtYXJrQGtsb21wLm9yZz4KLS0tCiBsaWJkdy9DaGFuZ2VMb2cgICAgICAg ICB8IDExICsrKysrKysrKysrCiBsaWJkdy9kd2FyZl9iZWdpbl9lbGYuYyB8 ICAxICsKIGxpYmR3L2R3YXJmX2dldG1hY3Jvcy5jIHwgIDEgKwogbGliZHcv bGliZHdQLmggICAgICAgICAgfCAgNCArKystCiBsaWJkdy9saWJkd19maW5k Y3UuYyAgICB8ICA1ICsrKy0tCiA1IGZpbGVzIGNoYW5nZWQsIDE5IGluc2Vy dGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbGliZHcv Q2hhbmdlTG9nIGIvbGliZHcvQ2hhbmdlTG9nCmluZGV4IDM1MDIzMGUuLjIy YjdiZjQgMTAwNjQ0Ci0tLSBhL2xpYmR3L0NoYW5nZUxvZworKysgYi9saWJk dy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxNy0xMi0yMCAgTWFy ayBXaWVsYWFyZCAgPG1hcmtAa2xvbXAub3JnPgorCisJKiBsaWJkd1AuaCAo c3RydWN0IER3YXJmX0NVKTogQWRkIHNlY19pZHggZmllbGQuCisJKGN1X3Nl Y19pZHgpOiBSZXR1cm4gY3UtPnNlY19pZHguCisJKiBsaWJkd19maW5kY3Uu YyAoX19saWJkd19pbnRlcm5fbmV4dF91bml0KTogU2V0IGN1IHNlY19pZHgg dG8KKwlJRFhfZGVidWdfaW5mbyBvciBJRFhfZGVidWdfdHlwZXMuCisJKiBk d2FyZl9iZWdpbl9lbGYuYyAodmFsaWRfcCk6IFNldCBmYWtlX2xvY19jdS0+ c2VjX2lkeCB0bworCUlEWF9kZWJ1Z19sb2MuCisJKiBkd2FyZl9nZXRtYWNy b3MuYyAocmVhZF9tYWNyb3MpOiBTZXQgZmFrZV9jdS0+c2VjX2lkeCB0bwor CUlEWF9kZWJ1Z19tYWNybyBvciBJRFhfZGVidWdfbWFjaW5mby4KKwogMjAx Ny0xMi0xMiAgTWFyayBXaWVsYWFyZCAgPG1hcmtAa2xvbXAub3JnPgogCiAJ KiBkd2FyZl9hZ2dyZWdhdGVfc2l6ZS5jIChkd2FyZl9hZ2dyZWdhdGVfc2l6 ZSk6IERvbid0IHBlZWwgdGhlCmRpZmYgLS1naXQgYS9saWJkdy9kd2FyZl9i ZWdpbl9lbGYuYyBiL2xpYmR3L2R3YXJmX2JlZ2luX2VsZi5jCmluZGV4IGFm YTE1Y2UuLjdjM2ZlMTAgMTAwNjQ0Ci0tLSBhL2xpYmR3L2R3YXJmX2JlZ2lu X2VsZi5jCisrKyBiL2xpYmR3L2R3YXJmX2JlZ2luX2VsZi5jCkBAIC0yMDEs NiArMjAxLDcgQEAgdmFsaWRfcCAoRHdhcmYgKnJlc3VsdCkKIAl9CiAgICAg ICBlbHNlCiAJeworCSAgcmVzdWx0LT5mYWtlX2xvY19jdS0+c2VjX2lkeCA9 IElEWF9kZWJ1Z19sb2M7CiAJICByZXN1bHQtPmZha2VfbG9jX2N1LT5kYmcg PSByZXN1bHQ7CiAJICByZXN1bHQtPmZha2VfbG9jX2N1LT5zdGFydHAKIAkg ICAgPSByZXN1bHQtPnNlY3Rpb25kYXRhW0lEWF9kZWJ1Z19sb2NdLT5kX2J1 ZjsKZGlmZiAtLWdpdCBhL2xpYmR3L2R3YXJmX2dldG1hY3Jvcy5jIGIvbGli ZHcvZHdhcmZfZ2V0bWFjcm9zLmMKaW5kZXggZGI2NTgyYi4uYzQ1NjA1MSAx MDA2NDQKLS0tIGEvbGliZHcvZHdhcmZfZ2V0bWFjcm9zLmMKKysrIGIvbGli ZHcvZHdhcmZfZ2V0bWFjcm9zLmMKQEAgLTM2MCw2ICszNjAsNyBAQCByZWFk X21hY3JvcyAoRHdhcmYgKmRiZywgaW50IHNlY19pbmRleCwKIAkgVmVyc2lv biA0IGZvciB0aGUgb2xkIEdOVSBleHRlbnNpb24sIHZlcnNpb24gNSBmb3Ig RFdBUkY1LiAgKi8KICAgICAgIER3YXJmX0NVIGZha2VfY3UgPSB7CiAJLmRi ZyA9IGRiZywKKwkuc2VjX2lkeCA9IHNlY19pbmRleCwKIAkudmVyc2lvbiA9 IHRhYmxlLT52ZXJzaW9uLAogCS5vZmZzZXRfc2l6ZSA9IHRhYmxlLT5pc182 NGJpdCA/IDggOiA0LAogCS5zdGFydHAgPSAodm9pZCAqKSBzdGFydHAgKyBv ZmZzZXQsCmRpZmYgLS1naXQgYS9saWJkdy9saWJkd1AuaCBiL2xpYmR3L2xp YmR3UC5oCmluZGV4IDc4YzAwMTMuLmY1MjQzNDcgMTAwNjQ0Ci0tLSBhL2xp YmR3L2xpYmR3UC5oCisrKyBiL2xpYmR3L2xpYmR3UC5oCkBAIC0yOTMsNiAr MjkzLDggQEAgc3RydWN0IER3YXJmX0NVCiAgIHVpbnQ4X3Qgb2Zmc2V0X3Np emU7CiAgIHVpbnQxNl90IHZlcnNpb247CiAKKyAgc2l6ZV90IHNlY19pZHg7 IC8qIE5vcm1hbGx5IC5kZWJ1Z19pbmZvLCBjb3VsZCBiZSAuZGVidWdfdHlw ZSBvciAiZmFrZSIuICovCisKICAgLyogWmVybyBpZiB0aGlzIGlzIGEgbm9y bWFsIENVLiAgTm9uemVybyBpZiBpdCBpcyBhIHR5cGUgdW5pdC4gICovCiAg IHNpemVfdCB0eXBlX29mZnNldDsKICAgdWludDY0X3QgdHlwZV9zaWc4OwpA QCAtNzE0LDcgKzcxNiw3IEBAIF9fbGliZHdfcmVhZF9vZmZzZXQgKER3YXJm ICpkYmcsIER3YXJmICpkYmdfcmV0LAogc3RhdGljIGlubGluZSBzaXplX3QK IGN1X3NlY19pZHggKHN0cnVjdCBEd2FyZl9DVSAqY3UpCiB7Ci0gIHJldHVy biBjdS0+dHlwZV9vZmZzZXQgPT0gMCA/IElEWF9kZWJ1Z19pbmZvIDogSURY X2RlYnVnX3R5cGVzOworICByZXR1cm4gY3UtPnNlY19pZHg7CiB9CiAKIHN0 YXRpYyBpbmxpbmUgYm9vbApkaWZmIC0tZ2l0IGEvbGliZHcvbGliZHdfZmlu ZGN1LmMgYi9saWJkdy9saWJkd19maW5kY3UuYwppbmRleCAwODIzMDdiLi40 ZTAyNWUyIDEwMDY0NAotLS0gYS9saWJkdy9saWJkd19maW5kY3UuYworKysg Yi9saWJkdy9saWJkd19maW5kY3UuYwpAQCAtOTMsOCArOTMsOCBAQCBfX2xp YmR3X2ludGVybl9uZXh0X3VuaXQgKER3YXJmICpkYmcsIGJvb2wgZGVidWdf dHlwZXMpCiAgICAgfQogCiAgIC8qIEludmFsaWQgb3IgdHJ1bmNhdGVkIGRl YnVnIHNlY3Rpb24gZGF0YT8gICovCi0gIEVsZl9EYXRhICpkYXRhID0gZGJn LT5zZWN0aW9uZGF0YVtkZWJ1Z190eXBlcwotCQkJCSAgICA/IElEWF9kZWJ1 Z190eXBlcyA6IElEWF9kZWJ1Z19pbmZvXTsKKyAgc2l6ZV90IHNlY19pZHgg PSBkZWJ1Z190eXBlcyA/IElEWF9kZWJ1Z190eXBlcyA6IElEWF9kZWJ1Z19p bmZvOworICBFbGZfRGF0YSAqZGF0YSA9IGRiZy0+c2VjdGlvbmRhdGFbc2Vj X2lkeF07CiAgIGlmICh1bmxpa2VseSAoKm9mZnNldHAgPiBkYXRhLT5kX3Np emUpKQogICAgICpvZmZzZXRwID0gZGF0YS0+ZF9zaXplOwogCkBAIC0xMDIs NiArMTAyLDcgQEAgX19saWJkd19pbnRlcm5fbmV4dF91bml0IChEd2FyZiAq ZGJnLCBib29sIGRlYnVnX3R5cGVzKQogICBzdHJ1Y3QgRHdhcmZfQ1UgKm5l d3AgPSBsaWJkd190eXBlZF9hbGxvYyAoZGJnLCBzdHJ1Y3QgRHdhcmZfQ1Up OwogCiAgIG5ld3AtPmRiZyA9IGRiZzsKKyAgbmV3cC0+c2VjX2lkeCA9IHNl Y19pZHg7CiAgIG5ld3AtPnN0YXJ0ID0gb2xkb2ZmOwogICBuZXdwLT5lbmQg PSAqb2Zmc2V0cDsKICAgbmV3cC0+YWRkcmVzc19zaXplID0gYWRkcmVzc19z aXplOwotLSAKMS44LjMuMQoK --=-0TbA81nh6n/TCgLmshDQ--