DPDK patches and discussions
 help / color / mirror / Atom feed
* [dpdk-dev] [PATCH] mk: fix link to combined library
@ 2014-12-11  2:54 Hiroshi Shimamoto
  2014-12-16 23:45 ` Thomas Monjalon
  0 siblings, 1 reply; 7+ messages in thread
From: Hiroshi Shimamoto @ 2014-12-11  2:54 UTC (permalink / raw)
  To: dev; +Cc: Hayato Momma

From: Hiroshi Shimamoto <h-shimamoto@ct.jp.nec.com>

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 =>  (0x00007fff232a1000)
	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 (0x00007fc638020000)
	librt.so.1 => /lib64/librt.so.1 (0x00007fc637e18000)
	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 (0x00007fc637bfe000)
	libdl.so.2 => /lib64/libdl.so.2 (0x00007fc6379fa000)
	libintel_dpdk.so => not found
	libpthread.so.0 => /lib64/libpthread.so.0 (0x00007fc6377dd000)
	libc.so.6 => /lib64/libc.so.6 (0x00007fc63741c000)
	/lib64/ld-linux-x86-64.so.2 (0x00007fc638330000)

After
$ ldd x86_64-ivshmem-linuxapp-gcc/app/test
	linux-vdso.so.1 =>  (0x00007fffb79fe000)
	librt.so.1 => /lib64/librt.so.1 (0x00007f0d8a971000)
	libm.so.6 => /lib64/libm.so.6 (0x00007f0d8a66f000)
	libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007f0d8a458000)
	libdl.so.2 => /lib64/libdl.so.2 (0x00007f0d8a254000)
	libintel_dpdk.so => not found
	libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f0d8a037000)
	libc.so.6 => /lib64/libc.so.6 (0x00007f0d89c76000)
	/lib64/ld-linux-x86-64.so.2 (0x00007f0d8ab82000)

Signed-off-by: Hiroshi Shimamoto <h-shimamoto@ct.jp.nec.com>
Reviewed-by: Hayato Momma <h-momma@ce.jp.nec.com>
---
 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

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [dpdk-dev] [PATCH] mk: fix link to combined library
  2014-12-11  2:54 [dpdk-dev] [PATCH] mk: fix link to combined library Hiroshi Shimamoto
@ 2014-12-16 23:45 ` Thomas Monjalon
  2014-12-17 10:38   ` Bruce Richardson
  0 siblings, 1 reply; 7+ messages in thread
From: Thomas Monjalon @ 2014-12-16 23:45 UTC (permalink / raw)
  To: Hiroshi Shimamoto; +Cc: dev, Hayato Momma

2014-12-11 02:54, Hiroshi Shimamoto:
> From: Hiroshi Shimamoto <h-shimamoto@ct.jp.nec.com>
> 
> 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 =>  (0x00007fff232a1000)
> 	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 (0x00007fc638020000)
> 	librt.so.1 => /lib64/librt.so.1 (0x00007fc637e18000)
> 	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 (0x00007fc637bfe000)
> 	libdl.so.2 => /lib64/libdl.so.2 (0x00007fc6379fa000)
> 	libintel_dpdk.so => not found
> 	libpthread.so.0 => /lib64/libpthread.so.0 (0x00007fc6377dd000)
> 	libc.so.6 => /lib64/libc.so.6 (0x00007fc63741c000)
> 	/lib64/ld-linux-x86-64.so.2 (0x00007fc638330000)
> 
> After
> $ ldd x86_64-ivshmem-linuxapp-gcc/app/test
> 	linux-vdso.so.1 =>  (0x00007fffb79fe000)
> 	librt.so.1 => /lib64/librt.so.1 (0x00007f0d8a971000)
> 	libm.so.6 => /lib64/libm.so.6 (0x00007f0d8a66f000)
> 	libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007f0d8a458000)
> 	libdl.so.2 => /lib64/libdl.so.2 (0x00007f0d8a254000)
> 	libintel_dpdk.so => not found
> 	libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f0d8a037000)
> 	libc.so.6 => /lib64/libc.so.6 (0x00007f0d89c76000)
> 	/lib64/ld-linux-x86-64.so.2 (0x00007f0d8ab82000)
> 
> Signed-off-by: Hiroshi Shimamoto <h-shimamoto@ct.jp.nec.com>
> Reviewed-by: Hayato Momma <h-momma@ce.jp.nec.com>

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

Acked-by: Thomas Monjalon <thomas.monjalon@6wind.com>

Applied

Thanks
-- 
Thomas

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [dpdk-dev] [PATCH] mk: fix link to combined library
  2014-12-16 23:45 ` Thomas Monjalon
