It's sort of an hack, but we have no choice.
The linker in the base system doesn't handle that correctly (yet).
Once FreeBSD will import lld, this can be backed out.
Patch by: Andrew Turner!
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@256641
91177308-0d34-0410-b5e6-
96231b3b80d8
if (Args.hasArg(options::OPT_ffixed_r9))
Features.push_back("+reserve-r9");
- // The kext linker doesn't know how to deal with movw/movt.
- if (KernelOrKext)
+ // The kext and FreeBSD linkers don't know how to deal with movw/movt.
+ if (KernelOrKext || Triple.isOSFreeBSD())
Features.push_back("+no-movt");
}
// RUN: %clang -target armv7-apple-darwin -mkernel -### %s 2>&1 \
// RUN: | FileCheck %s -check-prefix CHECK-KERNEL
+// RUN: %clang -target armv7-gnueabi-freebsd11 -### %s 2>&1 \
+// RUN: | FileCheck %s -check-prefix CHECK-FREEBSD
+
// CHECK-DEFAULT-NOT: "-target-feature" "+no-movt"
// CHECK-KERNEL: "-target-feature" "+no-movt"
+
+// CHECK-FREEBSD: "-target-feature" "+no-movt"