On Wed, Mar 29, 2017 at 12:34 PM, Paweł Hajdan, Jr. <phajdan...@gentoo.org> wrote: > I was packaging chromium-59.0.3053.3 . I worked around the problem > described here, but I'd like to find the right long term solution. > > I was hitting the following compile error: > > ../../ui/gfx/linux/client_native_pixmap_dmabuf.cc:39:27: fatal error: > linux/dma-buf.h: No such file or directory > #include <linux/dma-buf.h> > > Despite having sys-kernel/linux-headers-4.10 installed, I do not have > that header. Interestingly, it is present in the tarball > (gentoo-headers-base-4.10.tar.xz), but doesn't seem to get installed. > > This is the workaround I applied: > <https://gitweb.gentoo.org/repo/gentoo.git/tree/www-client/chromium/files/chromium-dma-buf-r1.patch?id=f3d721fbb4127f17e836a1842cfdd2bf76f0d398> > > This is part of the chromium code in question: > > <https://cs.chromium.org/chromium/src/ui/gfx/linux/client_native_pixmap_dmabuf.cc?q=dma-buf.h+package:%5Echromium$&l=39&dr=C> > > #if LINUX_VERSION_CODE < KERNEL_VERSION(4, 6, 0) > #include <linux/types.h> > > struct local_dma_buf_sync { > __u64 flags; > }; > > #define LOCAL_DMA_BUF_SYNC_READ (1 << 0) > #define LOCAL_DMA_BUF_SYNC_WRITE (2 << 0) > #define LOCAL_DMA_BUF_SYNC_RW \ > (LOCAL_DMA_BUF_SYNC_READ | LOCAL_DMA_BUF_SYNC_WRITE) > #define LOCAL_DMA_BUF_SYNC_START (0 << 2) > #define LOCAL_DMA_BUF_SYNC_END (1 << 2) > > #define LOCAL_DMA_BUF_BASE 'b' > #define LOCAL_DMA_BUF_IOCTL_SYNC \ > _IOW(LOCAL_DMA_BUF_BASE, 0, struct local_dma_buf_sync) > > #else > #include <linux/dma-buf.h> > #endif
It seems the file was not added to include/uapi/linux/Kbuild. This was likely an oversight by the kernel developer who added the header file. I would suggest filing a bug.