@ 2014-12-17 10:38   ` Bruce Richardson
  2014-12-17 10:43     ` Bruce Richardson
  2014-12-17 10:43     ` Thomas Monjalon
  0 siblings, 2 replies; 7+ messages in thread
From: Bruce Richardson @ 2014-12-17 10:38 UTC (permalink / raw)
  To: Thomas Monjalon; +Cc: dev, Hayato Momma

On Wed, Dec 17, 2014 at 12:45:32AM +0100, Thomas Monjalon wrote:
> 2014-12-11 02:54, Hiroshi Shimamoto:
> > From: Hiroshi Shimamoto <h-shimamoto@ct.jp.nec.com>
> > 
> > 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 =>  (0x00007fff232a1000)
> > 	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 (0x00007fc638020000)
> > 	librt.so.1 => /lib64/librt.so.1 (0x00007fc637e18000)
> > 	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 (0x00007fc637bfe000)
> > 	libdl.so.2 => /lib64/libdl.so.2 (0x00007fc6379fa000)
> > 	libintel_dpdk.so => not found
> > 	libpthread.so.0 => /lib64/libpthread.so.0 (0x00007fc6377dd000)
> > 	libc.so.6 => /lib64/libc.so.6 (0x00007fc63741c000)
> > 	/lib64/ld-linux-x86-64.so.2 (0x00007fc638330000)
> > 
> > After
> > $ ldd x86_64-ivshmem-linuxapp-gcc/app/test
> > 	linux-vdso.so.1 =>  (0x00007fffb79fe000)
> > 	librt.so.1 => /lib64/librt.so.1 (0x00007f0d8a971000)
> > 	libm.so.6 => /lib64/libm.so.6 (0x00007f0d8a66f000)
> > 	libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007f0d8a458000)
> > 	libdl.so.2 => /lib64/libdl.so.2 (0x00007f0d8a254000)
> > 	libintel_dpdk.so => not found
> > 	libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f0d8a037000)
> > 	libc.so.6 => /lib64/libc.so.6 (0x00007f0d89c76000)
> > 	/lib64/ld-linux-x86-64.so.2 (0x00007f0d8ab82000)
> > 
> > Signed-off-by: Hiroshi Shimamoto <h-shimamoto@ct.jp.nec.com>
> > Reviewed-by: Hayato Momma <h-momma@ce.jp.nec.com>
> 
> It is what I suggested to Sergio:
> 	http://dpdk.org/ml/archives/dev/2014-December/009116.html
> 
> Acked-by: Thomas Monjalon <thomas.monjalon@6wind.com>
> 
> 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 `rte_lcore_id':
/home/bruce/dpdk.org/x86_64-native-linuxapp-gcc/include/rte_lcore.h:85: undefined reference to `per_lcore__lcore_id'
main.o: In function `main':
/home/bruce/dpdk.org/examples/helloworld/main.c:64: undefined reference to `rte_eal_init'
main.o: In function `rte_lcore_is_enabled':
/home/bruce/dpdk.org/x86_64-native-linuxapp-gcc/include/rte_lcore.h:170: undefined reference to `rte_eal_get_configuration'
main.o: In function `rte_get_master_lcore':
/home/bruce/dpdk.org/x86_64-native-linuxapp-gcc/include/rte_lcore.h:97: undefined reference to `rte_eal_get_configuration'
main.o: In function `rte_lcore_is_enabled':
/home/bruce/dpdk.org/x86_64-native-linuxapp-gcc/include/rte_lcore.h:170: undefined reference to `rte_eal_get_configuration'
main.o: In function `rte_get_master_lcore':
/home/bruce/dpdk.org/x86_64-native-linuxapp-gcc/include/rte_lcore.h:97: undefined reference to `rte_eal_get_configuration'
main.o: In function `main':
/home/bruce/dpdk.org/examples/helloworld/main.c:70: undefined reference to `rte_eal_remote_launch'
main.o: In function `rte_lcore_id':
/home/bruce/dpdk.org/x86_64-native-linuxapp-gcc/include/rte_lcore.h:85: undefined reference to `per_lcore__lcore_id'
main.o: In function `main':
/home/bruce/dpdk.org/examples/helloworld/main.c:76: undefined reference to `rte_eal_mp_wait_lcore'
/home/bruce/dpdk.org/examples/helloworld/main.c:66: undefined reference to `__rte_panic'
collect2: error: ld returned 1 exit status
make[1]: *** [helloworld] Error 1
make: *** [all] Error 2
make: Leaving directory `/home/bruce/dpdk.org/examples/helloworld'

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [dpdk-dev] [PATCH] mk: fix link to combined library
  2014-12-17 10:38   ` Bruce Richardson
