[Pkg-dpdk-devel] Build error of OVS 2.8.1 on new DPDK 17.11

Christian Ehrhardt christian.ehrhardt at canonical.com
Mon Nov 20 10:18:16 UTC 2017


Hmm,
there is [1] but that should be in 2.8.
Maybe things are inverse to what I assumed.

In OVS 2.8.1 this is since [1]:
typedef uint8_t dpdk_port_t;
[...]
dpdk_port_t new_port_id = DPDK_ETH_PORT_ID_INVALID;

So maybe dpdk changed on this?
Yes it did in [3] so OVS was nice to adapt, but needs to change the type now.
I'll test such a patch locally, but in general OVS was not yet
17.11ified so we might have too much to build and test right now.

I'd want to check on that with the OVS people - I don't see a call
scheduled and their IRC meeting is on a regular conflict for me.
Will have to see when to reach out - if one of you has an active
contact let me know, otherwise I might just mail the OVS ML.

I'll ping here once I've tested a patch for this ...

As a side note we might need [2] for DPDK 17.11 there which isn't released yet.
Setting James on CC for that one FYI.


[1]: https://github.com/openvswitch/ovs/commit/bb37956ac0067beaa338282d34bd6654b4cdde7c
[2]: https://github.com/openvswitch/ovs/commit/fc56f5e0f5fa2e185430a2c90df06d06b677bbd5
[3]: http://dpdk.org/browse/dpdk/commit/?id=f8244c6399d9fae6afab6770ae367aef38742ea5

On Mon, Nov 20, 2017 at 9:25 AM, Christian Ehrhardt
<christian.ehrhardt at canonical.com> wrote:
> This might be just "as it is" upstream in both projects but I wanted
> to start a thread FYI so we can take a look.
> Base on that we can decide to carry a bug or not in relation to our
> work on dpdk 17.11.
>
> When building OVS against 17.11 I see the following as part of the full log [1]:
>
> I had no time to read it in detail, but didn't see an pre-existing ifx
> upstream in OVS yet.
> Will answer here once I have more.
>
> libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I.. -I ../include -I
> ./include -I ../lib -I ./lib -Wdate-time -D_FORTIFY_SOURCE=2
> -Wstrict-prototypes -Wall -Wextra -Wno-sign-compare -Wpointer-arith
> -Wformat -Wformat-security -Wswitch-enum -Wunused-parameter
> -Wbad-function-cast -Wcast-align -Wstrict-prototypes
> -Wold-style-definition -Wmissing-prototypes
> -Wmissing-field-initializers -fno-strict-aliasing -Wswitch-bool
> -Wlogical-not-parentheses -Wsizeof-array-argument -Wbool-compare
> -Wshift-negative-value -Wduplicated-cond -mssse3 -include
> /usr/include/x86_64-linux-gnu/dpdk/rte_config.h
> -I/usr/include/x86_64-linux-gnu/dpdk -I/usr/include/dpdk
> -D_FILE_OFFSET_BITS=64 -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=.
> -fstack-protector-strong -Wformat -Werror=format-security -MT
> lib/netdev-dpdk.lo -MD -MP -MF lib/.deps/netdev-dpdk.Tpo -c
> ../lib/netdev-dpdk.c -o lib/netdev-dpdk.o
> ../lib/netdev-dpdk.c: In function ‘netdev_dpdk_process_devargs’:
> ../lib/netdev-dpdk.c:1204:51: warning: passing argument 2 of
> ‘rte_eth_dev_get_port_by_name’ from incompatible pointer type
> [-Wincompatible-pointer-types]
>              || rte_eth_dev_get_port_by_name(name, &new_port_id)
>                                                    ^
> In file included from ../lib/netdev-dpdk.c:33:0:
> /usr/include/dpdk/rte_ethdev.h:4555:1: note: expected ‘uint16_t * {aka
> short unsigned int *}’ but argument is of type ‘dpdk_port_t * {aka
> unsigned char *}’
>  rte_eth_dev_get_port_by_name(const char *name, uint16_t *port_id);
>  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
> ../lib/netdev-dpdk.c:1207:42: warning: passing argument 2 of
> ‘rte_eth_dev_attach’ from incompatible pointer type
> [-Wincompatible-pointer-types]
>          if (!rte_eth_dev_attach(devargs, &new_port_id)) {
>                                           ^
> In file included from ../lib/netdev-dpdk.c:33:0:
> /usr/include/dpdk/rte_ethdev.h:1921:5: note: expected ‘uint16_t * {aka
> short unsigned int *}’ but argument is of type ‘dpdk_port_t * {aka
> unsigned char *}’
>  int rte_eth_dev_attach(const char *devargs, uint16_t *port_id);
>      ^~~~~~~~~~~~~~~~~~
> ../lib/netdev-dpdk.c: In function ‘netdev_dpdk_get_status’:
> ../lib/netdev-dpdk.c:2453:41: error: dereferencing pointer to
> incomplete type ‘struct rte_pci_device’
>                          dev_info.pci_dev->id.vendor_id);
>                                          ^~
> ../lib/netdev-dpdk.c: In function ‘netdev_dpdk_detach’:
> ../lib/netdev-dpdk.c:2531:62: warning: passing argument 2 of
> ‘rte_eth_dev_get_port_by_name’ from incompatible pointer type
> [-Wincompatible-pointer-types]
>                                                               &port_id)) {
>                                                               ^
> In file included from ../lib/netdev-dpdk.c:33:0:
> /usr/include/dpdk/rte_ethdev.h:4555:1: note: expected ‘uint16_t * {aka
> short unsigned int *}’ but argument is of type ‘uint8_t * {aka
> unsigned char *}’
>  rte_eth_dev_get_port_by_name(const char *name, uint16_t *port_id);
>  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
> Makefile:4636: recipe for target 'lib/netdev-dpdk.lo' failed
>
>
> [1]: https://launchpadlibrarian.net/346162848/buildlog_ubuntu-bionic-amd64.openvswitch_2.8.1-0ubuntu2_BUILDING.txt.gz
>
> --
> Christian Ehrhardt
> Software Engineer, Ubuntu Server
> Canonical Ltd



-- 
Christian Ehrhardt
Software Engineer, Ubuntu Server
Canonical Ltd



More information about the Pkg-dpdk-devel mailing list