patches/glibc/2.3.6/100-arm-ctl_bus_isa.patch
author Remy Bohmer <linux@bohmer.net>
Sun Jul 11 22:23:34 2010 +0200 (2010-07-11)
changeset 2021 3e52a1510f87
permissions -rw-r--r--
debug/gdb: Fix compilation for Mingw hosts

GDB requires PDcurses instead of ncurses while running on Windows.
So, do not always compile ncurses in case GDB needs to build.

PDcurses is provided by an earlier build step and is not described in
this file.

Signed-off-by: Remy Bohmer <linux@bohmer.net>
[yann.morin.1998@anciense.nib.fr: we already have a way to detect ncurses usage]
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
yann@402
     1
Applies to both glibc-2.2.5 and glibc-2.3.2, and probably glibc cvs as of Aug 2004.
yann@402
     2
Needed to build glibc with linux kernels 2.4.23 or higher on ARM, 
yann@402
     3
Fixes following error:
yann@402
     4
yann@402
     5
../sysdeps/unix/sysv/linux/arm/ioperm.c: In function `init_iosys':
yann@402
     6
../sysdeps/unix/sysv/linux/arm/ioperm.c:103: error: `BUS_ISA' undeclared (first use in this function)
yann@402
     7
../sysdeps/unix/sysv/linux/arm/ioperm.c:103: error: (Each undeclared identifier is reported only once
yann@402
     8
../sysdeps/unix/sysv/linux/arm/ioperm.c:103: error: for each function it appears in.)
yann@402
     9
../sysdeps/unix/sysv/linux/arm/ioperm.c:103: error: initializer element is not constant
yann@402
    10
../sysdeps/unix/sysv/linux/arm/ioperm.c:103: error: (near initialization for `iobase_name[1]')
yann@402
    11
../sysdeps/unix/sysv/linux/arm/ioperm.c:104: error: initializer element is not constant
yann@402
    12
../sysdeps/unix/sysv/linux/arm/ioperm.c:104: error: (near initialization for `ioshift_name[1]')
yann@402
    13
make[2]: *** [/home/dank/crosstool-0.28/build/arm-softfloat-linux-gnu/gcc-3.3.4-glibc-2.2.5/build-glibc/misc/ioperm.o] Error 1
yann@402
    14
yann@402
    15
cf. "[SYSCTL] BUS_ISA -> CTL_BUS_ISA",  http://www.ussg.iu.edu/hypermail/linux/kernel/0311.0/0529.html
yann@402
    16
yann@402
    17
--- glibc-2.3.2/sysdeps/unix/sysv/linux/arm/ioperm.c.old	2003-02-20 14:22:24.000000000 -0800
yann@402
    18
+++ glibc-2.3.2/sysdeps/unix/sysv/linux/arm/ioperm.c	2004-01-31 16:01:50.000000000 -0800
yann@402
    19
@@ -47,6 +47,12 @@
yann@402
    20
 #include <asm/page.h>
yann@402
    21
 #include <sys/sysctl.h>
yann@402
    22
 
yann@402
    23
+/* see http://www.ussg.iu.edu/hypermail/linux/kernel/0311.0/0529.html */
yann@402
    24
+#include <linux/version.h>
yann@402
    25
+#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,4,23))
yann@402
    26
+#define CTL_BUS_ISA BUS_ISA	/* and hope it's not the one from linux/input.h */
yann@402
    27
+#endif
yann@402
    28
+
yann@402
    29
 #define PATH_ARM_SYSTYPE	"/etc/arm_systype"
yann@402
    30
 #define PATH_CPUINFO		"/proc/cpuinfo"
yann@402
    31
 
yann@402
    32
@@ -80,7 +86,7 @@
yann@402
    33
  * Initialize I/O system.  There are several ways to get the information
yann@402
    34
  * we need.  Each is tried in turn until one succeeds.
yann@402
    35
  *
yann@402
    36
- * 1. Sysctl (CTL_BUS, BUS_ISA, ISA_*).  This is the preferred method
yann@402
    37
+ * 1. Sysctl (CTL_BUS, CTL_BUS_ISA, ISA_*).  This is the preferred method
yann@402
    38
  *    but not all kernels support it.
yann@402
    39
  *
yann@402
    40
  * 2. Read the value (not the contents) of symlink PATH_ARM_SYSTYPE.
yann@402
    41
@@ -100,8 +106,8 @@
yann@402
    42
 {
yann@402
    43
   char systype[256];
yann@402
    44
   int i, n;
yann@402
    45
-  static int iobase_name[] = { CTL_BUS, BUS_ISA, BUS_ISA_PORT_BASE };
yann@402
    46
-  static int ioshift_name[] = { CTL_BUS, BUS_ISA, BUS_ISA_PORT_SHIFT };
yann@402
    47
+  static int iobase_name[] = { CTL_BUS, CTL_BUS_ISA, BUS_ISA_PORT_BASE };
yann@402
    48
+  static int ioshift_name[] = { CTL_BUS, CTL_BUS_ISA, BUS_ISA_PORT_SHIFT };
yann@402
    49
   size_t len = sizeof(io.base);
yann@402
    50
 
yann@402
    51
   if (! sysctl (iobase_name, 3, &io.io_base, &len, NULL, 0)
yann@402
    52
yann@402
    53
Signed-off-by: Robert P. J. Day <rpjday@mindspring.com>