From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from gnu.wildebeest.org (wildebeest.demon.nl [212.238.236.112]) by sourceware.org (Postfix) with ESMTPS id 4B36E3870889 for ; Thu, 18 Feb 2021 16:18:12 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org 4B36E3870889 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=klomp.org Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=mark@klomp.org 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 BD051300BF39; Thu, 18 Feb 2021 17:18:10 +0100 (CET) Received: by tarox.wildebeest.org (Postfix, from userid 1000) id 77BF740422D7; Thu, 18 Feb 2021 17:18:10 +0100 (CET) Message-ID: Subject: Re: [PATCH] Don't handle blocks as exprlocs for DWARF version 4 or higher. From: Mark Wielaard To: Jakub Jelinek Cc: dwz@sourceware.org Date: Thu, 18 Feb 2021 17:18:10 +0100 In-Reply-To: <20210218140947.GG4020736@tucnak> References: <20210213224622.16521-1-mark@klomp.org> <3fd1ebde0c9e1b8cbe09ea858a3e0f0a84af44b4.camel@klomp.org> <20210218140947.GG4020736@tucnak> Content-Type: multipart/mixed; boundary="=-3OYbKl20r8qZzkHHpF4G" X-Mailer: Evolution 3.28.5 (3.28.5-10.el7) Mime-Version: 1.0 X-Spam-Status: No, score=-11.6 required=5.0 tests=BAYES_00, GIT_PATCH_0, KAM_DMARC_STATUS, SPF_HELO_NONE, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on server2.sourceware.org X-BeenThere: dwz@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Dwz mailing list List-Unsubscribe: , List-Archive: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 18 Feb 2021 16:18:15 -0000 --=-3OYbKl20r8qZzkHHpF4G Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Thu, 2021-02-18 at 15:09 +0100, Jakub Jelinek wrote: > On Thu, Feb 18, 2021 at 02:40:36PM +0100, Mark Wielaard wrote: > > On Sat, 2021-02-13 at 23:46 +0100, Mark Wielaard wrote: > > > Since DWARF version 4 blocks just contain bytes, trying to interpret > > > them as exprlocs will most likely fail. > > >=20 > > > * dwz.c (add_locexpr_dummy_dies): Only handle block as exprloc > > > for cu_version < 4. > > > (checksum_die): Likewise. > > > (write_die): Likewise. > > >=20 > > > https://sourceware.org/bugzilla/show_bug.cgi?id=3D26987 > >=20 > > Ping. Any comments? >=20 > Doing some GCC archeology if it is safe, I think it principially ok, but = I'd > like slightly different patch, see below. > [...] > > > +++ b/dwz.c > > > @@ -2913,43 +2913,44 @@ add_locexpr_dummy_dies (DSO *dso, > > > dw_cu_ref > > > cu, dw_die_ref die, > > > if (form =3D=3D DW_FORM_block1) > > > { > > > /* Old DWARF uses blocks instead of exprlocs. */ >=20 > Instead of reindenting everything, can't you simply change > - if (form =3D=3D DW_FORM_block1) > + if (form =3D=3D DW_FORM_block1 && cu->cu_version < 4) Yes, I was under the impression that the return 0; in the block was special, but it isn't, the rest of the function does explicitly check the form (isn't DW_FORM_block1) and so if it simply falls-through it will also end up at return 0; at the end. > > > if (form =3D=3D DW_FORM_block1) >=20 > And likewise here: > - if (form =3D=3D DW_FORM_block1) > + if (form =3D=3D DW_FORM_block1 && cu->cu_version < 4) But here we do need to handle the DW_FORM_block && cu->cu_version >=3D4 version separately. But that can be done by not indention the large block and adding an small else if block. Does the attached variant look better? Thanks, Mark --=-3OYbKl20r8qZzkHHpF4G Content-Disposition: inline; filename*0=0001-Don-t-handle-blocks-as-exprlocs-for-DWARF-version-4-.pat; filename*1=ch Content-Transfer-Encoding: base64 Content-Type: text/x-patch; name="0001-Don-t-handle-blocks-as-exprlocs-for-DWARF-version-4-.patch"; charset="UTF-8" RnJvbSAzYzIzZDcwNzVhZjYwM2QxY2I4ZWQ1ZTY2ZjE2NTljNDZlYzg1ZGM3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXJrIFdpZWxhYXJkIDxtYXJrQGtsb21wLm9yZz4KRGF0ZTog U2F0LCAxMyBGZWIgMjAyMSAyMzozNDo1NSArMDEwMApTdWJqZWN0OiBbUEFUQ0hdIERvbid0IGhh bmRsZSBibG9ja3MgYXMgZXhwcmxvY3MgZm9yIERXQVJGIHZlcnNpb24gNCBvcgogaGlnaGVyLgoK U2luY2UgRFdBUkYgdmVyc2lvbiA0IGJsb2NrcyBqdXN0IGNvbnRhaW4gYnl0ZXMsIHRyeWluZyB0 byBpbnRlcnByZXQKdGhlbSBhcyBleHBybG9jcyB3aWxsIG1vc3QgbGlrZWx5IGZhaWwuCgogICAg ICogZHd6LmMgKGFkZF9sb2NleHByX2R1bW15X2RpZXMpOiBPbmx5IGhhbmRsZSBibG9jayBhcyBl eHBybG9jCiAgICAgZm9yIGN1X3ZlcnNpb24gPCA0LgogICAgIChjaGVja3N1bV9kaWUpOiBMaWtl d2lzZS4KICAgICAod3JpdGVfZGllKTogTGlrZXdpc2UuCgpodHRwczovL3NvdXJjZXdhcmUub3Jn L2J1Z3ppbGxhL3Nob3dfYnVnLmNnaT9pZD0yNjk4NwotLS0KIGR3ei5jIHwgMTEgKysrKysrKyst LS0KIDEgZmlsZSBjaGFuZ2VkLCA4IGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCgpkaWZm IC0tZ2l0IGEvZHd6LmMgYi9kd3ouYwppbmRleCBkNmI5ZGYwLi41ZjBjYzFkIDEwMDY0NAotLS0g YS9kd3ouYworKysgYi9kd3ouYwpAQCAtMjkxMCw3ICsyOTEwLDcgQEAgYWRkX2xvY2V4cHJfZHVt bXlfZGllcyAoRFNPICpkc28sIGR3X2N1X3JlZiBjdSwgZHdfZGllX3JlZiBkaWUsCiAJCQl1bnNp Z25lZCBjaGFyICpwdHIsIHVpbnQzMl90IGZvcm0sIHVuc2lnbmVkIGludCBhdHRyLAogCQkJc2l6 ZV90IGxlbikKIHsKLSAgaWYgKGZvcm0gPT0gRFdfRk9STV9ibG9jazEpCisgIGlmIChmb3JtID09 IERXX0ZPUk1fYmxvY2sxICYmIGN1LT5jdV92ZXJzaW9uIDwgNCkKICAgICB7CiAgICAgICAvKiBP bGQgRFdBUkYgdXNlcyBibG9ja3MgaW5zdGVhZCBvZiBleHBybG9jcy4gICovCiAgICAgICBzd2l0 Y2ggKGF0dHIpCkBAIC0zNzMzLDcgKzM3MzMsNyBAQCBjaGVja3N1bV9kaWUgKERTTyAqZHNvLCBk d19jdV9yZWYgY3UsIGR3X2RpZV9yZWYgdG9wX2RpZSwgZHdfZGllX3JlZiBkaWUpCiAJICBhYm9y dCAoKTsKIAl9CiAKLSAgICAgIGlmIChmb3JtID09IERXX0ZPUk1fYmxvY2sxKQorICAgICAgaWYg KGZvcm0gPT0gRFdfRk9STV9ibG9jazEgJiYgY3UtPmN1X3ZlcnNpb24gPCA0KQogCXsKIAkgIC8q IE9sZCBEV0FSRiB1c2VzIGJsb2NrcyBpbnN0ZWFkIG9mIGV4cHJsb2NzLiAgKi8KIAkgIHN3aXRj aCAodC0+YXR0cltpXS5hdHRyKQpAQCAtMzc4Miw2ICszNzgyLDExIEBAIGNoZWNrc3VtX2RpZSAo RFNPICpkc28sIGR3X2N1X3JlZiBjdSwgZHdfZGllX3JlZiB0b3BfZGllLCBkd19kaWVfcmVmIGRp ZSkKIAkgICAgfQogCSAgcHRyICs9IGxlbjsKIAl9CisgICAgICBlbHNlIGlmIChmb3JtID09IERX X0ZPUk1fYmxvY2sxKQorCXsKKwkgIC8qIERXQVJGNCBvciBoaWdoZXIsIGhhbmRsZSBibG9jayBh cyBhbiBvcGFxdWUgYmxvY2sgb2YgYnl0ZXMuICAqLworCSAgcHRyICs9IGxlbjsKKwl9CiAgICAg ICBlbHNlIGlmIChmb3JtID09IERXX0ZPUk1fZXhwcmxvYykKIAl7CiAJICBpZiAoZGllLT5kaWVf Y2tfc3RhdGUgIT0gQ0tfQkFEKQpAQCAtMTIzOTIsNyArMTIzOTcsNyBAQCB3cml0ZV9kaWUgKHVu c2lnbmVkIGNoYXIgKnB0ciwgZHdfY3VfcmVmIGN1LCBkd19kaWVfcmVmIGRpZSwKIAkgIHB0ciAr PSBpbnB0ciAtIG9yaWdfcHRyOwogCiAJICAvKiBPbGQgRFdBUkYgdXNlcyBibG9ja3MgaW5zdGVh ZCBvZiBleHBybG9jcy4gICovCi0JICBpZiAoZm9ybSA9PSBEV19GT1JNX2Jsb2NrMSkKKwkgIGlm IChmb3JtID09IERXX0ZPUk1fYmxvY2sxICYmIGN1LT5jdV92ZXJzaW9uIDwgNCkKIAkgICAgc3dp dGNoIChyZWZ0LT5hdHRyW2ldLmF0dHIpCiAJICAgICAgewogCSAgICAgIGNhc2UgRFdfQVRfZnJh bWVfYmFzZToKLS0gCjIuMTguNAoK --=-3OYbKl20r8qZzkHHpF4G--