[meta-intel] Mohonpeak64 DPDK Build Failure

Ashish Dalela (adalela) adalela at cisco.com
Fri Jul 15 21:11:39 PDT 2016


Hi Folks,

I'm using poky-krogoth-15.0.0 and DPDK 16.04 recipe from here http://git.yoctoproject.org/cgit/cgit.cgi/meta-intel/. I want to build DPDK for Mohonpeak64 machine.

I modified the dpdk.inc for COMPATIBLE_MACHINE as follows:

COMPATIBLE_MACHINE = "crystalforest|intel-corei7-64|mohonpeak64"

In the current recipe, mohonpeak64 is not a supported machine. The original file is here:
http://git.yoctoproject.org/cgit/cgit.cgi/meta-intel/tree/meta-isg/common/recipes-extended/dpdk/dpdk.inc

Then I built a core-image-minimal and the image build was successful.

Then when I build dpdk, I get the following error in compile:

x86_64-poky-linux-gcc -m64 -Wl,--version-script=/home/adalela/poky15/build/tmp/work/mohonpeak64-poky-linux/dpdk/16.04-r0/dpdk-16.04/lib/librte_eal/linuxapp/eal/rte_eal_version.map -L/home/adalela/poky15/build/tmp/sysroots/mohonpeak64/usr/lib -shared eal.o eal_hugepage_info.o eal_memory.o eal_thread.o eal_log.o eal_pci.o eal_pci_uio.o eal_pci_vfio.o eal_pci_vfio_mp_sync.o eal_debug.o eal_lcore.o eal_timer.o eal_interrupts.o eal_alarm.o eal_ivshmem.o eal_common_lcore.o eal_common_timer.o eal_common_memzone.o eal_common_log.o eal_common_launch.o eal_common_pci.o eal_common_pci_uio.o eal_common_memory.o eal_common_tailqs.o eal_common_errno.o eal_common_cpuflags.o eal_common_string_fns.o eal_common_hexdump.o eal_common_devargs.o eal_common_dev.o eal_common_options.o eal_common_thread.o eal_common_proc.o rte_malloc.o malloc_elem.o malloc_heap.o rte_keepalive.o rte_cpuflags.o -ldl -lpthread -lgcc_s -lrt -Wl,-soname,librte_eal.so.2.1 -o librte_eal.so.2.1
/home/adalela/poky15/build/tmp/sysroots/x86_64-linux/usr/libexec/x86_64-poky-linux/gcc/x86_64-poky-linux/5.3.0/ld: cannot find crti.o: No such file or directory
/home/adalela/poky15/build/tmp/sysroots/x86_64-linux/usr/libexec/x86_64-poky-linux/gcc/x86_64-poky-linux/5.3.0/ld: cannot find crtbeginS.o: No such file or directory
/home/adalela/poky15/build/tmp/sysroots/x86_64-linux/usr/libexec/x86_64-poky-linux/gcc/x86_64-poky-linux/5.3.0/ld: cannot find /lib/libpthread.so.0
/home/adalela/poky15/build/tmp/sysroots/x86_64-linux/usr/libexec/x86_64-poky-linux/gcc/x86_64-poky-linux/5.3.0/ld: cannot find /usr/lib/libpthread_nonshared.a
collect2: error: ld returned 1 exit status
make[6]: *** [librte_eal.so.2.1] Error 1
make[5]: *** [eal] Error 2
make[5]: *** Waiting for unfinished jobs....


I can see that the sysroots are properly populated in the mohonpeak64 machine path:

$ find /home/adalela/poky15/build/tmp/sysroots/mohonpeak64/usr/lib -name crti.o
/home/adalela/poky15/build/tmp/sysroots/mohonpeak64/usr/lib/crti.o
$

But the sysroots are not populated in the x86_64-linux machine path:

$ find /home/adalela/poky15/build/tmp/sysroots/x86_64-linux/usr/lib -name crti.o
$

Since the GCC is coming from x86_64-linux, it appears to me that for some reason sysroot is getting messed. I tried the following in "dpdk_16.04.bb" but it did not help:

CFLAGS += " --sysroot=${SDKTARGETSYSROOT} "
export LIBRARY_PATH = "/home/adalela/poky15/build/tmp/sysroots/mohonpeak64"

On searching for the same type of error, I can see this is fairly common and is easily resolved in other situations (outside Yocto) by setting the sysroot correctly. But I can't figure out how to do this correctly in Yocto. Can someone please guide on how to fix this issue?

I have taken the liberty to modify the COMPATIBLE_MACHINE and that might be the problem, but as I said earlier, core-image-minimal built fine, the sysroots for mohonpeak64 are built correctly, but they are just not being found. So, this doesn't seem related to the COMPATIBLE_MACHINE change.

Thanks in advance for your help,
Ashish



-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.yoctoproject.org/pipermail/meta-intel/attachments/20160716/951c9792/attachment.html>


More information about the meta-intel mailing list