[dpdk-dev] [PATCH] mk: fix link to combined library
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
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-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
From: Hiroshi ShimamotoThe 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