On 10/22/2018 4:49 PM, Shubhachint, Chaitanya wrote: > Hello, > > My objective is to build a shared dpdk library on a build machine and copy it > over to target machine of similar hardware specs. > I am building with steps below: > 1. untar dpdk source. > 2. modify config/common_base as => > CONFIG_RTE_BUILD_SHARED_LIB=y > CONFIG_RTE_MACHINE=“default” > 3. make config T=x86_64-native-linuxapp-gcc export > 4. make install T=x86_64-native-linuxapp-gcc export > > Looks like step 2 is successful in changing the build to shared-library but > there is no effect of setting CONFIG_RTE_MACHINE=“default”. I see no change > in any of the header files or resultant binary files. > What am I missing?
I think problem is overwriting your setting when selecting doing step 3 & 4. After above steps can you please check your generated config file (x86_64-native-linuxapp-gcc/.config) for the CONFIG_RTE_MACHINE value? What you can do is, - do above steps - edit "x86_64-native-linuxapp-gcc/.config", update CONFIG_RTE_MACHINE as "default" - rebuild, "make install T=x86_64-native-linuxapp-gcc" You can verify that this is working by enable vebose during build, with V=1: - make install T=x86_64-native-linuxapp-gcc V=1 And during compilations verify following flag exists; "-march=corei7" Another problem, unrelated, in your step 3 above a config file created under "./build/.config" but you are not using it, step 4 again creates a new config file under "x86_64-native-linuxapp-gcc/.config" You can do either: - make T=x86_64-native-linuxapp-gcc config - make output will be under ./build/ - To install libraries into system folders: "make install" OR - make T=x86_64-native-linuxapp-gcc O=x86_64-native-linuxapp-gcc config - make O=x86_64-native-linuxapp-gcc output will be under ./x86_64-native-linuxapp-gcc/ - To install libraries into system folders: "make O=x86_64-native-linuxapp-gcc install" briefly if you omit "O=" it uses "build" by default. > Thanks > Chai. > > -----Original Message----- > From: Ferruh Yigit <ferruh.yi...@intel.com> > Sent: Monday, October 22, 2018 02:58 AM > To: Shubhachint, Chaitanya <chaitanya.shubhach...@netscout.com>; dev@dpdk.org > Subject: Re: [dpdk-dev] Build DPDK for different target machine. > > [EXTERNAL EMAIL] > > On 10/19/2018 5:24 PM, Shubhachint, Chaitanya wrote: >> Hello, >> >> I am trying to build DPDK library set (shared) so that there are somewhat >> portable. I want to build them once on a designated build machine and run >> them on other machines of similar architecture. I can build DPDK and use it >> locally successfully but running them on a different target machine always >> gives me core dump with 'Illegal instruction'. >> >> I am building with >> make install T=x86_64-native-linuxapp-gcc export >> RTE_TARGET=x86_64-native-linuxapp-gcc >> and CONFIG_RTE_BUILD_SHARED_LIB=y >> >> I have tried setting CONFIG_RTE_MACHINE, as "default" or "snb" but that does >> not help. > > Hi Chai, > > By "native" machine you can have the problem you mentioned but "default" > should solve the issue. > - Are you sure you are not overwriting your change in config, how do you set > it? > - Is there any specific module/part of DPDK you are getting this error? > >> >> Help is much appreciated. Details of Build machine and target machine below: >> >> Thanks >> Chai. >> >> Build machine: >> DPDK_Build/dpdk-18.08# lscpu >> Architecture: x86_64 >> CPU op-mode(s): 32-bit, 64-bit >> Byte Order: Little Endian >> CPU(s): 8 >> On-line CPU(s) list: 0-7 >> Thread(s) per core: 1 >> Core(s) per socket: 8 >> Socket(s): 1 >> NUMA node(s): 1 >> Vendor ID: GenuineIntel >> CPU family: 6 >> Model: 79 >> Model name: Intel(R) Xeon(R) CPU E5-2640 v4 @ 2.40GHz >> Stepping: 1 >> CPU MHz: 2399.998 >> BogoMIPS: 4799.99 >> Hypervisor vendor: VMware >> Virtualization type: full >> L1d cache: 32K >> L1i cache: 32K >> L2 cache: 256K >> L3 cache: 25600K >> NUMA node0 CPU(s): 0-7 >> Flags: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge >> mca cmov pat pse36 clflush dts mmx fxsr sse sse2 ss ht syscall nx pdpe1gb >> rdtscp lm constant_tsc arch_perfmon pebs bts nopl xtopology tsc_reliable >> nonstop_tsc cpuid aperfmperf pni pclmulqdq ssse3 fma cx16 pcid sse4_1 sse4_2 >> x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor >> lahf_lm abm 3dnowprefetch cpuid_fault epb invpcid_single pti fsgsbase >> tsc_adjust bmi1 hle avx2 smep bmi2 invpcid rtm rdseed adx smap xsaveopt >> dtherm ida arat pln pts >> >> >> Target Machine: >> $lscpu >> Architecture: x86_64 >> CPU op-mode(s): 32-bit, 64-bit >> Byte Order: Little Endian >> CPU(s): 6 >> On-line CPU(s) list: 0-5 >> Thread(s) per core: 1 >> Core(s) per socket: 6 >> Socket(s): 1 >> NUMA node(s): 1 >> Vendor ID: GenuineIntel >> CPU family: 6 >> Model: 45 >> Model name: Intel(R) Xeon(R) CPU E5-2667 0 @ 2.90GHz >> Stepping: 7 >> CPU MHz: 1682.069 >> CPU max MHz: 3500.0000 >> CPU min MHz: 1200.0000 >> BogoMIPS: 5785.61 >> Virtualization: VT-x >> L1d cache: 32K >> L1i cache: 32K >> L2 cache: 256K >> L3 cache: 15360K >> NUMA node0 CPU(s): 0-5 >> Flags: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge >> mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall >> nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl >> xtopology nonstop_tsc cpuid aperfmperf pni pclmulqdq dtes64 monitor ds_cpl >> vmx smx est tm2 ssse3 cx16 xtpr pdcm pcid dca sse4_1 sse4_2 x2apic popcnt >> tsc_deadline_timer aes xsave avx lahf_lm epb pti tpr_shadow vnmi >> flexpriority ept vpid xsaveopt ibpb ibrs stibp dtherm ida arat pln pts >> >