[dpdk-dev,pcap] pcap: fix build of all-in-one shared library

Message ID kzlhosux2e.fsf@adaptivemobile.com (mailing list archive)
State Rejected, archived
Headers

Commit Message

stepan Oct. 6, 2014, 11:14 p.m. UTC
  Build of some of the test binaries fails when the following flags are enabled:

CONFIG_RTE_LIBRTE_PMD_PCAP=y
CONFIG_RTE_BUILD_SHARED_LIB=y
CONFIG_RTE_BUILD_COMBINE_LIBS=y

The binarieas are missing symbols from libpcap. This
patch adds the missing '-lpcap' linker flag into the respective Makefiles.

Signed-off-by: stepan <stepan.sojka@adaptivemobile.com>
---
 app/cmdline_test/Makefile | 4 ++++
 app/dump_cfg/Makefile     | 4 ++++
 app/test-acl/Makefile     | 4 ++++
 app/test/Makefile         | 4 ++++
 4 files changed, 16 insertions(+)
  

Comments

Neil Horman Dec. 8, 2014, 2:49 p.m. UTC | #1
On Tue, Oct 07, 2014 at 12:14:04AM +0100, stepan wrote:
> Build of some of the test binaries fails when the following flags are enabled:
> 
> CONFIG_RTE_LIBRTE_PMD_PCAP=y
> CONFIG_RTE_BUILD_SHARED_LIB=y
> CONFIG_RTE_BUILD_COMBINE_LIBS=y
> 
> The binarieas are missing symbols from libpcap. This
> patch adds the missing '-lpcap' linker flag into the respective Makefiles.
> 
> Signed-off-by: stepan <stepan.sojka@adaptivemobile.com>
> 
> ---
> app/cmdline_test/Makefile | 4 ++++
>  app/dump_cfg/Makefile     | 4 ++++
>  app/test-acl/Makefile     | 4 ++++
>  app/test/Makefile         | 4 ++++
>  4 files changed, 16 insertions(+)
> 
> diff --git a/app/cmdline_test/Makefile b/app/cmdline_test/Makefile
> index e9eafd2..ce44fd5 100644
> --- a/app/cmdline_test/Makefile
> +++ b/app/cmdline_test/Makefile
> @@ -47,6 +47,10 @@ SRCS-y += commands.c
>  CFLAGS += -O3
>  CFLAGS += $(WERROR_FLAGS)
>  
> +ifeq ($(CONFIG_RTE_LIBRTE_PMD_PCAP),y)
> +LDFLAGS += -lpcap
> +endif
> +
>  include $(RTE_SDK)/mk/rte.app.mk
>  
>  endif
> diff --git a/app/dump_cfg/Makefile b/app/dump_cfg/Makefile
> index 3257127..513ce59 100644
> --- a/app/dump_cfg/Makefile
> +++ b/app/dump_cfg/Makefile
> @@ -35,6 +35,10 @@ APP = dump_cfg
>  
>  CFLAGS += $(WERROR_FLAGS)
>  
> +ifeq ($(CONFIG_RTE_LIBRTE_PMD_PCAP),y)
> +LDFLAGS += -lpcap
> +endif
> +
>  # all source are stored in SRCS-y
>  
>  SRCS-y := main.c
> diff --git a/app/test-acl/Makefile b/app/test-acl/Makefile
> index 43dfdcb..ea063fd 100644
> --- a/app/test-acl/Makefile
> +++ b/app/test-acl/Makefile
> @@ -37,6 +37,10 @@ APP = testacl
>  
>  CFLAGS += $(WERROR_FLAGS)
>  
> +ifeq ($(CONFIG_RTE_LIBRTE_PMD_PCAP),y)
> +LDFLAGS += -lpcap
> +endif
> +
>  # all source are stored in SRCS-y
>  SRCS-y := main.c
>  
> diff --git a/app/test/Makefile b/app/test/Makefile
> index 6af6d76..e456140 100644
> --- a/app/test/Makefile
> +++ b/app/test/Makefile
> @@ -145,6 +145,10 @@ CFLAGS_test_kni.o += -Wno-deprecated-declarations
>  endif
>  CFLAGS += -D_GNU_SOURCE
>  
> +ifeq ($(CONFIG_RTE_LIBRTE_PMD_PCAP),y)
> +LDFLAGS += -lpcap
> +endif
> +
>  # this application needs libraries first
>  DEPDIRS-y += lib
>  
Acked-by: Neil Horman <nhorman@tuxdriver.com>
  
