Как unsafe.cpp связан с Unsafe.java в системе сборки openJDK

Я клонировал unsafe.cpp и Unsafe.java для пользовательских версий. У меня есть новая JVM для сборки, но кажется, что мой UnsafeNew.java встроен с помощью методов unsafe.cpp, а не моих новых методов unsafenew.cpp.

Надеюсь, кто-то с опытом в системе сборки openJDK знает, как это связано.

Спасибо

Томер

0

Решение

Ну, по крайней мере, в openJDK 7 ответ таков: он жестко запрограммирован в системе сборки. В то время как обычный 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)}

Это делает трюк.

Я надеюсь, что помог кому-то с этим.

Томер

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]