[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

r1738 - in glibc-package: branches/glibc-2.4/debian/patches/any trunk/debian/patches/any



Author: aurel32
Date: 2006-08-15 17:45:24 +0000 (Tue, 15 Aug 2006)
New Revision: 1738

Modified:
   glibc-package/branches/glibc-2.4/debian/patches/any/local-sysctl.diff
   glibc-package/trunk/debian/patches/any/local-sysctl.diff
Log:
Update any/local-sysctl.diff to not use sysctl() in ioperm() on arm.


Modified: glibc-package/branches/glibc-2.4/debian/patches/any/local-sysctl.diff
===================================================================
--- glibc-package/branches/glibc-2.4/debian/patches/any/local-sysctl.diff	2006-08-15 16:48:04 UTC (rev 1737)
+++ glibc-package/branches/glibc-2.4/debian/patches/any/local-sysctl.diff	2006-08-15 17:45:24 UTC (rev 1738)
@@ -76,3 +76,56 @@
  libc_hidden_def (__sysctl)
  weak_alias (__sysctl, sysctl)
 +link_warning (__sysctl, "the `sysctl' syscall has been removed from 2.6.18+ kernels, direct access to `/proc/sys' should be used instead.")
+diff -Nurd glibc-2.3.6.orig/sysdeps/unix/sysv/linux/arm/ioperm.c glibc-2.3.6/sysdeps/unix/sysv/linux/arm/ioperm.c
+--- glibc-2.3.6.orig/sysdeps/unix/sysv/linux/arm/ioperm.c.orig	2006-08-15 18:23:08.715868260 +0200
++++ glibc-2.3.6/sysdeps/unix/sysv/linux/arm/ioperm.c	2006-08-15 19:30:07.215439365 +0200
+@@ -49,6 +49,8 @@
+ 
+ #define PATH_ARM_SYSTYPE	"/etc/arm_systype"
+ #define PATH_CPUINFO		"/proc/cpuinfo"
++#define PATH_PORTBASE		"/proc/bus/isa/portbase"
++#define PATH_PORTSHIFT		"/proc/bus/isa/portshift"
+ 
+ #define MAX_PORT	0x10000
+ 
+@@ -100,15 +102,25 @@
+ {
+   char systype[256];
+   int i, n;
+-  static int iobase_name[] = { CTL_BUS, CTL_BUS_ISA, BUS_ISA_PORT_BASE };
+-  static int ioshift_name[] = { CTL_BUS, CTL_BUS_ISA, BUS_ISA_PORT_SHIFT };
++  FILE * fp;
++
+   size_t len = sizeof(io.base);
+ 
+-  if (! sysctl (iobase_name, 3, &io.io_base, &len, NULL, 0)
+-      && ! sysctl (ioshift_name, 3, &io.shift, &len, NULL, 0))
++  if (fp = fopen (PATH_PORTBASE, "r"))
+     {
+-      io.initdone = 1;
+-      return 0;
++      n = fscanf (fp, "%li", &io.io_base);
++      fclose(fp);
++
++      if (n == 1 && (fp = fopen(PATH_PORTSHIFT, "r")))
++        {
++          n = fscanf (fp, "%i", &io.io_shift);
++          fclose(fp);
++          if (n == 1)
++	    {
++	      io.initdone = 1;
++              return 0;
++	    }
++	}
+     }
+ 
+   n = readlink (PATH_ARM_SYSTYPE, systype, sizeof (systype) - 1);
+@@ -127,8 +139,6 @@
+     }
+   else
+     {
+-      FILE * fp;
+-
+       fp = fopen (PATH_CPUINFO, "r");
+       if (! fp)
+ 	return -1;

Modified: glibc-package/trunk/debian/patches/any/local-sysctl.diff
===================================================================
--- glibc-package/trunk/debian/patches/any/local-sysctl.diff	2006-08-15 16:48:04 UTC (rev 1737)
+++ glibc-package/trunk/debian/patches/any/local-sysctl.diff	2006-08-15 17:45:24 UTC (rev 1738)
@@ -76,3 +76,56 @@
  libc_hidden_def (__sysctl)
  weak_alias (__sysctl, sysctl)
 +link_warning (__sysctl, "the `sysctl' syscall has been removed from 2.6.18+ kernels, direct access to `/proc/sys' should be used instead.")
+diff -Nurd glibc-2.3.6.orig/sysdeps/unix/sysv/linux/arm/ioperm.c glibc-2.3.6/sysdeps/unix/sysv/linux/arm/ioperm.c
+--- glibc-2.3.6.orig/sysdeps/unix/sysv/linux/arm/ioperm.c.orig	2006-08-15 18:23:08.715868260 +0200
++++ glibc-2.3.6/sysdeps/unix/sysv/linux/arm/ioperm.c	2006-08-15 19:30:07.215439365 +0200
+@@ -49,6 +49,8 @@
+ 
+ #define PATH_ARM_SYSTYPE	"/etc/arm_systype"
+ #define PATH_CPUINFO		"/proc/cpuinfo"
++#define PATH_PORTBASE		"/proc/bus/isa/portbase"
++#define PATH_PORTSHIFT		"/proc/bus/isa/portshift"
+ 
+ #define MAX_PORT	0x10000
+ 
+@@ -100,15 +102,25 @@
+ {
+   char systype[256];
+   int i, n;
+-  static int iobase_name[] = { CTL_BUS, CTL_BUS_ISA, BUS_ISA_PORT_BASE };
+-  static int ioshift_name[] = { CTL_BUS, CTL_BUS_ISA, BUS_ISA_PORT_SHIFT };
++  FILE * fp;
++
+   size_t len = sizeof(io.base);
+ 
+-  if (! sysctl (iobase_name, 3, &io.io_base, &len, NULL, 0)
+-      && ! sysctl (ioshift_name, 3, &io.shift, &len, NULL, 0))
++  if (fp = fopen (PATH_PORTBASE, "r"))
+     {
+-      io.initdone = 1;
+-      return 0;
++      n = fscanf (fp, "%li", &io.io_base);
++      fclose(fp);
++
++      if (n == 1 && (fp = fopen(PATH_PORTSHIFT, "r")))
++        {
++          n = fscanf (fp, "%i", &io.io_shift);
++          fclose(fp);
++          if (n == 1)
++	    {
++	      io.initdone = 1;
++              return 0;
++	    }
++	}
+     }
+ 
+   n = readlink (PATH_ARM_SYSTYPE, systype, sizeof (systype) - 1);
+@@ -127,8 +139,6 @@
+     }
+   else
+     {
+-      FILE * fp;
+-
+       fp = fopen (PATH_CPUINFO, "r");
+       if (! fp)
+ 	return -1;



Reply to: