package/brltty: explicitly check if ioperm is available
authorMario Lang <mlang@blind.guru>
Fri, 29 Dec 2017 14:06:41 +0000 (15:06 +0100)
committerThomas Petazzoni <thomas.petazzoni@free-electrons.com>
Fri, 29 Dec 2017 20:48:24 +0000 (21:48 +0100)
ioperm, inb and outb are i386 specific functions usually
not available on non-PC archs.  Check if ioperm is available before
trying to use it.

Patch cherry-picked from upstream, can be removed when 5.6 is out.

Fixes:
  http://autobuild.buildroot.net/results/f09974f2ba24319e55e578ece34bb2e7e8bb3c43
  http://autobuild.buildroot.net/results/7d502f280c46f0d1e2678140f9117fcc59bc2d7b

Signed-off-by: Mario Lang <mlang@blind.guru>
[Thomas: move patch out of per-version directory, add comment
explaining why we need to autoreconf, and why we can't use
<pkg>_AUTORECONF.]
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
package/brltty/0002-Check-for-ioperm-to-make-sure-the-platform-supports-.patch [new file with mode: 0644]
package/brltty/brltty.mk

diff --git a/package/brltty/0002-Check-for-ioperm-to-make-sure-the-platform-supports-.patch b/package/brltty/0002-Check-for-ioperm-to-make-sure-the-platform-supports-.patch
new file mode 100644 (file)
index 0000000..3dbacb3
--- /dev/null
@@ -0,0 +1,31 @@
+From 28dde6749327fd15a1b8b7bcf5cc74a95598582a Mon Sep 17 00:00:00 2001
+From: Mario Lang <mlang@delysid.org>
+Date: Fri, 29 Dec 2017 10:35:05 +0100
+Subject: [PATCH] Check for ioperm to make sure the platform supports ports
+ I/O. (ml)
+
+Signed-off-by: Mario Lang <mlang@blind.guru>
+---
+This patch was taken from upstream, and can be removed when 5.6 is out.
+
+ configure.ac | 4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+diff --git a/configure.ac b/configure.ac
+index 5e94d33bd..07119dd9f 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -1446,7 +1446,9 @@ BRLTTY_ARG_PACKAGE([ports], [I/O ports], [], [dnl
+       ports_package="kfreebsd"
+       ;;
+    linux*)
+-      ports_package="glibc"
++      AC_CHECK_FUNC([ioperm], [
++         ports_package="glibc"
++      ])
+       ;;
+    mingw*)
+       ports_package="windows"
+-- 
+2.15.0
+
index 9621d4f9c18724861c6521c35364022fa915fd4f..632aa683861e27b48586b36300fbfdf16cf4471e 100644 (file)
@@ -11,7 +11,7 @@ BRLTTY_INSTALL_STAGING_OPTS = INSTALL_ROOT=$(STAGING_DIR) install
 BRLTTY_INSTALL_TARGET_OPTS = INSTALL_ROOT=$(TARGET_DIR) install
 BRLTTY_LICENSE_FILES = LICENSE-GPL LICENSE-LGPL
 
-BRLTTY_DEPENDENCIES = $(TARGET_NLS_DEPENDENCIES)
+BRLTTY_DEPENDENCIES = $(TARGET_NLS_DEPENDENCIES) host-autoconf
 
 BRLTTY_CONF_OPTS = \
        --disable-java-bindings \
@@ -24,6 +24,16 @@ BRLTTY_CONF_OPTS = \
        --without-mikropuhe --without-speechd --without-swift \
        --without-theta --without-viavoice
 
+# Autoreconf is needed because we're patching configure.ac in
+# 0002-Check-for-ioperm-to-make-sure-the-platform-supports-.patch. However,
+# a plain autoreconf doesn't work, because this package is only
+# autoconf-based.
+define BRLTTY_AUTOCONF
+       cd $(BRLTTY_SRCDIR) && $(AUTOCONF)
+endef
+
+BRLTTY_PRE_CONFIGURE_HOOKS += BRLTTY_AUTOCONF
+
 ifeq ($(BR2_PACKAGE_BLUEZ5_UTILS),y)
 BRLTTY_DEPENDENCIES += bluez5_utils
 BRLTTY_CONF_OPTS += --with-bluetooth-package