From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by dpdk.org (Postfix) with ESMTP id 5F1C45678 for ; Thu, 28 Jul 2016 17:20:22 +0200 (CEST) Received: from fmsmga003.fm.intel.com ([10.253.24.29]) by fmsmga104.fm.intel.com with ESMTP; 28 Jul 2016 08:20:22 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.28,434,1464678000"; d="scan'208";a="741016454" Received: from dwdohert-dpdk.ir.intel.com ([163.33.210.152]) by FMSMGA003.fm.intel.com with ESMTP; 28 Jul 2016 08:20:20 -0700 To: Chinmaya Dwibedy , users@dpdk.org References: <20160728044529.DDE6C3604BE@narya.tortall.net> From: Declan Doherty Message-ID: <800b0e3e-18e5-bcf1-6414-16d99dfb618f@intel.com> Date: Thu, 28 Jul 2016 16:16:10 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.1.1 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit Subject: Re: [dpdk-users] Fwd: Undelivered Mail Returned to Sender X-BeenThere: users@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: usage discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 28 Jul 2016 15:20:22 -0000 On 28/07/16 05:49, Chinmaya Dwibedy wrote: > 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@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@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 > Hey Chinmaya, I've had a look at this this morning, unfortunately I'm not an expert in assembly but it looks to me like the assembly code is not position independent, the difficulty seems to be with some global parameters, byteswap_const being the first among them and therefore cannot be linked as a shared library. The first reply to this thread (http://stackoverflow.com/questions/9341212/shared-object-in-x64-assembly-language) on stack overflow suggests 2 options to handle this. I haven't had a chance to test these solutions so I'm not sure on the implications to performance or in general to the performance implication of using the library in general as a shared library. Regards Declan