[dpdk-dev] [PATCH] mk: fix link to combined library

2014-12-17 Thread Bruce Richardson
On Wed, Dec 17, 2014 at 11:43:51AM +0100, Thomas Monjalon wrote:
> 2014-12-17 10:38, Bruce Richardson:
> > On Wed, Dec 17, 2014 at 12:45:32AM +0100, Thomas Monjalon wrote:
> > > 2014-12-11 02:54, Hiroshi Shimamoto:
> > > > From: Hiroshi Shimamoto 
> > > > 
> > > > The application should be linked to the single combined library in the
> > > > condition that both of CONFIG_RTE_BUILD_COMBINE_LIB and
> > > > CONFIG_RTE_BUILD_SHARED_LIB are enabled.
> > > > 
> > > > The current makefile generates an application that links to each 
> > > > library.
> > > > This patch fixes to link the single library.
> > > > 
> > > > Before
> > > > $ ldd x86_64-ivshmem-linuxapp-gcc/app/test
> > > > linux-vdso.so.1 =>  (0x7fff232a1000)
> > > > librte_distributor.so => not found
> > > > librte_kni.so => not found
> > > > librte_ivshmem.so => not found
> > > > librte_pipeline.so => not found
> > > > librte_table.so => not found
> > > > librte_port.so => not found
> > > > librte_timer.so => not found
> > > > librte_hash.so => not found
> > > > librte_lpm.so => not found
> > > > librte_power.so => not found
> > > > librte_acl.so => not found
> > > > librte_meter.so => not found
> > > > librte_sched.so => not found
> > > > libm.so.6 => /lib64/libm.so.6 (0x7fc63802)
> > > > librt.so.1 => /lib64/librt.so.1 (0x7fc637e18000)
> > > > librte_kvargs.so => not found
> > > > librte_mbuf.so => not found
> > > > librte_ip_frag.so => not found
> > > > libethdev.so => not found
> > > > librte_malloc.so => not found
> > > > librte_mempool.so => not found
> > > > librte_ring.so => not found
> > > > librte_eal.so => not found
> > > > librte_cmdline.so => not found
> > > > librte_cfgfile.so => not found
> > > > librte_pmd_bond.so => not found
> > > > libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x7fc637bfe000)
> > > > libdl.so.2 => /lib64/libdl.so.2 (0x7fc6379fa000)
> > > > libintel_dpdk.so => not found
> > > > libpthread.so.0 => /lib64/libpthread.so.0 (0x7fc6377dd000)
> > > > libc.so.6 => /lib64/libc.so.6 (0x7fc63741c000)
> > > > /lib64/ld-linux-x86-64.so.2 (0x7fc63833)
> > > > 
> > > > After
> > > > $ ldd x86_64-ivshmem-linuxapp-gcc/app/test
> > > > linux-vdso.so.1 =>  (0x7fffb79fe000)
> > > > librt.so.1 => /lib64/librt.so.1 (0x7f0d8a971000)
> > > > libm.so.6 => /lib64/libm.so.6 (0x7f0d8a66f000)
> > > > libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x7f0d8a458000)
> > > > libdl.so.2 => /lib64/libdl.so.2 (0x7f0d8a254000)
> > > > libintel_dpdk.so => not found
> > > > libpthread.so.0 => /lib64/libpthread.so.0 (0x7f0d8a037000)
> > > > libc.so.6 => /lib64/libc.so.6 (0x7f0d89c76000)
> > > > /lib64/ld-linux-x86-64.so.2 (0x7f0d8ab82000)
> > > > 
> > > > Signed-off-by: Hiroshi Shimamoto 
> > > > Reviewed-by: Hayato Momma 
> > > 
> > > It is what I suggested to Sergio:
> > >   http://dpdk.org/ml/archives/dev/2014-December/009116.html
> > > 
> > > Acked-by: Thomas Monjalon 
> > > 
> > > Applied
> > > 
> > > Thanks
> > 
> > None of the example apps are compiling for me today, and git bisect 
> > indicates that
> > this patch is the culprit. I'm investigating, but if flagging it here in 
> > case 
> > someone else finds a fix faster than I do.
> 
> Yes, Marvin already sent a patch:

Yes, so I see, Sergio just pointed it out to me here too! I'll ack that one
for you.

/Bruce

>   http://dpdk.org/dev/patchwork/patch/2049/
> 
> > The error is due to the libraries being missing on the link command, with 
> > the
> > out-of-the-box configuration i.e. individual static libs.
> 
> Sorry, I forgot to test this basic case after applying the patch.
> 
> -- 
> Thomas


[dpdk-dev] [PATCH] mk: fix link to combined library

