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