On Tue, May 31, 2016, at 18:25, Aurelien Jarno wrote: > > That's indeed the right way to do it (and to fix the issue), but the > point is that developers using GCC defaulting to z10 or higher don't > realize they can't use the corresponding instructions, so that has to > be fixed later. Latest example is openssl. >
Hmm. I see two possibilities here. (1) The source code package uses a GCC option that specifies that the compiled object code is to run on a z10 processor. The fix here is rather simple and straightforward: change the GCC option to specify a z800/z900, then re-build the package. The compiler will now generate object code that is compatible with all z/Architecture processors. (2) The so-called "C" source code bails out to assembly language in places, and some instructions are used which aren't supported on a z800/z900. (I've mainly seen this in s390-specific kernel modules.) In this case, the fix is more involved. You have to find the offending code, insert a facility check to make sure the instruction is supported first, then decide how to handle the case where it isn't. This is much more labor intensive. Which case are you talking about? (I must confess that I haven't looked at the source code for openssl.) -- .''`. Stephen Powell <[email protected]> : :' : `. `'` `-

