[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[MiNT] cross compiling again

Hi there,

   a long time ago, i've tried to cross compile gcc for m68k-atari-mint on a mingw host, but at this time, collect2 was not support by mingw and a lot of errors during the compile process has made me give up.
   My goal (dream ?) would be to have a native windows cross compiler so that i will be able to generate atari prg directly with dev-cpp IDE (or even VisualC++ ). Mingw can now build gcc with more less patch than before, so I decided to try again.

   Starting from the Patrice Mandin tutorial : http://perso.wanadoo.fr/patrice.mandin/v3/fr/howto-cross333.html

   I've done a "build-all.sh" file doing the whole process.

   my starting files are :
   - binutils-2.13.90-20021006-2-src.tar.gz ( mingw patched files )
   - binutils- (Patrice Mandin patch)
   - gcc-3.4.2.tar.bz2 (official GCC 3.4.2 sources from gnu)
   - gcc-3.4.2-20040916-1-src.diff.gz (mingw patch)
   - mintlib-devel-0.57.4.tar.gz (lib and include, from Patrice Mandin)

   I've also done a short patch for binutils (avoid a build error)

   and I've done a patch for gcc-3.4.2 based on gcc-3.3.3-mint.diff.gz from Patrice Mandin again.

   I've managed to build binutils 2.13 for mingw, then gcc 3.4.2 (only c and c++) for mingw (using binutils 2.13), then binutils 2.13 for mint, but I'm now stuck at gcc-3.4.2 for mint. It seems that the compiler doesn't find some include path and if I patch the makefile to force the missing include path, there's a crash :

m68k-atari-mint-ar.exe: ./libgcc.a: File truncated

   If someone here want to help me a bit, I'm sure I'm doing more than one thing wrong ;-)

   Here is the "build-all.sh" file, if someone can help me, I'll send him the patch files to have a look.




#    create install dir for host

# this directory



mkdir ${MY_ROOT_DIR}install-dir
cp -r /mingw/include  ${MY_ROOT_DIR}install-dir
cp -r /mingw/lib  ${MY_ROOT_DIR}install-dir

# ---------------------------
#  build binutils for mingw
# ---------------------------

tar xvzf binutils-2.13.90-20021006-2-src.tar.gz
cd binutills-2.13.90-20021006-2
gunzip -c ../binutils-2.13.90-20021006-2-src.tar-mingw-diff.gz | patch -p1
cd ..
mkdir build-binutils
cd build-binutils
../binutills-2.13.90-20021006-2/configure --with-gcc --with-gnu-ld --with-gnu-as --host=mingw32 --target=mingw32 --prefix=${MY_ROOT_DIR}install-dir --enable-threads --disable-nls --enable-languages=c,c++ --disable-win32-registry --disable-shared --enable-sjlj-exceptions --enable-libgcj --disable-java-awt --without-x --enable-java-gc=boehm --disable-libgcj-debug --enable-interpreter --enable-hash-synchronization --enable-libstdcxx-debug
make CFLAGS="-O2 -fomit-frame-pointer" CXXFLAGS="-mthreads -fno-omit-frame-pointer -O2" LDFLAGS=-s all
make install
cd ..
rm -rf build-binutils

# -----------------------------------
#  set Path
# -----------------------------------

export PATH=${MY_ROOT_DIR}install-dir/bin:${PATH}
export LD_LIBRARY_PATH=${MY_ROOT_DIR}install-dir/lib
export INCLUDE_PATH=${MY_ROOT_DIR}install-dir/include

# -----------------------------------
#  build gcc for mingw
# -----------------------------------

tar xvjf gcc-3.4.2.tar.bz2
cd gcc-3.4.2
gunzip -c ../gcc-3.4.2-20040916-1-src.diff.gz | patch -p1
cd ..
mkdir build-gcc
cd build-gcc

../gcc-3.4.2/configure --with-gcc --with-gnu-ld --with-gnu-as --host=mingw32 --target=mingw32  --prefix=${MY_ROOT_DIR}install-dir --enable-threads --disable-nls --enable-languages=c,c++ --disable-win32-registry --disable-shared --enable-sjlj-exceptions --enable-libgcj --disable-java-awt --without-x --enable-java-gc=boehm --disable-libgcj-debug --enable-interpreter --enable-hash-synchronization --enable-libstdcxx-debug
make CFLAGS="-O2 -fomit-frame-pointer" CXXFLAGS="-mthreads -fno-omit-frame-pointer -O2" LDFLAGS=-s  bootstrap
make install
cd ..
rm -rf build-gcc

# ---------------------------
#  build binutils for atari mint
# ---------------------------

cd binutills-2.13.90-20021006-2
gunzip -c ../binutils- | patch -p1
cd ..

mkdir binutils-
cd binutils-
../binutills-2.13.90-20021006-2/configure --with-gcc --with-gnu-ld --with-gnu-as --host=mingw32 --prefix=${MY_ROOT_DIR}install-dir --target=m68k-atari-mint --disable-threads --disable-nls --enable-languages=c,c++ --disable-win32-registry --disable-shared --disable-java-awt --without-x --disable-libgcj-debug
make CFLAGS="-O -fomit-frame-pointer" CXXFLAGS="-fno-omit-frame-pointer -O" LDFLAGS=-s all
make install
cd ..
rm -rf binutils-

rm -rf binutills-2.13.90-20021006-2

# ---------------------------
#  build gcc for atari mint
# ---------------------------

cd gcc-3.4.2
gunzip -c ../gcc-3.4.2-mint.diff.gz | patch -p1
cd ..

tar xvzf mintlib-devel-0.57.4.tar.gz

mkdir build-gcc-mint
cd build-gcc-mint

../gcc-3.4.2/configure --with-headers=${MY_ROOT_DIR}mintlib-devel-0.57.4/usr/include --with-sysroot=${MY_ROOT_DIR}mintlib-devel-0.57.4 --host=mingw32 --target=m68k-atari-mint  --prefix=${MY_ROOT_DIR}install-dir --disable-threads --disable-nls --enable-languages=c,c++ --disable-win32-registry --disable-shared --disable-java-awt --without-x --disable-libgcj-debug --disable-multilib
make CFLAGS="-O -fomit-frame-pointer -I../../gcc-3.4.2/gcc/config " CXXFLAGS="-fno-omit-frame-pointer -O -I../../gcc-3.4.2/gcc/config " LDFLAGS=-s
make install
cd ..
rm -rf build-gcc-mint