crosstool 0.26 for arm fail?
Ming Zhang
mingz@ele.uri.edu
Sun Feb 1 03:11:00 GMT 2004
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
More information about the crossgcc
mailing list