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

Re: [MiNT] cross compiling again

Thanks for the answer,

Finally, I get the cygwin compilated version (and fdlibm) and with a few more cygwin's dlls in the bin directory, I'm able to compile c++ project with devcpp and produce an atari executable file directly. It's gcc 2.95 but it's ok for me.


Mark Duckworth a écrit :


Use Binutils 2.16.1 which is proven to work well, then, use GCC 3.3.6
which has instructions which can be searched on the CT60 BBS,
ct60.dhs.nu, ... It should work I think, at least for gcc (not g++
maybe).  If you want to use 3.4.2, you're in uncharted waters ;)


On Thu, 2006-03-16 at 12:44 +0100, Stephane Capo wrote:
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 :

  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

  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
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
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