commit 8c2def76264e22617f349618df0b39fcb59e59a3
parent c19729b9a5f0295e99c48f51d7e23a849bbd158a
Author: parazyd <parazyd@dyne.org>
Date: Sun, 2 Oct 2016 22:13:16 +0200
x11-drivers/xf86-video-intel: Add 2.99.917 with musl-libc support.
Diffstat:
6 files changed, 311 insertions(+), 0 deletions(-)
diff --git a/x11-drivers/xf86-video-intel/Manifest b/x11-drivers/xf86-video-intel/Manifest
@@ -0,0 +1,2 @@
+DIST xf86-video-intel-2.99.917.tar.bz2 2259040 SHA256 00b781eea055582820a123c47b62411bdf6aabf4f03dc0568faec55faf9667c9 SHA512 cbf4d46ad1ad5e5587c0f1f620ff534ef0645270517b60056b9f03e83d8216e2f456de46352a06c37c0c46963cc4ed20b71b815b20ec1bf680ff046e535f580f WHIRLPOOL b26f1b303a27825120e1036f15493119e8869ebae74a2663204fe1ee63cf9fc217e593c469d6c33151a73c9ea6e9df88d0e3a0bb74ece5109b51593785fd4d7d
+DIST xf86-video-intel-2.99.917_p20160829.tar.xz 942680 SHA256 0541e3a0eb3ee1a30968fa4a2ae0db9a1f5768d0931582f7fc647cc8ee26127e SHA512 7b35f1f994639f017c1201231f659704fb5f2ddbdda73d054780922e7f9a29a0dba859c477651c59be9d84831dd5473794a52cd18e97185dbbdb0c051cef5d26 WHIRLPOOL 53126bfb47e51371420715dbb5dde64828e734899debd022de2efa2d04cc069f70d88dae3e6a3b4f4e70887d315dae1d26605d8b591d1684583ed576f317f614
diff --git a/x11-drivers/xf86-video-intel/files/xf86-video-intel-2.99.917-libdrm-kernel-4_0-crash.patch b/x11-drivers/xf86-video-intel/files/xf86-video-intel-2.99.917-libdrm-kernel-4_0-crash.patch
@@ -0,0 +1,65 @@
+From 7fe2b2948652443ff43d907855bd7a051d54d309 Mon Sep 17 00:00:00 2001
+From: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Thu, 19 Mar 2015 23:14:17 +0000
+Subject: sna: Protect against ABI breakage in recent versions of libdrm
+
+Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+diff --git a/src/sna/kgem.c b/src/sna/kgem.c
+index 11f0828..6f16cba 100644
+--- a/src/sna/kgem.c
++++ b/src/sna/kgem.c
+@@ -182,6 +182,15 @@ struct local_i915_gem_caching {
+ #define LOCAL_IOCTL_I915_GEM_SET_CACHING DRM_IOW(DRM_COMMAND_BASE + LOCAL_I915_GEM_SET_CACHING, struct local_i915_gem_caching)
+ #define LOCAL_IOCTL_I915_GEM_GET_CACHING DRM_IOW(DRM_COMMAND_BASE + LOCAL_I915_GEM_GET_CACHING, struct local_i915_gem_caching)
+
++struct local_i915_gem_mmap {
++ uint32_t handle;
++ uint32_t pad;
++ uint64_t offset;
++ uint64_t size;
++ uint64_t addr_ptr;
++};
++#define LOCAL_IOCTL_I915_GEM_MMAP DRM_IOWR(DRM_COMMAND_BASE + DRM_I915_GEM_MMAP, struct local_i915_gem_mmap)
++
+ struct local_i915_gem_mmap2 {
+ uint32_t handle;
+ uint32_t pad;
+@@ -514,15 +523,15 @@ retry_wc:
+
+ static void *__kgem_bo_map__cpu(struct kgem *kgem, struct kgem_bo *bo)
+ {
+- struct drm_i915_gem_mmap mmap_arg;
++ struct local_i915_gem_mmap arg;
+ int err;
+
+ retry:
+- VG_CLEAR(mmap_arg);
+- mmap_arg.handle = bo->handle;
+- mmap_arg.offset = 0;
+- mmap_arg.size = bytes(bo);
+- if ((err = do_ioctl(kgem->fd, DRM_IOCTL_I915_GEM_MMAP, &mmap_arg))) {
++ VG_CLEAR(arg);
++ arg.handle = bo->handle;
++ arg.offset = 0;
++ arg.size = bytes(bo);
++ if ((err = do_ioctl(kgem->fd, LOCAL_IOCTL_I915_GEM_MMAP, &arg))) {
+ assert(err != EINVAL);
+
+ if (__kgem_throttle_retire(kgem, 0))
+@@ -536,10 +545,10 @@ retry:
+ return NULL;
+ }
+
+- VG(VALGRIND_MAKE_MEM_DEFINED(mmap_arg.addr_ptr, bytes(bo)));
++ VG(VALGRIND_MAKE_MEM_DEFINED(arg.addr_ptr, bytes(bo)));
+
+ DBG(("%s: caching CPU vma for %d\n", __FUNCTION__, bo->handle));
+- return bo->map__cpu = (void *)(uintptr_t)mmap_arg.addr_ptr;
++ return bo->map__cpu = (void *)(uintptr_t)arg.addr_ptr;
+ }
+
+ static int gem_write(int fd, uint32_t handle,
+--
+cgit v0.10.2
+
diff --git a/x11-drivers/xf86-video-intel/files/xf86-video-intel-2.99.917-sna-udev-fstat.patch b/x11-drivers/xf86-video-intel/files/xf86-video-intel-2.99.917-sna-udev-fstat.patch
@@ -0,0 +1,57 @@
+From 12af8a575d1518d40416f83195049157c3a062a5 Mon Sep 17 00:00:00 2001
+From: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Tue, 24 Feb 2015 15:25:40 +0000
+Subject: sna: udev integration depends on fstat and sys/stat.h
+
+src/sna/sna_driver.c: In function 'sna_handle_uevents':
+src/sna/sna_driver.c:759:2: error: implicit declaration of function 'fstat' [-Werror=implicit-function-declaration]
+
+Also take the opportunity to include udev support in the configure
+summary.
+
+Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+diff --git a/configure.ac b/configure.ac
+index 7476e2b..de3a4b3 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -197,11 +197,15 @@ AC_ARG_ENABLE(udev,
+
+ if test "x$UDEV" != "xno"; then
+ PKG_CHECK_MODULES(UDEV, [libudev], [udev="yes"], [udev="no"])
++ AC_CHECK_HEADERS([sys/stat.h], [], [udev="no"])
+ if test "x$UDEV" = "xyes" -a "x$udev" != "xyes"; then
+ AC_MSG_ERROR([udev support requested but not found (libudev)])
+ fi
+ if test "x$udev" = "xyes"; then
+ AC_DEFINE(HAVE_UDEV,1,[Enable udev-based monitor hotplug detection])
++ udev_msg=" yes"
++ else
++ udev_msg=" no"
+ fi
+ fi
+
+@@ -911,6 +915,7 @@ echo " Support for Kernel Mode Setting? $KMS"
+ echo " Support for legacy User Mode Setting (for i810)? $UMS"
+ echo " Support for Direct Rendering Infrastructure:$dri_msg"
+ echo " Support for Xv motion compensation (XvMC and libXvMC):$xvmc_msg"
++echo " Support for display hotplug notifications (udev):$udev_msg"
+ echo " Build additional tools and utilities?$tools_msg"
+ if test -n "$xp_msg"; then
+ echo " Experimental support:$xp_msg"
+diff --git a/src/sna/sna_driver.c b/src/sna/sna_driver.c
+index 8c0d0b5..bc20ef0 100644
+--- a/src/sna/sna_driver.c
++++ b/src/sna/sna_driver.c
+@@ -740,6 +740,8 @@ sna_wakeup_handler(WAKEUPHANDLER_ARGS_DECL)
+ }
+
+ #if HAVE_UDEV
++#include <sys/stat.h>
++
+ static void
+ sna_handle_uevents(int fd, void *closure)
+ {
+--
+cgit v0.10.2
+
diff --git a/x11-drivers/xf86-video-intel/files/xf86-video-intel-2.99.917-uxa-udev-fstat.patch b/x11-drivers/xf86-video-intel/files/xf86-video-intel-2.99.917-uxa-udev-fstat.patch
@@ -0,0 +1,27 @@
+From 369ceec0e4910ba2c37736a59c55c0d6c26433bf Mon Sep 17 00:00:00 2001
+From: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Tue, 24 Feb 2015 15:25:40 +0000
+Subject: uxa: udev integration depends on fstat and sys/stat.h
+
+src/uxa/intel_driver.c: In function 'I830HandleUEvents':
+src/uxa/intel_driver.c:738:14: error: storage size of 's' isn't known
+src/uxa/intel_driver.c:746:2: error: implicit declaration of function 'fstat' [-Werror=implicit-function-declaration]
+
+Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+diff --git a/src/uxa/intel_driver.c b/src/uxa/intel_driver.c
+index c554124..6e64b8c 100644
+--- a/src/uxa/intel_driver.c
++++ b/src/uxa/intel_driver.c
+@@ -728,6 +728,8 @@ intel_flush_callback(CallbackListPtr *list,
+ }
+
+ #if HAVE_UDEV
++#include <sys/stat.h>
++
+ static void
+ I830HandleUEvents(int fd, void *closure)
+ {
+--
+cgit v0.10.2
+
diff --git a/x11-drivers/xf86-video-intel/xf86-video-intel-2.99.917-r999.ebuild b/x11-drivers/xf86-video-intel/xf86-video-intel-2.99.917-r999.ebuild
@@ -0,0 +1,76 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+XORG_DRI=dri
+XORG_EAUTORECONF=yes
+inherit linux-info xorg-2
+
+DESCRIPTION="X.Org driver for Intel cards"
+
+KEYWORDS="amd64 x86 ~amd64-fbsd -x86-fbsd"
+IUSE="debug +sna +udev uxa xvmc"
+
+REQUIRED_USE="
+ || ( sna uxa )
+"
+
+RDEPEND="x11-libs/libXext
+ x11-libs/libXfixes
+ >=x11-libs/pixman-0.27.1
+ >=x11-libs/libdrm-2.4.29[video_cards_intel]
+ sna? (
+ >=x11-base/xorg-server-1.10
+ )
+ udev? (
+ virtual/udev
+ )
+ xvmc? (
+ x11-libs/libXvMC
+ >=x11-libs/libxcb-1.5
+ x11-libs/xcb-util
+ )
+"
+DEPEND="${RDEPEND}
+ >=x11-proto/dri2proto-2.6
+ x11-proto/dri3proto
+ x11-proto/presentproto
+ x11-proto/resourceproto"
+
+PATCHES=(
+ "${FILESDIR}"/${P}-sna-udev-fstat.patch
+ "${FILESDIR}"/${P}-uxa-udev-fstat.patch
+ "${FILESDIR}"/${P}-libdrm-kernel-4_0-crash.patch
+)
+
+src_configure() {
+ XORG_CONFIGURE_OPTIONS=(
+ $(use_enable debug)
+ $(use_enable dri)
+ $(use_enable sna)
+ $(use_enable uxa)
+ $(use_enable udev)
+ $(use_enable xvmc)
+ # Legacy driver is broken on MUSL, so whole driver fails.
+ --enable-kms-only
+ --disable-dri3
+ )
+ xorg-2_src_configure
+}
+
+pkg_postinst() {
+ if linux_config_exists \
+ && ! linux_chkconfig_present DRM_I915_KMS; then
+ echo
+ ewarn "This driver requires KMS support in your kernel"
+ ewarn " Device Drivers --->"
+ ewarn " Graphics support --->"
+ ewarn " Direct Rendering Manager (XFree86 4.1.0 and higher DRI support) --->"
+ ewarn " <*> Intel 830M, 845G, 852GM, 855GM, 865G (i915 driver) --->"
+ ewarn " i915 driver"
+ ewarn " [*] Enable modesetting on intel by default"
+ echo
+ fi
+}
diff --git a/x11-drivers/xf86-video-intel/xf86-video-intel-2.99.917_p20160829-r999.ebuild b/x11-drivers/xf86-video-intel/xf86-video-intel-2.99.917_p20160829-r999.ebuild
@@ -0,0 +1,84 @@
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+XORG_DRI=dri
+XORG_EAUTORECONF=yes
+inherit linux-info xorg-2
+
+DESCRIPTION="X.Org driver for Intel cards"
+
+KEYWORDS="~amd64 ~x86 ~amd64-fbsd -x86-fbsd"
+IUSE="debug dri3 +sna +udev uxa xvmc"
+COMMIT_ID="74e4c131daf99eec381c77bef6611111e74da502"
+SRC_URI="https://cgit.freedesktop.org/xorg/driver/xf86-video-intel/snapshot/${COMMIT_ID}.tar.xz -> ${P}.tar.xz"
+
+S=${WORKDIR}/${COMMIT_ID}
+
+REQUIRED_USE="
+ || ( sna uxa )
+"
+RDEPEND="x11-libs/libXext
+ x11-libs/libXfixes
+ >=x11-libs/pixman-0.27.1
+ >=x11-libs/libdrm-2.4.29[video_cards_intel]
+ dri3? (
+ >=x11-base/xorg-server-1.18
+ )
+ sna? (
+ >=x11-base/xorg-server-1.10
+ )
+ udev? (
+ virtual/udev
+ )
+ xvmc? (
+ x11-libs/libXvMC
+ >=x11-libs/libxcb-1.5
+ x11-libs/xcb-util
+ )
+"
+DEPEND="${RDEPEND}
+ >=x11-proto/dri2proto-2.6
+ x11-proto/dri3proto
+ x11-proto/presentproto
+ x11-proto/resourceproto"
+
+src_configure() {
+ XORG_CONFIGURE_OPTIONS=(
+ $(use_enable debug)
+ $(use_enable dri)
+ $(use_enable dri dri3)
+ $(usex dri3 "--with-default-dri=3")
+ $(use_enable sna)
+ $(use_enable udev)
+ $(use_enable uxa)
+ $(use_enable xvmc)
+ # Legacy driver is broken on MUSL, so whole driver fails.
+ --enable-kms-only
+ )
+ xorg-2_src_configure
+}
+
+pkg_postinst() {
+ if linux_config_exists && \
+ kernel_is -lt 4 3 && ! linux_chkconfig_present DRM_I915_KMS; then
+ echo
+ ewarn "This driver requires KMS support in your kernel"
+ ewarn " Device Drivers --->"
+ ewarn " Graphics support --->"
+ ewarn " Direct Rendering Manager (XFree86 4.1.0 and higher DRI support) --->"
+ ewarn " <*> Intel 830M, 845G, 852GM, 855GM, 865G (i915 driver) --->"
+ ewarn " i915 driver"
+ ewarn " [*] Enable modesetting on intel by default"
+ echo
+ fi
+ if use dri3; then
+ ewarn "There are reports of crashes when using DRI3, we recommend"
+ ewarn "to be careful when enabling this option. Check the following"
+ ewarn "bugs for discussion and a workaround patch for libdrm:"
+ ewarn "https://bugs.freedesktop.org/show_bug.cgi?id=71759"
+ ewarn "https://bugs.gentoo.org/show_bug.cgi?id=582544"
+ fi
+}