service: clean references to removed symbol
Checks
Commit Message
rte_service_get_id() was removed in v17.11 but the API description
still referenced it and a version node was still present in EAL map.
Fixes: 8edc9aaaf217 ("service: use id in get by name function")
Cc: stable@dpdk.org
Signed-off-by: David Marchand <david.marchand@redhat.com>
---
lib/librte_eal/include/rte_service.h | 5 +----
lib/librte_eal/version.map | 1 -
2 files changed, 1 insertion(+), 5 deletions(-)
Comments
> -----Original Message-----
> From: David Marchand <david.marchand@redhat.com>
> Sent: Wednesday, April 7, 2021 10:07 AM
> To: dev@dpdk.org
> Cc: stable@dpdk.org; Van Haaren, Harry <harry.van.haaren@intel.com>; Ray
> Kinsella <mdr@ashroe.eu>; Neil Horman <nhorman@tuxdriver.com>; Pavan
> Nikhilesh <pbhagavatula@caviumnetworks.com>
> Subject: [PATCH] service: clean references to removed symbol
>
> rte_service_get_id() was removed in v17.11 but the API description
> still referenced it and a version node was still present in EAL map.
>
> Fixes: 8edc9aaaf217 ("service: use id in get by name function")
> Cc: stable@dpdk.org
>
> Signed-off-by: David Marchand <david.marchand@redhat.com>
For rte_service.h doc changes I'm all fine.
For ABI consistency, this removes a function from the DPDK_21 version map that didn't exist in
the shared object itself. I'm not sure if that's an ABI break or not... I see ABI experts on CC,
and will let them comment on that topic.
Reviewed-by: Harry van Haaren <harry.van.haaren@intel.com>
> ---
> lib/librte_eal/include/rte_service.h | 5 +----
> lib/librte_eal/version.map | 1 -
> 2 files changed, 1 insertion(+), 5 deletions(-)
>
> diff --git a/lib/librte_eal/include/rte_service.h
> b/lib/librte_eal/include/rte_service.h
> index ca9950d091..c7d037d862 100644
> --- a/lib/librte_eal/include/rte_service.h
> +++ b/lib/librte_eal/include/rte_service.h
> @@ -47,10 +47,7 @@ extern "C" {
> #define RTE_SERVICE_CAP_MT_SAFE (1 << 0)
>
> /**
> - * Return the number of services registered.
> - *
> - * The number of services registered can be passed to *rte_service_get_by_id*,
> - * enabling the application to retrieve the specification of each service.
> + * Return the number of services registered.
> *
> * @return The number of services registered.
> */
> diff --git a/lib/librte_eal/version.map b/lib/librte_eal/version.map
> index e23745ae6e..0f2a9228b3 100644
> --- a/lib/librte_eal/version.map
> +++ b/lib/librte_eal/version.map
> @@ -159,7 +159,6 @@ DPDK_21 {
> rte_service_component_unregister;
> rte_service_dump;
> rte_service_finalize;
> - rte_service_get_by_id;
> rte_service_get_by_name;
> rte_service_get_count;
> rte_service_get_name;
> --
> 2.23.0
On Thu, Apr 8, 2021 at 2:54 PM Van Haaren, Harry
<harry.van.haaren@intel.com> wrote:
>
> > -----Original Message-----
> > From: David Marchand <david.marchand@redhat.com>
> > Sent: Wednesday, April 7, 2021 10:07 AM
> > To: dev@dpdk.org
> > Cc: stable@dpdk.org; Van Haaren, Harry <harry.van.haaren@intel.com>; Ray
> > Kinsella <mdr@ashroe.eu>; Neil Horman <nhorman@tuxdriver.com>; Pavan
> > Nikhilesh <pbhagavatula@caviumnetworks.com>
> > Subject: [PATCH] service: clean references to removed symbol
> >
> > rte_service_get_id() was removed in v17.11 but the API description
> > still referenced it and a version node was still present in EAL map.
> >
> > Fixes: 8edc9aaaf217 ("service: use id in get by name function")
> > Cc: stable@dpdk.org
> >
> > Signed-off-by: David Marchand <david.marchand@redhat.com>
>
> For rte_service.h doc changes I'm all fine.
>
> For ABI consistency, this removes a function from the DPDK_21 version map that didn't exist in
> the shared object itself. I'm not sure if that's an ABI break or not... I see ABI experts on CC,
> and will let them comment on that topic.
The symbol is not in the API anymore.
Applications can't have a reference to this symbol without a definition.
> -----Original Message-----
> From: David Marchand <david.marchand@redhat.com>
> Sent: Thursday, April 8, 2021 1:58 PM
> To: Van Haaren, Harry <harry.van.haaren@intel.com>
> Cc: dev@dpdk.org; stable@dpdk.org; Ray Kinsella <mdr@ashroe.eu>; Neil Horman
> <nhorman@tuxdriver.com>; Pavan Nikhilesh <pbhagavatula@caviumnetworks.com>
> Subject: Re: [PATCH] service: clean references to removed symbol
>
> On Thu, Apr 8, 2021 at 2:54 PM Van Haaren, Harry
> <harry.van.haaren@intel.com> wrote:
> >
> > > -----Original Message-----
> > > From: David Marchand <david.marchand@redhat.com>
> > > Sent: Wednesday, April 7, 2021 10:07 AM
> > > To: dev@dpdk.org
> > > Cc: stable@dpdk.org; Van Haaren, Harry <harry.van.haaren@intel.com>; Ray
> > > Kinsella <mdr@ashroe.eu>; Neil Horman <nhorman@tuxdriver.com>; Pavan
> > > Nikhilesh <pbhagavatula@caviumnetworks.com>
> > > Subject: [PATCH] service: clean references to removed symbol
> > >
> > > rte_service_get_id() was removed in v17.11 but the API description
> > > still referenced it and a version node was still present in EAL map.
> > >
> > > Fixes: 8edc9aaaf217 ("service: use id in get by name function")
> > > Cc: stable@dpdk.org
> > >
> > > Signed-off-by: David Marchand <david.marchand@redhat.com>
> >
> > For rte_service.h doc changes I'm all fine.
> >
> > For ABI consistency, this removes a function from the DPDK_21 version map that
> didn't exist in
> > the shared object itself. I'm not sure if that's an ABI break or not... I see ABI
> experts on CC,
> > and will let them comment on that topic.
>
> The symbol is not in the API anymore.
> Applications can't have a reference to this symbol without a definition.
Agreed, however I'm not familiar enough with linking/ABI stability to
know if removing a symbol (even when not available in the API) could
affect the resulting shared object's ABI.
If somebody says there's no risk in ABI break, go ahead and merge. -Harry
On Thu, Apr 8, 2021 at 3:08 PM Van Haaren, Harry
<harry.van.haaren@intel.com> wrote:
> > > For rte_service.h doc changes I'm all fine.
> > >
> > > For ABI consistency, this removes a function from the DPDK_21 version map that
> > didn't exist in
> > > the shared object itself. I'm not sure if that's an ABI break or not... I see ABI
> > experts on CC,
> > > and will let them comment on that topic.
> >
> > The symbol is not in the API anymore.
> > Applications can't have a reference to this symbol without a definition.
>
> Agreed, however I'm not familiar enough with linking/ABI stability to
> know if removing a symbol (even when not available in the API) could
> affect the resulting shared object's ABI.
After a discussion with Dodji and looking at binutils, I understand
that the versioning is applied for each symbol found in an elf object.
So at least with binutils, non-existent nodes in a version script are
harmless and have no impact on the generated elf.
08/04/2021 16:04, David Marchand:
> On Thu, Apr 8, 2021 at 3:08 PM Van Haaren, Harry
> <harry.van.haaren@intel.com> wrote:
> > > > For rte_service.h doc changes I'm all fine.
> > > >
> > > > For ABI consistency, this removes a function from the DPDK_21 version map that
> > > didn't exist in
> > > > the shared object itself. I'm not sure if that's an ABI break or not... I see ABI
> > > experts on CC,
> > > > and will let them comment on that topic.
> > >
> > > The symbol is not in the API anymore.
> > > Applications can't have a reference to this symbol without a definition.
> >
> > Agreed, however I'm not familiar enough with linking/ABI stability to
> > know if removing a symbol (even when not available in the API) could
> > affect the resulting shared object's ABI.
>
> After a discussion with Dodji and looking at binutils, I understand
> that the versioning is applied for each symbol found in an elf object.
> So at least with binutils, non-existent nodes in a version script are
> harmless and have no impact on the generated elf.
Yes I don't see how it could break ABI.
Acked-by: Thomas Monjalon <thomas@monjalon.net>
On Wed, Apr 7, 2021 at 11:08 AM David Marchand
<david.marchand@redhat.com> wrote:
>
> rte_service_get_id() was removed in v17.11 but the API description
> still referenced it and a version node was still present in EAL map.
>
> Fixes: 8edc9aaaf217 ("service: use id in get by name function")
> Cc: stable@dpdk.org
>
> Signed-off-by: David Marchand <david.marchand@redhat.com>
Reviewed-by: Harry van Haaren <harry.van.haaren@intel.com>
Acked-by: Thomas Monjalon <thomas@monjalon.net>
Applied, thanks.
@@ -47,10 +47,7 @@ extern "C" {
#define RTE_SERVICE_CAP_MT_SAFE (1 << 0)
/**
- * Return the number of services registered.
- *
- * The number of services registered can be passed to *rte_service_get_by_id*,
- * enabling the application to retrieve the specification of each service.
+ * Return the number of services registered.
*
* @return The number of services registered.
*/
@@ -159,7 +159,6 @@ DPDK_21 {
rte_service_component_unregister;
rte_service_dump;
rte_service_finalize;
- rte_service_get_by_id;
rte_service_get_by_name;
rte_service_get_count;
rte_service_get_name;