Let me know if you need anything else from me. I'll be glad to test something if need be.
As a side note, what is the recommended version of nasm? I tested with nasm 2.12.02 on Fedora 25 and nasm 2.12.01 and 2.12.02 on Centos 7.3 and all have the error I reported. The version of nasm in Centos 7.3 distro is nasm 2.10.07, and it has a different compiler error. Googled this issue and I found a link that indicated this was fixed in a newer version of nasm, which lead me to the nasm 2.12.02 build. Making object file obj/mb_mgr_hmac_submit_avx512.o nasm -o obj/mb_mgr_hmac_submit_avx512.o -felf64 -Xgnu -gdwarf -DLINUX -D__linux__ -Iinclude/ -I./ -Iavx/ -Iavx2/ -Iavx512/ -Isse/ avx512/mb_mgr_hmac_submit_avx512.asm avx512/mb_mgr_hmac_submit_avx512.asm:173: error: parser: instruction expected avx512/mb_mgr_hmac_submit_avx512.asm:174: error: symbol `vmovdqu32' redefined avx512/mb_mgr_hmac_submit_avx512.asm:174: error: parser: instruction expected make[4]: *** [obj/mb_mgr_hmac_submit_avx512.o] Error 1 Thanks, Billy McFall On Mon, Mar 6, 2017 at 11:30 AM, Sergio Gonzalez Monroy < sergio.gonzalez.mon...@intel.com> wrote: > Hi Billy, > > It seems that things have changed a bit since DPDK is built as a plugin > and we are looking into this issue. > > I'll update once I have more details. > > Regards, > Sergio > > On 03/03/2017 16:59, Billy McFall wrote: > > Like the original email on this thread, I am trying to build latest vpp > with vpp_uses_dpdk_cryptodev_sw = yes option to enable vpp sw crypto. The > difference is I am running on Fedora 25. I attempted to followed the > suggestions in this email chain: > * I updated /build-data/platforms/vpp.mk with "-Wl,--whole-archive,-l: > libIPSec_MB.a,--no-whole-archive" and copied libIPSec_MB.a into /usr/lib/. > * I set link_all_deplibs to yes in vpp/build-root/build-vpp- > native/dpdk/isa-l_crypto-master/aclocal.m4 after running 'make > bootstrap', which set it in vpp/build-root/build-vpp-native/vpp/libtool. > > If anyone has instructions on how to update libtool from source, I will > attempt that. > > > Below is the error I am seeing: > > make[3]: Entering directory '/home/bmcfall/dev/2017_03_03_ > VPP_Master/vpp/build-root/build-vpp-native/vpp' > CCLD libvppinfra.la > /usr/bin/ld: /home/bmcfall/dev/2017_03_03_VPP_Master/vpp/build-root/ > install-vpp-native/dpdk/lib/libIPSec_MB.a(aes128_cntr_by4_sse.o): > relocation R_X86_64_PC32 against symbol `byteswap_const' can not be used > when making a shared object; recompile with -fPIC > /usr/bin/ld: final link failed: Bad value > collect2: error: ld returned 1 exit status > Makefile:4564: recipe for target 'libvppinfra.la' failed > make[3]: *** [libvppinfra.la] Error 1 > > > I am also seeing a lot of warnings when the dpdk/crypto is being built > (this is just a snippet, I am seeing a lot more): > > make[4]: Entering directory '/home/bmcfall/dev/2017_03_03_ > VPP_Master/vpp/build-root/build-vpp-native/dpdk/isa-l_crypto-master' > Building isa-l_crypto.h > make --no-print-directory all-am > CC md5_mb/md5_ctx_sse.lo > CC md5_mb/md5_ctx_avx.lo > CC md5_mb/md5_ctx_avx2.lo > CC md5_mb/md5_mb_mgr_init_sse.lo > CC md5_mb/md5_mb_mgr_init_avx2.lo > CC md5_mb/md5_mb_mgr_init_avx512.lo > MKTMP md5_mb/md5_mb_mgr_submit_sse.s > CCAS md5_mb/md5_mb_mgr_submit_sse.lo > md5_mb/md5_mb_mgr_submit_sse.s:151: warning: absolute address can not be > RIP-relative > MKTMP md5_mb/md5_mb_mgr_submit_avx.s > CCAS md5_mb/md5_mb_mgr_submit_avx.lo > md5_mb/md5_mb_mgr_submit_avx.s:150: warning: absolute address can not be > RIP-relative > MKTMP md5_mb/md5_mb_mgr_submit_avx2.s > CCAS md5_mb/md5_mb_mgr_submit_avx2.lo > md5_mb/md5_mb_mgr_submit_avx2.s:159: warning: absolute address can not be > RIP-relative > MKTMP md5_mb/md5_mb_mgr_flush_sse.s > CCAS md5_mb/md5_mb_mgr_flush_sse.lo > md5_mb/md5_mb_mgr_flush_sse.s:119: warning: absolute address can not be > RIP-relative > md5_mb/md5_mb_mgr_flush_sse.s:121: warning: absolute address can not be > RIP-relative > md5_mb/md5_mb_mgr_flush_sse.s:123: warning: absolute address can not be > RIP-relative > md5_mb/md5_mb_mgr_flush_sse.s:125: warning: absolute address can not be > RIP-relative > md5_mb/md5_mb_mgr_flush_sse.s:127: warning: absolute address can not be > RIP-relative > md5_mb/md5_mb_mgr_flush_sse.s:129: warning: absolute address can not be > RIP-relative > md5_mb/md5_mb_mgr_flush_sse.s:131: warning: absolute address can not be > RIP-relative > md5_mb/md5_mb_mgr_flush_sse.s:164: warning: absolute address can not be > RIP-relative > MKTMP md5_mb/md5_mb_mgr_flush_avx.s > CCAS md5_mb/md5_mb_mgr_flush_avx.lo > md5_mb/md5_mb_mgr_flush_avx.s:119: warning: absolute address can not be > RIP-relative > md5_mb/md5_mb_mgr_flush_avx.s:121: warning: absolute address can not be > RIP-relative > md5_mb/md5_mb_mgr_flush_avx.s:123: warning: absolute address can not be > RIP-relative > md5_mb/md5_mb_mgr_flush_avx.s:125: warning: absolute address can not be > RIP-relative > md5_mb/md5_mb_mgr_flush_avx.s:127: warning: absolute address can not be > RIP-relative > md5_mb/md5_mb_mgr_flush_avx.s:129: warning: absolute address can not be > RIP-relative > md5_mb/md5_mb_mgr_flush_avx.s:131: warning: absolute address can not be > RIP-relative > md5_mb/md5_mb_mgr_flush_avx.s:163: warning: absolute address can not be > RIP-relative > : > CCAS md5_mb/md5_mb_x4x2_sse.lo > md5_mb/md5_mb_x4x2_sse.s:361: warning: absolute address can not be > RIP-relative > md5_mb/md5_mb_x4x2_sse.s:539: warning: absolute address can not be > RIP-relative > md5_mb/md5_mb_x4x2_sse.s:162: ... from macro `MD5_STEP1' defined here > md5_mb/md5_mb_x4x2_sse.s:120: ... from macro `MAGIC_I' defined here > md5_mb/md5_mb_x4x2_sse.s:539: warning: absolute address can not be > RIP-relative > md5_mb/md5_mb_x4x2_sse.s:164: ... from macro `MD5_STEP1' defined here > md5_mb/md5_mb_x4x2_sse.s:120: ... from macro `MAGIC_I' defined here > md5_mb/md5_mb_x4x2_sse.s:540: warning: absolute address can not be > RIP-relative > md5_mb/md5_mb_x4x2_sse.s:162: ... from macro `MD5_STEP1' defined here > md5_mb/md5_mb_x4x2_sse.s:120: ... from macro `MAGIC_I' defined here > : > > Any suggestions would be greatly appreciated, > Billy McFall > > On Fri, Feb 24, 2017 at 7:03 AM, yusuf khan <yusuf.at...@gmail.com> wrote: > >> Hi All, >> >> As Radu suggested, after updating libtool from source it works fine. >> >> Thanks a lot everyone. >> >> Br >> Yusuf >> >> On 24-Feb-2017 1:49 PM, "Chen, Zhaoyan" <zhaoyan.c...@intel.com> wrote: >> >>> Met the same issue. >>> >>> >>> >>> Vpp uses its “libtool” under “./build-root/build-vpp-native/vpp/libtool” >>> (version is 2.4.6) >>> >>> Quickly workaround is that modify this libtool, “link_all_deplibs=no” => >>> “link_all_deplibs=yes” >>> >>> >>> >>> Then “make run-release” again. >>> >>> >>> >>> Tested under Ubuntu 16.04, in VM. >>> >>> >>> >>> >>> >>> /Zhaoyan >>> >>> >>> >>> >>> >>> *From:* <vpp-dev-boun...@lists.fd.io>vpp-dev-boun...@lists.fd.io >>> [mailto:vpp-dev-boun...@lists.fd.io] *On Behalf Of *Nicolau, Radu >>> *Sent:* Thursday, February 23, 2017 6:06 PM >>> *To:* Tkachuk, Georgii < <georgii.tkac...@intel.com> >>> georgii.tkac...@intel.com>; Lu, Patrick < <patrick...@intel.com> >>> patrick...@intel.com>; yusuf khan <yusuf.at...@gmail.com>; >>> vpp-dev@lists.fd.io >>> *Subject:* Re: [vpp-dev] dpdk sw crypto- build error >>> >>> >>> >>> If the issue appears on Ubuntu and other Debian based distros then the >>> root of the problem is libtool, which is patched to set link_all_deplibs=no >>> in the libtool script, effectively making libtool ignore library >>> dependencies – the dependency_libs section in the .la files. >>> >>> >>> >>> A quick workaround is to install libtool from sources. >>> >>> >>> >>> Regards, >>> >>> Radu >>> >>> *From:* vpp-dev-boun...@lists.fd.io [mailto:vpp-dev-boun...@lists.fd.io >>> <vpp-dev-boun...@lists.fd.io>] *On Behalf Of *Tkachuk, Georgii >>> *Sent:* Wednesday, February 22, 2017 6:10 PM >>> *To:* Lu, Patrick < <patrick...@intel.com>patrick...@intel.com>; yusuf >>> khan <yusuf.at...@gmail.com>; vpp-dev@lists.fd.io >>> *Subject:* Re: [vpp-dev] dpdk sw crypto- build error >>> >>> >>> >>> We worked around this by adding extra compile flags to prevent the IPSec >>> lib from being stripped from the compiler command: >>> >>> Also, we proactively placed the libIPSec_MB.a into /usr/lib/. so that we >>> don’t have to provide the path. >>> >>> >>> >>> diff --git a/build-data/platforms/vpp.mk b/build-data/platforms/vpp.mk >>> >>> index 401a383..b5b2369 100644 >>> >>> --- a/build-data/platforms/vpp.mk >>> >>> +++ b/build-data/platforms/vpp.mk >>> >>> @@ -54,7 +54,7 @@ vpp_debug_TAG_LDFLAGS = -g -O0 -DCLIB_DEBUG >>> -DFORTIFY_SOURCE=2 -march=$(MARCH) \ >>> >>> -fstack-protector-all -fPIC -Werror >>> >>> >>> >>> vpp_TAG_CFLAGS = -g -O2 -DFORTIFY_SOURCE=2 -march=$(MARCH) >>> -mtune=$(MTUNE) \ >>> >>> - -fstack-protector -fPIC -Werror >>> >>> + -fstack-protector -fPIC -Werror -Wl,--whole-archive,-l:libIPSe >>> c_MB.a,--no-whole-archive >>> >>> vpp_TAG_LDFLAGS = -g -O2 -DFORTIFY_SOURCE=2 -march=$(MARCH) >>> -mtune=$(MTUNE) \ >>> >>> -fstack-protector -fPIC -Werror >>> >>> >>> >>> If you don’t want to modify the vpp.mk it should also be possible to >>> add the change to the vpp by guarding the IPSec lib as above in this bit: >>> >>> >>> >>> if WITH_DPDK_CRYPTO_SW >>> >>> DPDK_LD_ADD = -L$(AESNI_MULTI_BUFFER_LIB_PATH) -lIPSec_MB >>> >>> endif >>> >>> >>> >>> Regards, >>> >>> George >>> >>> >>> >>> *From:* Lu, Patrick >>> *Sent:* Wednesday, February 22, 2017 11:02 AM >>> *To:* yusuf khan < <yusuf.at...@gmail.com>yusuf.at...@gmail.com>; >>> vpp-dev@lists.fd.io >>> *Cc:* Tkachuk, Georgii < <georgii.tkac...@intel.com> >>> georgii.tkac...@intel.com> >>> *Subject:* RE: [vpp-dev] dpdk sw crypto- build error >>> >>> >>> >>> Hi Yusuf, >>> >>> >>> >>> We saw the same issue. Copying George for workaround. >>> >>> >>> >>> Thanks, >>> >>> >>> >>> Patrick >>> >>> >>> >>> *From:* vpp-dev-boun...@lists.fd.io [mailto:vpp-dev-boun...@lists.fd.io >>> <vpp-dev-boun...@lists.fd.io>] *On Behalf Of *yusuf khan >>> *Sent:* Wednesday, February 22, 2017 8:50 AM >>> *To:* vpp-dev@lists.fd.io >>> *Subject:* [vpp-dev] dpdk sw crypto- build error >>> >>> >>> >>> Hi, >>> >>> >>> >>> I am trying to build latest vpp with vpp_uses_dpdk_cryptodev_sw = yes >>> option to enable vpp sw crypto. >>> >>> Initilia steps of downloading/compiling aesni-mb and isal-crypto works >>> fine. >>> >>> But during linking stage i am getting below errors... >>> >>> >>> >>> CCLD bin/vpp >>> CCLD vpp_api_test >>> CCLD pcap2pg >>> ./.libs/libvnet.so: undefined reference to `aesni_gcm256_init' >>> ./.libs/libvnet.so: undefined reference to `aes_xcbc_expand_key_avx' >>> ./.libs/libvnet.so: undefined reference to `submit_job_sse' >>> ./.libs/libvnet.so: undefined reference to `sha1_one_block_sse' >>> ./.libs/libvnet.so: undefined reference to `flush_job_avx2' >>> ./.libs/libvnet.so: undefined reference to `sha512_one_block_avx' >>> ./.libs/libvnet.so: undefined reference to `aesni_gcm256_dec_finalize' >>> ./.libs/libvnet.so: undefined reference to `aesni_gcm128_enc_update' >>> ./.libs/libvnet.so: undefined reference to `aesni_gcm128_pre' >>> ./.libs/libvnet.so: undefined reference to `sha1_one_block_avx' >>> ./.libs/libvnet.so: undefined reference to `sha256_one_block_sse' >>> ./.libs/libvnet.so: undefined reference to `aes_xcbc_expand_key_sse' >>> ./.libs/libvnet.so: undefined reference to `sha224_one_block_avx' >>> ./.libs/libvnet.so: undefined reference to `sha256_one_block_avx' >>> ./.libs/libvnet.so: undefined reference to `init_mb_mgr_avx2' >>> ./.libs/libvnet.so: undefined reference to `aesni_gcm128_init' >>> ./.libs/libvnet.so: undefined reference to `sha384_one_block_sse' >>> ./.libs/libvnet.so: undefined reference to `submit_job_avx2' >>> ./.libs/libvnet.so: undefined reference to `aesni_gcm256_dec_update' >>> ./.libs/libvnet.so: undefined reference to `flush_job_avx' >>> ./.libs/libvnet.so: undefined reference to `submit_job_avx512' >>> ./.libs/libvnet.so: undefined reference to `aes_keyexp_256_avx' >>> ./.libs/libvnet.so: undefined reference to `aesni_gcm128_dec_finalize' >>> ./.libs/libvnet.so: undefined reference to `aes_keyexp_192_avx' >>> ./.libs/libvnet.so: undefined reference to `init_mb_mgr_sse' >>> ./.libs/libvnet.so: undefined reference to `aes_keyexp_256_sse' >>> ./.libs/libvnet.so: undefined reference to `aesni_gcm256_enc_finalize' >>> ./.libs/libvnet.so: undefined reference to `init_mb_mgr_avx' >>> ./.libs/libvnet.so: undefined reference to `aes_keyexp_128_sse' >>> ./.libs/libvnet.so: undefined reference to `sha512_one_block_sse' >>> ./.libs/libvnet.so: undefined reference to `aes_keyexp_128_avx' >>> ./.libs/libvnet.so: undefined reference to `init_mb_mgr_avx512' >>> ./.libs/libvnet.so: undefined reference to `aesni_gcm128_dec_update' >>> ./.libs/libvnet.so: undefined reference to `flush_job_avx512' >>> ./.libs/libvnet.so: undefined reference to `sha384_one_block_avx' >>> ./.libs/libvnet.so: undefined reference to `sha224_one_block_sse' >>> ./.libs/libvnet.so: undefined reference to `md5_one_block_sse' >>> ./.libs/libvnet.so: undefined reference to `aesni_gcm256_enc_update' >>> ./.libs/libvnet.so: undefined reference to `aesni_gcm128_enc_finalize' >>> ./.libs/libvnet.so: undefined reference to `aesni_gcm256_pre' >>> ./.libs/libvnet.so: undefined reference to `aes_keyexp_192_sse' >>> ./.libs/libvnet.so: undefined reference to `submit_job_avx' >>> ./.libs/libvnet.so: undefined reference to `flush_job_sse' >>> collect2: error: ld returned 1 exit status >>> Makefile:4651: recipe for target 'bin/vpp' failed >>> >>> >>> >>> Most probably libvnet links with some dpdk.a , which inturn links to >>> aes*-crypto libs but its undefined. >>> >>> I tried nm on build-root/install-vpp-native/ >>> dpdk/lib/librte_pmd_aesni_gcm.a and i get same undefined . >>> >>> >>> >>> root@VPP:~/sample/vpp# nm build-root/install-vpp-native/ >>> dpdk/lib/librte_pmd_aesni_gcm.a |grep U >>> U aesni_gcm128_dec_finalize >>> U aesni_gcm128_dec_update >>> U aesni_gcm128_enc_finalize >>> U aesni_gcm128_enc_update >>> U aesni_gcm128_init >>> U aesni_gcm128_pre >>> U aesni_gcm256_dec_finalize >>> U aesni_gcm256_dec_update >>> U aesni_gcm256_enc_finalize >>> U aesni_gcm256_enc_update >>> U aesni_gcm256_init >>> U aesni_gcm256_pre >>> >>> >>> >>> Let me know if this is known issue? >>> >>> BTW i am building on ubuntu xenial native, no vm. >>> >>> >>> >>> Br, >>> >>> Yusuf >>> >> >> _______________________________________________ >> vpp-dev mailing list >> vpp-dev@lists.fd.io >> https://lists.fd.io/mailman/listinfo/vpp-dev >> > > > > _______________________________________________ > vpp-dev mailing > listvpp-...@lists.fd.iohttps://lists.fd.io/mailman/listinfo/vpp-dev > > > > _______________________________________________ > vpp-dev mailing list > vpp-dev@lists.fd.io > https://lists.fd.io/mailman/listinfo/vpp-dev >
_______________________________________________ vpp-dev mailing list vpp-dev@lists.fd.io https://lists.fd.io/mailman/listinfo/vpp-dev