@ 2014-12-17 10:43     ` Bruce Richardson
  2014-12-17 10:43     ` Thomas Monjalon
  1 sibling, 0 replies; 7+ messages in thread
From: Bruce Richardson @ 2014-12-17 10:43 UTC (permalink / raw)
  To: Thomas Monjalon; +Cc: dev, Hayato Momma

On Wed, Dec 17, 2014 at 10:38:16AM +0000, 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 <h-shimamoto@ct.jp.nec.com>
> > > 
> > > 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 =>  (0x00007fff232a1000)
> > > 	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 (0x00007fc638020000)
> > > 	librt.so.1 => /lib64/librt.so.1 (0x00007fc637e18000)
> > > 	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 (0x00007fc637bfe000)
> > > 	libdl.so.2 => /lib64/libdl.so.2 (0x00007fc6379fa000)
> > > 	libintel_dpdk.so => not found
> > > 	libpthread.so.0 => /lib64/libpthread.so.0 (0x00007fc6377dd000)
> > > 	libc.so.6 => /lib64/libc.so.6 (0x00007fc63741c000)
> > > 	/lib64/ld-linux-x86-64.so.2 (0x00007fc638330000)
> > > 
> > > After
> > > $ ldd x86_64-ivshmem-linuxapp-gcc/app/test
> > > 	linux-vdso.so.1 =>  (0x00007fffb79fe000)
> > > 	librt.so.1 => /lib64/librt.so.1 (0x00007f0d8a971000)
> > > 	libm.so.6 => /lib64/libm.so.6 (0x00007f0d8a66f000)
> > > 	libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007f0d8a458000)
> > > 	libdl.so.2 => /lib64/libdl.so.2 (0x00007f0d8a254000)
> > > 	libintel_dpdk.so => not found
> > > 	libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f0d8a037000)
> > > 	libc.so.6 => /lib64/libc.so.6 (0x00007f0d89c76000)
> > > 	/lib64/ld-linux-x86-64.so.2 (0x00007f0d8ab82000)
> > > 
> > > Signed-off-by: Hiroshi Shimamoto <h-shimamoto@ct.jp.nec.com>
> > > Reviewed-by: Hayato Momma <h-momma@ce.jp.nec.com>
> > 
> > It is what I suggested to Sergio:
> > 	http://dpdk.org/ml/archives/dev/2014-December/009116.html
> > 
> > Acked-by: Thomas Monjalon <thomas.monjalon@6wind.com>
> > 
> > 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 `rte_lcore_id':
> /home/bruce/dpdk.org/x86_64-native-linuxapp-gcc/include/rte_lcore.h:85: undefined reference to `per_lcore__lcore_id'
> main.o: In function `main':
> /home/bruce/dpdk.org/examples/helloworld/main.c:64: undefined reference to `rte_eal_init'
> main.o: In function `rte_lcore_is_enabled':
> /home/bruce/dpdk.org/x86_64-native-linuxapp-gcc/include/rte_lcore.h:170: undefined reference to `rte_eal_get_configuration'
> main.o: In function `rte_get_master_lcore':
> /home/bruce/dpdk.org/x86_64-native-linuxapp-gcc/include/rte_lcore.h:97: undefined reference to `rte_eal_get_configuration'
> main.o: In function `rte_lcore_is_enabled':
> /home/bruce/dpdk.org/x86_64-native-linuxapp-gcc/include/rte_lcore.h:170: undefined reference to `rte_eal_get_configuration'
> main.o: In function `rte_get_master_lcore':
> /home/bruce/dpdk.org/x86_64-native-linuxapp-gcc/include/rte_lcore.h:97: undefined reference to `rte_eal_get_configuration'
> main.o: In function `main':
> /home/bruce/dpdk.org/examples/helloworld/main.c:70: undefined reference to `rte_eal_remote_launch'
> main.o: In function `rte_lcore_id':
> /home/bruce/dpdk.org/x86_64-native-linuxapp-gcc/include/rte_lcore.h:85: undefined reference to `per_lcore__lcore_id'
> main.o: In function `main':
> /home/bruce/dpdk.org/examples/helloworld/main.c:76: undefined reference to `rte_eal_mp_wait_lcore'
> /home/bruce/dpdk.org/examples/helloworld/main.c:66: undefined reference to `__rte_panic'
> collect2: error: ld returned 1 exit status
> make[1]: *** [helloworld] Error 1
> make: *** [all] Error 2
> make: Leaving directory `/home/bruce/dpdk.org/examples/helloworld'
> 

