can you link to problem description? is it segfault here? On 16 February 2018 at 17:54, Dmitry Eremin-Solenikov < dmitry.ereminsoleni...@linaro.org> wrote:
> Hello, > > I've been debugging the Clang/AArch64/non-ABI case during this week. > > It indeed is a compiler issue. Here is a workaround, which fixes the > issue for at least clang 7 (did not try with earlier versions, probably > it would also help). At this moment I do not think we should apply this > fix, but rather declare this combination as not supported. Our code is > perfectly valid from my POV. > > diff --git a/platform/linux-generic/odp_pool.c > b/platform/linux-generic/odp_pool.c > index e5ba8982a29a..a97d096d1a53 100644 > --- a/platform/linux-generic/odp_pool.c > +++ b/platform/linux-generic/odp_pool.c > @@ -727,12 +727,13 @@ int buffer_alloc_multi(pool_t *pool, > odp_buffer_hdr_t *buf_hdr[], int max_num) > buf_hdr[i] = buf_hdr_from_index(pool, cache->buf_index[j]); > } > > - /* If needed, get more from the global pool */ > - if (odp_unlikely(num_deq)) { > /* Temporary copy needed since odp_buffer_t is uintptr_t > * and not uint32_t. */ > uint32_t data[burst]; > > + /* If needed, get more from the global pool */ > + if (odp_unlikely(num_deq)) { > + > ring = &pool->ring->hdr; > mask = pool->ring_mask; > burst = ring_deq_multi(ring, mask, data, burst); > > > -- > With best wishes > Dmitry >