patches/glibc/2.3.6/100-arm-ctl_bus_isa.patch
author "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Wed Jan 13 20:46:01 2010 +0100 (2010-01-13)
changeset 1732 6b2ae7804c6f
permissions -rw-r--r--
debug/gdb: staticaly link to ncurses for the native gdb

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