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:38:16 +0000	[thread overview]
Message-ID: <20141217103815.GA9184@bricha3-MOBL3> (raw)
In-Reply-To: <4299912.gJckj7WjkF@xps13>

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'

  reply	other threads:[~2014-12-17 10:38 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 [this message]
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

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=20141217103815.GA9184@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).