Subject: mips64

From: Michael Dosser <[email-masked]>
Date: Wed, 20 Aug 2003 12:03:40 +0200

Hi,

I'm successfully running Debian/GNU Linux on a SGI Indy R4600PC@100Mhz
for over a year now. I'm very happy with the stability of Linux on that
machine. But since the machine is relatively slow (currently 30-35 
shell user continuosly connected), I bought an Indigo2 R4400SC@250Mhz.

I thought of putting a mips64 kernel on the new machine: Got the rpm's
from ftp.linux-mips.org, converted them with alien to debs and installed 
them on my quad xeon Debian box - checked out the linux source and 
started compiling:

# cvs -d :pserver:[email-masked]:/home/cvs co -r linux_2_4 linux
# cd linux
# make ARCH=mips64 dep
# make ARCH=mips64 clean
# make ARCH=mips64 all

Error message with gcc version egcs-2.91.66 19990314 (egcs-1.1.2
release)

[...]
make[2]: Entering directory `/usr/local/src/mips/linux/arch/mips/math-emu'
mips64-linux-gcc -D__KERNEL__ -I/usr/local/src/mips/linux/include -Wall -Wstrict-prototypes -Wno-trigraphs -O2 -fno-strict-aliasing -fno-common -fomit-frame-pointer -I /usr/local/src/mips/linux/include/asm/gcc -mabi=64 -G 0 -mno-abicalls -fno-pic -Wa,--trap -pipe -mcpu=r4600 -mips3 -Wa,-32 -Wa,-mgp64   -nostdinc -iwithprefix include -DKBUILD_BASENAME=cp1emu  -c -o cp1emu.o cp1emu.c
cp1emu.c: In function `fpu_emulator_cop1Handler':
cp1emu.c:1328: internal error--unrecognizable insn:
(insn 310 33 25 (set (reg:SI 159)
        (reg/v:DI 87)) -1 (insn_list:REG_DEP_ANTI 28 (insn_list 33 (nil)))
    (nil))
../../gcc/toplev.c:1367: Internal compiler error in function fatal_insn
make[2]: *** [cp1emu.o] Error 1
make[2]: Leaving directory `/usr/local/src/mips/linux/arch/mips/math-emu'
make[1]: *** [first_rule] Error 2
make[1]: Leaving directory `/usr/local/src/mips/linux/arch/mips/math-emu'
make: *** [_dir_arch/mips/math-emu] Error 2
# 

Error with gcc version 2.95.4 20010319 (prerelease):

[...]
mips64-linux-ld --oformat elf32-tradbigmips   -r -o kernel.o sched.o
dma.o fork.o exec_domain.o panic.o printk.o module.o exit.o itimer.o
info.o time.o softirq.o resource.o sysctl.o acct.o capability.o ptrace.o
timer.o user.o signal.o sys.o kmod.o context.o ksyms.o
mips64-linux-ld: target elf32-tradbigmips not found
make[2]: *** [kernel.o] Error 1
make[2]: Leaving directory `/usr/local/src/mips/linux/kernel'
make[1]: *** [first_rule] Error 2
make[1]: Leaving directory `/usr/local/src/mips/linux/kernel'
make: *** [_dir_kernel] Error 2
#

Ok, the latter seems to be related to objdump, right?
mips64-linux-objdump: supported targets: elf32-bigmips elf32-littlemips
elf64-bigmips elf64-littlemips ecoff-bigmips ecoff-littlemips
elf64-little elf64-big elf32-little elf32-big srec symbolsrec tekhex
binary ihex

The package on linux-mips.org seems not to be including
elf32-tradbigmips ...

Can somebody help me with this? Btw: same errors with co -r linux_2_4_21
...

Thank you,mic

-- 
> Please specifically define where data goes that is sent to /dev/null
[...]
Answer 2.  All the data goes into another dimension, and comes out of
/dev/random.            Stephen Montgomery-Smith on freebsd-hackers

---

From: Thiemo Seufer <[email-masked]>
Date: Wed, 20 Aug 2003 12:15:09 +0200

> them on my quad xeon Debian box - checked out the linux source and 

The 64bit IP22 Kernel was broken for quite some time, I don't know if
this changed in the meanwhile.

[snip]
> ../../gcc/toplev.c:1367: Internal compiler error in function fatal_insn

egcs is known to be broken WRT, and horribly outdated anyway.

[snip]
> Ok, the latter seems to be related to objdump, right?

No, this ld is too old to handle elf32-tradbigmips.
You'll need a more up to date toolchain.

Thiemo

---

From: Ladislav Michl <[email-masked]>
Date: Wed, 20 Aug 2003 11:23:06 +0100

> this changed in the meanwhile.

It works now.

> You'll need a more up to date toolchain.

gcc-2.95.4 and binutils-2.14 works ok for me.

ladis

---

From: Michael Dosser <[email-masked]>
Date: Wed, 20 Aug 2003 14:08:01 +0200

Hi again,

> egcs is known to be broken WRT, and horribly outdated anyway.

That's right. But I thought better trying out first before writing an
email.

> You'll need a more up to date toolchain.

I could slap myself for this: I fetched binutils 2.9.5 instead of 2.13.1
while thinking 9 > 1 and not reading 13. *hmpf* Sorry for this. After
installing binutils-2.13.1 the compile went fine.

# ls -l arch/mips64/boot
total 2256
drwxr-xr-x    2 root     root         4096 Aug 20 11:13 CVS
-rw-r--r--    1 root     root          922 Jan 10  2003 Makefile
-rwxr-xr-x    1 root     root         7965 Aug 20 13:44 addinitrd
-rwxr-xr-x    1 root     root        16138 Aug 20 13:44 elf2ecoff
-rwxr-xr-x    1 root     root      2269392 Aug 20 13:44 vmlinux.ecoff
# file arch/mips64/boot/vmlinux.ecoff
vmlinux.ecoff: MIPSEB ECOFF executable (impure) stripped - version 0.200
#

That's it I suppose :) I'm looking forward to test this kernel ...

Thanks for your help.

Ciao,mic

-- 
while !asleep {sheep ++};