David Hildenbrand <da...@redhat.com> writes: > On 03.05.21 07:17, Thomas Huth wrote: >> On 03/05/2021 06.58, Markus Armbruster wrote: >>> Thomas Huth <th...@redhat.com> writes: >>> >>>> Clang unfortunately does not support generating code for the z900 >>>> architecture level and starts with the z10 instead. Thus to be able >>>> to support compiling with Clang, we have to check for the supported >>>> compiler flags. The disadvantage is of course that the bios image >>>> will only run with z10 guest CPUs upwards (which is what most people >>>> use anyway), so just in case let's also emit a warning in that case. >>> >>> What happens when you try to use this bios with an old CPU anyway? >> >> Interesting question. I was expecting the guest to crash since it would be >> using a CPU instruction that is not supported on the old CPU model. But I >> just gave it a try, and there was no crash. The guest booted just fine. >> Either Clang only emits instructions that work with the old z900 anyway, or >> our emulation in QEMU is imprecise and we allow newer instructions to be >> executed on old models, too. > > Yes, that's currently still done. We once thought about disabling that > (there was a patch from Richard), but decided against it because -- back > then -- the default QEMU model was still very basic and would have > essentially disabled all more recent instructions as default. > > We can most probably do that change soon as we have a "fairly new" > default QEMU CPU model. I can glue it to my z14 change.
In case this makes the BIOS crash with old CPUs: when a guest refuses to start because the BIOS was compiled the wrong way for it, configure having told you so back then is not a nice user experience. Can we do better, with reasonable effort?