From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-ot1-x335.google.com (mail-ot1-x335.google.com [IPv6:2607:f8b0:4864:20::335]) by sourceware.org (Postfix) with ESMTPS id 3931F3858C27 for ; Sat, 19 Dec 2020 20:13:32 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org 3931F3858C27 Received: by mail-ot1-x335.google.com with SMTP id b24so5364825otj.0 for ; Sat, 19 Dec 2020 12:13:32 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=/UrNPnNKZYaSmNkgD+PRUgL4Pwi1uQmaPf/jfzNg0UA=; b=K+sUwsj8kmYRSG5vn+O/6jTvP4G+WcxPtGuq18SwO4dj+BZ8BlvYvgkzx8AjxKu4Dy TnjxEB0LUCw/c7xAt35jyp3cPlt0mZQkYH5eqg2A2akDYOCXOwD024eCNZZT2wOCFc4Q JGaB1NQThvvXIOggfzA5mKhC4J5umVWmRq5qde6u9dXeRnizzqFogjaHVOhIWh2DYWUP xxLL8DXzRqyLwB77sdYdgvJdUyHq4FqVvzZHnJIX8XOY1FjiUEgv2WWnFwpauT/qyZuN QpvrqTLRVYz3Kdgp/VvzsVDDwRXgJczVjN8FLlm1Q23DMlg4KQxIao/ou0r5hWTPUNMb Na1w== X-Gm-Message-State: AOAM53344ntopRg4UgfubuU0NZOX3BPkhHPWZVTMQ3AM7bufYXJbsBec rgMWmU+eXtk35Li9V7+bMut5ZKYUkJ6bziC6A2HzrQ/l X-Google-Smtp-Source: ABdhPJzlKgaDWLDe8/T6FeF4H5Bdz4N+p1Fi12QJXgG6xfwsbJqFSqMd9r4o9hlBSDzzShRdFrZdClFw8NJvvi3eyJg= X-Received: by 2002:a05:6830:1d71:: with SMTP id l17mr7148229oti.269.1608408811660; Sat, 19 Dec 2020 12:13:31 -0800 (PST) MIME-Version: 1.0 References: <20201219145718.171683-1-hjl.tools@gmail.com> In-Reply-To: From: "H.J. Lu" Date: Sat, 19 Dec 2020 12:12:55 -0800 Message-ID: Subject: Re: [PATCH] elfcpp: Add Sym::Sym(unsigned char*) constructor To: Cary Coutant Cc: Binutils Content-Type: multipart/mixed; boundary="000000000000df8d3d05b6d6dbfb" X-Spam-Status: No, score=-3037.1 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, FREEMAIL_FROM, GIT_PATCH_0, RCVD_IN_DNSWL_NONE, 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: binutils@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Binutils mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 19 Dec 2020 20:13:33 -0000 --000000000000df8d3d05b6d6dbfb Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Sat, Dec 19, 2020 at 11:59 AM Cary Coutant wrote: > > Does this patch fix the problem? > > --- a/gold/plugin.cc > +++ b/gold/plugin.cc > @@ -1397,8 +1397,8 @@ Sized_pluginobj big_endian>::do_add_symbols(Symbol_table* symtab, > { > const int sym_size =3D elfcpp::Elf_sizes::sym_size; > unsigned char symbuf[sym_size]; > - elfcpp::Sym sym(symbuf); > elfcpp::Sym_write osym(symbuf); > + elfcpp::Sym sym(symbuf); > > Plugin_recorder* recorder =3D parameters->options().plugins()->recorde= r(); > if (recorder !=3D NULL) > > If not that, then how about this: > > --- a/gold/plugin.cc > +++ b/gold/plugin.cc > @@ -1397,7 +1397,6 @@ Sized_pluginobj big_endian>::do_add_symbols(Symbol_table* symtab, > { > const int sym_size =3D elfcpp::Elf_sizes::sym_size; > unsigned char symbuf[sym_size]; > - elfcpp::Sym sym(symbuf); > elfcpp::Sym_write osym(symbuf); > > Plugin_recorder* recorder =3D parameters->options().plugins()->recorde= r(); > @@ -1480,6 +1479,7 @@ Sized_pluginobj big_endian>::do_add_symbols(Symbol_table* symtab, > osym.put_st_other(vis, 0); > osym.put_st_shndx(shndx); > > + elfcpp::Sym sym(symbuf); > this->symbols_[i] =3D > symtab->add_from_pluginobj(this, name, ver, &s= ym); > } Both fixed the build. Here is the complete patch to fox GCC 11 build. > (Sorry, I don't have GCC 11 available to test.) > > I don't think adding a new constructor is the right solution. > > -cary > > On Sat, Dec 19, 2020 at 6:57 AM H.J. Lu wrote: > > > > GCC 11 failed to build gold at -O0 due to -Wmaybe-uninitialized change > > in GCC 11: > > > > In addition, passing a pointer (or in C++, a reference) to an > > uninitialized object to a const-qualified function argument is also > > diagnosed by this warning. (-Wuninitialized is issued for built-in > > functions known to read the object.) Annotating the function with > > attribute access (none) indicates that the argument isn=E2=80=99t used = to > > access the object and avoids the warning (see Common Function Attribute= s). > > > > Add Sym::Sym(unsigned char*) constructor to support > > > > const int sym_size =3D elfcpp::Elf_sizes::sym_size; > > unsigned char symbuf[sym_size]; > > elfcpp::Sym sym(symbuf); > > > > PR gold/27097 > > elfcpp.h (Sym::Sym(unsigned char*)): New. > > --- > > elfcpp/elfcpp.h | 4 ++++ > > 1 file changed, 4 insertions(+) > > > > diff --git a/elfcpp/elfcpp.h b/elfcpp/elfcpp.h > > index 428ecb8935..5ed9711dfa 100644 > > --- a/elfcpp/elfcpp.h > > +++ b/elfcpp/elfcpp.h > > @@ -1533,6 +1533,10 @@ class Sym > > : p_(reinterpret_cast*>(p)) > > { } > > > > + Sym(unsigned char* p) > > + : p_(reinterpret_cast*>(p)) > > + { } > > + > > template > > Sym(File* file, typename File::Location loc) > > : p_(reinterpret_cast*>( > > -- > > 2.29.2 > > --=20 H.J. --000000000000df8d3d05b6d6dbfb Content-Type: text/x-patch; charset="US-ASCII"; name="pr27097.patch" Content-Disposition: attachment; filename="pr27097.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_kiw51ui20 ZGlmZiAtLWdpdCBhL2dvbGQvaW5jcmVtZW50YWwuY2MgYi9nb2xkL2luY3JlbWVudGFsLmNjCmlu ZGV4IDFmMmFlNWI4N2IuLjUyNWM5MmNmZjYgMTAwNjQ0Ci0tLSBhL2dvbGQvaW5jcmVtZW50YWwu Y2MKKysrIGIvZ29sZC9pbmNyZW1lbnRhbC5jYwpAQCAtMjEyOSw3ICsyMTI5LDYgQEAgU2l6ZWRf cmVsb2JqX2luY3I8c2l6ZSwgYmlnX2VuZGlhbj46OmRvX2FkZF9zeW1ib2xzKAogewogICBjb25z dCBpbnQgc3ltX3NpemUgPSBlbGZjcHA6OkVsZl9zaXplczxzaXplPjo6c3ltX3NpemU7CiAgIHVu c2lnbmVkIGNoYXIgc3ltYnVmW3N5bV9zaXplXTsKLSAgZWxmY3BwOjpTeW08c2l6ZSwgYmlnX2Vu ZGlhbj4gc3ltKHN5bWJ1Zik7CiAgIGVsZmNwcDo6U3ltX3dyaXRlPHNpemUsIGJpZ19lbmRpYW4+ IG9zeW0oc3ltYnVmKTsKIAogICB0eXBlZGVmIHR5cGVuYW1lIGVsZmNwcDo6RWxmX3R5cGVzPHNp emU+OjpFbGZfV1h3b3JkIEVsZl9zaXplX3R5cGU7CkBAIC0yMTk2LDYgKzIxOTUsNyBAQCBTaXpl ZF9yZWxvYmpfaW5jcjxzaXplLCBiaWdfZW5kaWFuPjo6ZG9fYWRkX3N5bWJvbHMoCiAgICAgICBv c3ltLnB1dF9zdF9vdGhlcihnc3ltLmdldF9zdF9vdGhlcigpKTsKICAgICAgIG9zeW0ucHV0X3N0 X3NobmR4KHNobmR4KTsKIAorICAgICAgZWxmY3BwOjpTeW08c2l6ZSwgYmlnX2VuZGlhbj4gc3lt KHN5bWJ1Zik7CiAgICAgICBTeW1ib2wqIHJlcyA9IHN5bXRhYi0+YWRkX2Zyb21faW5jcm9iaih0 aGlzLCBuYW1lLCBOVUxMLCAmc3ltKTsKIAogICAgICAgaWYgKHNobmR4ICE9IGVsZmNwcDo6U0hO X1VOREVGKQpAQCAtMjczMCw3ICsyNzMwLDYgQEAgU2l6ZWRfaW5jcl9keW5vYmo8c2l6ZSwgYmln X2VuZGlhbj46OmRvX2FkZF9zeW1ib2xzKAogewogICBjb25zdCBpbnQgc3ltX3NpemUgPSBlbGZj cHA6OkVsZl9zaXplczxzaXplPjo6c3ltX3NpemU7CiAgIHVuc2lnbmVkIGNoYXIgc3ltYnVmW3N5 bV9zaXplXTsKLSAgZWxmY3BwOjpTeW08c2l6ZSwgYmlnX2VuZGlhbj4gc3ltKHN5bWJ1Zik7CiAg IGVsZmNwcDo6U3ltX3dyaXRlPHNpemUsIGJpZ19lbmRpYW4+IG9zeW0oc3ltYnVmKTsKIAogICB1 bnNpZ25lZCBpbnQgbnN5bXMgPSB0aGlzLT5pbnB1dF9yZWFkZXJfLmdldF9nbG9iYWxfc3ltYm9s X2NvdW50KCk7CkBAIC0yNzk1LDYgKzI3OTQsNyBAQCBTaXplZF9pbmNyX2R5bm9iajxzaXplLCBi aWdfZW5kaWFuPjo6ZG9fYWRkX3N5bWJvbHMoCiAgICAgICBvc3ltLnB1dF9zdF9vdGhlcihnc3lt LmdldF9zdF9vdGhlcigpKTsKICAgICAgIG9zeW0ucHV0X3N0X3NobmR4KHNobmR4KTsKIAorICAg ICAgZWxmY3BwOjpTeW08c2l6ZSwgYmlnX2VuZGlhbj4gc3ltKHN5bWJ1Zik7CiAgICAgICBTaXpl ZF9zeW1ib2w8c2l6ZT4qIHJlcyA9CiAJICBzeW10YWItPmFkZF9mcm9tX2luY3JvYmo8c2l6ZSwg YmlnX2VuZGlhbj4odGhpcywgbmFtZSwgTlVMTCwgJnN5bSk7CiAgICAgICB0aGlzLT5zeW1ib2xz X1tpXSA9IHJlczsKZGlmZiAtLWdpdCBhL2dvbGQvcGx1Z2luLmNjIGIvZ29sZC9wbHVnaW4uY2MK aW5kZXggZmQzNzk1N2U3My4uNWY1ZGE1ZGNlYSAxMDA2NDQKLS0tIGEvZ29sZC9wbHVnaW4uY2MK KysrIGIvZ29sZC9wbHVnaW4uY2MKQEAgLTEzOTcsNyArMTM5Nyw2IEBAIFNpemVkX3BsdWdpbm9i ajxzaXplLCBiaWdfZW5kaWFuPjo6ZG9fYWRkX3N5bWJvbHMoU3ltYm9sX3RhYmxlKiBzeW10YWIs CiB7CiAgIGNvbnN0IGludCBzeW1fc2l6ZSA9IGVsZmNwcDo6RWxmX3NpemVzPHNpemU+OjpzeW1f c2l6ZTsKICAgdW5zaWduZWQgY2hhciBzeW1idWZbc3ltX3NpemVdOwotICBlbGZjcHA6OlN5bTxz aXplLCBiaWdfZW5kaWFuPiBzeW0oc3ltYnVmKTsKICAgZWxmY3BwOjpTeW1fd3JpdGU8c2l6ZSwg YmlnX2VuZGlhbj4gb3N5bShzeW1idWYpOwogCiAgIFBsdWdpbl9yZWNvcmRlciogcmVjb3JkZXIg PSBwYXJhbWV0ZXJzLT5vcHRpb25zKCkucGx1Z2lucygpLT5yZWNvcmRlcigpOwpAQCAtMTQ4MCw2 ICsxNDc5LDcgQEAgU2l6ZWRfcGx1Z2lub2JqPHNpemUsIGJpZ19lbmRpYW4+Ojpkb19hZGRfc3lt Ym9scyhTeW1ib2xfdGFibGUqIHN5bXRhYiwKICAgICAgIG9zeW0ucHV0X3N0X290aGVyKHZpcywg MCk7CiAgICAgICBvc3ltLnB1dF9zdF9zaG5keChzaG5keCk7CiAKKyAgICAgIGVsZmNwcDo6U3lt PHNpemUsIGJpZ19lbmRpYW4+IHN5bShzeW1idWYpOwogICAgICAgdGhpcy0+c3ltYm9sc19baV0g PQogICAgICAgICBzeW10YWItPmFkZF9mcm9tX3BsdWdpbm9iajxzaXplLCBiaWdfZW5kaWFuPih0 aGlzLCBuYW1lLCB2ZXIsICZzeW0pOwogICAgIH0K --000000000000df8d3d05b6d6dbfb--