| 90cb8ff8 | 23-Oct-2023 |
David Marchand <david.marchand@redhat.com> |
buildtools/chkincs: check driver specific headers
Only driver headers exported by libraries were checked. Add driver specific headers to the checked headers list.
This reveals a small issue with th
buildtools/chkincs: check driver specific headers
Only driver headers exported by libraries were checked. Add driver specific headers to the checked headers list.
This reveals a small issue with the vmbus driver header as some driver headers rely on it.
Fixes: b232b2aa212b ("buildtools/chkincs: check SDK headers for C++ compatibility") Fixes: 84aaf06d817c ("bus/vmbus: make driver-only headers private")
Signed-off-by: David Marchand <david.marchand@redhat.com> Acked-by: Morten Brørup <mb@smartsharesystems.com>
show more ...
|
| e1d8a879 | 11-Jul-2024 |
David Marchand <david.marchand@redhat.com> |
buildtools: fix build with clang 17 and ASan
ASan included in clang 17 and later suffixes symbols. $ nm build/drivers/libtmp_rte_net_null.a | grep this_pmd 0000000000000000 r this_pmd_name3 00000000
buildtools: fix build with clang 17 and ASan
ASan included in clang 17 and later suffixes symbols. $ nm build/drivers/libtmp_rte_net_null.a | grep this_pmd 0000000000000000 r this_pmd_name3 0000000000000000 n this_pmd_name3.f2cd16678ab09dba8fd23405d8d11fce
This breaks the detection of driver symbols in pmdinfogen which then creates duplicate symbols "_pmd_info" in many drivers. Such duplicate symbols trigger a link error.
$ grep -w _pmd_info build/drivers/rte_net_*.pmd.c build/drivers/rte_net_af_packet.pmd.c:const char _pmd_info[] __attribute__((used)) = "PMD_INFO_STRING= {\"name\": \"\", \"pci_ids\": []}"; build/drivers/rte_net_null.pmd.c:const char _pmd_info[] __attribute__((used)) = "PMD_INFO_STRING= {\"name\": \"\", \"pci_ids\": []}";
A simple reproducer: $ CC=clang meson setup build -Denable_apps=test-pmd -Ddisable_libs=* \ -Denable_drivers=net/null,net/af_packet -Dtests=false \ -Db_lundef=false -Db_sanitize=address
$ ninja -C build
Before this patch, the pmdinfogen script was relying on a symbol name starting with this_pmd_name. On the other hand, what this script needs is symbols whose names are this_pmd_name ## __COUNTER__, see below an example for PCI driver symbols (the same applies to other buses).
$ git grep -w RTE_PMD_EXPORT_NAME drivers/bus/pci/bus_pci_driver.h drivers/bus/pci/bus_pci_driver.h:RTE_PMD_EXPORT_NAME(nm, __COUNTER__) $ git grep -B1 this_pmd_name lib/eal/ lib/eal/include/rte_dev.h-#define RTE_PMD_EXPORT_NAME(name, idx) \ lib/eal/include/rte_dev.h:static const char RTE_PMD_EXPORT_NAME_ARRAY(this_pmd_name, idx) \ $ git grep define.RTE_PMD_EXPORT_NAME_ARRAY lib/eal/include/rte_dev.h lib/eal/include/rte_dev.h:#define RTE_PMD_EXPORT_NAME_ARRAY(n, idx) n##idx[]
Adjust the symbol filter for both ELF and COFF implementations.
Bugzilla ID: 1466 Cc: stable@dpdk.org
Reported-by: Ali Alnubani <alialnu@nvidia.com> Reported-by: Song Jiale <songx.jiale@intel.com> Signed-off-by: David Marchand <david.marchand@redhat.com> Tested-by: Song Jiale <songx.jiale@intel.com>
show more ...
|
| 39846d56 | 05-Mar-2024 |
Robin Jarry <rjarry@redhat.com> |
test: assume C source files are UTF-8 encoded
Instead of relying on the default locale from the environment (LC_ALL), explicitly read the files as utf-8 encoded.
Fixes: 0aeaf75df879 ("test: define
test: assume C source files are UTF-8 encoded
Instead of relying on the default locale from the environment (LC_ALL), explicitly read the files as utf-8 encoded.
Fixes: 0aeaf75df879 ("test: define unit tests suites based on test types") Cc: stable@dpdk.org
Signed-off-by: Robin Jarry <rjarry@redhat.com> Acked-by: Bruce Richardson <bruce.richardson@intel.com> Acked-by: Morten Brørup <mb@smartsharesystems.com> Acked-by: Tyler Retzlaff <roretzla@linux.microsoft.com>
show more ...
|
| 620b2696 | 05-Dec-2023 |
Bruce Richardson <bruce.richardson@intel.com> |
buildtools/cmdline: support optional parameters
Sometimes a user may want to have a command which takes an optional parameter. For commands with an optional constant string, this is no issue, as it
buildtools/cmdline: support optional parameters
Sometimes a user may want to have a command which takes an optional parameter. For commands with an optional constant string, this is no issue, as it can be configured as two separate commands, e.g.
start start tx_first.
However, if we want to have a variable parameter on the command, we hit issues, because variable tokens do not form part of the generated command names used for function and result-struct naming. To avoid duplicate name issues, we add a special syntax to allow the user to indicate that a particular variable parameter should be included in the name. Any leading variable names starting with a "__" will be included in command naming.
This then allows us to have:
start start tx_first start tx_first <UINT16>__n
without hitting any naming conflicts.
Signed-off-by: Bruce Richardson <bruce.richardson@intel.com> Acked-by: Sunil Kumar Kori <skori@marvell.com>
show more ...
|
| fb8a2784 | 05-Dec-2023 |
Bruce Richardson <bruce.richardson@intel.com> |
buildtools/cmdline: add IPv4 and IPv6 address types
Add support for generating cmdline lib code to just match IPv4 addresses or IPv6 addresses, rather than IP addresses in general.
Signed-off-by: B
buildtools/cmdline: add IPv4 and IPv6 address types
Add support for generating cmdline lib code to just match IPv4 addresses or IPv6 addresses, rather than IP addresses in general.
Signed-off-by: Bruce Richardson <bruce.richardson@intel.com> Acked-by: Sunil Kumar Kori <skori@marvell.com>
show more ...
|
| 7cd7850a | 05-Dec-2023 |
Bruce Richardson <bruce.richardson@intel.com> |
buildtools/cmdline: fix IP address initializer
The IP address type should be generic for both IPv4 and IPv6 and so use the cmdline lib's TOKEN_IPADDR_INITIALIZER rather than TOKEN_IPV4_INITIALIZER.
buildtools/cmdline: fix IP address initializer
The IP address type should be generic for both IPv4 and IPv6 and so use the cmdline lib's TOKEN_IPADDR_INITIALIZER rather than TOKEN_IPV4_INITIALIZER.
Fixes: 37666691e9ed ("buildtools: add a tool to generate cmdline boilerplate") Cc: stable@dpdk.org
Signed-off-by: Bruce Richardson <bruce.richardson@intel.com> Acked-by: Sunil Kumar Kori <skori@marvell.com>
show more ...
|