Skip to contentSkip to conversation

xdriver_xf86-video-intel: add upstream patches fixing fstat build errors

PATCH New James Knight 2 participants 4 messages Oct 19, 2015

lore
Share & tools
lore
#0 lore raw

PATCH 1/2 xdriver_xf86-video-intel: add upstream patches fixing fstat build errors

Attempting to build xdriver_xf86-video-intel version 2.99.917 with udev results in compilation failures. The provided patches ([1], [2]) corrects the implicit declaration of function 'fstat' occurrences during the building of this driver.

[1] http://cgit.freedesktop.org/xorg/driver/xf86-video-intel/commit/?id=12af8a575d1518d40416f83195049157c3a062a5
[2] http://cgit.freedesktop.org/xorg/driver/xf86-video-intel/commit/?id=369ceec0e4910ba2c37736a59c55c0d6c26433bf

---
 .../0001-sna-udev-fstat.patch                      | 57 ++++++++++++++++++++++
 .../0002-uxa-udev-fstat.patch                      | 27 ++++++++++
 .../xdriver_xf86-video-intel.mk                    |  1 +
 3 files changed, 85 insertions(+)
 create mode 100644 package/x11r7/xdriver_xf86-video-intel/0001-sna-udev-fstat.patch
 create mode 100644 package/x11r7/xdriver_xf86-video-intel/0002-uxa-udev-fstat.patch
package/x11r7/xdriver_xf86-video-intel/0001-sna-udev-fstat.patch new file +57 -0
new file mode 100644
index 0000000..7e276ac
@@ -0,0 +1,57 @@
+From 12af8a575d1518d40416f83195049157c3a062a5 Mon Sep 17 00:00:00 2001
+From: Chris Wilson <[email protected]>
+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 <[email protected]>
+
+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
+
package/x11r7/xdriver_xf86-video-intel/0002-uxa-udev-fstat.patch new file +27 -0
new file mode 100644
index 0000000..6679356
@@ -0,0 +1,27 @@
+From 369ceec0e4910ba2c37736a59c55c0d6c26433bf Mon Sep 17 00:00:00 2001
+From: Chris Wilson <[email protected]>
+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 <[email protected]>
+
+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
+
package/x11r7/xdriver_xf86-video-intel/xdriver_xf86-video-intel.mk +1 -0
index 707cedd..a06e652 100644
@@ -9,6 +9,7 @@ XDRIVER_XF86_VIDEO_INTEL_SOURCE = xf86-video-intel-$(XDRIVER_XF86_VIDEO_INTEL_VE
 XDRIVER_XF86_VIDEO_INTEL_SITE = http://xorg.freedesktop.org/releases/individual/driver
 XDRIVER_XF86_VIDEO_INTEL_LICENSE = MIT
 XDRIVER_XF86_VIDEO_INTEL_LICENSE_FILES = COPYING
+XDRIVER_XF86_VIDEO_INTEL_AUTORECONF = YES
 
 # this fixes a getline-related compilation error in src/sna/kgem.c
 XDRIVER_XF86_VIDEO_INTEL_CONF_ENV = \
Signature · 1 line
1.9.5.msysgit.1
#1 lore raw

PATCH 2/2 xdriver_xf86-video-intel: add upstream patch fixing libdrm/kernel crash

When running this Intel driver with a newer libdrm/kernel (4.x), Xorg can crash (segmentation fault).

References:
http://cgit.freedesktop.org/xorg/driver/xf86-video-intel/commit/?id=7fe2b2948652443ff43d907855bd7a051d54d309
https://bugs.gentoo.org/show_bug.cgi?id=552124
https://bugzilla.opensuse.org/show_bug.cgi?id=931917

---
 .../0003-sna-libdrm-abi-protection.patch           | 65 ++++++++++++++++++++++
 1 file changed, 65 insertions(+)
 create mode 100644 package/x11r7/xdriver_xf86-video-intel/0003-sna-libdrm-abi-protection.patch
package/x11r7/xdriver_xf86-video-intel/0003-sna-libdrm-abi-protection.patch new file +65 -0
new file mode 100644
index 0000000..ea3aa30
@@ -0,0 +1,65 @@
+From 7fe2b2948652443ff43d907855bd7a051d54d309 Mon Sep 17 00:00:00 2001
+From: Chris Wilson <[email protected]>
+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 <[email protected]>
+
+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
+
Signature · 1 line
1.9.5.msysgit.1
#2 lore raw

PATCH 2/2 xdriver_xf86-video-intel: add upstream patch fixing libdrm/kernel crash

Dear James Knight,

Quoted 8 lines · James Knight

When running this Intel driver with a newer libdrm/kernel (4.x), Xorg can crash (segmentation fault).

References:
http://cgit.freedesktop.org/xorg/driver/xf86-video-intel/commit/?id=7fe2b2948652443ff43d907855bd7a051d54d309
https://bugs.gentoo.org/show_bug.cgi?id=552124
https://bugzilla.opensuse.org/show_bug.cgi?id=931917

Quoted 5 lines
---
 .../0003-sna-libdrm-abi-protection.patch           | 65 ++++++++++++++++++++++
 1 file changed, 65 insertions(+)
 create mode 100644 package/x11r7/xdriver_xf86-video-intel/0003-sna-libdrm-abi-protection.patch

Applied with some tweaks:

[Thomas:
- add upstream link to the git commits in the patches themselves
- add James SoB line inside the patches themselves]

Thomas

Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
#3 lore raw

PATCH 1/2 xdriver_xf86-video-intel: add upstream patches fixing fstat build errors

In reply to James Knight

Dear James Knight,

Quoted 8 lines · James Knight

Attempting to build xdriver_xf86-video-intel version 2.99.917 with udev results in compilation failures. The provided patches ([1], [2]) corrects the implicit declaration of function 'fstat' occurrences during the building of this driver.

[1] http://cgit.freedesktop.org/xorg/driver/xf86-video-intel/commit/?id=12af8a575d1518d40416f83195049157c3a062a5
[2] http://cgit.freedesktop.org/xorg/driver/xf86-video-intel/commit/?id=369ceec0e4910ba2c37736a59c55c0d6c26433bf

Quoted 8 lines
---
 .../0001-sna-udev-fstat.patch                      | 57 ++++++++++++++++++++++
 .../0002-uxa-udev-fstat.patch                      | 27 ++++++++++
 .../xdriver_xf86-video-intel.mk                    |  1 +
 3 files changed, 85 insertions(+)
 create mode 100644 package/x11r7/xdriver_xf86-video-intel/0001-sna-udev-fstat.patch
 create mode 100644 package/x11r7/xdriver_xf86-video-intel/0002-uxa-udev-fstat.patch

Applied with a few tweaks:

[Thomas:
- add upstream link to the git commits in the patches themselves
- add James SoB line inside the patches themselves
- add a comment above AUTORECONF = YES to indicate why it was added]

Thomas

Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com