diff options
| author | 2018-12-30 23:08:05 +0000 | |
|---|---|---|
| committer | 2018-12-30 23:08:05 +0000 | |
| commit | a707410c70e78ea0b53be99070850cd7235cbe9e (patch) | |
| tree | 64d7585fef652d0ebe991a954c51ff239e006074 /gnu/llvm/lib/Target/X86/X86Subtarget.cpp | |
| parent | Define SOLIB when assembling for a shared-object library (diff) | |
| download | wireguard-openbsd-a707410c70e78ea0b53be99070850cd7235cbe9e.tar.xz wireguard-openbsd-a707410c70e78ea0b53be99070850cd7235cbe9e.zip | |
Turn on -mretpoline by default in clang on amd64, but turn it off
explicitly in SMALL_KERNEL kernel builds.
tweaks from jsg@ and tb@
ok deraadt@ kettenis@
Diffstat (limited to 'gnu/llvm/lib/Target/X86/X86Subtarget.cpp')
| -rw-r--r-- | gnu/llvm/lib/Target/X86/X86Subtarget.cpp | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/gnu/llvm/lib/Target/X86/X86Subtarget.cpp b/gnu/llvm/lib/Target/X86/X86Subtarget.cpp index dca98d999e5..195576bf546 100644 --- a/gnu/llvm/lib/Target/X86/X86Subtarget.cpp +++ b/gnu/llvm/lib/Target/X86/X86Subtarget.cpp @@ -207,6 +207,14 @@ void X86Subtarget::initSubtargetFeatures(StringRef CPU, StringRef FS) { FullFS = "+sahf"; } + // OpenBSD/amd64 defaults to -mretpoline + if (isTargetOpenBSD() && In64BitMode) { + if (!FullFS.empty()) + FullFS = "+retpoline," + FullFS; + else + FullFS = "+retpoline"; + } + // Parse features string and set the CPU. ParseSubtargetFeatures(CPUName, FullFS); |
