[parisc-linux] Re: gcc-3.2 -> gcc-3.3 transition on hppa
b.gunreben
b.gunreben@web.de
Tue, 18 Mar 2003 19:14:14 +0100
Joel Soete wrote:
> >gcc 3.3 decides to not believe you want this function inlined. probably
> >the right fix for this is to make this function static inline (you can
> >drop the `__' around inline, it's not necessary). This is also the case
> >for linux 2.5.
> >
> Right Willy that allow to compile :)
>
> Unfortunately it failled to boot :_( with following dump:
> Freeing unused kernel memory: 246k freed
> ......
> Submitted to dump_analyser.sh, I obtain:
>
> IAOQ = 10351b7c
> Func: __canonicalize_funcptr_for_compare, Off: 38, Addr: 0x10351b7c
> 10351b70: 2a 6b 50 00 addil 56800,r19,%r1
> 10351b74: 48 21 0c a8 ldw 654(r1),r1
> 10351b78: d4 60 1c 1e depwi 0,31,2,r3
> 10351b7c: 0c 60 10 94 ldw 0(sr0,r3),r20
>
> GR0 = 00000000
>
> GR1 = 103eee50
> Func: _GLOBAL_OFFSET_TABLE_, Off: 0, Addr: 0x103eee50
>
> GR2 = 101342f8
> Func: do_sigaction, Off: a8, Addr: 0x101342f8
I have the same problem with a gcc 3.3 compiled kernel. The kernel itself
completely comes up, and I even can call a static shell (something like
init=/bin/sash), but as soon as glibc is involved, the mentioned crash
occurs. Just to make it clear: I am able to use the builtin functions of
that shell (like ls) and this works.
This is independend from the kernel version (2.4 and 2.5 behave all the
same). The function __canonicalize_funcptr_for_compare seems to be newly
introduced in libgcc with gcc 3.3, and seems to be the cause of this error.
Berthold