On Tue, Mar 31, 2020 at 7:05 PM Ananyev, Konstantin
<konstantin.anan...@intel.com> wrote:
>
> Hi everyone,
>
> Have a question regarding validate-abi.sh.
> It complains on the following changes with that patch:
>
> @@ -111,11 +129,21 @@ struct rte_ring {
>         char pad0 __rte_cache_aligned; /**< empty cache line */
>
>         /** Ring producer status. */
> -       struct rte_ring_headtail prod __rte_cache_aligned;
> +       RTE_STD_C11
> +       union {
> +               struct rte_ring_headtail prod;
> +               struct rte_ring_rts_headtail rts_prod;
> +       }  __rte_cache_aligned;
> +
>         char pad1 __rte_cache_aligned; /**< empty cache line */
>
>         /** Ring consumer status. */
> -       struct rte_ring_headtail cons __rte_cache_aligned;
> +       RTE_STD_C11
> +       union {
> +               struct rte_ring_headtail cons;
> +               struct rte_ring_rts_headtail rts_cons;
> +       }  __rte_cache_aligned;
> +
>
> Complaints:
> rte_ring.h
> [−] struct rte_ring  2
>
> 1
> Change: Field cons has been removed from this type.
> Effect:    Applications will access incorrect memory when attempting to 
> access this field.
> 2
> Change: Field prod has been removed from this type.
> Effect:    Applications will access incorrect memory when attempting to 
> access this field.
>
> From my perspective it looks false-positive:
> *prod* and *cons* fields are still there,
> their format, size and offset within rte_ring remain the same.
> Is that some limitation with the tool, or am I missing something here?

- Side note, we have build failures with clang and ARM jobs:
https://travis-ci.com/github/ovsrobot/dpdk/builds/157277423


- We switched to libabigail called from devtools/check-abi.sh which
you can run locally
(https://doc.dpdk.org/guides/contributing/patches.html?highlight=abi#checking-abi-compatibility).
Or you can count on Aaron's robot to do this check in Travis.

It reported a warning on those fields:
https://travis-ci.com/github/ovsrobot/dpdk/jobs/310689008#L2380
I understand this as a false positive too.

It seems similar to the bz I opened about fields moved to anonymous
constructs: https://sourceware.org/bugzilla/show_bug.cgi?id=25661
Cc: Dodji.


For the time being, you can waive this by adding a rule in
devtools/libabigail.abignore.

-- 
David Marchand

Reply via email to