Hi All,
I have downloaded the IPsec mult-buffer library (ipsec_043.zip) from Intel site (mentioned at http://dpdk.org/doc/guides-16.04/cryptodevs/aesni_mb.html) and compiled it using #make YASM=/usr/bin/yasm. Upon trying to create a shared library from static library using #gcc -shared -Wl,--whole-archive libIPSec_MB.a -o libIPSec_MB.so, it gives the below link error. /usr/bin/ld: libIPSec_MB.a(aes128_cntr_by4_sse.o): relocation R_X86_64_PC32 against symbol `byteswap_const' cannot 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 [root at mgmt-rig-7 code]# The version of yasm is 1.3.0. The release note at http://yasm.tortall.net/releases/Release1.3.0.html clearly says that, yasm-1.3.0 has a full support for shared objects. Then why it gives aforesaid error. Can anyone please let me know if I am missing anything or it is an issue with yasm? Thank you in advance for your support and time. Please feel free to let me know if additional information is needed. Here are the procedures followed to configure and install yasm. wget http://www.tortall.net/projects/yasm/releases/yasm-1.3.0.tar.gz tar -xvzf yasm-1.3.0.tar.gz cd yasm-1.3.0 ./configure && make -j 4 && sudo make install [root at local code]# /usr/bin/yasm --version yasm 1.3.0 Compiled on Jul 28 2016. Copyright (c) 2001-2014 Peter Johnson and other Yasm developers. Run yasm --license for licensing overview and summary. [root@ local code]# Here are the complier flags and assembler flags used in Makefile. LIB=libIPSec_MB.a YASM=/nfs/site/disks/iots4/engineering/cai_isa/tools/yasm-bdw/yasm OBJ_DIR=obj INCLUDE_DIRS := include . INCLUDES := $(foreach i,$(INCLUDE_DIRS),-I $i) CXX := g++ CC := gcc CXXFLAGS := -g -D LINUX -D NDEBUG $(INCLUDES) -O2 -fPIC ASMFLAGS := -f x64 -f elf64 -X gnu -g dwarf2 -D LINUX -D __linux__ $(INCLUDES) Regards, Chinmaya