2014-12-17 Thread Bruce Richardson
On Wed, Dec 17, 2014 at 10:38:16AM +, Bruce Richardson wrote:
> On Wed, Dec 17, 2014 at 12:45:32AM +0100, Thomas Monjalon wrote:
> > 2014-12-11 02:54, Hiroshi Shimamoto:
> > > From: Hiroshi Shimamoto 
> > > 
> > > The application should be linked to the single combined library in the
> > > condition that both of CONFIG_RTE_BUILD_COMBINE_LIB and
> > > CONFIG_RTE_BUILD_SHARED_LIB are enabled.
> > > 
> > > The current makefile generates an application that links to each library.
> > > This patch fixes to link the single library.
> > > 
> > > Before
> > > $ ldd x86_64-ivshmem-linuxapp-gcc/app/test
> > >   linux-vdso.so.1 =>  (0x7fff232a1000)
> > >   librte_distributor.so => not found
> > >   librte_kni.so => not found
> > >   librte_ivshmem.so => not found
> > >   librte_pipeline.so => not found
> > >   librte_table.so => not found
> > >   librte_port.so => not found
> > >   librte_timer.so => not found
> > >   librte_hash.so => not found
> > >   librte_lpm.so => not found
> > >   librte_power.so => not found
> > >   librte_acl.so => not found
> > >   librte_meter.so => not found
> > >   librte_sched.so => not found
> > >   libm.so.6 => /lib64/libm.so.6 (0x7fc63802)
> > >   librt.so.1 => /lib64/librt.so.1 (0x7fc637e18000)
> > >   librte_kvargs.so => not found
> > >   librte_mbuf.so => not found
> > >   librte_ip_frag.so => not found
> > >   libethdev.so => not found
> > >   librte_malloc.so => not found
> > >   librte_mempool.so => not found
> > >   librte_ring.so => not found
> > >   librte_eal.so => not found
> > >   librte_cmdline.so => not found
> > >   librte_cfgfile.so => not found
> > >   librte_pmd_bond.so => not found
> > >   libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x7fc637bfe000)
> > >   libdl.so.2 => /lib64/libdl.so.2 (0x7fc6379fa000)
> > >   libintel_dpdk.so => not found
> > >   libpthread.so.0 => /lib64/libpthread.so.0 (0x7fc6377dd000)
> > >   libc.so.6 => /lib64/libc.so.6 (0x7fc63741c000)
> > >   /lib64/ld-linux-x86-64.so.2 (0x7fc63833)
> > > 
> > > After
> > > $ ldd x86_64-ivshmem-linuxapp-gcc/app/test
> > >   linux-vdso.so.1 =>  (0x7fffb79fe000)
> > >   librt.so.1 => /lib64/librt.so.1 (0x7f0d8a971000)
> > >   libm.so.6 => /lib64/libm.so.6 (0x7f0d8a66f000)
> > >   libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x7f0d8a458000)
> > >   libdl.so.2 => /lib64/libdl.so.2 (0x7f0d8a254000)
> > >   libintel_dpdk.so => not found
> > >   libpthread.so.0 => /lib64/libpthread.so.0 (0x7f0d8a037000)
> > >   libc.so.6 => /lib64/libc.so.6 (0x7f0d89c76000)
> > >   /lib64/ld-linux-x86-64.so.2 (0x7f0d8ab82000)
> > > 
> > > Signed-off-by: Hiroshi Shimamoto 
> > > Reviewed-by: Hayato Momma 
> > 
> > It is what I suggested to Sergio:
> > http://dpdk.org/ml/archives/dev/2014-December/009116.html
> > 
> > Acked-by: Thomas Monjalon 
> > 
> > Applied
> > 
> > Thanks
> > -- 
> > Thomas
> 
> None of the example apps are compiling for me today, and git bisect indicates 
> that
> this patch is the culprit. I'm investigating, but if flagging it here in case 
> someone else finds a fix faster than I do.
> 
> The error is due to the libraries being missing on the link command, with the
> out-of-the-box configuration i.e. individual static libs.
> 
> /Bruce
> 
> make: Entering directory `/home/bruce/dpdk.org/examples/helloworld'
> mkdir -p /home/bruce/dpdk.org/examples/helloworld/build
> make -C /home/bruce/dpdk.org/examples/helloworld/build -f 
> /home/bruce/dpdk.org/examples/helloworld/Makefile \
> S=/home/bruce/dpdk.org/examples/helloworld 
> O=/home/bruce/dpdk.org/examples/helloworld/build 
> SRCDIR=/home/bruce/dpdk.org/examples/helloworld
> gcc -m64 -pthread  -march=native -DRTE_MACHINE_CPUFLAG_SSE 
> -DRTE_MACHINE_CPUFLAG_SSE2 -DRTE_MACHINE_CPUFLAG_SSE3 
> -DRTE_MACHINE_CPUFLAG_SSSE3 -DRTE_MACHINE_CPUFLAG_SSE4_1 
> -DRTE_MACHINE_CPUFLAG_SSE4_2 -DRTE_MACHINE_CPUFLAG_AES 
> -DRTE_MACHINE_CPUFLAG_PCLMULQDQ -DRTE_MACHINE_CPUFLAG_AVX 
> -DRTE_COMPILE_TIME_CPUFLAGS=RTE_CPUFLAG_SSE,RTE_CPUFLAG_SSE2,RTE_CPUFLAG_SSE3,RTE_CPUFLAG_SSSE3,RTE_CPUFLAG_SSE4_1,RTE_CPUFLAG_SSE4_2,RTE_CPUFLAG_AES,RTE_CPUFLAG_PCLMULQDQ,RTE_CPUFLAG_AVX
>   -I/home/bruce/dpdk.org/examples/helloworld/build/include 
> -I/home/bruce/dpdk.org/x86_64-native-linuxapp-gcc/include -include 
> /home/bruce/dpdk.org/x86_64-native-linuxapp-gcc/include/rte_config.h -O3 -W 
> -Wall -Werror -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations 
> -Wold-style-definition -Wpointer-arith -Wcast-align -Wnested-externs 
> -Wcast-qual -Wformat-nonliteral -Wformat-security -Wundef -Wwrite-strings  
> -Wl,-Map=helloworld.map,--cref -o helloworld main.o -Wl,--no-as-needed 
> -Wl,-export-dynamic -L/home/bruce/dpdk.org/examples/helloworld/build/lib 
> -L/home/bruce/dpdk.org/x86_64-native-linuxapp-gcc/lib  
> -L/home/bruce/dpdk.org/x86_64-native-linuxapp-gcc/lib -Wl,--whole-archive 
> -Wl,--start-group -Wl,-lrt -Wl,-lm -Wl,-ldl -Wl,--end-group 
> -Wl,--no-whole-archive
> main.o: In function 

[dpdk-dev] [PATCH] mk: fix link to combined library

2014-12-17 Thread Thomas Monjalon
2014-12-11 02:54, Hiroshi Shimamoto:
> From: Hiroshi Shimamoto 
> 
> The application should be linked to the single combined library in the
> condition that both of CONFIG_RTE_BUILD_COMBINE_LIB and
> CONFIG_RTE_BUILD_SHARED_LIB are enabled.
> 
> The current makefile generates an application that links to each library.
> This patch fixes to link the single library.
> 
> Before
> $ ldd x86_64-ivshmem-linuxapp-gcc/app/test
>   linux-vdso.so.1 =>  (0x7fff232a1000)
>   librte_distributor.so => not found
>   librte_kni.so => not found
>   librte_ivshmem.so => not found
>   librte_pipeline.so => not found
>   librte_table.so => not found
>   librte_port.so => not found
>   librte_timer.so => not found
>   librte_hash.so => not found
>   librte_lpm.so => not found
>   librte_power.so => not found
>   librte_acl.so => not found
>   librte_meter.so => not found
>   librte_sched.so => not found
>   libm.so.6 => /lib64/libm.so.6 (0x7fc63802)
>   librt.so.1 => /lib64/librt.so.1 (0x7fc637e18000)
>   librte_kvargs.so => not found
>   librte_mbuf.so => not found
>   librte_ip_frag.so => not found
>   libethdev.so => not found
>   librte_malloc.so => not found
>   librte_mempool.so => not found
>   librte_ring.so => not found
>   librte_eal.so => not found
>   librte_cmdline.so => not found
>   librte_cfgfile.so => not found
>   librte_pmd_bond.so => not found
>   libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x7fc637bfe000)
>   libdl.so.2 => /lib64/libdl.so.2 (0x7fc6379fa000)
>   libintel_dpdk.so => not found
>   libpthread.so.0 => /lib64/libpthread.so.0 (0x7fc6377dd000)
>   libc.so.6 => /lib64/libc.so.6 (0x7fc63741c000)
>   /lib64/ld-linux-x86-64.so.2 (0x7fc63833)
> 
> After
> $ ldd x86_64-ivshmem-linuxapp-gcc/app/test
>   linux-vdso.so.1 =>  (0x7fffb79fe000)
>   librt.so.1 => /lib64/librt.so.1 (0x7f0d8a971000)
>   libm.so.6 => /lib64/libm.so.6 (0x7f0d8a66f000)
>   libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x7f0d8a458000)
>   libdl.so.2 => /lib64/libdl.so.2 (0x7f0d8a254000)
>   libintel_dpdk.so => not found
>   libpthread.so.0 => /lib64/libpthread.so.0 (0x7f0d8a037000)
>   libc.so.6 => /lib64/libc.so.6 (0x7f0d89c76000)
>   /lib64/ld-linux-x86-64.so.2 (0x7f0d8ab82000)
> 
> Signed-off-by: Hiroshi Shimamoto 
> Reviewed-by: Hayato Momma 

It is what I suggested to Sergio:
http://dpdk.org/ml/archives/dev/2014-December/009116.html

Acked-by: Thomas Monjalon 

Applied

Thanks
-- 
Thomas


[dpdk-dev] [PATCH] mk: fix link to combined library

2014-12-11 Thread Hiroshi Shimamoto
From: Hiroshi Shimamoto 

The application should be linked to the single combined library in the
condition that both of CONFIG_RTE_BUILD_COMBINE_LIB and
CONFIG_RTE_BUILD_SHARED_LIB are enabled.

The current makefile generates an application that links to each library.
This patch fixes to link the single library.

Before
$ ldd x86_64-ivshmem-linuxapp-gcc/app/test
linux-vdso.so.1 =>  (0x7fff232a1000)
librte_distributor.so => not found
librte_kni.so => not found
librte_ivshmem.so => not found
librte_pipeline.so => not found
librte_table.so => not found
librte_port.so => not found
librte_timer.so => not found
librte_hash.so => not found
librte_lpm.so => not found
librte_power.so => not found
librte_acl.so => not found
librte_meter.so => not found
librte_sched.so => not found
libm.so.6 => /lib64/libm.so.6 (0x7fc63802)
librt.so.1 => /lib64/librt.so.1 (0x7fc637e18000)
librte_kvargs.so => not found
librte_mbuf.so => not found
librte_ip_frag.so => not found
libethdev.so => not found
librte_malloc.so => not found
librte_mempool.so => not found
librte_ring.so => not found
librte_eal.so => not found
librte_cmdline.so => not found
librte_cfgfile.so => not found
librte_pmd_bond.so => not found
libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x7fc637bfe000)
libdl.so.2 => /lib64/libdl.so.2 (0x7fc6379fa000)
libintel_dpdk.so => not found
libpthread.so.0 => /lib64/libpthread.so.0 (0x7fc6377dd000)
libc.so.6 => /lib64/libc.so.6 (0x7fc63741c000)
/lib64/ld-linux-x86-64.so.2 (0x7fc63833)

After
$ ldd x86_64-ivshmem-linuxapp-gcc/app/test
linux-vdso.so.1 =>  (0x7fffb79fe000)
librt.so.1 => /lib64/librt.so.1 (0x7f0d8a971000)
libm.so.6 => /lib64/libm.so.6 (0x7f0d8a66f000)
libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x7f0d8a458000)
libdl.so.2 => /lib64/libdl.so.2 (0x7f0d8a254000)
libintel_dpdk.so => not found
libpthread.so.0 => /lib64/libpthread.so.0 (0x7f0d8a037000)
libc.so.6 => /lib64/libc.so.6 (0x7f0d89c76000)
/lib64/ld-linux-x86-64.so.2 (0x7f0d8ab82000)

Signed-off-by: Hiroshi Shimamoto 
Reviewed-by: Hayato Momma 
---
 mk/rte.app.mk | 8 
 1 file changed, 8 insertions(+)

diff --git a/mk/rte.app.mk b/mk/rte.app.mk
index 84ec4df..3782eab 100644
--- a/mk/rte.app.mk
+++ b/mk/rte.app.mk
@@ -61,6 +61,8 @@ ifeq ($(NO_AUTOLIBS),)

 LDLIBS += --whole-archive

+ifeq ($(RTE_BUILD_COMBINE_LIBS),n)
+
 ifeq ($(CONFIG_RTE_LIBRTE_DISTRIBUTOR),y)
 LDLIBS += -lrte_distributor
 endif
@@ -119,8 +121,12 @@ LDLIBS += -lm
 LDLIBS += -lrt
 endif

+endif # ! RTE_BUILD_COMBINE_LIBS
+
 LDLIBS += --start-group

+ifeq ($(RTE_BUILD_COMBINE_LIBS),n)
+
 ifeq ($(CONFIG_RTE_LIBRTE_KVARGS),y)
 LDLIBS += -lrte_kvargs
 endif
@@ -216,6 +222,8 @@ endif

 endif # plugins

+endif # ! RTE_BUILD_COMBINE_LIBS
+
 LDLIBS += $(EXECENV_LDLIBS)

 LDLIBS += --end-group
-- 
1.8.3.1