DPDK patches and discussions
 help / color / mirror / Atom feed
From: Jerin Jacob <jerin.jacob@caviumnetworks.com>
To: Gavin Hu <gavin.hu@arm.com>
Cc: dev@dpdk.org
Subject: Re: [dpdk-dev] [PATCH 1/4] app: add LDFLAGS -latomic to link atomic lib
Date: Tue, 15 May 2018 14:37:01 +0530	[thread overview]
Message-ID: <20180515090700.GA10539@jerin> (raw)
In-Reply-To: <1526372924-28411-2-git-send-email-gavin.hu@arm.com>

-----Original Message-----
> Date: Tue, 15 May 2018 04:28:41 -0400
> From: Gavin Hu <gavin.hu@arm.com>
> 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 <gavin.hu@arm.com>
> Reviewed-by: Honnappa Nagarahalli <Honnappa.Nagarahalli@arm.com>



Following patch is part of upstream. Are you testing with following
patch/upstream.

commit 55fbc92d7800100628579643c9ee2770614fef10
Author: Pavan Nikhilesh <pbhagavatula@caviumnetworks.com>
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 <arybchenko@solarflare.com>
    Signed-off-by: Pavan Nikhilesh <pbhagavatula@caviumnetworks.com>
    Acked-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>


> ---
>  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
> 

  parent reply	other threads:[~2018-05-15  9:07 UTC|newest]

Thread overview: 30+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-05-15  8:28 [dpdk-dev] [PATCH 0/4] *** fix native clang compiling errors on ARM64 *** Gavin Hu
2018-05-15  8:28 ` [dpdk-dev] [PATCH 1/4] app: add LDFLAGS -latomic to link atomic lib Gavin Hu
2018-05-15  9:00   ` Bruce Richardson
2018-05-15 10:10     ` Gavin Hu
2018-05-15  9:07   ` Jerin Jacob [this message]
2018-05-15  8:28 ` [dpdk-dev] [PATCH 2/4] Driver/Mellanox: fix PMD compiling issue Gavin Hu
2018-05-15  9:11   ` Jerin Jacob
2018-05-15  8:28 ` [dpdk-dev] [PATCH 3/4] cryptodev: fix the clang " Gavin Hu
2018-05-15  8:28 ` [dpdk-dev] [PATCH 4/4] ifpgai_rawdev: " Gavin Hu
2018-05-15  9:23 ` [dpdk-dev] [PATCH v2 1/4] app: add LDFLAGS -latomic to link atomic lib Gavin Hu
2018-05-15  9:23   ` [dpdk-dev] [PATCH v2 2/4] Driver/Mellanox: fix PMD compiling issue Gavin Hu
2018-05-15 17:05     ` Yongseok Koh
2018-05-15 17:52       ` Sirshak Das
2018-05-15 18:38         ` Yongseok Koh
2018-05-15  9:23   ` [dpdk-dev] [PATCH v2 3/4] cryptodev: fix the clang " Gavin Hu
2018-05-15 11:41     ` Jerin Jacob
2018-05-15 13:34       ` De Lara Guarch, Pablo
2018-05-15  9:23   ` [dpdk-dev] [PATCH v2 4/4] ifpgai_rawdev: " Gavin Hu
2018-05-16  5:13     ` Jerin Jacob
2018-05-15 11:38   ` [dpdk-dev] [PATCH v2 1/4] app: add LDFLAGS -latomic to link atomic lib Jerin Jacob
2018-05-16  6:08 ` [dpdk-dev] [PATCH v3 1/3] net/mlx5: fix the clang compiling issue Gavin Hu
2018-05-16  6:08   ` [dpdk-dev] [PATCH v3 2/3] eventdev: " Gavin Hu
2018-05-16  6:08   ` [dpdk-dev] [PATCH v3 3/3] raw/ifpga_rawdev: " Gavin Hu
2018-05-16  6:45     ` Jerin Jacob
2018-05-17  1:47       ` Gavin Hu
2018-05-20 22:28         ` Thomas Monjalon
2018-05-17  2:46 ` [dpdk-dev] [PATCH v4 1/3] net/mlx5: " Gavin Hu
2018-05-17  2:46   ` [dpdk-dev] [PATCH v4 2/3] eventdev: " Gavin Hu
2018-05-17  2:46   ` [dpdk-dev] [PATCH v4 3/3] raw/ifpga: " Gavin Hu
2018-05-20 23:02   ` [dpdk-dev] [PATCH v4 1/3] net/mlx5: " Thomas Monjalon

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=20180515090700.GA10539@jerin \
    --to=jerin.jacob@caviumnetworks.com \
    --cc=dev@dpdk.org \
    --cc=gavin.hu@arm.com \
    /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).