Root cause appears to be use of "RTE_BUILD_COMBINE_LIBS" instead of "CONFIG_RTE_BUILD_COMBINE_LIBS"

Patch to follow.

Regards,
/Bruce

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [dpdk-dev] [PATCH] mk: fix link to combined library
  2014-12-17 10:38   ` Bruce Richardson
  2014-12-17 10:43     ` Bruce Richardson
@ 2014-12-17 10:43     ` Thomas Monjalon
  2014-12-17 10:46       ` Bruce Richardson
  1 sibling, 1 reply; 7+ messages in thread
From: Thomas Monjalon @ 2014-12-17 10:43 UTC (permalink / raw)
  To: Bruce Richardson; +Cc: dev, Hayato Momma

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 <h-shimamoto@ct.jp.nec.com>
> > > 
> > > 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 =>  (0x00007fff232a1000)
> > > 	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 (0x00007fc638020000)
> > > 	librt.so.1 => /lib64/librt.so.1 (0x00007fc637e18000)
> > > 	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 (0x00007fc637bfe000)
> > > 	libdl.so.2 => /lib64/libdl.so.2 (0x00007fc6379fa000)
> > > 	libintel_dpdk.so => not found
> > > 	libpthread.so.0 => /lib64/libpthread.so.0 (0x00007fc6377dd000)
> > > 	libc.so.6 => /lib64/libc.so.6 (0x00007fc63741c000)
> > > 	/lib64/ld-linux-x86-64.so.2 (0x00007fc638330000)
> > > 
> > > After
> > > $ ldd x86_64-ivshmem-linuxapp-gcc/app/test
> > > 	linux-vdso.so.1 =>  (0x00007fffb79fe000)
> > > 	librt.so.1 => /lib64/librt.so.1 (0x00007f0d8a971000)
> > > 	libm.so.6 => /lib64/libm.so.6 (0x00007f0d8a66f000)
> > > 	libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007f0d8a458000)
> > > 	libdl.so.2 => /lib64/libdl.so.2 (0x00007f0d8a254000)
> > > 	libintel_dpdk.so => not found
> > > 	libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f0d8a037000)
> > > 	libc.so.6 => /lib64/libc.so.6 (0x00007f0d89c76000)
> > > 	/lib64/ld-linux-x86-64.so.2 (0x00007f0d8ab82000)
> > > 
> > > Signed-off-by: Hiroshi Shimamoto <h-shimamoto@ct.jp.nec.com>
> > > Reviewed-by: Hayato Momma <h-momma@ce.jp.nec.com>
> > 
> > It is what I suggested to Sergio:
> > 	http://dpdk.org/ml/archives/dev/2014-December/009116.html
> > 
> > Acked-by: Thomas Monjalon <thomas.monjalon@6wind.com>
> > 
> > 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:
	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

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [dpdk-dev] [PATCH] mk: fix link to combined library
  2014-12-17 10:43     ` Thomas Monjalon
@ 2014-12-17 10:46       ` Bruce Richardson
  2014-12-17 11:07         ` Hiroshi Shimamoto
  0 siblings, 1 reply; 7+ messages in thread
From: Bruce Richardson @ 2014-12-17 10:46 UTC (permalink / raw)
  To: Thomas Monjalon; +Cc: dev, Hayato Momma

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 <h-shimamoto@ct.jp.nec.com>
> > > > 
> > > > 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 =>  (0x00007fff232a1000)
> > > > 	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 (0x00007fc638020000)
> > > > 	librt.so.1 => /lib64/librt.so.1 (0x00007fc637e18000)
> > > > 	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 (0x00007fc637bfe000)
> > > > 	libdl.so.2 => /lib64/libdl.so.2 (0x00007fc6379fa000)
> > > > 	libintel_dpdk.so => not found
> > > > 	libpthread.so.0 => /lib64/libpthread.so.0 (0x00007fc6377dd000)
> > > > 	libc.so.6 => /lib64/libc.so.6 (0x00007fc63741c000)
> > > > 	/lib64/ld-linux-x86-64.so.2 (0x00007fc638330000)
> > > > 
> > > > After
> > > > $ ldd x86_64-ivshmem-linuxapp-gcc/app/test
> > > > 	linux-vdso.so.1 =>  (0x00007fffb79fe000)
> > > > 	librt.so.1 => /lib64/librt.so.1 (0x00007f0d8a971000)
> > > > 	libm.so.6 => /lib64/libm.so.6 (0x00007f0d8a66f000)
> > > > 	libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007f0d8a458000)
> > > > 	libdl.so.2 => /lib64/libdl.so.2 (0x00007f0d8a254000)
> > > > 	libintel_dpdk.so => not found
> > > > 	libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f0d8a037000)
> > > > 	libc.so.6 => /lib64/libc.so.6 (0x00007f0d89c76000)
> > > > 	/lib64/ld-linux-x86-64.so.2 (0x00007f0d8ab82000)
> > > > 
> > > > Signed-off-by: Hiroshi Shimamoto <h-shimamoto@ct.jp.nec.com>
> > > > Reviewed-by: Hayato Momma <h-momma@ce.jp.nec.com>
> > > 
> > > It is what I suggested to Sergio:
> > > 	http://dpdk.org/ml/archives/dev/2014-December/009116.html
> > > 
> > > Acked-by: Thomas Monjalon <thomas.monjalon@6wind.com>
> > > 
> > > 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

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [dpdk-dev] [PATCH] mk: fix link to combined library
  2014-12-17 10:46       ` Bruce Richardson
