many cases of ld.exe crashes. (on windows xp).

I can positively confirm the above described fix. Thanks a lot :grin:

Thanks! It works! If someone have the ld.exe crash problem, copy ld.exe from v1.0.6 to v1.6.x, nothing else. :-)

WOW - really? Several people, including myself, have experienced a problem with the loader (ld.exe) running on Windows XP, and the best we can hope for is to bring forward an older version of ld.exe from earlier builds? Really? How do we get the attention of the developers and maintainers to run the bug to ground and fix it?

Doug Robson -

same problem here (pro mini / mega328 5V 16MHz) but swap of ld.exe definitely doesn't work for me. Sometime it helps to "restructure" code (seperate compund operators, change sequence of operations) but trying to include Serial.print breaks compilation almost for sure.

1.6.0 doesn't work at all (compilation stops without result or error).

Only way out is to use 1.0.6 package

Adding 12 extra global variable worked for me. Weirdly the id has been working fine all day but when I used three nested 'for' loops and two used the same variable by mistake, well the s*** hit the fan. Its like it just couldn't forgive me anymore.

After downloading 1.6.4 I was having numerous crashes (collect2.exe: error: ld returned 5 exit status) with even the simplest of sketches, I copied the ld.exe from 1.0.5 into the latest 1.6.4 download, and everything now works great! I used 1.0.5 instead of the previously mentioned 1.0.6, because I already had it downloaded. Using Windows XP SP3.

//thanks the idea appears to work //I add the following global variable long xxxx[0]; // added to eliminate ID.exe crashes

// add a global variable long xxxx[0]; //Added to eliminate ID.exe crashes

finally I found out that I was repeatedly replacing the wrong ld.exe. Did a “Installer” install to D: in the beginning (but didn’t recognize that compiler & co ended up in my userprofile) later replaced D:\arduino with .zip version where I tried to replace several ld.exe for no avail. Now in the correct place it seems to work.

Going to clean up the mess and never touch that “installer” stuff again.

P.S.: the trick with adding global variables never worked for me. A method to break compiling for ~100% was adding serial output. Sometimes serial.print was ok in the setup but definitely broke it in loop.
It is very discouraging if you start something new and already fail with the examples …

First time I had the problem I fixed it by replacing ld.exe from an older version - thanks to you guys.

Then I messed up my installation by installing MegunoLink's Upload Monitor. If you are using MegunoLink and started to get a bunch of "not valid win32 app" errors, close the IDE and remove that Upload Monitor thing using MegunoLink's menus.

Back to the issue. Today I tried the "ld.exe" from the latest nightly build at the download page and it worked! Unless I mixed up files, devs must have fixed the problem. Can someone try to verify this?


PS: that's "LD.EXE" not "ID.EXE". Don't make the mistake I made.

Seems to be a (random) integer division bug in the compiler.

See my post here:

Just a quick note: On a Windows XP SP3 box, with 1.6.4, their “Buttons” example (for example) blows up. Following suggestions here, I put 9 “int” declarations before the setup() and it now compiles fine. (Go iigure).


Is this problem solved with the new arduino IDE 1.6.5 ?

fog44: Is this problem solved with the new arduino IDE 1.6.5 ?

Nope. I just downloaded 1.6.5 and the issue continues..

I had the chance to use a clean windows xp and, sorry to say, the IDE works just fine. A similar issue has been affecting a windows 8 user: cause was her antivirus, that was blocking access to some files shipped and used with the IDE. Can you double check your quarantine or something?

Is this problem solved with the new 1.6.5 IDE ?

definitely NO and I tried with a fresh install of XP/SP3. It seems to depend on a lot of things. I had an example where it wouldn't accept a modulo operator until I swaped two statements some lines above. It then compiled ok until I inserted serial.print() in the mainloop, that broke it for good;, I didn't find a way around swaping ld.exe. And that makes it stable - what to me shows that its definitely some flaw in the newer toolchain.

And - as sidenote - the IDE itself isn't really stable on W7 either. When I leave it open in the background it sometimes disappears on its own, without any further notice ... if you look at the taskmanager you see the javaw gobbling up memory and probably running out of eventually ....

Id crashes. I have through many post about this error and am still puzzled. I have received the message many times, not just in any one sketch. Many of the times have been when I tried to compile a sketch copied from the web with no changes. Someone suggested adding variables into the sketch, no such luck. Instead of the connect2.. message now I am receiving the following error message from the windows operating system. example one AppName: ld.exe AppVer: ModName: ld.exe ModVer: Offset: 0008293b

If I open error report, it will not allow me to copy it but I believe is a key part is Module 1 id.exe image base 0x00400000 image size0x00000000 checksum 0x0011011ee time stamp 0xffffffff version information signature 00000000 strucVer 00000000 file ver(0.0:0.0) prod ver( flag mask flags,os: and file type are all listed as 00000000 I hope this will help someone who knows more than fix this issue. One more not of interest. I did several searches and could not fine id.exe on my xp sp3 machine

no it is not solved. in fact worse. and imo it is foolish to be concerned with coding details. i struggled for couple hours today with it in this thread:

i say worse because the standard fix of simply copying ld.exe from any earlier version is more tricky. from 1.5.8 and some others worked for 1.6.3 but not for 1.6.5. from 1.0.5 did. several projects that misbehaved before are ok now.

btw if windows search does not find it then probably being used incorrectly. mine came up with over 30 instances. i got half way through that list before finding the one (1.0.5) that fixed it.

Hi, you have to look for LD.exe - windows doesn't care for upper/lower case, but for difference between l (lowercase L) and I (uppercase i)! (ha, different fonts for writing/display of posts are a "pita")

To find the one giving you the headache, go into File/preferences and tick "Show verbose output during:" x compilation. In the message window you will see the compilation process and some lines before the error the call of ld.exe with the relevant path. This is the ld.exe you want to swap for an older one.