Skip to contentSkip to conversation

Cross tool chain based on gcc-3.4.x

DISCUSSION TheNop 3 participants 10 messages Nov 23, 2004 – Nov 29, 2004 MIPS

lore
Share & tools
lore

TheNop

author
#0 lore raw

Hello,

I try to get a cross compiler based on
gcc-3.4.2
glibc-2.3.2
binutils-2.15
working; without success.

Is anyone using a cross compiler base on gcc-3.4.x for a mips big endian target?

Best regarts
TheNop

#1 lore raw
Quoted 8 lines · TheNop

Hello,

I try to get a cross compiler based on
gcc-3.4.2
glibc-2.3.2
binutils-2.15
working; without success.

Quoted 5 lines

Is anyone using a cross compiler base on gcc-3.4.x for a mips big endian target?

Best regarts
TheNop

I've got a very recent i686->mips-unknown-linux-gnu cross-toolchain available at:http://dev.gentoo.org/~geoman/mips-glibc-crosstools.tar.bz2 if you are too frustrated with building your own.

It includes gcc-3.4.3, glibc-2.3.4 (20041102), and binutils 2.15.91.0.2.

Steve

author
#2 lore raw
Quoted 16 lines · Stephen P. Becker
Quoted 8 lines · TheNop

Hello,

I try to get a cross compiler based on
gcc-3.4.2
glibc-2.3.2
binutils-2.15
working; without success.

Quoted 5 lines

Is anyone using a cross compiler base on gcc-3.4.x for a mips big endian target?

Best regarts
TheNop

Quoted 7 lines

I've got a very recent i686->mips-unknown-linux-gnu cross-toolchain available at:http://dev.gentoo.org/~geoman/mips-glibc-crosstools.tar.bz2 if you are too frustrated with building your own.

It includes gcc-3.4.3, glibc-2.3.4 (20041102), and binutils 2.15.91.0.2.

Steve

Hi Steve,

thanx a lot.
This tool chain works perfectly for me. Now I can build 2.6.x kernel.
In the past I tried to build a cross tool chain using crosstools. I don`t get any combination of gcc-3.4.x/glibc-2.x.x working. Only the gcc-3.4.x-glibc-2.3.3 combination I could compile without errors, but I couldn't compile a 2.6.x kernel.

Could you please tell me, how you compile the tool chain?
It would be great, if you can provide me a script or a list of patches you applied for building.

Best regards
TheNop

author
#3 lore raw
Quoted 31 lines · TheNop
Quoted 16 lines · Stephen P. Becker
Quoted 8 lines · TheNop

Hello,

I try to get a cross compiler based on
gcc-3.4.2
glibc-2.3.2
binutils-2.15
working; without success.

Quoted 5 lines

Is anyone using a cross compiler base on gcc-3.4.x for a mips big endian target?

Best regarts
TheNop

Quoted 7 lines

I've got a very recent i686->mips-unknown-linux-gnu cross-toolchain available at:http://dev.gentoo.org/~geoman/mips-glibc-crosstools.tar.bz2 if you are too frustrated with building your own.

It includes gcc-3.4.3, glibc-2.3.4 (20041102), and binutils 2.15.91.0.2.

Steve

Hi Steve,

thanx a lot.
This tool chain works perfectly for me. Now I can build 2.6.x kernel.
In the past I tried to build a cross tool chain using crosstools. I don`t get any combination of gcc-3.4.x/glibc-2.x.x working. Only the gcc-3.4.x-glibc-2.3.3 combination I could compile without errors, but I couldn't compile a 2.6.x kernel.

Quoted 7 lines

Could you please tell me, how you compile the tool chain?
It would be great, if you can provide me a script or a list of patches you applied for building.

Best regards
TheNop

Hello,

sorry, typing error:
Only the gcc-3.4.x-glibc-2.3.2 combination I could compile without errors, but I couldn't compile a 2.6.x kernel.

Best regards
TheNop

#4 lore raw
In reply to TheNop
Quoted 31 lines · TheNop
Quoted 16 lines · Stephen P. Becker
Quoted 8 lines · TheNop

