From patchwork Mon Mar 14 18:13:10 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Giuliano Procida X-Patchwork-Id: 51961 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 605013857C4D for ; Mon, 14 Mar 2022 18:13:26 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 605013857C4D DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1647281606; bh=BhQhpmsW/uv463XOsdbnOnZN477ndTGfDtjH5l+zzDM=; h=Date:Subject:To:List-Id:List-Unsubscribe:List-Archive:List-Help: List-Subscribe:From:Reply-To:Cc:From; b=J8t/nbreLpxFwAZ7naFCno++wOwr5M2LNdUBbNwy1lcSwkQRIV2WVYwIeiewc47Wx NODVaJHT84oujSugeWrVdFIIOT0ODC0zFBeXTnk/42LRBWVJOJs6Ll2ACRBrHm1Hwt 005ly1bl7FFmv5Ir+a3GBIfo1opPTpr9NQNkyH1Q= X-Original-To: libabigail@sourceware.org Delivered-To: libabigail@sourceware.org Received: from mail-ed1-x54a.google.com (mail-ed1-x54a.google.com [IPv6:2a00:1450:4864:20::54a]) by sourceware.org (Postfix) with ESMTPS id A4B4F3858D20 for ; Mon, 14 Mar 2022 18:13:21 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org A4B4F3858D20 Received: by mail-ed1-x54a.google.com with SMTP id b24-20020a50e798000000b0041631767675so9238933edn.23 for ; Mon, 14 Mar 2022 11:13:21 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:date:message-id:mime-version:subject:from:to:cc; bh=BhQhpmsW/uv463XOsdbnOnZN477ndTGfDtjH5l+zzDM=; b=uORITVYpZoc/6jinxyTtXSGRZDtTelIXWU3Lzu88QLDrjEQQM8ueeG+18aJBLl3GMI dlzPNtjosx3TTWwnRwCu1AJa0r5xZ4jlzrFcBTpjBnSqct3gQzfH0Dq7aay+kNmteY0Z rzauf+egs9HBhbJubBu4qFz2XNzOBYjXAnt5qPIFIVvwl6jfu1jDxq7IYWbkC4J9Vr7/ vRsYBxUi63mj8e7n65rt+gJ8z7biQHjaGqXjGDBO4jEMRYutpnfde4oFp6+oGP3Njtuu rNdpaQE/NwexAbsGaB0yozHTz6mb0kTiA5N0CNQh8ZQQxwJ2hBmiPjp7SoGgmIfd/BXT 73vw== X-Gm-Message-State: AOAM531NhXWzvd8X4lvmUwusDblFTDDJH1WhzMWWK7kTvEjac+ASuqUC yrnFeeOAUF4H1AhhBsvdZL4vphKMmUq+px6L1ds2uGJOEKpu5v8lvvMs4K+tMpWVU9zbkvZGkA7 amzfnIPHkny2OdXmwmKKJDDGZJuf/YUcnqwVr1MD5NqWQLnKN/lguos34Tez97syGNsjcS5A= X-Google-Smtp-Source: ABdhPJx68rMlTNjT9jDcojiY8ODTCvnuaSYotKCN/EPzAubrX6KZrUHinJCvnFDG3IkOldtqYt9Eybuv+yfCOQ== X-Received: from tef.lon.corp.google.com ([2a00:79e0:d:210:26a:3b8d:2ee5:1224]) (user=gprocida job=sendgmr) by 2002:a05:6402:520a:b0:418:4d2b:de94 with SMTP id s10-20020a056402520a00b004184d2bde94mr14437776edd.54.1647281599937; Mon, 14 Mar 2022 11:13:19 -0700 (PDT) Date: Mon, 14 Mar 2022 18:13:10 +0000 Message-Id: <20220314181312.3436802-1-gprocida@google.com> Mime-Version: 1.0 X-Mailer: git-send-email 2.35.1.723.g4982287a31-goog Subject: [PATCH 0/2] Bug 28954 - add Linux Kernel symbol namespace support To: libabigail@sourceware.org X-Spam-Status: No, score=-15.3 required=5.0 tests=BAYES_00, DKIMWL_WL_MED, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP, T_SCC_BODY_TEXT_LINE, USER_IN_DEF_DKIM_WL 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: libabigail@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Mailing list of the Libabigail project List-Unsubscribe: , List-Archive: List-Help: List-Subscribe: , X-Patchwork-Original-From: Giuliano Procida via Libabigail From: Giuliano Procida Reply-To: Giuliano Procida Cc: maennich@google.com, kernel-team@android.com Errors-To: libabigail-bounces+patchwork=sourceware.org@sourceware.org Sender: "Libabigail" Hi Dodji. These two patches aim to add kernel symbol namespace support. There are two bits of this that could be debated (and easily changed). A. choice of XML attribute name I've chosen "ns", mostly because "namespace" implies C++ namespace everywhere else. B. choice of representation There are several possible levels of distinction of presence: 1. Non-kernel symbols cannot be exported to a namespace. 2. Kernel symbols can be exported globally and not to namespace. 3. Kernel symbols can be exported to a named namespace. And there is the option of treating the empty namespace name string specially. I've chosen to represent namespace internally as optional and not distinguish between cases 1 and 2. Regards. Giuliano Procida (2): optional: add operator== and operator!= add Linux kernel symbol namespace support include/abg-cxx-compat.h | 16 +++++++++++++ include/abg-ir.h | 9 ++++++++ src/abg-comp-filter.cc | 39 +++++++++++++++++++++++++++++++- src/abg-ir.cc | 27 +++++++++++++++++++++- src/abg-reader.cc | 7 ++++++ src/abg-reporter-priv.cc | 12 ++++++++++ src/abg-symtab-reader.cc | 49 ++++++++++++++++++++++++++++++++++++++++ src/abg-writer.cc | 4 ++++ 8 files changed, 161 insertions(+), 2 deletions(-)