From patchwork Fri Mar 1 17:24:16 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Dodji Seketeli X-Patchwork-Id: 86663 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id E34723858409 for ; Fri, 1 Mar 2024 17:24:29 +0000 (GMT) X-Original-To: libabigail@sourceware.org Delivered-To: libabigail@sourceware.org Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by sourceware.org (Postfix) with ESMTPS id 496693858C32 for ; Fri, 1 Mar 2024 17:24:23 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 496693858C32 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=redhat.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=redhat.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 496693858C32 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=170.10.129.124 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1709313865; cv=none; b=B77Xd5P05HhmXIl3IPNbWHLSSd02o/ZEUWn1Q0mx85wnT44BMRluS9sZ6sQkDDcZ+EB3rqgHFBMEVl0cxk/qSha5Mi4UFpRoi9LWh1QWYwDzt8Si5FgZBw87UzBZyl9osPhIaUFT1ZEbBhlXGhoOMIG6PzCyhIPWNf4yDe9be8E= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1709313865; c=relaxed/simple; bh=MI1GCamB8IEdsCJzb9eL7BeFVVYPG1BXB4brf9RXlpg=; h=DKIM-Signature:From:To:Subject:Date:Message-ID:MIME-Version; b=RexF+Rn6TMzbIzVTby0Dl8lKSL9EKjJvLuX7xZYHWW5MtIz7TcrJTxp5kGCKThsBkNt82uKe8MHOy3Cy/o+1nV+Sty3nuN6cUlJ+Bhb8b0Z6IAv2hyTnaT3h0omEuEtvbCFQEctGcCZTiRdPLe83A3WRnI45hPBrYjzKqEYAzDc= ARC-Authentication-Results: i=1; server2.sourceware.org DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1709313862; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type; bh=NnGewCCcxEBaJ5tSDLV0ISR1GlvaisTYfZcpaJG/hBo=; b=Ovm1GS7MiAtfk+OZIpntX3ihJ1Er0A1WqtepyPMgpMo1hayOywboY4zxCbmLf0xq/0h+oC 7Sa+KzftGHOCw73/4G0itW/wUWrZJ+XVbahZ/nG3lcormpNjYdb81IBvxNhFPEUYFRKJZE qW4Px4HwwKNcyg3eWk4YRLb49+OzNdA= Received: from mail-oo1-f72.google.com (mail-oo1-f72.google.com [209.85.161.72]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-681-BZVznvwZO8Kl329EOLJHAA-1; Fri, 01 Mar 2024 12:24:21 -0500 X-MC-Unique: BZVznvwZO8Kl329EOLJHAA-1 Received: by mail-oo1-f72.google.com with SMTP id 006d021491bc7-5a037bd2346so2573129eaf.2 for ; Fri, 01 Mar 2024 09:24:21 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1709313860; x=1709918660; h=mime-version:user-agent:message-id:date:organization:subject:cc:to :from:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=NnGewCCcxEBaJ5tSDLV0ISR1GlvaisTYfZcpaJG/hBo=; b=TpRa3rIceaCxWD3sdVgZfSoFik7ipnR2OQWJcjdOyP6Sdq7uS70PTbcmTS4PdNlBry iQXm2uXIP2XCWZ5DK9cWHxDkBM24Uwtd7Y7oBkegi5Zi7Cgyolmsnu1GBq0DbsYDLpgX CTvEDnfMD6ULQMwm6MQ7HdB639kpJcUcemLQnZS9h+oGQn/5T1Dy6RaSSBH5Bz9QijMA 3ONTlXt0RmnzDsjBc6ZuIQ7ViZie2q+nmVQPMLIp8vfn4mnaOrgzyAYrrSNnEsiNof5C Ep7atIU26d+S+9fFTqWx5S9vPIV2E7AOrvhWM5Lno4kDaJEn6CzbGvpwplUTJ2gz+rGJ MBkw== X-Gm-Message-State: AOJu0YxRjbP4hKxVUNioNUJ/xmeq3KPgpqureBvL6jz6vbPPk6wm9Lts bCD9Ko2mBBcGIVx8T1pt+dZWEfmq1brbLOgcXdqcSn4tf7k+JtPHU2iNn1K191FkLXQQgylQcJv PKzlYpkNrcqf+oo+88YXBfFJH8qnh/d2TXQzbKiEIJy++y1zGwV9tqdBgS95K5NqM2w== X-Received: by 2002:a05:6358:7e99:b0:178:75b1:c403 with SMTP id o25-20020a0563587e9900b0017875b1c403mr3037519rwn.9.1709313859628; Fri, 01 Mar 2024 09:24:19 -0800 (PST) X-Google-Smtp-Source: AGHT+IH9vafNfuRGX9sOybGex4CAvfdVWfVY9XNL9Y3kgAabWu1qfEohu/xGwmnAx9zj2DYUsBWHIg== X-Received: by 2002:a05:6358:7e99:b0:178:75b1:c403 with SMTP id o25-20020a0563587e9900b0017875b1c403mr3037453rwn.9.1709313858461; Fri, 01 Mar 2024 09:24:18 -0800 (PST) Received: from localhost (88-120-130-27.subs.proxad.net. [88.120.130.27]) by smtp.gmail.com with ESMTPSA id ny4-20020a056214398400b0068fe4669e71sm2059289qvb.91.2024.03.01.09.24.18 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 01 Mar 2024 09:24:18 -0800 (PST) Received: by localhost (Postfix, from userid 1000) id 558D05071022; Fri, 1 Mar 2024 18:24:16 +0100 (CET) From: Dodji Seketeli To: libabigail@sourceware.org Cc: dodji@redhat.com Subject: [PATCH] ir: Use linkage name to sort virtual function members Organization: Red Hat / France X-Operating-System: AlmaLinux 9.3 X-URL: http://www.redhat.com Date: Fri, 01 Mar 2024 18:24:16 +0100 Message-ID: <87il257tmn.fsf@redhat.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.2 (gnu/linux) MIME-Version: 1.0 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com X-Spam-Status: No, score=-12.1 required=5.0 tests=BAYES_00, DKIMWL_WL_HIGH, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2, SPF_HELO_NONE, SPF_NONE, TXREP, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org X-BeenThere: libabigail@sourceware.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Mailing list of the Libabigail project List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: libabigail-bounces+patchwork=sourceware.org@sourceware.org Hello, There is some instability in the abixml output whenever two virtual member functions have the same vtable offset and different mangling name. This patch takes the mangling into account. * src/abg-ir.cc (virtual_member_function_less_than::operator()): Take the linkage name into account during sorting before taking into account the presence of elf symbols. * tests/data/test-read-dwarf/test12-pr18844.so.abi: Adjust. * tests/data/test-read-dwarf/test9-pr18818-clang.so.abi: Adjust. Signed-off-by: Dodji Seketeli Applying to the master branch --- src/abg-ir.cc | 9 ++++----- tests/data/test-read-dwarf/test12-pr18844.so.abi | 12 ++++++------ .../data/test-read-dwarf/test9-pr18818-clang.so.abi | 4 ++-- 3 files changed, 12 insertions(+), 13 deletions(-) diff --git a/src/abg-ir.cc b/src/abg-ir.cc index fcacc382..d3fbafb4 100644 --- a/src/abg-ir.cc +++ b/src/abg-ir.cc @@ -25006,6 +25006,10 @@ struct virtual_member_function_less_than if (f_offset != s_offset) return f_offset < s_offset; string fn, sn; + // Try the linkage names (important for destructors). + fn = f.get_linkage_name(); + sn = s.get_linkage_name(); + if (fn != sn) return fn < sn; // If the functions have symbols, then compare their symbol-id // string. @@ -25019,11 +25023,6 @@ struct virtual_member_function_less_than if (fn != sn) return fn < sn; } - // Try the linkage names (important for destructors). - fn = f.get_linkage_name(); - sn = s.get_linkage_name(); - if (fn != sn) return fn < sn; - // None of the functions have symbols or linkage names that // distinguish them, so compare their pretty representation. fn = f.get_pretty_representation(); diff --git a/tests/data/test-read-dwarf/test12-pr18844.so.abi b/tests/data/test-read-dwarf/test12-pr18844.so.abi index 8d95aa18..25c649ac 100644 --- a/tests/data/test-read-dwarf/test12-pr18844.so.abi +++ b/tests/data/test-read-dwarf/test12-pr18844.so.abi @@ -25632,18 +25632,18 @@ - - - - - - + + + + + + diff --git a/tests/data/test-read-dwarf/test9-pr18818-clang.so.abi b/tests/data/test-read-dwarf/test9-pr18818-clang.so.abi index 94d766c5..a7ee1ef3 100644 --- a/tests/data/test-read-dwarf/test9-pr18818-clang.so.abi +++ b/tests/data/test-read-dwarf/test9-pr18818-clang.so.abi @@ -4804,13 +4804,13 @@ - + - +