Hello,

I try to get a cross compiler based on
gcc-3.4.2
glibc-2.3.2
binutils-2.15
working; without success.

Quoted 5 lines

Is anyone using a cross compiler base on gcc-3.4.x for a mips big endian target?

Best regarts
TheNop

Quoted 7 lines

I've got a very recent i686->mips-unknown-linux-gnu cross-toolchain available at:http://dev.gentoo.org/~geoman/mips-glibc-crosstools.tar.bz2 if you are too frustrated with building your own.

It includes gcc-3.4.3, glibc-2.3.4 (20041102), and binutils 2.15.91.0.2.

Steve

Hi Steve,

thanx a lot.
This tool chain works perfectly for me. Now I can build 2.6.x kernel.
In the past I tried to build a cross tool chain using crosstools. I don`t get any combination of gcc-3.4.x/glibc-2.x.x working. Only the gcc-3.4.x-glibc-2.3.3 combination I could compile without errors, but I couldn't compile a 2.6.x kernel.

Quoted 7 lines

Could you please tell me, how you compile the tool chain?
It would be great, if you can provide me a script or a list of patches you applied for building.

Best regards
TheNop

Actually, if you just wanted to build kernels, you don't need glibc at all. Just build binutils and then a bootstrap gcc compiler, and you are set. The only reason I messed with a full toolchain at all is so that I can use c++ through distcc.

Steve

author
#5 lore raw
Quoted 36 lines · Stephen P. Becker
Quoted 34 lines · TheNop
Quoted 16 lines · Stephen P. Becker
Quoted 8 lines · TheNop

Hello,

I try to get a cross compiler based on
gcc-3.4.2
glibc-2.3.2
binutils-2.15
working; without success.

Quoted 5 lines

Is anyone using a cross compiler base on gcc-3.4.x for a mips big endian target?

Best regarts
TheNop

Quoted 7 lines

I've got a very recent i686->mips-unknown-linux-gnu cross-toolchain available at:http://dev.gentoo.org/~geoman/mips-glibc-crosstools.tar.bz2 if you are too frustrated with building your own.

It includes gcc-3.4.3, glibc-2.3.4 (20041102), and binutils 2.15.91.0.2.

Steve

Hi Steve,

thanx a lot.
This tool chain works perfectly for me. Now I can build 2.6.x kernel.
In the past I tried to build a cross tool chain using crosstools. I don`t get any combination of gcc-3.4.x/glibc-2.x.x working. Only the gcc-3.4.x-glibc-2.3.3 combination I could compile without errors, but I couldn't compile a 2.6.x kernel.

Could you please tell me, how you compile the tool chain?
It would be great, if you can provide me a script or a list of patches you applied for building.

Quoted 10 lines
Quoted 4 lines

Best regards
TheNop

Actually, if you just wanted to build kernels, you don't need glibc at all. Just build binutils and then a bootstrap gcc compiler, and you are set. The only reason I messed with a full toolchain at all is so that I can use c++ through distcc.

Steve

Hi Steve,

I also want to build a root file system for the target.
I tried to build the tool chain you described above.
I used crossdev on gentoo: "crossdev --arch=mips --vbinutils=2.15.91.0.2 --vheaders=2.4.25 --vgcc=3.4.3 --vglibc=2.3.4.20041102" But it fails.

