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

[MiNT] binutils-2.18-mint-20080228



Hello.

This time I didn't add a new patch, I removed one.
The details are here:
http://vincent.riviere.free.fr/soft/m68k-atari-mint/history.php

As I said before, my previous binutils releases contained a patch for using a maximum alignment of 2 instead of the m68k default of 4. The purpose of that patch was to get executables with the smallest possible size, without any filler useless for the ST. However, the 4-byte alignment can be useful for accelerator cards using FastRAM. So I reverted the patch. Now the ".align 4" directive is honored as expected on Falcon TOS and MiNT. This change is a prerequisite for a future GCC patch where every long is aligned on a 4-byte boundary.

Note that this change is not a revolution, because it is the default binutils behavior, and the binutils 2.13 already behave like that.

I'm a bit sad, because that change looks like a regression for ST users like me. That 4-byte alignment is totally useless without FastRAM. Furthermore, the executables are now a little bigger than before (actually, only a few bytes), and the wasted space grows with the number of .o files linked in the executable. However, the (future) speed gain for the MiNT power users is certainly more important than some wasted bytes for retro freaks.

Another cause of sadness is that I discovered a bug in g++.
cout << "hello" works, but
cout << 123 displays nothing and disables any further output !

That problem is present since gcc-4.2.3-mint-20080210. The only significant change in that version is the workaround for duplicate symbols for C++ thunks (aka ScummVM bug)
This will require further investigation :-)

That's all for today.

--
Vincent Rivière