[dpdk-dev] [PATCH 0/6] add clang compilation support for armv8a linuxapp

Sekhar, Ashwin Ashwin.Sekhar at cavium.com
Thu May 11 16:09:16 CEST 2017


The warning comes only when CFLAGS "-g -ggdb" are given and this seems
to be an issue with clang. I am seeing some related bugs on llvm
mailing list.
https://www.mail-archive.com/llvm-bugs@lists.llvm.org/msg05498.html
http://lists.llvm.org/pipermail/llvm-bugs/2016-July/048288.html

Even a simple c program with a TLS variable creates this warning.
For eg: 
----------------- test.c -------------------
__thread int a;

int main() {
        return 0;
}
--------------------------------------------

$ gcc -g -ggdb test.c   
$ clang -g -ggdb test.c 
/usr/bin/ld: /tmp/test-50ceac.o(.debug_info+0x37): R_AARCH64_ABS64
used with TLS symbol a
$

Thanks
Ashwin

On Thu, 2017-05-11 at 11:29 +0530, Jerin Jacob wrote:
> -----Original Message-----
> > 
> > Date: Wed, 10 May 2017 03:16:37 -0700
> > From: Ashwin Sekhar T K <ashwin.sekhar at caviumnetworks.com>
> > To: thomas at monjalon.net, jerin.jacob at caviumnetworks.com,
> >  maciej.czekaj at caviumnetworks.com, viktorin at rehivetech.com,
> >  jianbo.liu at linaro.org, bruce.richardson at intel.com,
> >  pablo.de.lara.guarch at intel.com, konstantin.ananyev at intel.com
> > Cc: dev at dpdk.org, Ashwin Sekhar T K <ashwin.sekhar at caviumnetworks.c
> > om>
> > Subject: [dpdk-dev] [PATCH 0/6] add clang compilation support for
> > armv8a
> >  linuxapp
> > X-Mailer: git-send-email 2.13.0.rc1
> > 
> > This series of patches adds the clang compilation support for
> > armv8a linuxapp.
> > 
> > Patch 1 is basically for removing the usage of assembly directive
> > ".arch armv8-a+crc"
> > as this is not understood by clang. For removing these directives,
> > compilation of
> > armv8a crc32 support is made conditional and is only done for
> > machines which has
> > the crc extensions. Doing this avoids the need for having the
> > ".arch armv8-a+crc"
> > directives in the code.
> > 
> > Patch 2 adds the arm64-armv8a-linuxapp-clang defconfig.
> > 
> > Patch 3, 4, 5 and 6 are for fixing the compilation errors/warnings.
> There is warning on LD with clang. Could you please check it?
> 
>   INSTALL-MAP dpdk-pdump.map
>   LD testpmd
> /usr/bin/ld: build/lib/librte_eal.a(eal_thread.o)(.debug_info+0x37):
> R_AARCH64_ABS64 used with TLS symbol per_lcore__lcore_id
> /usr/bin/ld: build/lib/librte_eal.a(eal_thread.o)(.debug_info+0x54):
> R_AARCH64_ABS64 used with TLS symbol per_lcore__socket_id
> /usr/bin/ld: build/lib/librte_eal.a(eal_thread.o)(.debug_info+0x6a):
> R_AARCH64_ABS64 used with TLS symbol per_lcore__cpuset
> /usr/bin/ld: build/lib/librte_eal.a(eal_thread.o)(.debug_info+0xd2):
> R_AARCH64_ABS64 used with TLS symbol rte_gettid.per_lcore__thread_id
> /usr/bin/ld:
> build/lib/librte_eal.a(eal_interrupts.o)(.debug_info+0x38e):
> R_AARCH64_ABS64 used with TLS symbol per_lcore__epfd
> /usr/bin/ld:
> build/lib/librte_eal.a(eal_common_errno.o)(.debug_info+0x50):
> R_AARCH64_ABS64 used with TLS symbol rte_strerror.per_lcore_retval
> /usr/bin/ld:build/lib/librte_eal.a(eal_common_errno.o)(.debug_info+0x
> 91): R_AARCH64_ABS64 used with TLS symbol per_lcore__rte_errno
>   INSTALL-APP testpmd
> 
> $ clang -v
> Ubuntu clang version 3.6.0-2ubuntu1 (tags/RELEASE_360/final) (based
> on
> LLVM 3.6.0)
> Target: aarch64-unknown-linux-gnu
> Thread model: posix
> Found candidate GCC installation:
> /usr/bin/../lib/gcc/aarch64-linux-gnu/4.9
> Found candidate GCC installation:
> /usr/bin/../lib/gcc/aarch64-linux-gnu/4.9.2
> Found candidate GCC installation:
> /usr/bin/../lib/gcc/aarch64-linux-gnu/5.0.1
> Found candidate GCC installation: /usr/lib/gcc/aarch64-linux-gnu/4.9
> Found candidate GCC installation: /usr/lib/gcc/aarch64-linux-
> gnu/4.9.2
> Found candidate GCC installation: /usr/lib/gcc/aarch64-linux-
> gnu/5.0.1
> Selected GCC installation: /usr/bin/../lib/gcc/aarch64-linux-gnu/4.9
> Candidate multilib: .;@m64
> Selected multilib: .;@m64
> 
> 
> > 
> > 
> > Ashwin Sekhar T K (6):
> >   hash: compile armv8a CRC32 support conditionally
> >   config: add clang support for armv8a linuxapp
> >   net/thunderx: fix compile errors for armv8a clang
> >   acl: fix warning seen with armv8a clang
> >   eal/arm: fix warnings seen with armv8a clang
> >   eal: fix warning seen with armv8a clang
> > 
> >  config/defconfig_arm64-armv8a-linuxapp-clang       | 56
> > ++++++++++++++++++++++
> >  drivers/net/thunderx/base/nicvf_plat.h             |  2 +-
> >  lib/librte_acl/Makefile                            |  5 +-
> >  .../common/include/arch/arm/rte_byteorder.h        |  2 +-
> >  lib/librte_eal/linuxapp/eal/Makefile               |  4 ++
> >  lib/librte_hash/Makefile                           |  2 +
> >  lib/librte_hash/rte_crc_arm64.h                    |  4 --
> >  lib/librte_hash/rte_hash_crc.h                     |  2 +-
> >  8 files changed, 69 insertions(+), 8 deletions(-)
> >  create mode 100644 config/defconfig_arm64-armv8a-linuxapp-clang
> > 


More information about the dev mailing list