Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
kernel-2.6.12-r3 compilation crashing
View unanswered posts
View posts from last 24 hours

 
Reply to topic    Gentoo Forums Forum Index Gentoo on Sparc
View previous topic :: View next topic  
Author Message
jbwillia
Tux's lil' helper
Tux's lil' helper


Joined: 07 May 2004
Posts: 108
Location: TN, USA

PostPosted: Sat Jul 02, 2005 10:40 pm    Post subject: kernel-2.6.12-r3 compilation crashing Reply with quote

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
View user's profile Send private message
Weeve
Retired Dev
Retired Dev


Joined: 30 Oct 2002
Posts: 641

PostPosted: Sat Jul 02, 2005 11:34 pm    Post subject: Reply with quote

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
View user's profile Send private message
jbwillia
Tux's lil' helper
Tux's lil' helper


Joined: 07 May 2004
Posts: 108
Location: TN, USA

PostPosted: Sun Jul 03, 2005 2:36 am    Post subject: Reply with quote

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
View user's profile Send private message
jbwillia
Tux's lil' helper
Tux's lil' helper


Joined: 07 May 2004
Posts: 108
Location: TN, USA

PostPosted: Sun Jul 03, 2005 3:10 am    Post subject: Reply with quote

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
View user's profile Send private message
cyan051
n00b
n00b


Joined: 21 Aug 2004
Posts: 64

PostPosted: Sat Sep 03, 2005 12:43 pm    Post subject: Reply with quote

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
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Gentoo on Sparc All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum