* any hints using gcc 3.4.3 for 2.4.25 kernel?
@ 2005-02-21 14:12 Wojciech Kromer
2005-02-21 14:28 ` Ralph Siemsen
2005-02-23 14:54 ` Gerhard Jaeger
0 siblings, 2 replies; 5+ messages in thread
From: Wojciech Kromer @ 2005-02-21 14:12 UTC (permalink / raw)
To: linuxppc-embedded
a)first i have:
- 2.4.25 kernel (from denx cvs)
- eldk with 2.95.4 compiler
this one set works fine :)
b)then, i've tried to same sources with:
gcc-3.4.3 , self build from uClibc buildroot
new hernel hangs just after decompressing :(
any tricks?
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: any hints using gcc 3.4.3 for 2.4.25 kernel?
2005-02-21 14:12 any hints using gcc 3.4.3 for 2.4.25 kernel? Wojciech Kromer
@ 2005-02-21 14:28 ` Ralph Siemsen
2005-02-23 14:54 ` Gerhard Jaeger
1 sibling, 0 replies; 5+ messages in thread
From: Ralph Siemsen @ 2005-02-21 14:28 UTC (permalink / raw)
To: Wojciech Kromer; +Cc: linuxppc-embedded
Wojciech Kromer wrote:
> a)first i have:
> - 2.4.25 kernel (from denx cvs)
> - eldk with 2.95.4 compiler
> this one set works fine :)
>
> b)then, i've tried to same sources with:
> gcc-3.4.3 , self build from uClibc buildroot
> new hernel hangs just after decompressing :(
I haven't tried this on PPC, but under similar circumstances on ARM what
I learned was: there are several places in the kernel where lists are
generated by some linker tricks. For example all of the device
initialization functions are assembled into a list, so they can be
conveniently called in sequence.
The semantics for getting the linker to fill this list have changed. In
2.4 days they used ELF sections marked as "unnused", which were simply
ignored but passed through.
Newer toolchains now drop unnused sections, so the initialization tables
are not present in your kernel, which leads to the crash. I was able
kludge around this by changing in <asm/setup.h> and <linux/init.h>,
search for __attribute__((unused, ...) and change to "used" instead.
There are about half dozen occurrences, in the __init* and __exit*
macros. You then need some ugly casts in <linux/module.h> to match.
Of course the same thing could happen in other places/drivers, so really
the above is not a good solution. New 2.6 kernels handle this sort of
thing in a different way. Best solution is to keep an older gcc for
older kernels, and a newer one for 2.6...
-Ralph
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: any hints using gcc 3.4.3 for 2.4.25 kernel?
2005-02-21 14:12 any hints using gcc 3.4.3 for 2.4.25 kernel? Wojciech Kromer
2005-02-21 14:28 ` Ralph Siemsen
@ 2005-02-23 14:54 ` Gerhard Jaeger
2005-02-23 15:38 ` Bryan O'Donoghue
1 sibling, 1 reply; 5+ messages in thread
From: Gerhard Jaeger @ 2005-02-23 14:54 UTC (permalink / raw)
To: linuxppc-embedded; +Cc: Wojciech Kromer
On Monday 21 February 2005 15:12, Wojciech Kromer wrote:
> a)first i have:
> - 2.4.25 kernel (from denx cvs)
> - eldk with 2.95.4 compiler
> this one set works fine :)
>
> b)then, i've tried to same sources with:
> gcc-3.4.3 , self build from uClibc buildroot
> new hernel hangs just after decompressing :(
>
> any tricks?
>
you can use the include/linux/init.h and compiler.h from 2.4.29
kernel + patching some header files, where the inlining does not
work any longer. I also suggest comparing with 2.4.29 kernel.
ciao,
Gerhard
--
Gerhard Jaeger <gjaeger@sysgo.com>
SYSGO AG Embedded and Real-Time Software
www.sysgo.com | www.elinos.com | www.pikeos.com | www.osek.de
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: any hints using gcc 3.4.3 for 2.4.25 kernel?
2005-02-23 14:54 ` Gerhard Jaeger
@ 2005-02-23 15:38 ` Bryan O'Donoghue
2005-02-23 15:42 ` Gerhard Jaeger
0 siblings, 1 reply; 5+ messages in thread
From: Bryan O'Donoghue @ 2005-02-23 15:38 UTC (permalink / raw)
To: Gerhard Jaeger; +Cc: Wojciech Kromer, linuxppc-embedded
Gerhard Jaeger wrote:
> On Monday 21 February 2005 15:12, Wojciech Kromer wrote:
>
>>a)first i have:
>>- 2.4.25 kernel (from denx cvs)
>>- eldk with 2.95.4 compiler
>>this one set works fine :)
>>
>>b)then, i've tried to same sources with:
>>gcc-3.4.3 , self build from uClibc buildroot
>>new hernel hangs just after decompressing :(
>>
>>any tricks?
>>
>
>
> you can use the include/linux/init.h and compiler.h from 2.4.29
> kernel + patching some header files, where the inlining does not
> work any longer. I also suggest comparing with 2.4.29 kernel.
>
> ciao,
> Gerhard
>
If all you want is a cross compiler to make a kernel why not try this
procedure ?
Tested with :
gcc-3.4.2
binutils-2.15.90.0.3
dietlibc-0.28 or dietlibc cvs
1
untar all sources
2
binutils:
./configure --prefix=/usr/local/powerpc-linux --target=powerpc-linux
make
make install
3
gcc:
./configure --prefix=/usr/local/powerpc-linux --target=powerpc-linux
--with-ecos --disable-nls --enable-threads=posix --disable-shared
--enable-languages=c --with-headers=../dietlibc/include
make
make install
There might be a little error in gcc/unwind-dw2-fde-glibc.c and
gcc/unwind-dw2-fde.h
I can't remember the exact errors in those two files, but, hopefully
those should be easy enough to fix.
Once you work around the slight inconsistency between dietlibc & gcc in
those two files, and make install, you should have a full toolchain in
/usr/local/powerpc-linux
I had been thinking about making a small script for kernel people such
as yourself, who wanted just a toolchain for kernel cross compiles.
Maybe I'll do that.
But, in any case, the above procedure gives me a 3.4.2 which is quite
happy to compile a 2.4.28-rc3 (though I haven't tried out the denx
2.4.25... but, I can't see why that would fail).
Hope this helps.
--
Bryan
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: any hints using gcc 3.4.3 for 2.4.25 kernel?
2005-02-23 15:38 ` Bryan O'Donoghue
@ 2005-02-23 15:42 ` Gerhard Jaeger
0 siblings, 0 replies; 5+ messages in thread
From: Gerhard Jaeger @ 2005-02-23 15:42 UTC (permalink / raw)
To: Bryan O'Donoghue; +Cc: Wojciech Kromer, linuxppc-embedded
On Wednesday 23 February 2005 16:38, Bryan O'Donoghue wrote:
> Gerhard Jaeger wrote:
> > On Monday 21 February 2005 15:12, Wojciech Kromer wrote:
> >
> >>a)first i have:
> >>- 2.4.25 kernel (from denx cvs)
> >>- eldk with 2.95.4 compiler
> >>this one set works fine :)
> >>
> >>b)then, i've tried to same sources with:
> >>gcc-3.4.3 , self build from uClibc buildroot
> >>new hernel hangs just after decompressing :(
> >>
> >>any tricks?
> >>
> >
> >
> > you can use the include/linux/init.h and compiler.h from 2.4.29
> > kernel + patching some header files, where the inlining does not
> > work any longer. I also suggest comparing with 2.4.29 kernel.
> >
> > ciao,
> > Gerhard
> >
>
> If all you want is a cross compiler to make a kernel why not try this
> procedure ?
>
> Tested with :
>
> gcc-3.4.2
> binutils-2.15.90.0.3
> dietlibc-0.28 or dietlibc cvs
>
> 1
> untar all sources
>
> 2
> binutils:
>
> ./configure --prefix=/usr/local/powerpc-linux --target=powerpc-linux
>
> make
> make install
>
> 3
> gcc:
>
> ./configure --prefix=/usr/local/powerpc-linux --target=powerpc-linux
> --with-ecos --disable-nls --enable-threads=posix --disable-shared
> --enable-languages=c --with-headers=../dietlibc/include
>
> make
> make install
>
> There might be a little error in gcc/unwind-dw2-fde-glibc.c and
> gcc/unwind-dw2-fde.h
>
> I can't remember the exact errors in those two files, but, hopefully
> those should be easy enough to fix.
>
> Once you work around the slight inconsistency between dietlibc & gcc in
> those two files, and make install, you should have a full toolchain in
> /usr/local/powerpc-linux
>
> I had been thinking about making a small script for kernel people such
> as yourself, who wanted just a toolchain for kernel cross compiles.
> Maybe I'll do that.
>
> But, in any case, the above procedure gives me a 3.4.2 which is quite
> happy to compile a 2.4.28-rc3 (though I haven't tried out the denx
> 2.4.25... but, I can't see why that would fail).
>
> Hope this helps.
I'm pretty sure, that it won't help on a 2.4.25 kernel. The 2.4.28-rc3 already
has the needed patches/changes applied, that's why it works for you ;)
ciao,
Gerhard
--
Gerhard Jaeger <gjaeger@sysgo.com>
SYSGO AG Embedded and Real-Time Software
www.sysgo.com | www.elinos.com | www.pikeos.com | www.osek.de
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2005-02-23 15:43 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2005-02-21 14:12 any hints using gcc 3.4.3 for 2.4.25 kernel? Wojciech Kromer
2005-02-21 14:28 ` Ralph Siemsen
2005-02-23 14:54 ` Gerhard Jaeger
2005-02-23 15:38 ` Bryan O'Donoghue
2005-02-23 15:42 ` Gerhard Jaeger
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).