DPDK usage discussions
 help / color / mirror / Atom feed
From: Declan Doherty <declan.doherty@intel.com>
To: Chinmaya Dwibedy <ckdwibedy@gmail.com>, users@dpdk.org
Subject: Re: [dpdk-users] Fwd: Undelivered Mail Returned to Sender
Date: Thu, 28 Jul 2016 16:16:10 +0100	[thread overview]
Message-ID: <800b0e3e-18e5-bcf1-6414-16d99dfb618f@intel.com> (raw)
In-Reply-To: <CAMHS8RFZ8Sf93X+H-Mw+SezKMswNT-sTO=sX2kwWrYLAk5ESzA@mail.gmail.com>

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

      reply	other threads:[~2016-07-28 15:20 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <CAMHS8RHDBDWFv2DnML_7E21p9maaizxDCPz6Rg+Mnp=8pLsKag@mail.gmail.com>
     [not found] ` <20160728044529.DDE6C3604BE@narya.tortall.net>
2016-07-28  4:49   ` Chinmaya Dwibedy
2016-07-28 15:16     ` Declan Doherty [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=800b0e3e-18e5-bcf1-6414-16d99dfb618f@intel.com \
    --to=declan.doherty@intel.com \
    --cc=ckdwibedy@gmail.com \
    --cc=users@dpdk.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).