net/virtio: fix build errors

Message ID 20190730110406.30007-1-jerinj@marvell.com (mailing list archive)
State Accepted, archived
Headers
Series net/virtio: fix build errors |

Checks

Context Check Description
ci/Intel-compilation success Compilation OK
ci/iol-Compile-Testing success Compile Testing PASS
ci/mellanox-Performance-Testing success Performance Testing PASS
ci/checkpatch success coding style OK

Commit Message

Jerin Jacob Kollanukkaran July 30, 2019, 11:04 a.m. UTC
  From: Jerin Jacob <jerinj@marvell.com>

Add extern to variable declaration to avoid some compiler treating it
as variable definition.

build error log:

lib/librte_pmd_virtio.a(vhost_kernel.o):(.rodata+0x110):
multiple definition of `vhost_msg_strings'
lib/librte_pmd_virtio.a(vhost_user.o):(.data.rel.ro.local+0x0):
first defined here
lib/librte_pmd_virtio.a(virtio_user_dev.o):(.rodata+0xe8):
multiple definition of `vhost_msg_strings'
lib/librte_pmd_virtio.a(vhost_user.o):(.data.rel.ro.local+0x0):
first defined here

Fixes: 33d24d65fe2b ("net/virtio-user: abstract backend operations")

Cc: Jianfeng Tan <jianfeng.tan@intel.com>
Cc: stable@dpdk.org

Signed-off-by: Jerin Jacob <jerinj@marvell.com>
---
 drivers/net/virtio/virtio_user/vhost.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
  

Comments

Maxime Coquelin July 30, 2019, 4:12 p.m. UTC | #1
On 7/30/19 1:04 PM, jerinj@marvell.com wrote:
> From: Jerin Jacob <jerinj@marvell.com>
> 
> Add extern to variable declaration to avoid some compiler treating it
> as variable definition.
> 
> build error log:
> 
> lib/librte_pmd_virtio.a(vhost_kernel.o):(.rodata+0x110):
> multiple definition of `vhost_msg_strings'
> lib/librte_pmd_virtio.a(vhost_user.o):(.data.rel.ro.local+0x0):
> first defined here
> lib/librte_pmd_virtio.a(virtio_user_dev.o):(.rodata+0xe8):
> multiple definition of `vhost_msg_strings'
> lib/librte_pmd_virtio.a(vhost_user.o):(.data.rel.ro.local+0x0):
> first defined here
> 
> Fixes: 33d24d65fe2b ("net/virtio-user: abstract backend operations")
> 
> Cc: Jianfeng Tan <jianfeng.tan@intel.com>
> Cc: stable@dpdk.org
> 
> Signed-off-by: Jerin Jacob <jerinj@marvell.com>
> ---
>  drivers/net/virtio/virtio_user/vhost.h | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/net/virtio/virtio_user/vhost.h b/drivers/net/virtio/virtio_user/vhost.h
> index 55f47036b..1e784e58e 100644
> --- a/drivers/net/virtio/virtio_user/vhost.h
> +++ b/drivers/net/virtio/virtio_user/vhost.h
> @@ -67,7 +67,7 @@ enum vhost_user_request {
>  	VHOST_USER_MAX
>  };
>  
> -const char * const vhost_msg_strings[VHOST_USER_MAX];
> +extern const char * const vhost_msg_strings[VHOST_USER_MAX];
>  
>  struct vhost_memory_region {
>  	uint64_t guest_phys_addr;
> 

Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>

Thanks,
Maxime
  
Thomas Monjalon July 30, 2019, 5:47 p.m. UTC | #2
30/07/2019 18:12, Maxime Coquelin:
> On 7/30/19 1:04 PM, jerinj@marvell.com wrote:
> > From: Jerin Jacob <jerinj@marvell.com>
> > 
> > Add extern to variable declaration to avoid some compiler treating it
> > as variable definition.
> > 
> > build error log:
> > 
> > lib/librte_pmd_virtio.a(vhost_kernel.o):(.rodata+0x110):
> > multiple definition of `vhost_msg_strings'
> > lib/librte_pmd_virtio.a(vhost_user.o):(.data.rel.ro.local+0x0):
> > first defined here
> > lib/librte_pmd_virtio.a(virtio_user_dev.o):(.rodata+0xe8):
> > multiple definition of `vhost_msg_strings'
> > lib/librte_pmd_virtio.a(vhost_user.o):(.data.rel.ro.local+0x0):
> > first defined here
> > 
> > Fixes: 33d24d65fe2b ("net/virtio-user: abstract backend operations")
> > 
> > Cc: Jianfeng Tan <jianfeng.tan@intel.com>
> > Cc: stable@dpdk.org
> > 
> > Signed-off-by: Jerin Jacob <jerinj@marvell.com>
> 
> Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>

Applied, thanks
  

Patch

diff --git a/drivers/net/virtio/virtio_user/vhost.h b/drivers/net/virtio/virtio_user/vhost.h
index 55f47036b..1e784e58e 100644
--- a/drivers/net/virtio/virtio_user/vhost.h
+++ b/drivers/net/virtio/virtio_user/vhost.h
@@ -67,7 +67,7 @@  enum vhost_user_request {
 	VHOST_USER_MAX
 };
 
-const char * const vhost_msg_strings[VHOST_USER_MAX];
+extern const char * const vhost_msg_strings[VHOST_USER_MAX];
 
 struct vhost_memory_region {
 	uint64_t guest_phys_addr;