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

[MiNT] GCC 4.4.2 and binutils 2.19.1 20091017



Hello.

I have updated the MiNT patches for the binutils and GCC, and as usual I provide the cross-compiler binaries for Cygwin:
http://vincent.riviere.free.fr/soft/m68k-atari-mint/

GCC 4.4.2 is only a bugfix release, there is nothing specific for us.
Here is the list of the bugs fixed in this release:
http://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.4.2

However I made some important changes in this news binutils 2.19.1 patch labeled 20091017:

- I reverted the .align behaviour to act like in binutils 2.13 for MiNT: it now takes a power of 2 (as requested by Alan). I repeat again that if you want to align on 4 bytes, you should use .balign 4 because the meaning of .align 2 (means pow(2, 2)) may be different on some other assemblers, especially m68k-elf. Be warned.

- I fixed that long-lasting C++ cout bug ! One day I discovered that a simple C++ program was not able to output an int via cout, followed by some other text (no output or access violation). The reason was actually in the binutils ! But on a very rare case: a reference to a weak variable in the data segment defined in the same object file. This case is highly improbable for much C programs, but it is used in C++ to implement static data members in class templates. And the standard iostream uses that machinery. I discovered that recently by chance while trying some hardcore template programming, and fortunately it has been a lot easier to debug than trying to understand the complex iostream. That fix has been committed in the binutils official sources. Full story here (boring):
http://sourceware.org/bugzilla/show_bug.cgi?id=3041

So the good news is there is no more known bug with C++ (and C) !
Keith, I don't know if you still have problems with ScummVM, but I remember it uses some very advanced C++ features. You shouldn't experience any problem with this release.

I also added some little nice things, among them :
- objdump -p can now display the values of the MiNT extended header (stack size, start address, debug format...) - strip now works on executables linked with --traditional-format, no more "invalid file format".

As I write these lines, I realize that the binutils 2.20 have just been officially released, so I'm providing you outdated software :S However my 2.20 patch is almost ready, I plan to release it soon with the long awaited stack patch !

Enjoy.

--
Vincent Rivière