Hi, Thomas I tested(See below) this patch locally and it can suppress this error(github build: failed). Is the difference in CI results from patchwork due to different versions of abidiff? My abidiff version: [root@localhost dpdk.chc1]# abidiff --version abidiff: 1.6.0 There is currently no version 2.6.0 abidiff available in my local environment...
The following is the testing process and results: ==========When not adding the [suppress_type] field========== [root@localhost dpdk.chc1]# abidiff --suppr ./devtools/libabigail.abignore --no-added-syms --headers-dir1 /tmp/v24.11/build-gcc-shared/usr/local/include --headers-dir2 ./build-gcc-shared/install/usr/local/include /tmp/v24.11/build-gcc-shared/usr/local/lib64/librte_graph.so.25.0 ./build-gcc-shared/install/usr/local/lib64/librte_graph.so.25.1 Functions changes summary: 0 Removed, 1 Changed (5 filtered out), 0 Added functions Variables changes summary: 0 Removed, 0 Changed, 0 Added variable 1 function with some indirect sub-type change: [C]'function rte_node_t __rte_node_register(const rte_node_register*)' at node.c:58:1 has some indirect sub-type changes: parameter 1 of type 'const rte_node_register*' has sub-type changes: in pointed to type 'const rte_node_register': in unqualified underlying type 'struct rte_node_register' at rte_graph.h:482:1: type size hasn't changed 1 data member changes (2 filtered): type of 'rte_node_fini_t rte_node_register::fini' changed: underlying type 'void (const rte_graph*, rte_node*)*' changed: in pointed to type 'function type void (const rte_graph*, rte_node*)': parameter 2 of type 'rte_node*' has sub-type changes: in pointed to type 'struct rte_node' at rte_graph_worker_common.h:92:1: type size hasn't changed no data member change (1 filtered); 1 data member change: anonymous data member at offset 1536 (in bits) changed from: union {struct {unsigned int lcore_id; uint64_t total_sched_objs; uint64_t total_sched_fail;} dispatch;} to: union {struct {unsigned int lcore_id; uint64_t total_sched_objs; uint64_t total_sched_fail; rte_graph* graph;} dispatch;} ==========When adding the [suppress_type] field========== root@localhost devtools]# cat libabigail.abignore ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; Core suppression rules: DO NOT TOUCH ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; [suppress_function] symbol_version = EXPERIMENTAL [suppress_variable] symbol_version = EXPERIMENTAL [suppress_function] symbol_version = INTERNAL [suppress_variable] symbol_version = INTERNAL ; Ignore generated PMD information strings [suppress_variable] name_regexp = _pmd_info$ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; Special rules to skip libraries ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; ; This is not a libabigail rule (see check-abi.sh). ; This is used for driver removal and other special cases like mlx glue libs. ; ; SKIP_LIBRARY=librte_common_mlx5_glue ; SKIP_LIBRARY=librte_net_mlx4_glue ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; Experimental APIs exceptions ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; Temporary exceptions till next major ABI version ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; [suppress_type] name = rte_node has_size_change = no has_data_member_inserted_between = {offset_of(total_sched_fail), offset_of(xstat_off)} [root@localhost dpdk.chc1]# abidiff --suppr ./devtools/libabigail.abignore --no-added-syms --headers-dir1 /tmp/v24.11/build-gcc-shared/usr/local/include --headers-dir2 ./build-gcc-shared/install/usr/local/include /tmp/v24.11/build-gcc-shared/usr/local/lib64/librte_graph.so.25.0 ./build-gcc-shared/install/usr/local/lib64/librte_graph.so.25.1 Functions changes summary: 0 Removed, 0 Changed (6 filtered out), 0 Added functions Variables changes summary: 0 Removed, 0 Changed, 0 Added variable