# Juce 4.1.0 incompatible with windows xp?

**URL:** <https://forum.juce.com/t/juce-4-1-0-incompatible-with-windows-xp/16444>\
**Category:** Windows\
**Created:** [January 20, 2016, 8:54pm UTC](https://forum.juce.com/t/juce-4-1-0-incompatible-with-windows-xp/16444 "2016-01-20T20:54:06Z")\
**Posts on this page:** 12\
**Page:** 1

<div class="post-metadata">

**Author:** ![vberthiaume](https://sea2.discourse-cdn.com/flex026/user_avatar/forum.juce.com/vberthiaume/32/6513_2.png) [@vberthiaume](https://forum.juce.com/u/vberthiaume)\
**Post date:** [January 20, 2016, 8:54pm UTC](https://forum.juce.com/t/juce-4-1-0-incompatible-with-windows-xp/16444/1 "2016-01-20T20:54:06Z")

</div>

From a clean download and a fresh win xp x86 sp3 install, the introjucer and juce demo from juce 4.1.0 do not&nbsp;build with visual studio 2010. I get an error saying the entrypoint procedure X for kernel32.dll is not found (https://support.microsoft.com/en-us/kb/142606). Introjucer from&nbsp;Juce 3.2.0 seems to work.

EDIT: After some tests, this problem starts at version 4.0.1

---

<div class="post-metadata">

**Author:** ![timur](https://sea2.discourse-cdn.com/flex026/user_avatar/forum.juce.com/timur/32/541_2.png) [@timur](https://forum.juce.com/u/timur)\
**Post date:** [January 22, 2016, 6:25pm UTC](https://forum.juce.com/t/juce-4-1-0-incompatible-with-windows-xp/16444/2 "2016-01-22T18:25:43Z")

</div>

Hi there,

I really hate to be the harbinger of bad news, but unfortunately&nbsp;we don't support Windows XP.

Please update to Windows 7, 8, 8.1, or 10 in order to use JUCE 4.

---

<div class="post-metadata">

**Author:** ![vberthiaume](https://sea2.discourse-cdn.com/flex026/user_avatar/forum.juce.com/vberthiaume/32/6513_2.png) [@vberthiaume](https://forum.juce.com/u/vberthiaume)\
**Post date:** [January 25, 2016, 3:03pm UTC](https://forum.juce.com/t/juce-4-1-0-incompatible-with-windows-xp/16444/3 "2016-01-25T15:03:22Z")

</div>

Alright, I guess&nbsp;that makes sense. Is this written anywhere in the doc?

---

<div class="post-metadata">

**Author:** ![timur](https://sea2.discourse-cdn.com/flex026/user_avatar/forum.juce.com/timur/32/541_2.png) [@timur](https://forum.juce.com/u/timur)\
**Post date:** [January 25, 2016, 3:32pm UTC](https://forum.juce.com/t/juce-4-1-0-incompatible-with-windows-xp/16444/4 "2016-01-25T15:32:00Z")

</div>

Not explicitly, it seems.

Thanks, I'll see to it that we add a proper "minimum system&nbsp;requirements" section somewhere on the website.

Just out of curiosity: in the year&nbsp;2016, what is your motivation to use Windows XP as your platform&nbsp;for software development?

---

<div class="post-metadata">

**Author:** ![jrlanglois](https://sea2.discourse-cdn.com/flex026/user_avatar/forum.juce.com/jrlanglois/32/21372_2.png) [@jrlanglois](https://forum.juce.com/u/jrlanglois)\
**Post date:** [January 25, 2016, 5:55pm UTC](https://forum.juce.com/t/juce-4-1-0-incompatible-with-windows-xp/16444/5 "2016-01-25T17:55:59Z")

</div>

Speaks for itself, really.

---

<div class="post-metadata">

**Author:** ![jules](https://avatars.discourse-cdn.com/v4/letter/j/41988e/32.png) [@jules](https://forum.juce.com/u/jules)\
**Post date:** [January 27, 2016, 1:10pm UTC](https://forum.juce.com/t/juce-4-1-0-incompatible-with-windows-xp/16444/6 "2016-01-27T13:10:12Z")

</div>

FYI we don't _officially_ support XP, but since it pretty much still works, we're not opposed to making small tweaks to stay compatible with it.

However, we don't have an XP machine and don't test it ourselves, so it's up to you guys to offer&nbsp;change requests for it, which we'll add as long as they seem safe.

---

<div class="post-metadata">

**Author:** ![vberthiaume](https://sea2.discourse-cdn.com/flex026/user_avatar/forum.juce.com/vberthiaume/32/6513_2.png) [@vberthiaume](https://forum.juce.com/u/vberthiaume)\
**Post date:** [January 27, 2016, 6:45pm UTC](https://forum.juce.com/t/juce-4-1-0-incompatible-with-windows-xp/16444/7 "2016-01-27T18:45:38Z")

</div>

I develop on win 10, but wanted to check if my plugins were working on a win xp virtual machine. I got weird errors so decided to build JUCE from scratch to see if that was the problem. And it was. Really not a big deal though, everything works on win 7.

---

<div class="post-metadata">

**Author:** ![pflugshaupt](https://sea2.discourse-cdn.com/flex026/user_avatar/forum.juce.com/pflugshaupt/32/13206_2.png) [@pflugshaupt](https://forum.juce.com/u/pflugshaupt)\
**Post date:** [February 18, 2016, 4:54pm UTC](https://forum.juce.com/t/juce-4-1-0-incompatible-with-windows-xp/16444/8 "2016-02-18T16:54:22Z")

</div>

I can build plugins that run on XP SP2 and later on windows 10. Due to changes in the windows 10 SDK&nbsp;it does not work if you build with MSVC2015 even if the platform toolset v140\_xp is used. It's something related to dll loading and how system calls are abstracted between versions of windows.

However what does work (at least&nbsp;for me) is building the plugin with MSVC2013. The JUCE codebase itself is totally compatible with XP.

People should really be discouraged from using XP nowadays, but there are quite a few audio people who stick to their OSes as long as possible.

---

<div class="post-metadata">

**Author:** ![patrickkunz](https://avatars.discourse-cdn.com/v4/letter/p/73ab20/32.png) [@patrickkunz](https://forum.juce.com/u/patrickkunz)\
**Post date:** [April 28, 2016, 8:11am UTC](https://forum.juce.com/t/juce-4-1-0-incompatible-with-windows-xp/16444/9 "2016-04-28T08:11:39Z")

</div>

Our plugins also crashed while loading on XP. I don’t have a XP machine to test, but following maybe works. I will add this option to our plugins and see what happens:

1. Link the CRT statically - in Config Properties / C/C++ / Code Generation / Runtime Library select the non-DLL multi-threaded option, for example /MT in the release build.

2. Add /Zc:threadSafeInit- (n.b. the trailing - is part of the switch) to the compiler options under Config Properties / C/C++ / Command Line / Additional Options.

See here:

> <https://stackoverflow.com/questions/34074204/visual-studio-2015-cannot-produce-an-atl-dll-that-successfully-registers-on-wind>

---

<div class="post-metadata">

**Author:** ![patrickkunz](https://avatars.discourse-cdn.com/v4/letter/p/73ab20/32.png) [@patrickkunz](https://forum.juce.com/u/patrickkunz)\
**Post date:** [April 28, 2016, 8:21am UTC](https://forum.juce.com/t/juce-4-1-0-incompatible-with-windows-xp/16444/10 "2016-04-28T08:21:54Z")

</div>

Maybe this helps:

> <https://stackoverflow.com/questions/34074204/visual-studio-2015-cannot-produce-an-atl-dll-that-successfully-registers-on-wind>

1. Link the CRT statically - in Config Properties / C/C++ / Code Generation / Runtime Library select the non-DLL multi-threaded option, for example /MT in the release build.
2. Add /Zc:threadSafeInit- (n.b. the trailing - is part of the switch) to the compiler options under Config Properties / C/C++ / Command Line / Additional Options.

---

<div class="post-metadata">

**Author:** ![pflugshaupt](https://sea2.discourse-cdn.com/flex026/user_avatar/forum.juce.com/pflugshaupt/32/13206_2.png) [@pflugshaupt](https://forum.juce.com/u/pflugshaupt)\
**Post date:** [May 8, 2016, 10:03am UTC](https://forum.juce.com/t/juce-4-1-0-incompatible-with-windows-xp/16444/11 "2016-05-08T10:03:13Z")

</div>

Yes this does help! Using visual studio 2015 update 2, the 140\_xp toolset and the /Zc:threadSafeInit- I was able to build a plugin that loads on Windows XP. So finally I can erase VS2013. The explanation (by Microsoft) on the thread you linked is rather interesting, so I’ll copy it here as well:

> Windows Server 2003 and Windows XP have problems with dynamically loading a DLL (via LoadLibrary) that uses thread-local storage, which is what thread-safe statics use internally to provide efficient execution when the static local has already been initialized. As these systems are out of support, it is extremely unlikely for a patch to be created for those systems to add this support as is present in Vista and newer OSes, and we are reluctant to penalize the performance on in-support OSes to provide this functionality to the old out-of-support ones.

> To work around the issue you can use /Zc:threadSafeInit- to disable the thread-safe initialization code and this will avoid the thread-local variable. Of course by doing so the initialization code reverts back to the VS2013 mode and is not thread-safe, so this option is only viable if you don’t rely on the thread-safety of local statics.

---

<div class="post-metadata">

**Author:** ![adamvietnam](https://avatars.discourse-cdn.com/v4/letter/a/e19b73/32.png) [@adamvietnam](https://forum.juce.com/u/adamvietnam)\
**Post date:** [May 10, 2016, 8:21pm UTC](https://forum.juce.com/t/juce-4-1-0-incompatible-with-windows-xp/16444/12 "2016-05-10T20:21:25Z")

</div>

For us we have a couple of thousand customer machines in the field using XP many of which wouldn’t support the upgrade to Windows 7 even if the cost wasn’t prohibitive - so its a big deal to us.
