freedreno header uses not installed xf86atomic.h

Eric Engestrom eric.engestrom at intel.com
Fri Feb 15 13:42:45 UTC 2019


On Friday, 2019-02-15 13:36:39 +0000, Eric Engestrom wrote:
> On Friday, 2019-02-15 07:11:55 -0500, Rob Clark wrote:
> > On Fri, Feb 15, 2019 at 3:55 AM Daniel Drake <drake at endlessm.com> wrote:
> > >
> > > Hi,
> > >
> > > Using libdrm-2.4.97, mesa fails to build on ARM with:
> > >
> > > [  456s] In file included from
> > > ../../../../../src/gallium/drivers/freedreno/freedreno_util.h:33,
> > > [  456s]                  from
> > > ../../../../../src/gallium/drivers/freedreno/freedreno_batch.h:34,
> > > [  456s]                  from
> > > ../../../../../src/gallium/drivers/freedreno/freedreno_context.h:39,
> > > [  456s]                  from
> > > ../../../../../src/gallium/drivers/freedreno/freedreno_program.c:33:
> > > [  456s] /usr/include/freedreno/freedreno_ringbuffer.h:32:10: fatal
> > > error: xf86atomic.h: No such file or directory
> > >
> > > The freedreno headers were recently modified to use xf86atomic.h:
> > > https://gitlab.freedesktop.org/mesa/drm/commit/b541d21a0a908bf98d44375720f4430297720743
> > >
> > 
> > oh, that union/ifdef hack was specifically to avoid this issue..
> > probably the patch removing it should be reverted.
> 
> Right, I messed up with that commit, I didn't realise freedreno_ringbuffer.h
> was installed. We need to remove that include.
> 
> That said, I'm confused as to how freedreno_ringbuffer.h users in Mesa
> knows whether it's safe to use refcnt from that union?
> It doesn't check for HAS_ATOMIC_OPS, so it can't know whether it
> contains garbage padding or a refcount, can it?

No, that wouldn't even compile?

(with the code before my messed up commit:)
Mesa includes freedreno_ringbuffer.h but doesn't define HAS_ATOMIC_OPS,
so fd_ringbuffer::refcnt doesn't get compiled in (but the padding is
still there), so code in mesa can't use ->refcnt because the compiler
wouldn't know what that is.

I must be missing something, how did this ever compile?


More information about the dri-devel mailing list