DPDK patches and discussions
 help / color / mirror / Atom feed
From: Bruce Richardson <bruce.richardson@intel.com>
To: Thomas Monjalon <thomas.monjalon@6wind.com>
Cc: dev@dpdk.org, Hayato Momma <h-momma@ce.jp.nec.com>
Subject: Re: [dpdk-dev] [PATCH] mk: fix link to combined library
Date: Wed, 17 Dec 2014 10:43:17 +0000	[thread overview]
Message-ID: <20141217104317.GB9184@bricha3-MOBL3> (raw)
In-Reply-To: <20141217103815.GA9184@bricha3-MOBL3>

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

  reply	other threads:[~2014-12-17 10:43 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-12-11  2:54 Hiroshi Shimamoto
2014-12-16 23:45 ` Thomas Monjalon
2014-12-17 10:38   ` Bruce Richardson
2014-12-17 10:43     ` Bruce Richardson [this message]
2014-12-17 10:43     ` Thomas Monjalon
2014-12-17 10:46       ` Bruce Richardson
2014-12-17 11:07         ` Hiroshi Shimamoto

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20141217104317.GB9184@bricha3-MOBL3 \
    --to=bruce.richardson@intel.com \
    --cc=dev@dpdk.org \
    --cc=h-momma@ce.jp.nec.com \
    --cc=thomas.monjalon@6wind.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).