On Wed, Jun 01, 2016 at 05:51:56AM +0200, Kurt Roeckx wrote: > On Tue, May 31, 2016 at 07:23:00PM -0400, Stephen Powell wrote: > > 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.) > > OpenSSL has a lot of hand written assembler. It's actually the > linker that complained about it.
That should obviously be the assembler, not linker. Kurt

