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 A1500385B832 for ; Sun, 5 Apr 2020 20:08:41 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org A1500385B832 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 librem (deer0x15.wildebeest.org [172.31.17.151]) (using TLSv1.2 with cipher ADH-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by gnu.wildebeest.org (Postfix) with ESMTPSA id 7636F30278C3 for ; Sun, 5 Apr 2020 22:08:40 +0200 (CEST) Received: by librem (Postfix, from userid 1000) id BC3DBC37BA; Sun, 5 Apr 2020 22:08:18 +0200 (CEST) Date: Sun, 5 Apr 2020 22:08:18 +0200 From: Mark Wielaard To: libabigail@sourceware.org Subject: How to drop all non-global/defined function declarations? Message-ID: <20200405200818.GA16021@wildebeest.org> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="XsQoSWH+UP9D9v3l" Content-Disposition: inline User-Agent: Mutt/1.10.1 (2018-07-13) X-Spam-Status: No, score=-9.9 required=5.0 tests=BAYES_00, JMQ_SPF_NEUTRAL, KAM_DMARC_STATUS, SPF_HELO_NONE, SPF_PASS, TXREP autolearn=no autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on server2.sourceware.org X-BeenThere: libabigail@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Libabigail mailing list List-Unsubscribe: , List-Archive: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 05 Apr 2020 20:08:43 -0000 --XsQoSWH+UP9D9v3l Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Hi, This is somewhat similar to my previous struggle with dropping unused/opaque types from the abi xml file. My ultimate goal is to generate an abi xml file that contains just the variables, functions and types defined/exported by my library. I like to check these into our git repo and so like to keep them as small as possible and not have them change for variable, type or function changes that are internal only and won't be used when checking for abi changes. Attached is an extension of the previous example, now extended with an internal function libfoo_frob which isn't exported, but only used internally. The actual exported functions have been added to a symbol version file. When generating the abidw xml file both the internal function and functions used by the library (free and malloc in this case) are included. The four exported functions (create_foo, destroy_foo, get_foo and set_foo) do have corresponding elf-symbols in the abi xml file. Ideally I'll simply drop any function declaration that doesn't have a corresponding global elf-symbol. But the suppression format doesn't seem to support that. I am able to drop the internal libfoo_frob internal function using: [suppress_function] file_name_not_regexp = foo.h drop = yes But for some reason that doesn't drop the malloc and free function declarations. Also this shouldn't actually work according to the suppress_function drop documentation: Please note that for this property to be effective, the enclosing suppression specification must have at least one of the following properties specified: name_regexp, name, name_regexp, source_location_not_in or source_location_not_regexp. It doesn't list file_name_not_regexp (and source_location_* isn't documentated as a suppress_function property). I assume that is a typo, but now I am confused which properties do/don't work with drop. Is it a bug that malloc and free aren't dropped in this example? And/Or can we get a way to drop any non-exported function declaration (any that doesn't have a corresponding global elf-symbol)? Thanks, Mark --XsQoSWH+UP9D9v3l Content-Type: application/gzip Content-Disposition: attachment; filename="foolib.tar.gz" Content-Transfer-Encoding: base64 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 --XsQoSWH+UP9D9v3l--