On Tue, 24 Nov 2020 13:35:17 GMT, Jorn Vernee <jver...@openjdk.org> wrote:
>> JDK-8254231 breaks the Linux and Windows x86 (32-bit) builds. This contains >> the needed changes to get it working again. >> >> Perhaps the most interesting change is adding the `JNI_ENTRY_CPP_NOENV` >> macro. Using just JNI_ENTRY was causing a linkage failure, due to the >> declaration of the function in the class not having the same linkage >> specifiers. It looks like we can't just specify C linkage for class member >> functions. >> >> However, in this case C linkage is not required, so I've added the new macro >> which doesn't have `extern "C"`. I've also dropped the `JNIEnv*` parameter, >> since it was not being used, but causing extra work for the caller. >> >> Other than that, it's just about adding default definitions for missing >> functions, and moving around some code in MacroAssembler to be in the >> correct `#ifdef` blocks. >> >> Testing: `make images` on Linux and Windows x86_32 platforms. > > Jorn Vernee has updated the pull request with a new target base due to a > merge or a rebase. The incremental webrev excludes the unrelated changes > brought in by the merge/rebase. The pull request contains 10 additional > commits since the last revision: > > - Merge branch 'master' into Linker_32bit-fixes_Simpler > - Remove JNI_ENTRY_CPP_NOENV > - - Move reset_last_Java_frame > - Use the Unimplemented() macro instead of hlt() > - Merge branch 'master' into Linker_32bit-fixes_Simpler > - Remove UnsupportedPlatform test > - Remove unneeded cast > - Remove Stuff that makes the jdk_foreign tests pass > - fix test warnings > - - Fix 32-bit build errors and tests > - Add negative test for 32-bit platform. > - Change CABI to fail more lazily when running on an unsupported platform. > - Change CLinker layouts to be null on unsupported platforms, instead of > failing when initializing the class > - Added note to CLinker about failure to initialize on unsupported > platforms The VM "entry" changes seem better now. Thanks. The use of CATCH as a safety-net is also good. src/hotspot/share/prims/universalUpcallHandler.cpp line 37: > 35: > 36: void ProgrammableUpcallHandler::upcall_helper(jobject rec, address buff) { > 37: JavaThread* THREAD = JavaThread::current(); You could pass the current thread in rather than re-manifesting it. ------------- PR: https://git.openjdk.java.net/jdk/pull/1266