HOWTO build i386-linux toolchain for Generic i386/Linux ------------------------------------------------------- 1. Packages used: binutils-2.14.tar.gz gcc-3.2.3.tar.gz glibc-2.2.5.tar.gz 2. binutils-2.14 tar xvzf binutils-2.14.tar.gz cd binutils-2.14 mkdir i386-linux cd i386-linux ../configure --target=i386-linux make make install 3. gcc-3.2.3 tar xvzf gcc-3.2.3.tar.gz cd gcc-3.2.3 cp $(ATTACHED t-linux file) gcc/config/ mkdir i386-linux cd i386-linux ../configure --target=i386-linux --disable-shared --disable-threads \ --with-headers=/linux-2.4.x/include \ --enable-languages=c make install 4. glibc-2.2.5 tar xvzf glibc-2.2.5.tar.gz cd glibc-2.2.5 tar xvzf glibc-linuxthreads-2.2.5.tar.gz mkdir i386-linux cd i386-linux CC=i386-linux-gcc \ AS=i386-linux-as \ LD=i386-linux-ld \ ../configure i386-linux \ --with-headers=/linux-2.4.x/include \ --enable-add-ons --enable-shared --prefix=/usr/local/i386-linux make make install 5. gcc-3.2.3 (c++, etc) tar xvzf gcc-3.2.3.tar.gz cd gcc-3.2.3 cp $(ATTACHED t-linux file) gcc/config/ vi gcc/config/t-linux - remove "-Dinhibit_libc" -- all occruances mkdir i386-linux cd i386-linux ../configure --target=i386-linux --disable-shared \ --with-headers=/linux-2.4.x/include \ --with-gnu-as --with-gnu-ld --enable-multilib perl -pi -e 's/int namelen/unsigned int namelen/' ../libjava/java/net/natInetAddress.cc make make install ------------------------------------------------------------------------------ APPENDIX A -- modified t-linux for gcc-3.2.3 ------------------------------------------------------------------------------ # Don't run fixproto STMP_FIXPROTO = # Compile crtbeginS.o and crtendS.o with pic. CRTSTUFF_T_CFLAGS_S = -fPIC # Compile libgcc2.a with pic. TARGET_LIBGCC2_CFLAGS = -fPIC -Dinhibit_libc -D__gthr_posix_h T_CFLAGS = -Dinhibit_libc -D__gthr_posix_h # Override t-slibgcc-elf-ver to export some libgcc symbols with # the symbol versions that glibc used. SHLIB_MAPFILES += $(srcdir)/config/libgcc-glibc.ver # Use unwind-dw2-fde-glibc LIB2ADDEH = $(srcdir)/unwind-dw2.c $(srcdir)/unwind-dw2-fde-glibc.c \ $(srcdir)/unwind-sjlj.c LIB2ADDEHDEP = unwind.inc unwind-dw2-fde.h unwind-dw2-fde.c ------------------------------------------------------------------------------