forked from OSchip/llvm-project
Driver/Darwin: Tweak link logic for simulator.
llvm-svn: 128641
This commit is contained in:
parent
22c5560bc8
commit
ebc34dff18
|
@ -103,6 +103,16 @@ public:
|
||||||
return TargetIsIPhoneOS;
|
return TargetIsIPhoneOS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool isTargetIOSSimulator() const {
|
||||||
|
// In GCC, the simulator historically was treated as being OS X in some
|
||||||
|
// contexts, like determining the link logic, despite generally being called
|
||||||
|
// with an iOS deployment target. For compatibility, we detect the
|
||||||
|
// simulator is iOS + x86, and treat it differently in a few contexts.
|
||||||
|
return isTargetIPhoneOS() &&
|
||||||
|
(getTriple().getArch() == llvm::Triple::x86 ||
|
||||||
|
getTriple().getArch() == llvm::Triple::x86_64);
|
||||||
|
}
|
||||||
|
|
||||||
bool isTargetInitialized() const { return TargetInitialized; }
|
bool isTargetInitialized() const { return TargetInitialized; }
|
||||||
|
|
||||||
void getTargetVersion(unsigned (&Res)[3]) const {
|
void getTargetVersion(unsigned (&Res)[3]) const {
|
||||||
|
|
|
@ -2885,7 +2885,10 @@ void darwin::Link::ConstructJob(Compilation &C, const JobAction &JA,
|
||||||
CmdArgs.push_back("-lcrt0.o");
|
CmdArgs.push_back("-lcrt0.o");
|
||||||
} else {
|
} else {
|
||||||
// Derived from darwin_crt1 spec.
|
// Derived from darwin_crt1 spec.
|
||||||
if (getDarwinToolChain().isTargetIPhoneOS()) {
|
if (getDarwinToolChain().isTargetIOSSimulator()) {
|
||||||
|
// The simulator doesn't have a versioned crt1 file.
|
||||||
|
CmdArgs.push_back("-lcrt1.o");
|
||||||
|
} else if (getDarwinToolChain().isTargetIPhoneOS()) {
|
||||||
if (getDarwinToolChain().isIPhoneOSVersionLT(3, 1))
|
if (getDarwinToolChain().isIPhoneOSVersionLT(3, 1))
|
||||||
CmdArgs.push_back("-lcrt1.o");
|
CmdArgs.push_back("-lcrt1.o");
|
||||||
else
|
else
|
||||||
|
|
Loading…
Reference in New Issue