This is the mail archive of the crossgcc@sources.redhat.com mailing list for the crossgcc project.

See the CrossGCC FAQ for lots more information.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: crosstool 0.26 for arm fail?


Hi, Dan
Thanks a lot. After remove that ioperm patch and add this new one, I can
get a workable toolchain from 0.26 and get a kernel compiled now. no
time to try more though.


ming

On Sat, 2004-01-31 at 20:35, Dan Kegel wrote:
> Dan Kegel wrote:
> >> In file included from ../sysdeps/unix/sysv/linux/sys/sysctl.h:29,
> >>                  from ../include/sys/sysctl.h:2,
> >>                  from ../sysdeps/unix/sysv/linux/arm/ioperm.c:49:
> >> /opt/crosstool/arm-unknown-linux-gnu/gcc-3.3.1-glibc-2.3.2/arm-unknown-linux-gnu/include/linux/sysctl.h:72: 
> >> error: parse error before numeric constant
> >> ...
> >> i remembered that i can get a workable arm chain by using
> >> crosstool-0.24.
> > 
> > the patch
> >   patches/glibc-2.3.2/arm-ioperm.patch
> > is said to be bogus.  Try removing it.
> > 
> > (Also, the kernel headers for 2.4.21 (which you used)
> > and the kernel headers for 2.4.24 and later differ in that they
> > renamed BUS_ISA to CTL_BUS_ISA; who knows, maybe glibc
> > will need adjusting to match.  See e.g.
> > http://www.ussg.iu.edu/hypermail/linux/kernel/0311.0/0529.html)
> 
> Here's a possibly more correct replacement for the broken arm-ioperm.patch
> It's at
> http://kegel.com/crosstool/crosstool-0.27/patches/glibc-2.3.2/arm-ctl_bus_isa.patch
> Comments welcome.
> - Dan
> 
> --- glibc-2.3.2/sysdeps/unix/sysv/linux/arm/ioperm.c.old	2003-02-20 14:22:24.000000000 -0800
> +++ glibc-2.3.2/sysdeps/unix/sysv/linux/arm/ioperm.c	2004-01-31 16:01:50.000000000 -0800
> @@ -47,6 +47,12 @@
>   #include <asm/page.h>
>   #include <sys/sysctl.h>
> 
> +/* see http://www.ussg.iu.edu/hypermail/linux/kernel/0311.0/0529.html */
> +#include <linux/version.h>
> +#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,4,23))
> +#define CTL_BUS_ISA BUS_ISA	/* and hope it's not the one from linux/input.h */
> +#endif
> +
>   #define PATH_ARM_SYSTYPE	"/etc/arm_systype"
>   #define PATH_CPUINFO		"/proc/cpuinfo"
> 
> @@ -80,7 +86,7 @@
>    * Initialize I/O system.  There are several ways to get the information
>    * we need.  Each is tried in turn until one succeeds.
>    *
> - * 1. Sysctl (CTL_BUS, BUS_ISA, ISA_*).  This is the preferred method
> + * 1. Sysctl (CTL_BUS, CTL_BUS_ISA, ISA_*).  This is the preferred method
>    *    but not all kernels support it.
>    *
>    * 2. Read the value (not the contents) of symlink PATH_ARM_SYSTYPE.
> @@ -100,8 +106,8 @@
>   {
>     char systype[256];
>     int i, n;
> -  static int iobase_name[] = { CTL_BUS, BUS_ISA, BUS_ISA_PORT_BASE };
> -  static int ioshift_name[] = { CTL_BUS, BUS_ISA, BUS_ISA_PORT_SHIFT };
> +  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 };
>     size_t len = sizeof(io.base);
> 
>     if (! sysctl (iobase_name, 3, &io.io_base, &len, NULL, 0)


------
Want more information?  See the CrossGCC FAQ, http://www.objsw.com/CrossGCC/
Want to unsubscribe? Send a note to crossgcc-unsubscribe@sources.redhat.com


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]