From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from vmicros1.altlinux.org (vmicros1.altlinux.org [194.107.17.57]) by sourceware.org (Postfix) with ESMTP id E0D33385843D for ; Mon, 8 Nov 2021 10:02:29 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org E0D33385843D Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=altlinux.org Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=altlinux.org Received: from mua.local.altlinux.org (mua.local.altlinux.org [192.168.1.14]) by vmicros1.altlinux.org (Postfix) with ESMTP id B1A4272C8B8 for ; Mon, 8 Nov 2021 13:02:28 +0300 (MSK) Received: by mua.local.altlinux.org (Postfix, from userid 508) id A631A7CFBAB; Mon, 8 Nov 2021 13:02:28 +0300 (MSK) Date: Mon, 8 Nov 2021 13:02:28 +0300 From: "Dmitry V. Levin" To: elfutils-devel@sourceware.org Subject: Re: [PATCH v2] Improve building with LTO Message-ID: <20211108100228.GC27916@altlinux.org> References: <20210214235718.7654b5f1.alex.miller@gmx.de> <20210218033856.18053044.alex.miller@gmx.de> <20210828093143.GA720@altlinux.org> <20211104112320.GA732@altlinux.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: X-Spam-Status: No, score=-6.6 required=5.0 tests=BAYES_00, KAM_DMARC_STATUS, SPF_HELO_NONE, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on server2.sourceware.org X-BeenThere: elfutils-devel@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Elfutils-devel mailing list List-Unsubscribe: , List-Archive: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 08 Nov 2021 10:02:32 -0000 Hi Mark, On Thu, Nov 04, 2021 at 01:12:29PM +0100, Mark Wielaard wrote: > Hi Dmitry, > > On Thu, 2021-11-04 at 14:23 +0300, Dmitry V. Levin wrote: > > On Sat, Aug 28, 2021 at 12:31:43PM +0300, Dmitry V. Levin wrote: > > > On Thu, Feb 18, 2021 at 03:38:56AM +0100, Alexander Miller via > > > Elfutils-devel wrote: > > > > From: Alexander Miller > > > > > > > > Use symver attribute for symbol versioning instead of .symver > > > > assembler directive when available. Convert to use double @ > > > > syntax > > > > for default version in all cases (required when using the > > > > attribute). > > > > > > > > Add the attributes externally_visible, no_reorder if available > > > > when > > > > using assembler directives to improve the situation for < gcc-10. > > > > This is not 100% reliable, though; -flto-partition=none may still > > > > be > > > > needed in some cases. > > > > > > > > Note that -Wno-error=stack-usage= is still needed to build with > > > > LTO. > > > > > > > > Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=24498 > > > > Signed-off-by: Alexander Miller > > > > --- > > > > lib/ChangeLog | 13 +++++++ > > > > lib/eu-config.h | 65 +++++++++++++++++++++++++++- > > > > ------ > > > > libdw/ChangeLog | 11 ++++++ > > > > libdw/dwarf_aggregate_size.c | 4 +-- > > > > libdw/dwarf_arrayorder.c | 2 +- > > > > libdw/dwarf_bitoffset.c | 2 +- > > > > libdw/dwarf_bitsize.c | 2 +- > > > > libdw/dwarf_bytesize.c | 2 +- > > > > libdw/dwarf_decl_column.c | 2 +- > > > > libdw/dwarf_decl_file.c | 2 +- > > > > libdw/dwarf_decl_line.c | 2 +- > > > > libdw/dwarf_srclang.c | 4 +-- > > > > libdwelf/ChangeLog | 5 +++ > > > > libdwelf/dwelf_elf_begin.c | 2 +- > > > > libdwfl/ChangeLog | 7 ++++ > > > > libdwfl/core-file.c | 4 +-- > > > > libdwfl/dwfl_module_build_id.c | 4 +-- > > > > libdwfl/dwfl_report_elf.c | 4 +-- > > > > 18 files changed, 107 insertions(+), 30 deletions(-) > > > > > > ping? > > > > FWiW, I applied this patch in ALT's elfutils package about 2 months > > ago. > > Thanks to -Wstack-usage fixes merged, it no longer requires > > -Wno-error=stack-usage= to build with LTO. > > Thanks. This patch was indeed one reason I kept postponing the release, > because I didn't have have time to properly review it. > > Which gcc versions have you tried this against (with/without -flto?) I tested with gcc10 and gcc11. I could try older versions, although I didn't feel that necessary. > I admit I am still a bit nervous about the switch away from @@@ to just > @ and @@. I was secretly hoping gcc would add @@@ support to the symver > attribute. But that doesn't seem to be happening, and even if it did, > it would be gcc 12+ only. So maybe we can include it for this release > and just tell people they may keep the pieces if they use -flto. But it https://sourceware.org/bugzilla/show_bug.cgi?id=27367 will likely strike those who would build elfutils with -flto using gcc11+. > does also impact symbol versioning for non-lto builds, so I am still a > little hesitant. I'll try to do some tests to make sure things look ok > with different gcc versions. What do you mean by "it does also impact symbol versioning for non-lto builds"? The code for non-lto builds changes, but the versioning should remain the same, shouldn't it? -- ldv