Why is instrument.dll linked against static CRT on windows?

Thomas Stüfe thomas.stuefe at gmail.com
Fri Nov 14 14:06:11 UTC 2014


Hi everyone,

we have a problem in our instrument.dll - on windows - which is caused by
the fact that it links against the static CRT instead of the dynamic CRT.

The problem is probably uninteresting and has to do with the fact that we
run then with two C-Runtimes;
there are a number of ways to fix it, but an easy way would be to just link
instrument.cll against the dynamic C-Runtime.

I see that in Lib-java.instrument.gmk there is a special section for
instrument.dll:

46  # Statically link the C runtime so that there are not dependencies on
modules
47  # not on the search patch when invoked from the Windows system directory
48  # (or elsewhere).
49  LIBINSTRUMENT_CFLAGS := $(filter-out -MD, $(LIBINSTRUMENT_CFLAGS))

where /MD is removed from the compiler options, which causes the object
files to link against the static CRT..

The comment sounds like I break something by linking against dynamic
C-Runtime.

But I do not understand the comment entirely, could someone please
elaborate a bit?

(more precisely, I do not see how we could even run into a situation where
we could not
resolve the dynamic C-Runtime and still be able to launch the JVM to load
the instrument.dll).

Thanks a lot!

Thomas Stüfe
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.openjdk.java.net/pipermail/serviceability-dev/attachments/20141114/61a38987/attachment.html>


More information about the serviceability-dev mailing list