On Wed, Aug 31, 2005 at 02:59:46PM +0100, Damian Dimmich wrote:
> I had some trouble compiling 2.6.13 for the mips architecture. I encountered
> two errors:
>
> 1)
>
> In the file include/asm-mips/thread_info.h TIF_32BIT was undefined.
>
> I added the following two lines which showed up in parisc and ppc64 's
> thread-info's. Don't know if these values are correct or if this actually
> works. It just gets it to compile...
> #define TIF_32BIT 5 /* 32 bit binary */
> #define _TIF_32BIT (1<<TIF_32BIT)
>
> The error was in drivers/input/evdev.c which includes
> include/asm-mips/thread_info.h
>
> The error was:
> CC [M] drivers/input/evdev.o
> drivers/input/evdev.c: In function `evdev_write':
> drivers/input/evdev.c:193: error: `TIF_32BIT' undeclared (first use in this
> function)
> drivers/input/evdev.c:193: error: (Each undeclared identifier is reported
> only
> once
> drivers/input/evdev.c:193: error: for each function it appears in.)
> drivers/input/evdev.c: In function `evdev_read':
> drivers/input/evdev.c:254: error: `TIF_32BIT' undeclared (first use in this
> function)
That driver's 32-bit compatibility is totally broken, I'm afraid. It'll
be easy to kludge though ...
> 2)
>
> When linking .tmp_vmlinux1, KSEG1ADDR and KSEG1 where reported as undefined
> and linking failed.
> LD .tmp_vmlinux1
> arch/mips/sgi-ip22/built-in.o(.text+0x2854): In function `ip22_eisa_intr':
> : undefined reference to `KSEG1ADDR'
> arch/mips/sgi-ip22/built-in.o(.text+0x2864): In function `ip22_eisa_intr':
> : undefined reference to `KSEG1ADDR'
> arch/mips/sgi-ip22/built-in.o(.text+0x2870): In function `ip22_eisa_intr':
> : undefined reference to `KSEG1ADDR'
> arch/mips/sgi-ip22/built-in.o(.text+0x28ac): In function `ip22_eisa_intr':
> : undefined reference to `KSEG1ADDR'
> arch/mips/sgi-ip22/built-in.o(.text+0x28c0): In function `ip22_eisa_intr':
> : undefined reference to `KSEG1ADDR'
> arch/mips/sgi-ip22/built-in.o(.text+0x293c): more undefined references to
> `KSEG1ADDR' follow
> make: *** [.tmp_vmlinux1] Error 1
>
>
> I fixed this by adding the lines:
> #define KSEG1ADDR(a) (CPHYSADDR(a) | KSEG1)
> #define KSEG1 0xa0000000
> at the top of the file arch/mips/sgi-ip22/ip22-eisa.c
> These are copied from include/asm/addrspace.h
>
> I found it quite strange that it only failed when linking the kernel and not
> earlier. The file asm/addrspace.h is included in ip22-eisa.c
>
> eisa support is enabled and i'm compiling a 64 bit kernel.
Daring. Hardly anybody is using EISA on that machine and even less so on
64-bit, expect to find bugs.
> gcc version 3.3.3 (Debian)
Should be a safe choice of compiler.
Ralf
|