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