[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Upgrading the minimum required s390x CPU to z10?



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.

On various arches we do detect on which CPU we're running, not
sure we already do that, or need to, on s390x.


Kurt


Reply to: