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.sek...@caviumnetworks.com> > > To: tho...@monjalon.net, jerin.ja...@caviumnetworks.com, > > maciej.cze...@caviumnetworks.com, vikto...@rehivetech.com, > > jianbo....@linaro.org, bruce.richard...@intel.com, > > pablo.de.lara.gua...@intel.com, konstantin.anan...@intel.com > > Cc: dev@dpdk.org, Ashwin Sekhar T K <ashwin.sekhar@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 > >