From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jerin Jacob Subject: Re: [PATCH 1/4] app: add LDFLAGS -latomic to link atomic lib Date: Tue, 15 May 2018 14:37:01 +0530 Message-ID: <20180515090700.GA10539@jerin> References: <1526372924-28411-1-git-send-email-gavin.hu@arm.com> <1526372924-28411-2-git-send-email-gavin.hu@arm.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Cc: dev@dpdk.org To: Gavin Hu Return-path: Received: from NAM02-BL2-obe.outbound.protection.outlook.com (mail-bl2nam02hn0234.outbound.protection.outlook.com [104.47.38.234]) by dpdk.org (Postfix) with ESMTP id B97E41B7A5 for ; Tue, 15 May 2018 11:07:21 +0200 (CEST) Content-Disposition: inline In-Reply-To: <1526372924-28411-2-git-send-email-gavin.hu@arm.com> List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" -----Original Message----- > Date: Tue, 15 May 2018 04:28:41 -0400 > From: Gavin Hu > To: dev@dpdk.org > Subject: [dpdk-dev] [PATCH 1/4] app: add LDFLAGS -latomic to link atomic lib > X-Mailer: git-send-email 2.1.4 > > For ARM64 platform, libdpdk.a includes the librte_pmd_octeontx_ssovf.a, > which requires the libatomic.a support.The atomic lib is built-in in the > gcc toolchain, but for clang it has to be explicitly linked. > For more details, please refer to https://clang.llvm.org/docs/Toolchain.html > > ~/dpdk/build/lib/librte_pmd_octeontx_ssovf.a(timvf_worker.o): In function `timvf_timer_cancel_burst': > timvf_worker.c:(.text+0x80): undefined reference to `__atomic_fetch_add_8' > /home/gavin/arm_repo/dpdk/build/lib/librte_pmd_octeontx_ssovf.a(timvf_worker.o): In function `timvf_timer_arm_burst_sp': > timvf_worker.c:(.text+0x200): undefined reference to `__atomic_fetch_add_8' > timvf_worker.c:(.text+0x244): undefined reference to `__atomic_store_2' > timvf_worker.c:(.text+0x278): undefined reference to `__atomic_fetch_add_4' > timvf_worker.c:(.text+0x30c): undefined reference to `__atomic_store_2' > > Signed-off-by: Gavin Hu > Reviewed-by: Honnappa Nagarahalli Following patch is part of upstream. Are you testing with following patch/upstream. commit 55fbc92d7800100628579643c9ee2770614fef10 Author: Pavan Nikhilesh Date: Wed May 9 02:56:00 2018 +0530 event/octeontx: fix build with clang 6 Clang 6 & 7 fail to naturally align packed structs due to this clang can't use 8byte atomic primitives and splits them into lesser atomic primitives. To use lesser atomic primitives we need to link libatomic (-latomic), instead supply alignment attribute to the compiler. timvf_worker.c:(.text+0x498): undefined reference to `__atomic_fetch_add_8' timvf_worker.c:(.text+0x525): undefined reference to `__atomic_store_2' timvf_worker.c:(.text+0x557): undefined reference to `__atomic_fetch_add_4' timvf_worker.c:(.text+0x5de): undefined reference to `__atomic_store_2' Fixes: f874c1eb1519 ("event/octeontx: create and free timer adapter") Reported-by: Andrew Rybchenko Signed-off-by: Pavan Nikhilesh Acked-by: Jerin Jacob > --- > mk/rte.app.mk | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/mk/rte.app.mk b/mk/rte.app.mk > index 438f99d..bca8325 100644 > --- a/mk/rte.app.mk > +++ b/mk/rte.app.mk > @@ -51,6 +51,7 @@ endif > > # Link only the libraries used in the application > LDFLAGS += --as-needed > +LDFLAGS += -latomic > > # default path for libs > _LDLIBS-y += -L$(RTE_SDK_BIN)/lib > -- > 2.1.4 >