GCC Lands s390 Compiler-Side Changes For Spectre V2

Written by Michael Larabel in Hardware on 11 February 2018 at 07:17 AM EST. 2 Comments
HARDWARE
Landing a few days ago for the Linux 4.16 kernel merge window was IBM z / s390 mitigation work for Spectre while now the necessary compiler-side changes are also present for the upcoming GCC 8 stable release.

Landing this week in the GNU Compiler Collection (GCC) code-base was the s390 architecture specific code for disabling prediction of indirect branches as part of its Spectre Variant Two work on IBM Z.

As mentioned in the s390 kernel article, the s390 approach due to its architecture is making use of the execute instruction rather than a return instruction, dubbing the mitigation technique "Expoline" rather than "Retpoline" for AMD/Intel hardware.

The new s390 compiler switches are formatted similarly to the x86 switches:
-mindirect-branch-jump=(keep|thunk|thunk-extern|thunk-inline)
-mindirect-branch-call=(keep|thunk|thunk-extern)
-mfunction-return-reg=(keep|thunk|thunk-extern)
-mfunction-return-mem=(keep|thunk|thunk-extern)

More details via this commit.
Related News
About The Author
Michael Larabel

Michael Larabel is the principal author of Phoronix.com and founded the site in 2004 with a focus on enriching the Linux hardware experience. Michael has written more than 20,000 articles covering the state of Linux hardware support, Linux performance, graphics drivers, and other topics. Michael is also the lead developer of the Phoronix Test Suite, Phoromatic, and OpenBenchmarking.org automated benchmarking software. He can be followed via Twitter, LinkedIn, or contacted via MichaelLarabel.com.

Popular News This Week