[dpdk-ci] [dpdklab] ABI test failing for openSUSE and Arch Linux
David Marchand
david.marchand at redhat.com
Mon Jun 7 10:33:59 CEST 2021
Trying to do a post mortem.
On Fri, Jun 4, 2021 at 3:53 PM Lincoln Lavoie <lylavoie at iol.unh.edu> wrote:
> The ABI references for all systems were updated this week to the 21.05 release code. The two failures look like places where the interfaces didn't actually change. We do see the failures across multiple patches, which might imply something got merged that caused these changes / failures.
>
> ---------------------------------------------------------------------------------------------
> OpenSUSE
> 2 Removed function symbols not referenced by debug info:
>
> [D] _fini
> [D] _init
This one, I am not sure what was wrong.
This is not a symbol from DPDK itself.
This comes from a libc / toolchain and/or linker change.
>
> ---------------------------------------------------------------------------------------------
> Arch Linux (one example from the output)
>
> Functions changes summary: 0 Removed, 0 Changed, 0 Added function
> Variables changes summary: 0 Removed, 1 Changed (13 filtered out), 0 Added variables
>
> 1 Changed variable:
>
> [C] 'rte_table_ops rte_table_acl_ops' was changed at rte_table_acl.h:60:1:
> type of variable changed:
> type size hasn't changed
> 1 data member change:
> type of 'rte_table_op_lookup f_lookup' changed:
> underlying type 'int (void*, rte_mbuf**, typedef uint64_t, uint64_t*, void**)*' changed:
> in pointed to type 'function type int (void*, rte_mbuf**, typedef uint64_t, uint64_t*, void**)':
> parameter 2 of type 'rte_mbuf**' has sub-type changes:
> in pointed to type 'rte_mbuf*':
> in pointed to type 'struct rte_mbuf' at rte_mbuf_core.h:484:1:
> type size hasn't changed
> 1 data member changes (1 filtered):
> type of 'anonymous data member union {uint32_t packet_type; struct {uint8_t l2_type; uint8_t l3_type; uint8_t l4_type; uint8_t tun_type; union {uint8_t inner_esp_next_proto; struct {uint8_t inner_l2_type; uint8_t inner_l3_type;};}; uint8_t inner_l4_type;};}' changed:
> type size hasn't changed
> 1 data member change:
> type of 'anonymous data member struct {uint8_t l2_type; uint8_t l3_type; uint8_t l4_type; uint8_t tun_type; union {uint8_t inner_esp_next_proto; struct {uint8_t inner_l2_type; uint8_t inner_l3_type;};}; uint8_t inner_l4_type;}' changed:
> type size hasn't changed
> 3 data member changes:
> 'uint8_t inner_l4_type' offset changed from 0 to 24 (in bits) (by +24 bits)
> 'uint8_t l4_type' offset changed from 0 to 8 (in bits) (by +8 bits)
> 'uint8_t tun_type' offset changed from 4 to 12 (in bits) (by +8 bits)
For this one, this is probably due to
https://sourceware.org/bugzilla/show_bug.cgi?id=26684
I had a discussion with Dodji (libabigail maintainer).
Going from dwarf 4 to dwarf 5 is something that is decided at gcc /
binutils level.
Arch Linux recently adopted gcc 11.
https://archlinux.org/packages/core/x86_64/gcc/
If we compare gcc 10 and gcc 11:
- https://gcc.gnu.org/onlinedocs/gcc-10.1.0/gcc/Debugging-Options.html
"Produce debugging information in DWARF format (if that is supported).
The value of version may be either 2, 3, 4 or 5; the default version
for most targets is 4. DWARF Version 5 is only experimental. "
- https://gcc.gnu.org/onlinedocs/gcc-11.1.0/gcc/Debugging-Options.html
"Produce debugging information in DWARF format (if that is supported).
The value of version may be either 2, 3, 4 or 5; the default version
for most targets is 5 (with the exception of VxWorks, TPF and
Darwin/Mac OS X, which default to version 2, and AIX, which defaults
to version 4)."
So the reason, for the issue reported above, could be that the
reference had been generated before upgrading gcc to 11.
I have some trouble finding the actual date for the Arch Linux switch
to gcc 11 (maybe 2021/05/17).
Are you able to correlate this with the ABI reference previous generation?
--
David Marchand
More information about the ci
mailing list