-----Original Message-----
> Date: Wed, 9 May 2018 07:23:08 +0530
> From: Jerin Jacob <[email protected]>
> To: Pavan Nikhilesh <[email protected]>
> CC: [email protected], [email protected],
> [email protected]
> 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 <[email protected]>
> > To: [email protected], [email protected],
> > [email protected]
> > Cc: [email protected], Pavan Nikhilesh <[email protected]>
> > 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 <[email protected]>
>
> > Signed-off-by: Pavan Nikhilesh <[email protected]>
>
> Acked-by: Jerin Jacob <[email protected]>
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
> >