mips/mips-unknown-linux-gnu/sys-include -O2 -DIN_GCC -DCROSS_COMPILE -W -Wall -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -Wold-style-definition -isystem ./include -fPIC -DHAVE_SYSLOG -g -DIN_LIBGCC2 -D__GCC_FLOAT_NOT_NEEDED -D_LIBC_PROVIDES_SSP_ -I. -I. -I../../gcc -I../../gcc/. -I../../gcc/../include -DL_eprintf -c ../../gcc/libgcc2.c -o libgcc/./_eprintf.o
/var/tmp/portage/crossdevbuild/gcc-3.4.3/buildboothere-mips/gcc/xgcc -B/var/tmp/portage/crossdevbuild/gcc-3.4.3/buildboothere-mips/gcc/ -B/home/crossdev/mips/mips-unknown-linux-gnu/bin/ -B/home/crossdev/mips/mips-unknown-linux-gnu/lib/ -isystem /home/crossdev/mips/mips-unknown-linux-gnu/include -isystem /home/crossdev/mips/mips-unknown-linux-gnu/sys-include -O2 -DIN_GCC -DCROSS_COMPILE -W -Wall -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -Wold-style-definition -isystem ./include -fPIC -DHAVE_SYSLOG -g -DIN_LIBGCC2 -D__GCC_FLOAT_NOT_NEEDED -D_LIBC_PROVIDES_SSP_ -I. -I. -I../../gcc -I../../gcc/. -I../../gcc/../include -DL__gcc_bcmp -c ../../gcc/libgcc2.c -o libgcc/./__gcc_bcmp.o
../../gcc/unwind-dw2.c: In function `uw_frame_state_for':
../../gcc/unwind-dw2.c:1027: error: structure has no member named sc_regs' ../../gcc/unwind-dw2.c:1027: error: structure has no member named sc_pc' make[2]: *** [libgcc/./unwind-dw2.o] Error 1
make[2]: *** Waiting for unfinished jobs....
make[2]: Leaving directory `/var/tmp/portage/crossdevbuild/gcc-3.4.3/buildboothere-mips/gcc' make[1]: *** [libgcc.a] Error 2
make[1]: Leaving directory `/var/tmp/portage/crossdevbuild/gcc-3.4.3/buildboothere-mips/gcc'
make: *** [all-gcc] Error 2

How did you build the tool chain?
What kernel headers did you use?
If I use kernel headers 2.6.8.1 (I realy need 2.6 heraders!) the installation of the headers fails!

It would be great If you can tell me which paramerter I have to use with crossdev to get a working tool chain.

Best regards
TheNop

#6 lore raw
Quoted 35 lines

Hi Steve,

I also want to build a root file system for the target.
I tried to build the tool chain you described above.
I used crossdev on gentoo: "crossdev --arch=mips --vbinutils=2.15.91.0.2 --vheaders=2.4.25 --vgcc=3.4.3 --vglibc=2.3.4.20041102"
But it fails.

mips/mips-unknown-linux-gnu/sys-include -O2 -DIN_GCC -DCROSS_COMPILE

(quoted diff) +0 -4
-W -Wall -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes 
-Wold-style-definition  -isystem ./include  -fPIC -DHAVE_SYSLOG -g  
-DIN_LIBGCC2 -D__GCC_FLOAT_NOT_NEEDED  -D_LIBC_PROVIDES_SSP_ -I. -I. 
-I../../gcc -I../../gcc/. -I../../gcc/../include   -DL_eprintf -c 

../../gcc/libgcc2.c -o libgcc/./_eprintf.o /var/tmp/portage/crossdevbuild/gcc-3.4.3/buildboothere-mips/gcc/xgcc

(quoted diff) +0 -3
-B/var/tmp/portage/crossdevbuild/gcc-3.4.3/buildboothere-mips/gcc/ 
-B/home/crossdev/mips/mips-unknown-linux-gnu/bin/ 
-B/home/crossdev/mips/mips-unknown-linux-gnu/lib/ -isystem 

/home/crossdev/mips/mips-unknown-linux-gnu/include -isystem /home/crossdev/mips/mips-unknown-linux-gnu/sys-include -O2 -DIN_GCC

(quoted diff) +0 -5
-DCROSS_COMPILE   -W -Wall -Wwrite-strings -Wstrict-prototypes 
-Wmissing-prototypes -Wold-style-definition  -isystem ./include  -fPIC 
-DHAVE_SYSLOG -g  -DIN_LIBGCC2 -D__GCC_FLOAT_NOT_NEEDED  
-D_LIBC_PROVIDES_SSP_ -I. -I. -I../../gcc -I../../gcc/. 
-I../../gcc/../include   -DL__gcc_bcmp -c ../../gcc/libgcc2.c -o 

libgcc/./__gcc_bcmp.o
../../gcc/unwind-dw2.c: In function `uw_frame_state_for':
../../gcc/unwind-dw2.c:1027: error: structure has no member named sc_regs' ../../gcc/unwind-dw2.c:1027: error: structure has no member named sc_pc' make[2]: *** [libgcc/./unwind-dw2.o] Error 1
make[2]: *** Waiting for unfinished jobs....
make[2]: Leaving directory `/var/tmp/portage/crossdevbuild/gcc-3.4.3/buildboothere-mips/gcc' make[1]: *** [libgcc.a] Error 2
make[1]: Leaving directory `/var/tmp/portage/crossdevbuild/gcc-3.4.3/buildboothere-mips/gcc'
make: *** [all-gcc] Error 2

