在openJDK构建系统中,unsafe.cpp如何链接到unsafe.java

How is unsafe.cpp linked to Unsafe.java in the openJDK build system

本文关键字:unsafe 链接 java 何链接 cpp 构建 openJDK 系统      更新时间:2023-10-16

我已经将unsafe.cpp和unsafe.java克隆到自定义版本。我要构建新的JVM,但我的UnsafeNew.java似乎是用unsafe.cpp方法内联的,而不是我的新UnsafeNew.cpp方法。

希望拥有openJDK构建系统专业知识的人知道这是如何联系在一起的。

感谢

Tomer

至少在openJDK7中,答案是它被硬编码到构建系统中。虽然常规JNI需要LoadLibrary()调用,但对于Unsafe和其他一些文件,这是由编译器完成的。

在hotspot/src/share/vm/prims/nativeLookup.cpp中有一个名为的数组

JNINativeMethod lookup_special_native_methods[] 

包括

{ CC"Java_sun_misc_Unsafe_registerNatives",NULL, FN_PTR(JVM_RegisterUnsafeMethods)} 

这就奏效了。

我希望我帮过别人。

Tomer