On 24.11.2017 12:19, Alex Kashchenko wrote: > Unfortunately, I just found that OpenJDK's JIT requires newer > instruction set than z900: > > $ ./s390x-linux-user/qemu-s390x > ~/jdk9/build/linux-s390x-normal-server-release/images/jdk/bin/java -version > # > # A fatal error has been detected by the Java Runtime Environment: > # > # Internal Error (vm_version_s390.hpp:367), pid=26037, tid=26039 > # guarantee((_features[0] & GnrlInstrExtFacilityMask) == > GnrlInstrExtFacilityMask) failed: We no more support older than z10.
That looks like it is missing the so-called "general instruction extension facility". You might be lucky - that's one of the extensions that can already be enabled for testing purposes with the "qemu" CPU: Try to start QEMU with the "-cpu qemu,ginste=true" parameter. If it then still complains about missing facilities, try "-cpu help" to list all recognized feature flags. The following features can already be enabled with the "qemu" CPU (list has been copy-n-pasted from the sources, but I hope you'll be able to map it to the output of "-cpu help", too): S390_FEAT_DAT_ENH, S390_FEAT_IDTE_SEGMENT, S390_FEAT_STFLE, S390_FEAT_EXTENDED_IMMEDIATE, S390_FEAT_EXTENDED_TRANSLATION_2, S390_FEAT_EXTENDED_TRANSLATION_3, S390_FEAT_LONG_DISPLACEMENT, S390_FEAT_LONG_DISPLACEMENT_FAST, S390_FEAT_ETF2_ENH, S390_FEAT_STORE_CLOCK_FAST, S390_FEAT_MOVE_WITH_OPTIONAL_SPEC, S390_FEAT_ETF3_ENH, S390_FEAT_COMPARE_AND_SWAP_AND_STORE, S390_FEAT_COMPARE_AND_SWAP_AND_STORE_2, S390_FEAT_GENERAL_INSTRUCTIONS_EXT, S390_FEAT_EXECUTE_EXT, S390_FEAT_FLOATING_POINT_SUPPPORT_ENH, S390_FEAT_STFLE_45, S390_FEAT_STFLE_49, S390_FEAT_LOCAL_TLB_CLEARING, S390_FEAT_STFLE_53, HTH, Thomas