@ 2014-12-17 11:07         ` Hiroshi Shimamoto
  0 siblings, 0 replies; 7+ messages in thread
From: Hiroshi Shimamoto @ 2014-12-17 11:07 UTC (permalink / raw)
  To: Bruce Richardson, Thomas Monjalon; +Cc: dev, Hayato Momma

> Subject: Re: [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 <h-shimamoto@ct.jp.nec.com>
> > > > >
> > > > > 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 =>  (0x00007fff232a1000)
> > > > > 	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 (0x00007fc638020000)
> > > > > 	librt.so.1 => /lib64/librt.so.1 (0x00007fc637e18000)
> > > > > 	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 (0x00007fc637bfe000)
> > > > > 	libdl.so.2 => /lib64/libdl.so.2 (0x00007fc6379fa000)
> > > > > 	libintel_dpdk.so => not found
> > > > > 	libpthread.so.0 => /lib64/libpthread.so.0 (0x00007fc6377dd000)
> > > > > 	libc.so.6 => /lib64/libc.so.6 (0x00007fc63741c000)
> > > > > 	/lib64/ld-linux-x86-64.so.2 (0x00007fc638330000)
> > > > >
> > > > > After
> > > > > $ ldd x86_64-ivshmem-linuxapp-gcc/app/test
> > > > > 	linux-vdso.so.1 =>  (0x00007fffb79fe000)
> > > > > 	librt.so.1 => /lib64/librt.so.1 (0x00007f0d8a971000)
> > > > > 	libm.so.6 => /lib64/libm.so.6 (0x00007f0d8a66f000)
> > > > > 	libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007f0d8a458000)
> > > > > 	libdl.so.2 => /lib64/libdl.so.2 (0x00007f0d8a254000)
> > > > > 	libintel_dpdk.so => not found
> > > > > 	libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f0d8a037000)
> > > > > 	libc.so.6 => /lib64/libc.so.6 (0x00007f0d89c76000)
> > > > > 	/lib64/ld-linux-x86-64.so.2 (0x00007f0d8ab82000)
> > > > >
> > > > > Signed-off-by: Hiroshi Shimamoto <h-shimamoto@ct.jp.nec.com>
> > > > > Reviewed-by: Hayato Momma <h-momma@ce.jp.nec.com>
> > > >
> > > > It is what I suggested to Sergio:
> > > > 	http://dpdk.org/ml/archives/dev/2014-December/009116.html
> > > >
> > > > Acked-by: Thomas Monjalon <thomas.monjalon@6wind.com>
> > > >
> > > > 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.

I'm sorry too, I never checked examples and various configuration with this patch.

thanks,
Hiroshi

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2014-12-17 11:07 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-12-11  2:54 [dpdk-dev] [PATCH] mk: fix link to combined library Hiroshi Shimamoto
2014-12-16 23:45 ` Thomas Monjalon
2014-12-17 10:38   ` Bruce Richardson
2014-12-17 10:43     ` Bruce Richardson
2014-12-17 10:43     ` Thomas Monjalon
2014-12-17 10:46       ` Bruce Richardson
2014-12-17 11:07         ` Hiroshi Shimamoto

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).