aboutsummaryrefslogtreecommitdiff
path: root/lib/Driver/Tools.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'lib/Driver/Tools.cpp')
-rw-r--r--lib/Driver/Tools.cpp44
1 files changed, 18 insertions, 26 deletions
diff --git a/lib/Driver/Tools.cpp b/lib/Driver/Tools.cpp
index ca7baef76d..f1535d8dc4 100644
--- a/lib/Driver/Tools.cpp
+++ b/lib/Driver/Tools.cpp
@@ -1644,20 +1644,6 @@ static bool isSourceSuffix(const char *Str) {
}
}
-static bool isMacosxVersionLT(unsigned (&A)[3], unsigned (&B)[3]) {
- for (unsigned i=0; i < 3; ++i) {
- if (A[i] > B[i]) return false;
- if (A[i] < B[i]) return true;
- }
- return false;
-}
-
-static bool isMacosxVersionLT(unsigned (&A)[3],
- unsigned V0, unsigned V1=0, unsigned V2=0) {
- unsigned B[3] = { V0, V1, V2 };
- return isMacosxVersionLT(A, B);
-}
-
// FIXME: Can we tablegen this?
static const char *GetArmArchForMArch(llvm::StringRef Value) {
if (Value == "armv6k")
@@ -1928,6 +1914,7 @@ void darwin::Link::ConstructJob(Compilation &C, const JobAction &JA,
CmdArgs.push_back("-o");
CmdArgs.push_back(Output.getFilename());
+
unsigned MacosxVersionMin[3];
getDarwinToolChain().getMacosxVersionMin(Args, MacosxVersionMin);
@@ -1937,15 +1924,15 @@ void darwin::Link::ConstructJob(Compilation &C, const JobAction &JA,
// Derived from startfile spec.
if (Args.hasArg(options::OPT_dynamiclib)) {
// Derived from darwin_dylib1 spec.
- if (isMacosxVersionLT(MacosxVersionMin, 10, 5))
+ if (getDarwinToolChain().isMacosxVersionLT(MacosxVersionMin, 10, 5))
CmdArgs.push_back("-ldylib1.o");
- else if (isMacosxVersionLT(MacosxVersionMin, 10, 6))
+ else if (getDarwinToolChain().isMacosxVersionLT(MacosxVersionMin, 10, 6))
CmdArgs.push_back("-ldylib1.10.5.o");
} else {
if (Args.hasArg(options::OPT_bundle)) {
if (!Args.hasArg(options::OPT_static)) {
// Derived from darwin_bundle1 spec.
- if (isMacosxVersionLT(MacosxVersionMin, 10, 6))
+ if (getDarwinToolChain().isMacosxVersionLT(MacosxVersionMin, 10, 6))
CmdArgs.push_back("-lbundle1.o");
}
} else {
@@ -1968,9 +1955,11 @@ void darwin::Link::ConstructJob(Compilation &C, const JobAction &JA,
// Derived from darwin_crt1 spec.
if (getDarwinToolChain().isIPhone()) {
CmdArgs.push_back("-lcrt1.o");
- } else if (isMacosxVersionLT(MacosxVersionMin, 10, 5))
+ } else if (getDarwinToolChain().isMacosxVersionLT(MacosxVersionMin,
+ 10, 5))
CmdArgs.push_back("-lcrt1.o");
- else if (isMacosxVersionLT(MacosxVersionMin, 10, 6))
+ else if (getDarwinToolChain().isMacosxVersionLT(MacosxVersionMin,
+ 10, 6))
CmdArgs.push_back("-lcrt1.10.5.o");
else
CmdArgs.push_back("-lcrt1.10.6.o");
@@ -1983,7 +1972,7 @@ void darwin::Link::ConstructJob(Compilation &C, const JobAction &JA,
if (Args.hasArg(options::OPT_shared_libgcc) &&
!Args.hasArg(options::OPT_miphoneos_version_min_EQ) &&
- isMacosxVersionLT(MacosxVersionMin, 10, 5)) {
+ getDarwinToolChain().isMacosxVersionLT(MacosxVersionMin, 10, 5)) {
const char *Str =
Args.MakeArgString(getToolChain().GetFilePath(C, "crt3.o"));
CmdArgs.push_back(Str);
@@ -2049,21 +2038,24 @@ void darwin::Link::ConstructJob(Compilation &C, const JobAction &JA,
Args.hasArg(options::OPT_fexceptions) ||
Args.hasArg(options::OPT_fgnu_runtime)) {
// FIXME: This is probably broken on 10.3?
- if (isMacosxVersionLT(MacosxVersionMin, 10, 5))
+ if (getDarwinToolChain().isMacosxVersionLT(MacosxVersionMin, 10, 5))
CmdArgs.push_back("-lgcc_s.10.4");
- else if (isMacosxVersionLT(MacosxVersionMin, 10, 6))
+ else if (getDarwinToolChain().isMacosxVersionLT(MacosxVersionMin,
+ 10, 6))
CmdArgs.push_back("-lgcc_s.10.5");
} else {
- if (isMacosxVersionLT(MacosxVersionMin, 10, 3, 9))
+ if (getDarwinToolChain().isMacosxVersionLT(MacosxVersionMin, 10, 3, 9))
; // Do nothing.
- else if (isMacosxVersionLT(MacosxVersionMin, 10, 5))
+ else if (getDarwinToolChain().isMacosxVersionLT(MacosxVersionMin,
+ 10, 5))
CmdArgs.push_back("-lgcc_s.10.4");
- else if (isMacosxVersionLT(MacosxVersionMin, 10, 6))
+ else if (getDarwinToolChain().isMacosxVersionLT(MacosxVersionMin,
+ 10, 6))
CmdArgs.push_back("-lgcc_s.10.5");
}
if (getDarwinToolChain().isIPhone() ||
- isMacosxVersionLT(MacosxVersionMin, 10, 6)) {
+ getDarwinToolChain().isMacosxVersionLT(MacosxVersionMin, 10, 6)) {
CmdArgs.push_back("-lgcc");
CmdArgs.push_back("-lSystem");
} else {