Hi, list.
I have three little questions with linux-2.4.18 on my machine.
My configuration is:
MIPS R3000, linux-2.4.18 kernel from CVS,
egcs-mips-linux-1.1.2-4 (egcs-2.91.66) and binutils-mips-linux-2.8.1-2
1. When i use MIPS specific arch_get_unmapped_area() function, my kernel
hangs. It looks like this:
...
Freeing unused kernel memory: 108k freed
do_page_fault() #2: sending SIGSEGV to init for illegal read access
from
0fb65330 (epc == 0fb65330, ra == 0fb851dc)
... and so on. Last message is printed infinitely.
So, i have to give up HAVE_ARCH_UNMAPPED_AREA feature, and to use
common arch_get_unmapped_area() routine.
2. There is a strange code in the local_flush_tlb_page() function
(tlb-r3k.c and tlb-r4k.c):
...
if (!vma || vma->vm_mm->context != 0) {
unsigned long flags;
int oldpid, newpid, idx;
#ifdef DEBUG_TLB
printk("[tlbpage<%lu,0x%08lx>]", vma->vm_mm->context, page);
#endif
newpid = (vma->vm_mm->context & 0xfc0);
^^^^^
Hmm... the kernel will crash if vma ==0. I guess that this code must look
like this:
if (vma && vma->vm_mm->context !=0) {
Is any patches required?
3. I have some problems, when i try to compile latest kernels with my egcs
and binutils, such as problems with "__INIT" and "__FINI" assembler
macroses:
# mips-linux-gcc -D__ASSEMBLY__ -D__KERNEL__ -I include -G 0
-mno-abicalls -fno-pic -mcpu=r3000 -mips1 -pipe -c entry.S -o entry.o
entry.S: Assembler messages:
entry.S:179: Error: .previous without corresponding .section; ignored
... and ".macro" assembler command usage:
# mips-linux-gcc -D__ASSEMBLY__ -D__KERNEL__ -I include -G 0
-mno-abicalls -fno-pic -mcpu=r3000 -mips1 -pipe -c head.S -o head.o
head.S: Assembler messages:
head.S:224: Error: .size expression too complicated to fix up
head.S:224: Error: .size expression too complicated to fix up
head.S:224: Error: .size expression too complicated to fix up
head.S:224: Error: .size expression too complicated to fix up
make[1]: *** [head.o] Error 1
I know that my binutils are obsolete and so, I tried to use some newer
binutils (2.9.5-1, 2.9.5-3), but my kernel crashed :(. Please, can
you answer
me, what egcs & binutils are suitable for linux-2.4.18 and MIPS R3000
compliant?
Any help will be appriciated.
|