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 | |
| 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')
| -rw-r--r-- | gnu/llvm/lib/Target/X86/X86Subtarget.cpp | 8 | ||||
| -rw-r--r-- | gnu/llvm/lib/Target/X86/X86Subtarget.h | 1 |
2 files changed, 9 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); diff --git a/gnu/llvm/lib/Target/X86/X86Subtarget.h b/gnu/llvm/lib/Target/X86/X86Subtarget.h index 37ffac1faf6..e6b486cdbeb 100644 --- a/gnu/llvm/lib/Target/X86/X86Subtarget.h +++ b/gnu/llvm/lib/Target/X86/X86Subtarget.h @@ -603,6 +603,7 @@ public: bool isTargetDarwin() const { return TargetTriple.isOSDarwin(); } bool isTargetFreeBSD() const { return TargetTriple.isOSFreeBSD(); } + bool isTargetOpenBSD() const { return TargetTriple.isOSOpenBSD(); } bool isTargetDragonFly() const { return TargetTriple.isOSDragonFly(); } bool isTargetSolaris() const { return TargetTriple.isOSSolaris(); } bool isTargetPS4() const { return TargetTriple.isPS4CPU(); } |
