From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 248BBA0511 for ; Fri, 15 Apr 2022 16:56:26 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 1BE0240696; Fri, 15 Apr 2022 16:56:26 +0200 (CEST) Received: from mail-108-mta178.mxroute.com (mail-108-mta178.mxroute.com [136.175.108.178]) by mails.dpdk.org (Postfix) with ESMTP id 206E14067E for ; Fri, 15 Apr 2022 16:56:22 +0200 (CEST) Received: from filter006.mxroute.com ([140.82.40.27] 140.82.40.27.vultrusercontent.com) (Authenticated sender: mN4UYu2MZsgR) by mail-108-mta178.mxroute.com (ZoneMTA) with ESMTPSA id 1802db98fe0000fe85.002 for (version=TLSv1/SSLv3 cipher=ECDHE-RSA-AES128-GCM-SHA256); Fri, 15 Apr 2022 14:56:17 +0000 X-Zone-Loop: 33b03fb89f1d1895f139c41b88b65ea451f2ece35be0 X-Originating-IP: [140.82.40.27] DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=ashroe.eu; s=x; h=Content-Type:MIME-Version:Message-ID:Date:In-reply-to:Subject:Cc:To: From:References:Sender:Reply-To:Content-Transfer-Encoding:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:List-Id:List-Help:List-Unsubscribe:List-Subscribe: List-Post:List-Owner:List-Archive; bh=+Uv75fpTh3a7Rm8Isd6TOsD0YePRd50eJ1ado218hIE=; b=Et0m1VITrsRL4NPe7DbsvGmaMB 4g4HymbBKxhWJ9yRdYLev5KFW+c0YGRAfemRFwUwqSXZCeJe+UQd5iFWN6mH3i2FkNVJ2GMWB1Uco mkpJbv3CsxqC07z4D2OTsLvjHK7V//UK4DvbP65rDByhKj/zm4DMeZpnCwuuqTeEMQA1ahn5aB2Ux ZQQKzKX6of6pyIw54NKoPlfXtZLG55XNYBPIOnyTMteY4zUpFxhzNqr/O6Rvud+i4M1sVXaIOnVxO /40GDrSFTruNoWc/pHJIP5fcs5q8giR08rnC26LDJMd/TT7NC/xoSzMDfkET5PV/15Fl1WnlwYov4 WDa0fUsQ==; References: <20220306092023.2461466-1-thomas@monjalon.net> <20220308142412.2069408-1-thomas@monjalon.net> <20220308142412.2069408-3-thomas@monjalon.net> User-agent: mu4e 1.4.15; emacs 27.1 From: Ray Kinsella To: Thomas Monjalon Cc: dev@dpdk.org, david.marchand@redhat.com, stable@dpdk.org, Parav Pandit , Xueming Li , Elena Agostini , Ori Kam , Andrew Rybchenko Subject: Re: [PATCH v2 2/2] build: hide local symbols in shared libraries In-reply-to: <20220308142412.2069408-3-thomas@monjalon.net> Date: Fri, 15 Apr 2022 10:56:13 -0400 Message-ID: <8735iepf8y.fsf@mdr78.vserver.site> MIME-Version: 1.0 Content-Type: text/plain X-AuthUser: mdr@ashroe.eu X-BeenThere: stable@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: patches for DPDK stable branches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: stable-bounces@dpdk.org Thomas Monjalon writes: > The symbols which are not listed in the version script > are exported by default. > Adding a local section with a wildcard make non-listed functions > and variables as hidden, as it should be in all version.map files. > > These are the changes done in the shared libraries: > - DF .text Base auxiliary_add_device > - DF .text Base auxiliary_dev_exists > - DF .text Base auxiliary_dev_iterate > - DF .text Base auxiliary_insert_device > - DF .text Base auxiliary_is_ignored_device > - DF .text Base auxiliary_match > - DF .text Base auxiliary_on_scan > - DF .text Base auxiliary_scan > - DO .bss Base auxiliary_bus_logtype > - DO .data Base auxiliary_bus > - DO .bss Base gpu_logtype > > There is no impact on regexdev library. > > Because these local symbols were exported as non-internal > in DPDK 21.11, any change in these functions would break the ABI. > Exception rules are added for these experimental libraries, > so the ABI check will skip them until the next ABI version. > > A check is added to avoid such miss in future. > > Fixes: 1afce3086cf4 ("bus/auxiliary: introduce auxiliary bus") > Fixes: 8b8036a66e3d ("gpudev: introduce GPU device class library") > Cc: stable@dpdk.org Good catch, I see you fixed a few of these recently. > > Signed-off-by: Thomas Monjalon > --- > devtools/check-symbol-maps.sh | 7 +++++++ > devtools/libabigail.abignore | 8 ++++++++ > drivers/bus/auxiliary/version.map | 2 ++ > lib/gpudev/version.map | 2 ++ > lib/regexdev/version.map | 2 ++ > 5 files changed, 21 insertions(+) > > diff --git a/devtools/check-symbol-maps.sh b/devtools/check-symbol-maps.sh > index 5bd290ac97..8266fdf9ea 100755 > --- a/devtools/check-symbol-maps.sh > +++ b/devtools/check-symbol-maps.sh > @@ -53,4 +53,11 @@ if [ -n "$duplicate_symbols" ] ; then > ret=1 > fi > > +local_miss_maps=$(grep -L 'local: \*;' $@) > +if [ -n "$local_miss_maps" ] ; then > + echo "Found maps without local catch-all:" > + echo "$local_miss_maps" > + ret=1 > +fi > + > exit $ret > diff --git a/devtools/libabigail.abignore b/devtools/libabigail.abignore > index 18c11c80c6..c618f20032 100644 > --- a/devtools/libabigail.abignore > +++ b/devtools/libabigail.abignore > @@ -32,3 +32,11 @@ > ; Ignore changes in common mlx5 driver, should be all internal > [suppress_file] > soname_regexp = ^librte_common_mlx5\. > + > +; Ignore visibility fix of local functions in experimental auxiliary driver > +[suppress_file] > + soname_regexp = ^librte_bus_auxiliary\. > + > +; Ignore visibility fix of local functions in experimental gpudev library > +[suppress_file] > + soname_regexp = ^librte_gpudev\. > diff --git a/drivers/bus/auxiliary/version.map b/drivers/bus/auxiliary/version.map > index a52260657c..dc993e84ff 100644 > --- a/drivers/bus/auxiliary/version.map > +++ b/drivers/bus/auxiliary/version.map > @@ -4,4 +4,6 @@ EXPERIMENTAL { > # added in 21.08 > rte_auxiliary_register; > rte_auxiliary_unregister; > + > + local: *; > }; > diff --git a/lib/gpudev/version.map b/lib/gpudev/version.map > index b23e3fd6eb..a2c8ce5759 100644 > --- a/lib/gpudev/version.map > +++ b/lib/gpudev/version.map > @@ -39,4 +39,6 @@ INTERNAL { > rte_gpu_get_by_name; > rte_gpu_notify; > rte_gpu_release; > + > + local: *; > }; > diff --git a/lib/regexdev/version.map b/lib/regexdev/version.map > index 988b909638..3c6e9fffa1 100644 > --- a/lib/regexdev/version.map > +++ b/lib/regexdev/version.map > @@ -26,6 +26,8 @@ EXPERIMENTAL { > rte_regexdev_xstats_get; > rte_regexdev_xstats_names_get; > rte_regexdev_xstats_reset; > + > + local: *; > }; > > INTERNAL { -- Regards, Ray K