-----Original Message----- > Date: Wed, 9 May 2018 07:23:08 +0530 > From: Jerin Jacob <jerin.ja...@caviumnetworks.com> > To: Pavan Nikhilesh <pbhagavat...@caviumnetworks.com> > CC: santosh.shu...@caviumnetworks.com, arybche...@solarflare.com, > dev@dpdk.org > Subject: Re: [dpdk-dev] [PATCH] event/octeontx: fix clang 6 linker error > User-Agent: Mutt/1.9.5 (2018-04-13) > > -----Original Message----- > > Date: Wed, 9 May 2018 02:56:00 +0530 > > From: Pavan Nikhilesh <pbhagavat...@caviumnetworks.com> > > To: jerin.ja...@caviumnetworks.com, santosh.shu...@caviumnetworks.com, > > arybche...@solarflare.com > > Cc: dev@dpdk.org, Pavan Nikhilesh <pbhagavat...@caviumnetworks.com> > > Subject: [dpdk-dev] [PATCH] event/octeontx: fix clang 6 linker error > > X-Mailer: git-send-email 2.17.0 > > > > 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 <arybche...@solarflare.com> > > > Signed-off-by: Pavan Nikhilesh <pbhagavat...@caviumnetworks.com> > > Acked-by: Jerin Jacob <jerin.ja...@caviumnetworks.com>
Applied to dpdk-next-eventdev/master. Thanks. > > > > --- > > drivers/event/octeontx/timvf_evdev.h | 2 +- > > 1 file changed, 1 insertion(+), 1 deletion(-) > > > > diff --git a/drivers/event/octeontx/timvf_evdev.h > > b/drivers/event/octeontx/timvf_evdev.h > > index b1b2a8464..1cac1e612 100644 > > --- a/drivers/event/octeontx/timvf_evdev.h > > +++ b/drivers/event/octeontx/timvf_evdev.h > > @@ -145,7 +145,7 @@ struct tim_mem_bucket { > > }; > > uint64_t current_chunk; > > uint64_t pad; > > -} __rte_packed; > > +} __rte_packed __rte_aligned(8); > > > > struct tim_mem_entry { > > uint64_t w0; > > -- > > 2.17.0 > >