On Wed, 25 Nov 2020 12:09:07 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 incrementally with one additional > commit since the last revision: > > Pass in thread instead of rematerializing it. src/hotspot/cpu/x86/universalNativeInvoker_x86.cpp line 33: > 31: > 32: void ProgrammableInvoker::Generator::generate() { > 33: #ifdef _LP64 Instead of introducing ifdefs, I'd prefer to see `universalNativeInvoker_x86.cpp` split into `universalNativeInvoker_x86_64.cpp` (current code) and `universalNativeInvoker_x86_32.cpp` (populated with dummy impelmentations). ------------- PR: https://git.openjdk.java.net/jdk/pull/1266