[Pkg-pciutils-discuss] Bug#456461: pciutils: FTBFS on hurd-i386 (io port access)

Samuel Thibault samuel.thibault at ens-lyon.org
Sun Dec 16 00:30:50 UTC 2007


Package: pciutils
Version: 1:2.2.4~pre4-1
Severity: important
Tags: patch

Hello,

pciutils currently FTBFS on hurd-i386 because it uses an old method for
enabling io port access. The attached patch makes it use the usual glibc
function.

Samuel

-- System Information:
Debian Release: lenny/sid
  APT prefers testing
  APT policy: (990, 'testing'), (500, 'unstable'), (500, 'stable'), (1, 'experimental')
Architecture: i386 (i686)

Kernel: Linux 2.6.23
Locale: LANG=fr_FR at euro, LC_CTYPE=fr_FR at euro (charmap=ISO-8859-15)
Shell: /bin/sh linked to /bin/bash

Versions of packages pciutils depends on:
ii  libc6                         2.7-3      GNU C Library: Shared libraries
ii  libpci2                       2:2.1.11-3 Obsolete shared library for access

pciutils recommends no packages.

-- no debconf information

-- 
Samuel
*** s has joined channel #ens-mim
<N> re 
<s> pfff 
<s> mare de la pfp. 
<s> pas commencer et j'en ai deja marre. 
<s> bon ct juste un cou de gueule ++ 
*** s has left channel #ens-mim (s)
 -+- #ens-mim et la peufeupeu -+-
-------------- next part --------------
diff -ur pciutils-2.2.4/lib/i386-io-hurd.h pciutils-2.2.4-mine/lib/i386-io-hurd.h
--- pciutils-2.2.4/lib/i386-io-hurd.h	2006-08-01 10:18:51.000000000 +0000
+++ pciutils-2.2.4-mine/lib/i386-io-hurd.h	2007-12-15 20:30:59.000000000 +0000
@@ -10,41 +10,21 @@
  */
 
 #include <sys/io.h>
-
-#include <mach/machine/mach_i386.h>
-#include <device/device.h>
-#include <hurd.h>
-
 #include <stdio.h>
 
-static mach_port_t io_port;
-
 static inline int
 intel_setup_io(struct pci_access *a)
 {
-  mach_port_t device;
-
-  if ((errno = get_privileged_ports(NULL, &device)))
-    a->warning("i386-io-hurd: Can't get_privileged_ports(): %m");
-
-  if (!errno && (errno = device_open(device, D_READ | D_WRITE, "io", &io_port)))
-    a->warning("i386-io-hurd: Can't device_open(): %m");
-
-  mach_port_deallocate(mach_task_self(), device);
-
-  if (!errno && (errno = i386_io_port_add(mach_thread_self(), io_port)))
-    a->warning("i386-io-hurd: Can't i386_io_port_add(): %m");
-
-  return errno ? 0 : 1;
+  if (ioperm(0, 0x10000, 1)) {
+    a->warning("ioperm() failed: %m");
+    return 0;
+  }
+  return 1;
 }
 
 static inline int
 intel_cleanup_io(struct pci_access *a)
 {
-  if ((errno = i386_io_port_remove(mach_thread_self(), io_port)))
-    a->warning("i386-io-hurd: Can't i386_io_port_remove(): %m");
-
-  mach_port_deallocate(mach_task_self(), io_port);
-
+  ioperm(0, 0x10000, 0);
   return -1;
 }


More information about the Pkg-pciutils-discuss mailing list