Hi Hemant, So validate_abi.sh has been somewhat deprecated - it may be removed in future. To run the libabigail abi checks, you need to run the magic command.
DPDK_ABI_REF_DIR=/build/dpdk/reference/ DPDK_ABI_REF_VERSION=v20.02 ./devtools/test-meson-builds.sh DPDK_ABI_REF_DIR - needs an absolute path, for reasons that are still unclear to me. DPDK_ABI_REF_VERSION - you need to use the last DPDK release. Thanks, Ray K On 13/05/2020 15:06, Hemant Agrawal (OSS) wrote: > Hi Ray, > I could not find validate_abi using libabigail.abignore. Am I missing > something. > Though check_abi.sh uses it. > > When I am checking with validate_abi.sh, I still see warnings. > > Regards, > Hemant > >> -----Original Message----- >> From: Hemant Agrawal <hemant.agra...@nxp.com> >> Sent: Wednesday, May 13, 2020 6:58 PM >> To: dev@dpdk.org; david.march...@redhat.com; m...@ashroe.eu >> Cc: Hemant Agrawal <hemant.agra...@nxp.com> >> Subject: [PATCH v3 01/12] common/dpaax: move internal symbols into >> INTERNAL section >> >> This patch moves the internal symbols to INTERNAL sections so that any >> change in them is not reported as ABI breakage. >> >> Signed-off-by: Hemant Agrawal <hemant.agra...@nxp.com> >> --- >> devtools/libabigail.abignore | 3 +++ >> drivers/common/dpaax/dpaa_of.h | 15 +++++++++++++++ >> drivers/common/dpaax/dpaax_iova_table.h | 4 ++++ >> drivers/common/dpaax/rte_common_dpaax_version.map | 2 +- >> 4 files changed, 23 insertions(+), 1 deletion(-) >> >> diff --git a/devtools/libabigail.abignore b/devtools/libabigail.abignore >> index >> c9ee73cb3c..b1488d5549 100644 >> --- a/devtools/libabigail.abignore >> +++ b/devtools/libabigail.abignore >> @@ -48,3 +48,6 @@ >> changed_enumerators = RTE_CRYPTO_AEAD_LIST_END >> [suppress_variable] >> name = rte_crypto_aead_algorithm_strings >> +; Ignore moving DPAAx stable functions to INTERNAL tag [suppress_file] >> + file_name_regexp = ^librte_common_dpaax\. >> diff --git a/drivers/common/dpaax/dpaa_of.h >> b/drivers/common/dpaax/dpaa_of.h index 960b421766..38d91a1afe 100644 >> --- a/drivers/common/dpaax/dpaa_of.h >> +++ b/drivers/common/dpaax/dpaa_of.h >> @@ -24,6 +24,7 @@ >> #include <limits.h> >> #include <rte_common.h> >> #include <dpaa_list.h> >> +#include <rte_compat.h> >> >> #ifndef OF_INIT_DEFAULT_PATH >> #define OF_INIT_DEFAULT_PATH "/proc/device-tree" >> @@ -102,6 +103,7 @@ struct dt_file { >> uint64_t buf[OF_FILE_BUF_MAX >> 3]; >> }; >> >> +__rte_internal >> const struct device_node *of_find_compatible_node( >> const struct device_node *from, >> const char *type __rte_unused, >> @@ -113,32 +115,44 @@ const struct device_node >> *of_find_compatible_node( >> dev_node != NULL; \ >> dev_node = of_find_compatible_node(dev_node, type, >> compatible)) >> >> +__rte_internal >> const void *of_get_property(const struct device_node *from, const char >> *name, >> size_t *lenp) __attribute__((nonnull(2))); >> +__rte_internal >> bool of_device_is_available(const struct device_node *dev_node); >> >> + >> +__rte_internal >> const struct device_node *of_find_node_by_phandle(uint64_t ph); >> >> +__rte_internal >> const struct device_node *of_get_parent(const struct device_node >> *dev_node); >> >> +__rte_internal >> const struct device_node *of_get_next_child(const struct device_node >> *dev_node, >> const struct device_node *prev); >> >> +__rte_internal >> const void *of_get_mac_address(const struct device_node *np); >> >> #define for_each_child_node(parent, child) \ >> for (child = of_get_next_child(parent, NULL); child != NULL; \ >> child = of_get_next_child(parent, child)) >> >> + >> +__rte_internal >> uint32_t of_n_addr_cells(const struct device_node *dev_node); uint32_t >> of_n_size_cells(const struct device_node *dev_node); >> >> +__rte_internal >> const uint32_t *of_get_address(const struct device_node *dev_node, size_t >> idx, >> uint64_t *size, uint32_t *flags); >> >> +__rte_internal >> uint64_t of_translate_address(const struct device_node *dev_node, >> const uint32_t *addr) __attribute__((nonnull)); >> >> +__rte_internal >> bool of_device_is_compatible(const struct device_node *dev_node, >> const char *compatible); >> >> @@ -146,6 +160,7 @@ bool of_device_is_compatible(const struct >> device_node *dev_node, >> * subsystem that is device-tree-dependent. Eg. Qman/Bman, config layers, >> etc. >> * The path should usually be "/proc/device-tree". >> */ >> +__rte_internal >> int of_init_path(const char *dt_path); >> >> /* of_finish() allows a controlled tear-down of the device-tree layer, eg. >> if a >> diff --git a/drivers/common/dpaax/dpaax_iova_table.h >> b/drivers/common/dpaax/dpaax_iova_table.h >> index fc3b9e7a8f..230fba8ba0 100644 >> --- a/drivers/common/dpaax/dpaax_iova_table.h >> +++ b/drivers/common/dpaax/dpaax_iova_table.h >> @@ -61,9 +61,13 @@ extern struct dpaax_iova_table *dpaax_iova_table_p; >> #define DPAAX_MEM_SPLIT_MASK_OFF (DPAAX_MEM_SPLIT - 1) /**< Offset */ >> >> /* APIs exposed */ >> +__rte_internal >> int dpaax_iova_table_populate(void); >> +__rte_internal >> void dpaax_iova_table_depopulate(void); >> +__rte_internal >> int dpaax_iova_table_update(phys_addr_t paddr, void *vaddr, size_t length); >> +__rte_internal >> void dpaax_iova_table_dump(void); >> >> static inline void *dpaax_iova_table_get_va(phys_addr_t paddr) __rte_hot; >> diff --git a/drivers/common/dpaax/rte_common_dpaax_version.map >> b/drivers/common/dpaax/rte_common_dpaax_version.map >> index f72eba761d..ad2b2b3fec 100644 >> --- a/drivers/common/dpaax/rte_common_dpaax_version.map >> +++ b/drivers/common/dpaax/rte_common_dpaax_version.map >> @@ -1,4 +1,4 @@ >> -DPDK_20.0 { >> +INTERNAL { >> global: >> >> dpaax_iova_table_depopulate; >> -- >> 2.17.1 >