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

[MiNT] GCC 4.4.3



Hello.

GCC 4.4.3 has been released a few days ago. I have updated the MiNT patches and the Cygwin binaries of the cross-compiler. They are available as usual on my page:
http://vincent.riviere.free.fr/soft/m68k-atari-mint/

About GCC itself, it is a minor release, I didn't notice any change from the previous one. However, I have made major changes in the packaging.

1) Multilib support
I have configured GCC for 6 multilib variants, as follows:

$ m68k-atari-mint-gcc --print-multi-lib
.;
m68020-60;@m68020-60
m5475;@mcpu=5475
mshort;@mshort
m68020-60/mshort;@m68020-60@mshort
m5475/mshort;@mcpu=5475@mshort

Basically, there is support for 68000 without FPU, 68020-60 with FPU, and ColdFire V4e with FPU, with all the mshort variants. This allows GCC to find the mshort libraries if they are put in the right directory. No more filename hacking is required.

The only mshort libraries provided are the ones required to build EmuTOS, FreeMiNT and XaAES. They are libgcc.a and libgem.a, provided for the 6 variants. All other libraries are provided for mlong only, in 3 variants.
I have updated the GCC patch to avoid building the useless multilibs.

I hope this will be enough support for rebuilding every SpareMiNT package.

As always, I recommend you to link your programs with -Wl,-t to see exactly what gets linked into your executables, especially the right multilib variant.

2) Fixed the PATH_MAX bug. Actually, the file <limits.h> shipped with GCC is not generated correctly because I don't use --with-headers option when building GCC. As I still don't know how to cleanly bootstrap GCC and the MiNTLib, I have included a workaround in the build script.

3) Updated the Cygwin binaries to Cygwin 1.7. I don't support the old Cygwin 1.5 anymore.

4) Now the Cygwin binaries use the official versions of gmp, mpfr, ppl and cloog. As a result, these official packages must be installed before running the cross-compiler. And also I don't have to rebuild them manually.

5) The new Cygwin cross-compiler has been compiled with CLooG/PPL support. This enable the use of the -graphite option along with -O2 to get specific optimizations on loops. It is about reducing the loops size to fit in the cache and get improved speed. It is probably useless for a raw 68000, if not worst. You can try this option on time critical software to see what happens.

4) The Cygwin cross-tols are now installed in /opt/cross-mint instead of /usr/local/cross-mint. I did that because it seems to be the right place to put self-contained packages. Of course the real right place should be /usr, but since I have no uninstaller, I prefer to not mess the standard directories. Of course everything can be unsintalled by removing the /opt/cross-mint directory.

Important note: I have not updated the Ubuntu packages, as I don't know if they are useful for someone.

Enjoy !

--
Vincent Rivière