Quoted 8 lines

How did you build the tool chain?
What kernel headers did you use?
If I use kernel headers 2.6.8.1 (I realy need 2.6 heraders!) the installation of the headers fails!

It would be great If you can tell me which paramerter I have to use with crossdev to get a working tool chain.

Best regards
TheNop

Well, this really is more of a question for the gentoo-mips mailing list. But anyway, 2.4 headers newer than our 2.4.22-r1 ebuild are broken (I can't remember exactly how at the moment), and we *really* don't support 2.6 headers at all. In fact, building against them breaks glibc on o32 userland. The only reason we have them in portage at all right now is for our n32 userland (which is broken in other ways because of the headers). Eventually we'll have a sanitized 2.6 headers package that should work, but it may not be anytime soon.

Anyway to answer your question, I used crossdev to build a bootstrap C compiler (crossdev -k), then I did the rest by hand. You might also need to get kumba's latest version of the crossdev script from gentoo's viewcvs under gentoo/users/kumba/crossdev/ just to get past the first part.

Why do you *need* 2.6 headers anyhow? You can still run a 2.6 kernel with a userland compiled with 2.4 headers.

Steve

author
#7 lore raw
Quoted 49 lines · Stephen P. Becker
Quoted 37 lines

Hi Steve,

I also want to build a root file system for the target. I tried to build the tool chain you described above. I used crossdev on gentoo: "crossdev --arch=mips --vbinutils=2.15.91.0.2 --vheaders=2.4.25 --vgcc=3.4.3 --vglibc=2.3.4.20041102"
But it fails.

mips/mips-unknown-linux-gnu/sys-include -O2 -DIN_GCC

(quoted diff) +0 -5
-DCROSS_COMPILE   -W -Wall -Wwrite-strings -Wstrict-prototypes 
-Wmissing-prototypes -Wold-style-definition  -isystem ./include  
-fPIC -DHAVE_SYSLOG -g  -DIN_LIBGCC2 -D__GCC_FLOAT_NOT_NEEDED  
-D_LIBC_PROVIDES_SSP_ -I. -I. -I../../gcc -I../../gcc/. 
-I../../gcc/../include   -DL_eprintf -c ../../gcc/libgcc2.c -o 

libgcc/./_eprintf.o /var/tmp/portage/crossdevbuild/gcc-3.4.3/buildboothere-mips/gcc/xgcc

(quoted diff) +0 -3
-B/var/tmp/portage/crossdevbuild/gcc-3.4.3/buildboothere-mips/gcc/ 
-B/home/crossdev/mips/mips-unknown-linux-gnu/bin/ 
-B/home/crossdev/mips/mips-unknown-linux-gnu/lib/ -isystem 

/home/crossdev/mips/mips-unknown-linux-gnu/include -isystem /home/crossdev/mips/mips-unknown-linux-gnu/sys-include -O2 -DIN_GCC

(quoted diff) +0 -5
-DCROSS_COMPILE   -W -Wall -Wwrite-strings -Wstrict-prototypes 
-Wmissing-prototypes -Wold-style-definition  -isystem ./include  
-fPIC -DHAVE_SYSLOG -g  -DIN_LIBGCC2 -D__GCC_FLOAT_NOT_NEEDED  
-D_LIBC_PROVIDES_SSP_ -I. -I. -I../../gcc -I../../gcc/. 
-I../../gcc/../include   -DL__gcc_bcmp -c ../../gcc/libgcc2.c -o 

libgcc/./__gcc_bcmp.o
../../gcc/unwind-dw2.c: In function `uw_frame_state_for':
../../gcc/unwind-dw2.c:1027: error: structure has no member named sc_regs' ../../gcc/unwind-dw2.c:1027: error: structure has no member named sc_pc' make[2]: *** [libgcc/./unwind-dw2.o] Error 1
make[2]: *** Waiting for unfinished jobs....
make[2]: Leaving directory `/var/tmp/portage/crossdevbuild/gcc-3.4.3/buildboothere-mips/gcc' make[1]: *** [libgcc.a] Error 2
make[1]: Leaving directory `/var/tmp/portage/crossdevbuild/gcc-3.4.3/buildboothere-mips/gcc'
make: *** [all-gcc] Error 2

Quoted 8 lines

How did you build the tool chain?
What kernel headers did you use?
If I use kernel headers 2.6.8.1 (I realy need 2.6 heraders!) the installation of the headers fails!

It would be great If you can tell me which paramerter I have to use with crossdev to get a working tool chain.

Best regards
TheNop

Well, this really is more of a question for the gentoo-mips mailing list. But anyway, 2.4 headers newer than our 2.4.22-r1 ebuild are broken (I can't remember exactly how at the moment), and we *really* don't support 2.6 headers at all. In fact, building against them breaks glibc on o32 userland. The only reason we have them in portage at all right now is for our n32 userland (which is broken in other ways because of the headers). Eventually we'll have a sanitized 2.6 headers package that should work, but it may not be anytime soon.

Quoted 7 lines

Anyway to answer your question, I used crossdev to build a bootstrap C compiler (crossdev -k), then I did the rest by hand. You might also need to get kumba's latest version of the crossdev script from gentoo's viewcvs under gentoo/users/kumba/crossdev/ just to get past the first part.

Why do you *need* 2.6 headers anyhow? You can still run a 2.6 kernel with a userland compiled with 2.4 headers.

Steve

Hi Steve,

I thought that I have to use 2.6 headers if I want to run a 2.6 kernel. If not, I'm happy with a working tool chain compiled with 2.4 headers :-).

Best regards
TheNop

#8 lore raw
In reply to TheNop

Hello,

Quoted 1 line · TheNop

Is anyone using a cross compiler base on gcc-3.4.x for a mips big endian target?

Yes. Using buildroot (the tool provided by uclibc guys), I successfully generated tool chains for MIPS Big Endian with both Gcc 3.3.x et Gcc 3.4.x. C and C++ programs, dynamically linked with uclibc work fine. However, with Gcc 3.4.x, my version of the Linux MIPS kernel (a more than one month old CVS checkout, heavily tuned for my platform) doesn't compile.

Thomas

Signature · 4 lines
PETAZZONI Thomas - [email protected]
http://thomas.enix.org - Jabber: [email protected]
KOS: http://kos.enix.org/ - Lolut: http://lolut.utbm.info
Fingerprint : 0BE1 4CF3 CEA4 AC9D CC6E  1624 F653 CB30 98D3 F7A7
author
#9 lore raw
Quoted 10 lines · Thomas Petazzoni

Hello,

Quoted 1 line · TheNop

Is anyone using a cross compiler base on gcc-3.4.x for a mips big endian target?

Yes. Using buildroot (the tool provided by uclibc guys), I successfully generated tool chains for MIPS Big Endian with both Gcc 3.3.x et Gcc 3.4.x. C and C++ programs, dynamically linked with uclibc work fine. However, with Gcc 3.4.x, my version of the Linux MIPS kernel (a more than one month old CVS checkout, heavily tuned for my platform) doesn't compile.

Thomas

Hi Thomas,

I tried the current cvs version of toolchain provide by www.uclibc.org without success. I will try buildroot tomorrow.
Hopefully I have luck than with crosstools.

Best regards
TheNop