From: Bob Wilson Date: Tue, 21 Jan 2014 00:17:10 +0000 (+0000) Subject: Stop linking with crt1.o etc. for the iOS simulator. X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=e6d04f3d152a22077022cf9287d4c538a0918ab0;p=clang 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. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@199696 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Driver/ToolChains.cpp b/lib/Driver/ToolChains.cpp index e364fa7ba3..727cfbaa9b 100644 --- a/lib/Driver/ToolChains.cpp +++ b/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/test/Driver/darwin-ld.c b/test/Driver/darwin-ld.c index 1675fe6bb8..25b28d6e7d 100644 --- a/test/Driver/darwin-ld.c +++ b/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 //