My problems with GCC 4.4- were solved as suggested by adding in more
multiply patterns specifically smulsi3_highpart, which enabled
reciprocal multiplication to work. GCC 3.4.4 seems to be happy without
this, don't know why.
I have now built a mingw32 build of my private port, built on x86_64
linux, based on gcc-4.4-20100223
Building gnat for the final cross is the only problematic one
There seem to be 3 build problems.
1) The ada bldtools don't build correctly, host versions of
xnmake,xtreeprs,xsinfo , xeinfo and xgnatugn
are built but the makefile needs ones built for the build system.
I put versions built for the build system on my path and re-enter these
lines, modified slightly
from the originals (e.g. "./" removed from xnmake etc ) :
(cd tools/objdir/gcc/ada/bldtools/nmake_b && i686-pc-mingw32-gnatmake -q
xnmake && xnmake -b ../../nmake.adb )
(cd tools/objdir/gcc/ada/bldtools/nmake_s && i686-pc-mingw32-gnatmake -q
xnmake && xnmake -s ../../nmake.ads )
(cd tools/objdir/gcc/ada/bldtools/treeprs && i686-pc-mingw32-gnatmake -q
xtreeprs && xtreeprs ../../treeprs.ads )
(cd tools/objdir/gcc/ada/bldtools/sinfo && i686-pc-mingw32-gnatmake -q
xsinfo && xsinfo ../../sinfo.h )
(cd tools/objdir/gcc/ada/bldtools/einfo && i686-pc-mingw32-gnatmake -q
xeinfo && xeinfo ../../einfo.h )
(cd /home/linux/lmp-elf-gcc-4.4.4-prerelease/tools/objdir/gcc &&
xgnatugn unw ../../gcc-4.4-20100223/gcc/ada/gnat_ugn.texi \
../../gcc-4.4-20100223/gcc/ada/ug_words doc/gnat_ugn.texi)
2) I had to form an appropriate s-oscons.ads for mingw32 outside the
build process
3) The Makefile in gnattools used build system adalib and adainclude
files, I had to change it to use
the cross libraries, in my case
"ADA_INCLUDES=-I/i686-pc-mingw32/lib/gcc/i686-pc-mingw32/4.4.4/adalib \
-I/i686-pc-mingw32/lib/gcc/i686-pc-mingw32/4.4.4/adainclude -I.
-I/home/linux/lmp-elf-gcc-4.4.4-prerelease/tools/gcc-4.4-20100223/gcc/ada " \