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 [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>; Lu, Patrick < >> 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>; 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>; vpp-dev@lists.fd.io >> *Cc:* Tkachuk, Georgii <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 list vpp-dev@lists.fd.io https://lists.fd.io/mailman/listinfo/vpp-dev