aboutsummaryrefslogtreecommitdiff
path: root/contrib/llvm
diff options
context:
space:
mode:
authorDimitry Andric <dim@FreeBSD.org>2019-09-08 10:31:34 +0000
committerDimitry Andric <dim@FreeBSD.org>2019-09-08 10:31:34 +0000
commitc0e18e70bd7f8ae803e3f522273ce93a4d4c6243 (patch)
tree2b32d404fbe72fad1eb04728defee4a468e04034 /contrib/llvm
parent022d92870fa6a0c9a34b6ef95a2df269833582ab (diff)
Target i586 by default on the i386 architecture, since after upstream's
change https://reviews.llvm.org/rL356631 ("[X86] Add CMPXCHG8B feature flag. Set it for all CPUs except i386/i486 including 'generic'. Disable use of CMPXCHG8B when this flag isn't set"), clang now correctly emits calls to __atomic_load_8, __atomic_store_8, etc. when targeting i486, and this means we can no longer link most modern programs, because we do not have a libatomic, nor support for atomic functions in libc. See also PR 230888, 220822, 233725, 234976, and more probably duplicates. Note that in practice, clang has been incorrectly generating cmpxchg8b instructions for years now, when targeting i486. So de facto nothing really changes by doing this.
Notes
Notes: svn path=/projects/clang900-import/; revision=352030
Diffstat (limited to 'contrib/llvm')
-rw-r--r--contrib/llvm/tools/clang/lib/Driver/ToolChains/Arch/X86.cpp4
1 files changed, 2 insertions, 2 deletions
diff --git a/contrib/llvm/tools/clang/lib/Driver/ToolChains/Arch/X86.cpp b/contrib/llvm/tools/clang/lib/Driver/ToolChains/Arch/X86.cpp
index 34be226b69e9..9a5c0aa28c7f 100644
--- a/contrib/llvm/tools/clang/lib/Driver/ToolChains/Arch/X86.cpp
+++ b/contrib/llvm/tools/clang/lib/Driver/ToolChains/Arch/X86.cpp
@@ -93,10 +93,10 @@ const char *x86::getX86TargetCPU(const ArgList &Args,
return "x86-64";
switch (Triple.getOS()) {
- case llvm::Triple::FreeBSD:
case llvm::Triple::NetBSD:
case llvm::Triple::OpenBSD:
- return "i486";
+ return "i486";
+ case llvm::Triple::FreeBSD:
case llvm::Triple::Haiku:
return "i586";
default: