From 74b6cd15edf784acb9c18612866f9f6873a9b534 Mon Sep 17 00:00:00 2001 From: Bob Wilson Date: Tue, 21 Jan 2014 00:17:10 +0000 Subject: [PATCH] Stop linking with crt1.o etc. for the iOS simulator. Recent versions of the iOS simulator no longer require linking with the crt1.o, dylib1.o, or bundle1.o files. The relevant code is now included in libSystem for the simulator. llvm-svn: 199696 --- clang/lib/Driver/ToolChains.cpp | 9 +++------ clang/test/Driver/darwin-ld.c | 16 ++++++++++++++++ 2 files changed, 19 insertions(+), 6 deletions(-) diff --git a/clang/lib/Driver/ToolChains.cpp b/clang/lib/Driver/ToolChains.cpp index e364fa7ba31c..727cfbaa9ba4 100644 --- a/clang/lib/Driver/ToolChains.cpp +++ b/clang/lib/Driver/ToolChains.cpp @@ -1007,8 +1007,7 @@ void Darwin::addStartObjectFileArgs(const llvm::opt::ArgList &Args, if (Args.hasArg(options::OPT_dynamiclib)) { // Derived from darwin_dylib1 spec. if (isTargetIOSSimulator()) { - // The simulator doesn't have a versioned crt1 file. - CmdArgs.push_back("-ldylib1.o"); + ; // iOS simulator does not need dylib1.o. } else if (isTargetIPhoneOS()) { if (isIPhoneOSVersionLT(3, 1)) CmdArgs.push_back("-ldylib1.o"); @@ -1023,8 +1022,7 @@ void Darwin::addStartObjectFileArgs(const llvm::opt::ArgList &Args, if (!Args.hasArg(options::OPT_static)) { // Derived from darwin_bundle1 spec. if (isTargetIOSSimulator()) { - // The simulator doesn't have a versioned crt1 file. - CmdArgs.push_back("-lbundle1.o"); + ; // iOS simulator does not need bundle1.o. } else if (isTargetIPhoneOS()) { if (isIPhoneOSVersionLT(3, 1)) CmdArgs.push_back("-lbundle1.o"); @@ -1059,8 +1057,7 @@ void Darwin::addStartObjectFileArgs(const llvm::opt::ArgList &Args, } else { // Derived from darwin_crt1 spec. if (isTargetIOSSimulator()) { - // The simulator doesn't have a versioned crt1 file. - CmdArgs.push_back("-lcrt1.o"); + ; // iOS simulator does not need crt1.o. } else if (isTargetIPhoneOS()) { if (isIPhoneOSVersionLT(3, 1)) CmdArgs.push_back("-lcrt1.o"); diff --git a/clang/test/Driver/darwin-ld.c b/clang/test/Driver/darwin-ld.c index 1675fe6bb88a..25b28d6e7db4 100644 --- a/clang/test/Driver/darwin-ld.c +++ b/clang/test/Driver/darwin-ld.c @@ -45,6 +45,22 @@ // LINK_IPHONE_3_1-NOT: -lbundle1.o // LINK_IPHONE_3_1: -lSystem +// RUN: %clang -target i386-apple-darwin9 -### -arch i386 -mios-simulator-version-min=3.0 %t.o 2> %t.log +// RUN: %clang -target i386-apple-darwin9 -### -arch i386 -mios-simulator-version-min=3.0 -dynamiclib %t.o 2>> %t.log +// RUN: %clang -target i386-apple-darwin9 -### -arch i386 -mios-simulator-version-min=3.0 -bundle %t.o 2>> %t.log +// RUN: FileCheck -check-prefix=LINK_IOSSIM_3_0 %s < %t.log + +// LINK_IOSSIM_3_0: {{ld(.exe)?"}} +// LINK_IOSSIM_3_0-NOT: -lcrt1.o +// LINK_IOSSIM_3_0: -lSystem +// LINK_IOSSIM_3_0: {{ld(.exe)?"}} +// LINK_IOSSIM_3_0: -dylib +// LINK_IOSSIM_3_0-NOT: -ldylib1.o +// LINK_IOSSIM_3_0: -lSystem +// LINK_IOSSIM_3_0: {{ld(.exe)?"}} +// LINK_IOSSIM_3_0-NOT: -lbundle1.o +// LINK_IOSSIM_3_0: -lSystem + // RUN: %clang -target i386-apple-darwin9 -### -fpie %t.o 2> %t.log // RUN: FileCheck -check-prefix=LINK_EXPLICIT_PIE %s < %t.log //