Where to find windows tools?

Having never run gcc on Windows, I now want to compile there to make sure stuff I'm working on is fully portable. Where does Arduino get its AVR tools for Windows? Web search led me to WinAVR, but those tools are TWO YEARS old. Does Arduino build its own, get them from somewhere else, or ship with 2-year-old tools?

From Arduino v1.0 running

gcc.exe --version

gcc.exe (WinAVR 20081205) 4.3.2
Copyright (C) 2008 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

Looks like it's 3 years old and counting...

Iain

Wow. Ok, very well. Thanks a lot.

Note that most of the tools newer than 4.3.2 have "known problems" on AVR. Atmel is shipping 4.5.1, I think, perhaps with some patches, but that has c++ specific issues WRT Arduino.
WEK is working on a new WinAVR package, but it doesn't seem to be happening very fast...

Fascinating. Every so often I see a post like that. I'm running 4.5.2 on Snow Leopard and 4.5.3 on Ubuntu 64, and those problems have not affected me yet. Need to keep my fingers crossed??

The main "known bug" for 4.5 is about initialization of global objects, notably the multiple serial ports on Mega.
http://code.google.com/p/arduino/issues/detail?id=131&can=1&q=global
It's not fixed in official releases till 4.6.1: 45263 – registers used in __do_global_ctors can get clobbered
(I believe that this means that 4.3.x won't work right on very large sketches, either. But 4.5.x was always broken.)
There was discussion here: http://www.avrfreaks.net/index.php?name=PNphpBB2&file=viewtopic&t=97077
And here: http://www.avrfreaks.net/index.php?name=PNphpBB2&file=viewtopic&t=112506

Well, that was a fun bunch of threads! :). Looks like this can simply be worked around with a linker script that Puts the ctors earlier in flash, right?

In 4.3.x, I think you're OK if ctors is early in flash. In the actively broken releases, the trashed register in the ctors code can prevent things from working at all.

Ah yes, I see that now. When then I guess the only solution is to compile my own tools on all platforms :smiley: