View previous topic :: View next topic |
Author |
Message |
jbwillia Tux's lil' helper
Joined: 07 May 2004 Posts: 108 Location: TN, USA
|
Posted: Sat Jul 02, 2005 10:40 pm Post subject: kernel-2.6.12-r3 compilation crashing |
|
|
I'm trying to build this kernel on a U60 2x450 512M .... Everytime I try, it begins compiling fine and it eventually does this:
Code: | AS arch/sparc64/kernel/head.o
arch/sparc64/kernel/dtlb_backend.S: Assembler messages:
arch/sparc64/kernel/dtlb_backend.S:157: Error: undefined symbol `_PAGE_SZ4M' in operation
make[1]: *** [arch/sparc64/kernel/head.o] Error 1
make: *** [arch/sparc64/kernel] Error 2 |
I've tried rebuilding gcc, glibc, and even binutils because I saw a reference to it somewhere when I tried to google this error. This has me completely baffled; I was getting the same error when I was trying it on 2.6.12-r3 as well. That's why I went ahead and resynced portage and got the newer r3 source. Has anyone seen this before?
I also looked at the code itself and I see where all the references come from, and everything is there like it should be as far as I can see. I just can't see why it will not compile... _________________
Code: | #!/bin/bash
for everyexe in $(find /home/you -name "*.exe" | egrep -i ".*exe$")
do
kill $(pgrep you)
done |
|
|
Back to top |
|
|
Weeve Retired Dev
Joined: 30 Oct 2002 Posts: 641
|
Posted: Sat Jul 02, 2005 11:34 pm Post subject: |
|
|
Adjust your kernel page size to something smaller. IIRC, when I first ran into this, I found that only 8KB and 64KB compiled correctly. |
|
Back to top |
|
|
jbwillia Tux's lil' helper
Joined: 07 May 2004 Posts: 108 Location: TN, USA
|
Posted: Sun Jul 03, 2005 2:36 am Post subject: |
|
|
awesome thanks...I tried lower and lower until it worked. It was like you said: 64 k was the max, so I got past that point. However, it crashes out on me again when it tries to compile the DRM support for my creator3d with:
Code: | CC drivers/char/drm/ffb_drv.o
drivers/char/drm/ffb_drv.c: In function `ffb_find_map':
drivers/char/drm/ffb_drv.c:151: error: structure has no member named `dev'
drivers/char/drm/ffb_drv.c: In function `postinit':
drivers/char/drm/ffb_drv.c:297: error: structure has no member named `minor'
drivers/char/drm/ffb_drv.c: At top level:
drivers/char/drm/ffb_drv.c:325: warning: `driver' defined but not used
make[3]: *** [drivers/char/drm/ffb_drv.o] Error 1
make[2]: *** [drivers/char/drm] Error 2
make[1]: *** [drivers/char] Error 2
make: *** [drivers] Error 2 |
For now I'll disable it and see if I can finish the compile. Is there some way to get this to compile? _________________
Code: | #!/bin/bash
for everyexe in $(find /home/you -name "*.exe" | egrep -i ".*exe$")
do
kill $(pgrep you)
done |
|
|
Back to top |
|
|
jbwillia Tux's lil' helper
Joined: 07 May 2004 Posts: 108 Location: TN, USA
|
Posted: Sun Jul 03, 2005 3:10 am Post subject: |
|
|
OK, I got it compiled by leaving out DRM; however it is unbootable; it just spits at me:
Code: | PER_CPU:Invalid layout, ptr[fffff800a0070000] shift[10] base[fffff8009f862000]
Program terminated
{0} ok |
_________________
Code: | #!/bin/bash
for everyexe in $(find /home/you -name "*.exe" | egrep -i ".*exe$")
do
kill $(pgrep you)
done |
|
|
Back to top |
|
|
cyan051 n00b
Joined: 21 Aug 2004 Posts: 64
|
Posted: Sat Sep 03, 2005 12:43 pm Post subject: |
|
|
same problem here...
kernel 2.6.13 = PER_CPU fault...
kernel 2.6.11 works just fine...
it seems that setup_per_cpu_areas in arch/sparc64/kernel/smc.p is a new function...and quite a buggy one...
this part of the code is responsible:
Code: | ptr = __alloc_bootmem(size * NR_CPUS, PAGE_SIZE,
(unsigned long) __per_cpu_start);
__per_cpu_base = ptr - __per_cpu_start;
if ((__per_cpu_shift < PAGE_SHIFT) ||
(__per_cpu_base & ~PAGE_MASK) ||
(__per_cpu_base != (((long) __per_cpu_base << 20) >> 20))) {
prom_printf("PER_CPU: Invalid layout, "
"ptr[%p] shift[%lx] base[%lx]\n",
ptr, __per_cpu_shift, __per_cpu_base);
prom_halt();
} |
apparently this code doesn't really work on sparc64 SMP systems...
i have couple of ideas on what to try - i'll update the post a bit later...
[UPDATE]:
it seems that the per_cpu memory allocation is not perfect...
so for now, simplest thing is to reduct page size:
Code: | CONFIG_SPARC64_PAGE_SIZE_8KB |
|
|
Back to top |
|
|
|