On 11/14/23 17:58, Julian Waters wrote:
This question was brought up in https://github.com/openjdk/jdk/pull/15096, the issue is that awt.dll has historically tried to avoid depending on msvcp.dll, and as https://github.com/openjdk/jdk/pull/15096#issuecomment-1796303631 points out, it is unclear whether it is now safe to introduce a dependency to msvcp.dll in awt.dll since it is unclear whether msvcp.dll is now always distributed with the JDK, though I am fairly confident that it is (The fix in that PR is dependent on some facilities in the C++ Standard Library). Can anyone confirm whether this is the case?

Back in JDK 8 when we used Visual Studio 2010, we used to not ship msvcp*.dll. This changed when I added support for building with Visual Studio 2013 [1] in JDK 9. In the patch for that bug I found this text:

+    # If building with Visual Studio 2010, we can still use _STATIC_CPPLIB to +    # avoid bundling msvcpNNN.dll. Doesn't work with newer versions of visual
+    # studio.

So since we switched to Visual Studio 2013, we started to bundle msvcp*.dll. It was only ever possible to not bundle it if you built with Visual Studio 2010 (or older I suppose). It's pretty safe to say that the current mainline JDK build requires msvcp.dll to be bundled. Looking at the configure logic, configure will fail unless we find it and the copying in open/make/modules/java.base/Copy.gmk is unconditional.

/Erik

[1] https://bugs.openjdk.org/browse/JDK-8042707


Reply via email to