Thomas Monjalon Dec. 15, 2014, 10:42 p.m. UTC | #2
2014-12-08 09:49, Neil Horman:
> On Tue, Oct 07, 2014 at 12:14:04AM +0100, stepan wrote:
> > Build of some of the test binaries fails when the following flags are enabled:
> > 
> > CONFIG_RTE_LIBRTE_PMD_PCAP=y
> > CONFIG_RTE_BUILD_SHARED_LIB=y
> > CONFIG_RTE_BUILD_COMBINE_LIBS=y
> > 
> > The binarieas are missing symbols from libpcap. This
> > patch adds the missing '-lpcap' linker flag into the respective Makefiles.
> > 
> > Signed-off-by: stepan <stepan.sojka@adaptivemobile.com>
> > 
> > ---
> > app/cmdline_test/Makefile | 4 ++++
> >  app/dump_cfg/Makefile     | 4 ++++
> >  app/test-acl/Makefile     | 4 ++++
> >  app/test/Makefile         | 4 ++++
> >  4 files changed, 16 insertions(+)
> > 
> > diff --git a/app/cmdline_test/Makefile b/app/cmdline_test/Makefile
> > index e9eafd2..ce44fd5 100644
> > --- a/app/cmdline_test/Makefile
> > +++ b/app/cmdline_test/Makefile
> > @@ -47,6 +47,10 @@ SRCS-y += commands.c
> >  CFLAGS += -O3
> >  CFLAGS += $(WERROR_FLAGS)
> >  
> > +ifeq ($(CONFIG_RTE_LIBRTE_PMD_PCAP),y)
> > +LDFLAGS += -lpcap
> > +endif
> > +
> >  include $(RTE_SDK)/mk/rte.app.mk
> >  
> >  endif
> > diff --git a/app/dump_cfg/Makefile b/app/dump_cfg/Makefile
> > index 3257127..513ce59 100644
> > --- a/app/dump_cfg/Makefile
> > +++ b/app/dump_cfg/Makefile
> > @@ -35,6 +35,10 @@ APP = dump_cfg
> >  
> >  CFLAGS += $(WERROR_FLAGS)
> >  
> > +ifeq ($(CONFIG_RTE_LIBRTE_PMD_PCAP),y)
> > +LDFLAGS += -lpcap
> > +endif
> > +
> >  # all source are stored in SRCS-y
> >  
> >  SRCS-y := main.c
> > diff --git a/app/test-acl/Makefile b/app/test-acl/Makefile
> > index 43dfdcb..ea063fd 100644
> > --- a/app/test-acl/Makefile
> > +++ b/app/test-acl/Makefile
> > @@ -37,6 +37,10 @@ APP = testacl
> >  
> >  CFLAGS += $(WERROR_FLAGS)
> >  
> > +ifeq ($(CONFIG_RTE_LIBRTE_PMD_PCAP),y)
> > +LDFLAGS += -lpcap
> > +endif
> > +
> >  # all source are stored in SRCS-y
> >  SRCS-y := main.c
> >  
> > diff --git a/app/test/Makefile b/app/test/Makefile
> > index 6af6d76..e456140 100644
> > --- a/app/test/Makefile
> > +++ b/app/test/Makefile
> > @@ -145,6 +145,10 @@ CFLAGS_test_kni.o += -Wno-deprecated-declarations
> >  endif
> >  CFLAGS += -D_GNU_SOURCE
> >  
> > +ifeq ($(CONFIG_RTE_LIBRTE_PMD_PCAP),y)
> > +LDFLAGS += -lpcap
> > +endif
> > +
> >  # this application needs libraries first
> >  DEPDIRS-y += lib
> >  
> Acked-by: Neil Horman <nhorman@tuxdriver.com>

NAK, it doesn't seem to be the proper fix.
LDFLAGS should be automatically filled in rte.vars.mk.
Will send another proposal.
  

Patch

diff --git a/app/cmdline_test/Makefile b/app/cmdline_test/Makefile
index e9eafd2..ce44fd5 100644
--- a/app/cmdline_test/Makefile
+++ b/app/cmdline_test/Makefile
@@ -47,6 +47,10 @@  SRCS-y += commands.c
 CFLAGS += -O3
 CFLAGS += $(WERROR_FLAGS)
 
+ifeq ($(CONFIG_RTE_LIBRTE_PMD_PCAP),y)
+LDFLAGS += -lpcap
+endif
+
 include $(RTE_SDK)/mk/rte.app.mk
 
 endif
diff --git a/app/dump_cfg/Makefile b/app/dump_cfg/Makefile
index 3257127..513ce59 100644
--- a/app/dump_cfg/Makefile
+++ b/app/dump_cfg/Makefile
@@ -35,6 +35,10 @@  APP = dump_cfg
 
 CFLAGS += $(WERROR_FLAGS)
 
+ifeq ($(CONFIG_RTE_LIBRTE_PMD_PCAP),y)
+LDFLAGS += -lpcap
+endif
+
 # all source are stored in SRCS-y
 
 SRCS-y := main.c
diff --git a/app/test-acl/Makefile b/app/test-acl/Makefile
index 43dfdcb..ea063fd 100644
--- a/app/test-acl/Makefile
+++ b/app/test-acl/Makefile
@@ -37,6 +37,10 @@  APP = testacl
 
 CFLAGS += $(WERROR_FLAGS)
 
+ifeq ($(CONFIG_RTE_LIBRTE_PMD_PCAP),y)
+LDFLAGS += -lpcap
+endif
+
 # all source are stored in SRCS-y
 SRCS-y := main.c
 
diff --git a/app/test/Makefile b/app/test/Makefile
index 6af6d76..e456140 100644
--- a/app/test/Makefile
+++ b/app/test/Makefile
@@ -145,6 +145,10 @@  CFLAGS_test_kni.o += -Wno-deprecated-declarations
 endif
 CFLAGS += -D_GNU_SOURCE
 
+ifeq ($(CONFIG_RTE_LIBRTE_PMD_PCAP),y)
+LDFLAGS += -lpcap
+endif
+
 # this application needs libraries first
 DEPDIRS-y += lib