1*67e74705SXin Li // Check that ld gets arch_multiple. 2*67e74705SXin Li 3*67e74705SXin Li // RUN: %clang -target i386-apple-darwin9 -arch i386 -arch x86_64 %s -### -o foo 2> %t.log 4*67e74705SXin Li // RUN: grep '".*ld.*" .*"-arch_multiple" "-final_output" "foo"' %t.log 5*67e74705SXin Li 6*67e74705SXin Li // Make sure we run dsymutil on source input files. 7*67e74705SXin Li // RUN: %clang -target i386-apple-darwin9 -### -g %s -o BAR 2> %t.log 8*67e74705SXin Li // RUN: grep '".*dsymutil" "-o" "BAR.dSYM" "BAR"' %t.log 9*67e74705SXin Li // RUN: %clang -target i386-apple-darwin9 -### -g -filelist FOO %s -o BAR 2> %t.log 10*67e74705SXin Li // RUN: grep '".*dsymutil" "-o" "BAR.dSYM" "BAR"' %t.log 11*67e74705SXin Li 12*67e74705SXin Li // Check linker changes that came with new linkedit format. 13*67e74705SXin Li // RUN: touch %t.o 14*67e74705SXin Li // RUN: %clang -target i386-apple-darwin9 -### -arch armv6 -miphoneos-version-min=3.0 %t.o 2> %t.log 15*67e74705SXin Li // RUN: %clang -target i386-apple-darwin9 -### -arch armv6 -miphoneos-version-min=3.0 -dynamiclib %t.o 2>> %t.log 16*67e74705SXin Li // RUN: %clang -target i386-apple-darwin9 -### -arch armv6 -miphoneos-version-min=3.0 -bundle %t.o 2>> %t.log 17*67e74705SXin Li // RUN: FileCheck -check-prefix=LINK_IPHONE_3_0 %s < %t.log 18*67e74705SXin Li 19*67e74705SXin Li // LINK_IPHONE_3_0: {{ld(.exe)?"}} 20*67e74705SXin Li // LINK_IPHONE_3_0: -iphoneos_version_min 21*67e74705SXin Li // LINK_IPHONE_3_0: 3.0.0 22*67e74705SXin Li // LINK_IPHONE_3_0-NOT: -lcrt1.3.1.o 23*67e74705SXin Li // LINK_IPHONE_3_0: -lcrt1.o 24*67e74705SXin Li // LINK_IPHONE_3_0: -lSystem 25*67e74705SXin Li // LINK_IPHONE_3_0: {{ld(.exe)?"}} 26*67e74705SXin Li // LINK_IPHONE_3_0: -dylib 27*67e74705SXin Li // LINK_IPHONE_3_0: -ldylib1.o 28*67e74705SXin Li // LINK_IPHONE_3_0: -lSystem 29*67e74705SXin Li // LINK_IPHONE_3_0: {{ld(.exe)?"}} 30*67e74705SXin Li // LINK_IPHONE_3_0: -lbundle1.o 31*67e74705SXin Li // LINK_IPHONE_3_0: -lSystem 32*67e74705SXin Li 33*67e74705SXin Li // RUN: %clang -target i386-apple-darwin9 -### -arch armv7 -miphoneos-version-min=3.1 %t.o 2> %t.log 34*67e74705SXin Li // RUN: %clang -target i386-apple-darwin9 -### -arch armv7 -miphoneos-version-min=3.1 -dynamiclib %t.o 2>> %t.log 35*67e74705SXin Li // RUN: %clang -target i386-apple-darwin9 -### -arch armv7 -miphoneos-version-min=3.1 -bundle %t.o 2>> %t.log 36*67e74705SXin Li // RUN: FileCheck -check-prefix=LINK_IPHONE_3_1 %s < %t.log 37*67e74705SXin Li 38*67e74705SXin Li // LINK_IPHONE_3_1: {{ld(.exe)?"}} 39*67e74705SXin Li // LINK_IPHONE_3_1: -iphoneos_version_min 40*67e74705SXin Li // LINK_IPHONE_3_1: 3.1.0 41*67e74705SXin Li // LINK_IPHONE_3_1-NOT: -lcrt1.o 42*67e74705SXin Li // LINK_IPHONE_3_1: -lcrt1.3.1.o 43*67e74705SXin Li // LINK_IPHONE_3_1: -lSystem 44*67e74705SXin Li // LINK_IPHONE_3_1: {{ld(.exe)?"}} 45*67e74705SXin Li // LINK_IPHONE_3_1: -dylib 46*67e74705SXin Li // LINK_IPHONE_3_1-NOT: -ldylib1.o 47*67e74705SXin Li // LINK_IPHONE_3_1: -lSystem 48*67e74705SXin Li // LINK_IPHONE_3_1: {{ld(.exe)?"}} 49*67e74705SXin Li // LINK_IPHONE_3_1-NOT: -lbundle1.o 50*67e74705SXin Li // LINK_IPHONE_3_1: -lSystem 51*67e74705SXin Li 52*67e74705SXin Li // RUN: %clang -target i386-apple-darwin9 -### -arch i386 -mios-simulator-version-min=3.0 %t.o 2> %t.log 53*67e74705SXin Li // RUN: %clang -target i386-apple-darwin9 -### -arch i386 -mios-simulator-version-min=3.0 -dynamiclib %t.o 2>> %t.log 54*67e74705SXin Li // RUN: %clang -target i386-apple-darwin9 -### -arch i386 -mios-simulator-version-min=3.0 -bundle %t.o 2>> %t.log 55*67e74705SXin Li // RUN: FileCheck -check-prefix=LINK_IOSSIM_3_0 %s < %t.log 56*67e74705SXin Li 57*67e74705SXin Li // LINK_IOSSIM_3_0: {{ld(.exe)?"}} 58*67e74705SXin Li // LINK_IOSSIM_3_0: -ios_simulator_version_min 59*67e74705SXin Li // LINK_IOSSIM_3_0: 3.0.0 60*67e74705SXin Li // LINK_IOSSIM_3_0-NOT: -lcrt1.o 61*67e74705SXin Li // LINK_IOSSIM_3_0: -lSystem 62*67e74705SXin Li // LINK_IOSSIM_3_0: {{ld(.exe)?"}} 63*67e74705SXin Li // LINK_IOSSIM_3_0: -dylib 64*67e74705SXin Li // LINK_IOSSIM_3_0-NOT: -ldylib1.o 65*67e74705SXin Li // LINK_IOSSIM_3_0: -lSystem 66*67e74705SXin Li // LINK_IOSSIM_3_0: {{ld(.exe)?"}} 67*67e74705SXin Li // LINK_IOSSIM_3_0-NOT: -lbundle1.o 68*67e74705SXin Li // LINK_IOSSIM_3_0: -lSystem 69*67e74705SXin Li 70*67e74705SXin Li // RUN: %clang -target i386-apple-darwin9 -### -fpie %t.o 2> %t.log 71*67e74705SXin Li // RUN: FileCheck -check-prefix=LINK_EXPLICIT_PIE %s < %t.log 72*67e74705SXin Li // 73*67e74705SXin Li // LINK_EXPLICIT_PIE: {{ld(.exe)?"}} 74*67e74705SXin Li // LINK_EXPLICIT_PIE: "-pie" 75*67e74705SXin Li 76*67e74705SXin Li // RUN: %clang -target i386-apple-darwin9 -### -fno-pie %t.o 2> %t.log 77*67e74705SXin Li // RUN: FileCheck -check-prefix=LINK_EXPLICIT_NO_PIE %s < %t.log 78*67e74705SXin Li // 79*67e74705SXin Li // LINK_EXPLICIT_NO_PIE: {{ld(.exe)?"}} 80*67e74705SXin Li // LINK_EXPLICIT_NO_PIE: "-no_pie" 81*67e74705SXin Li 82*67e74705SXin Li // RUN: %clang -target x86_64-apple-darwin10 -### %t.o \ 83*67e74705SXin Li // RUN: -mlinker-version=100 2> %t.log 84*67e74705SXin Li // RUN: FileCheck -check-prefix=LINK_NEWER_DEMANGLE %s < %t.log 85*67e74705SXin Li // 86*67e74705SXin Li // LINK_NEWER_DEMANGLE: {{ld(.exe)?"}} 87*67e74705SXin Li // LINK_NEWER_DEMANGLE: "-demangle" 88*67e74705SXin Li 89*67e74705SXin Li // RUN: %clang -target x86_64-apple-darwin10 -### %t.o \ 90*67e74705SXin Li // RUN: -mlinker-version=100 -Wl,--no-demangle 2> %t.log 91*67e74705SXin Li // RUN: FileCheck -check-prefix=LINK_NEWER_NODEMANGLE %s < %t.log 92*67e74705SXin Li // 93*67e74705SXin Li // LINK_NEWER_NODEMANGLE: {{ld(.exe)?"}} 94*67e74705SXin Li // LINK_NEWER_NODEMANGLE-NOT: "-demangle" 95*67e74705SXin Li // LINK_NEWER_NODEMANGLE: "-lSystem" 96*67e74705SXin Li 97*67e74705SXin Li // RUN: %clang -target x86_64-apple-darwin10 -### %t.o \ 98*67e74705SXin Li // RUN: -mlinker-version=95 2> %t.log 99*67e74705SXin Li // RUN: FileCheck -check-prefix=LINK_OLDER_NODEMANGLE %s < %t.log 100*67e74705SXin Li // 101*67e74705SXin Li // LINK_OLDER_NODEMANGLE: {{ld(.exe)?"}} 102*67e74705SXin Li // LINK_OLDER_NODEMANGLE-NOT: "-demangle" 103*67e74705SXin Li // LINK_OLDER_NODEMANGLE: "-lSystem" 104*67e74705SXin Li 105*67e74705SXin Li // RUN: %clang -target x86_64-apple-darwin10 -### %s \ 106*67e74705SXin Li // RUN: -mlinker-version=117 -flto 2> %t.log 107*67e74705SXin Li // RUN: cat %t.log 108*67e74705SXin Li // RUN: FileCheck -check-prefix=LINK_OBJECT_LTO_PATH %s < %t.log 109*67e74705SXin Li // 110*67e74705SXin Li // LINK_OBJECT_LTO_PATH: {{ld(.exe)?"}} 111*67e74705SXin Li // LINK_OBJECT_LTO_PATH: "-object_path_lto" 112*67e74705SXin Li 113*67e74705SXin Li // RUN: %clang -target x86_64-apple-darwin10 -### %t.o \ 114*67e74705SXin Li // RUN: -force_load a -force_load b 2> %t.log 115*67e74705SXin Li // RUN: cat %t.log 116*67e74705SXin Li // RUN: FileCheck -check-prefix=FORCE_LOAD %s < %t.log 117*67e74705SXin Li // 118*67e74705SXin Li // FORCE_LOAD: {{ld(.exe)?"}} 119*67e74705SXin Li // FORCE_LOAD: "-force_load" "a" "-force_load" "b" 120*67e74705SXin Li 121*67e74705SXin Li // RUN: %clang -target x86_64-apple-darwin10 -### %t.o \ 122*67e74705SXin Li // RUN: -lazy_framework Framework 2> %t.log 123*67e74705SXin Li // 124*67e74705SXin Li // RUN: FileCheck -check-prefix=LINK_LAZY_FRAMEWORK %s < %t.log 125*67e74705SXin Li // LINK_LAZY_FRAMEWORK: {{ld(.exe)?"}} 126*67e74705SXin Li // LINK_LAZY_FRAMEWORK: "-lazy_framework" "Framework" 127*67e74705SXin Li 128*67e74705SXin Li // RUN: %clang -target x86_64-apple-darwin10 -### %t.o \ 129*67e74705SXin Li // RUN: -lazy_library Library 2> %t.log 130*67e74705SXin Li // 131*67e74705SXin Li // RUN: FileCheck -check-prefix=LINK_LAZY_LIBRARY %s < %t.log 132*67e74705SXin Li // LINK_LAZY_LIBRARY: {{ld(.exe)?"}} 133*67e74705SXin Li // LINK_LAZY_LIBRARY: "-lazy_library" "Library" 134*67e74705SXin Li 135*67e74705SXin Li // RUN: %clang -target x86_64-apple-darwin10 -### %t.o 2> %t.log 136*67e74705SXin Li // RUN: %clang -target x86_64-apple-macosx10.7 -### %t.o 2>> %t.log 137*67e74705SXin Li // RUN: FileCheck -check-prefix=LINK_VERSION_MIN %s < %t.log 138*67e74705SXin Li // LINK_VERSION_MIN: {{ld(.exe)?"}} 139*67e74705SXin Li // LINK_VERSION_MIN: "-macosx_version_min" "10.6.0" 140*67e74705SXin Li // LINK_VERSION_MIN: {{ld(.exe)?"}} 141*67e74705SXin Li // LINK_VERSION_MIN: "-macosx_version_min" "10.7.0" 142*67e74705SXin Li 143*67e74705SXin Li // RUN: %clang -target x86_64-apple-darwin12 -### %t.o 2> %t.log 144*67e74705SXin Li // RUN: FileCheck -check-prefix=LINK_NO_CRT1 %s < %t.log 145*67e74705SXin Li // LINK_NO_CRT1-NOT: crt 146*67e74705SXin Li 147*67e74705SXin Li // RUN: %clang -target armv7-apple-ios6.0 -miphoneos-version-min=6.0 -### %t.o 2> %t.log 148*67e74705SXin Li // RUN: FileCheck -check-prefix=LINK_NO_IOS_CRT1 %s < %t.log 149*67e74705SXin Li // LINK_NO_IOS_CRT1-NOT: crt 150*67e74705SXin Li 151*67e74705SXin Li // RUN: %clang -target arm64-apple-ios5.0 -miphoneos-version-min=5.0 -### %t.o 2> %t.log 152*67e74705SXin Li // RUN: FileCheck -check-prefix=LINK_NO_IOS_ARM64_CRT1 %s < %t.log 153*67e74705SXin Li // LINK_NO_IOS_ARM64_CRT1-NOT: crt 154*67e74705SXin Li 155*67e74705SXin Li // RUN: %clang -target x86_64-apple-ios6.0 -miphoneos-version-min=6.0 -fprofile-instr-generate -### %t.o 2> %t.log 156*67e74705SXin Li // RUN: FileCheck -check-prefix=LINK_IOSSIM_PROFILE %s < %t.log 157*67e74705SXin Li // LINK_IOSSIM_PROFILE: {{ld(.exe)?"}} 158*67e74705SXin Li // LINK_IOSSIM_PROFILE: libclang_rt.profile_iossim.a 159*67e74705SXin Li 160*67e74705SXin Li // FIXME: Currently the builtin library is only added to the command line if it, 161*67e74705SXin Li // so we can't check for it here 162*67e74705SXin Li // FIXME_LINK_IOSSIM_PROFILE: libclang_rt.ios.a 163*67e74705SXin Li 164*67e74705SXin Li // RUN: %clang -target arm64-apple-tvos8.3 -mtvos-version-min=8.3 -### %t.o 2> %t.log 165*67e74705SXin Li // RUN: FileCheck -check-prefix=LINK_TVOS_ARM64 %s < %t.log 166*67e74705SXin Li // LINK_TVOS_ARM64: {{ld(.exe)?"}} 167*67e74705SXin Li // LINK_TVOS_ARM64: -tvos_version_min 168*67e74705SXin Li // LINK_TVOS_ARM64-NOT: crt 169*67e74705SXin Li // LINK_TVOS_ARM64-NOT: lgcc_s.1 170*67e74705SXin Li // FIXME: This library does not get built unless the tvOS SDK is 171*67e74705SXin Li // installed, and the driver will not try to link it if it does not exist. 172*67e74705SXin Li // This should be reenabled when the tvOS SDK becomes a standard part 173*67e74705SXin Li // of Xcode. 174*67e74705SXin Li // FIXME_LINK_TVOS_ARM64: libclang_rt.tvos.a 175*67e74705SXin Li 176*67e74705SXin Li // RUN: %clang -target arm64-apple-tvos8.3 -mtvos-version-min=8.3 -fprofile-instr-generate -### %t.o 2> %t.log 177*67e74705SXin Li // RUN: FileCheck -check-prefix=LINK_TVOS_PROFILE %s < %t.log 178*67e74705SXin Li // LINK_TVOS_PROFILE: {{ld(.exe)?"}} 179*67e74705SXin Li // FIXME: These libraries do not get built unless the tvOS SDK is 180*67e74705SXin Li // installed, and the driver will not try to link them if they do not exist. 181*67e74705SXin Li // This should be reenabled when the tvOS SDK becomes a standard part 182*67e74705SXin Li // of Xcode. 183*67e74705SXin Li // FIXME_LINK_TVOS_PROFILE: libclang_rt.profile_tvos.a 184*67e74705SXin Li // FIXME_LINK_TVOS_PROFILE: libclang_rt.tvos.a 185*67e74705SXin Li 186*67e74705SXin Li // RUN: %clang -target arm64-apple-tvos8.3 -mtvos-version-min=8.3 -### %t.o -lcc_kext 2> %t.log 187*67e74705SXin Li // RUN: FileCheck -check-prefix=LINK_TVOS_KEXT %s < %t.log 188*67e74705SXin Li // LINK_TVOS_KEXT: {{ld(.exe)?"}} 189*67e74705SXin Li // FIXME: These libraries do not get built unless the tvOS SDK is 190*67e74705SXin Li // installed, and the driver will not try to link them if they do not exist. 191*67e74705SXin Li // This should be reenabled when the tvOS SDK becomes a standard part 192*67e74705SXin Li // of Xcode. 193*67e74705SXin Li // FIXME_LINK_TVOS_KEXT: libclang_rt.cc_kext_tvos.a 194*67e74705SXin Li // FIXME_LINK_TVOS_KEXT: libclang_rt.tvos.a 195*67e74705SXin Li 196*67e74705SXin Li // RUN: %clang -target armv7k-apple-watchos2.0 -mwatchos-version-min=2.0 -### %t.o 2> %t.log 197*67e74705SXin Li // RUN: FileCheck -check-prefix=LINK_WATCHOS_ARM %s < %t.log 198*67e74705SXin Li // LINK_WATCHOS_ARM: {{ld(.exe)?"}} 199*67e74705SXin Li // LINK_WATCHOS_ARM: -watchos_version_min 200*67e74705SXin Li // LINK_WATCHOS_ARM-NOT: crt 201*67e74705SXin Li // LINK_WATCHOS_ARM-NOT: lgcc_s.1 202*67e74705SXin Li // FIXME: This library does not get built unless the watchOS SDK is 203*67e74705SXin Li // installed, and the driver will not try to link it if it does not exist. 204*67e74705SXin Li // This should be reenabled when the watchOS SDK becomes a standard part 205*67e74705SXin Li // of Xcode. 206*67e74705SXin Li // FIXME_LINK_WATCHOS_ARM: libclang_rt.watchos.a 207*67e74705SXin Li 208*67e74705SXin Li // RUN: %clang -target armv7k-apple-watchos2.0 -mwatchos-version-min=2.0 -fprofile-instr-generate -### %t.o 2> %t.log 209*67e74705SXin Li // RUN: FileCheck -check-prefix=LINK_WATCHOS_PROFILE %s < %t.log 210*67e74705SXin Li // LINK_WATCHOS_PROFILE: {{ld(.exe)?"}} 211*67e74705SXin Li // FIXME: These libraries do not get built unless the watchOS SDK is 212*67e74705SXin Li // installed, and the driver will not try to link them if they do not exist. 213*67e74705SXin Li // This should be reenabled when the watchOS SDK becomes a standard part 214*67e74705SXin Li // of Xcode. 215*67e74705SXin Li // FIXME_LINK_WATCHOS_PROFILE: libclang_rt.profile_watchos.a 216*67e74705SXin Li // FIXME_LINK_WATCHOS_PROFILE: libclang_rt.watchos.a 217*67e74705SXin Li 218*67e74705SXin Li // RUN: %clang -target armv7k-apple-watchos2.0 -mwatchos-version-min=2.0 -### %t.o -lcc_kext 2> %t.log 219*67e74705SXin Li // RUN: FileCheck -check-prefix=LINK_WATCHOS_KEXT %s < %t.log 220*67e74705SXin Li // LINK_WATCHOS_KEXT: {{ld(.exe)?"}} 221*67e74705SXin Li // FIXME: These libraries do not get built unless the watchOS SDK is 222*67e74705SXin Li // installed, and the driver will not try to link them if they do not exist. 223*67e74705SXin Li // This should be reenabled when the watchOS SDK becomes a standard part 224*67e74705SXin Li // of Xcode. 225*67e74705SXin Li // FIXME_LINK_WATCHOS_KEXT: libclang_rt.cc_kext_watchos.a 226*67e74705SXin Li // FIXME_LINK_WATCHOS_KEXT: libclang_rt.watchos.a 227*67e74705SXin Li 228*67e74705SXin Li // RUN: %clang -target i386-apple-darwin12 -pg -### %t.o 2> %t.log 229*67e74705SXin Li // RUN: FileCheck -check-prefix=LINK_PG %s < %t.log 230*67e74705SXin Li // LINK_PG: -lgcrt1.o 231*67e74705SXin Li // LINK_PG: -no_new_main 232*67e74705SXin Li 233*67e74705SXin Li // Check that clang links with libgcc_s.1 for iOS 4 and earlier, but not arm64. 234*67e74705SXin Li // RUN: %clang -target armv7-apple-ios4.0 -miphoneos-version-min=4.0 -### %t.o 2> %t.log 235*67e74705SXin Li // RUN: FileCheck -check-prefix=LINK_IOS_LIBGCC_S %s < %t.log 236*67e74705SXin Li // LINK_IOS_LIBGCC_S: lgcc_s.1 237*67e74705SXin Li 238*67e74705SXin Li // RUN: %clang -target arm64-apple-ios4.0 -miphoneos-version-min=4.0 -### %t.o 2> %t.log 239*67e74705SXin Li // RUN: FileCheck -check-prefix=LINK_NO_IOS_ARM64_LIBGCC_S %s < %t.log 240*67e74705SXin Li // LINK_NO_IOS_ARM64_LIBGCC_S-NOT: lgcc_s.1 241*67e74705SXin Li 242*67e74705SXin Li // RUN: %clang -target x86_64-apple-darwin12 -rdynamic -### %t.o \ 243*67e74705SXin Li // RUN: -mlinker-version=100 2> %t.log 244*67e74705SXin Li // RUN: FileCheck -check-prefix=LINK_NO_EXPORT_DYNAMIC %s < %t.log 245*67e74705SXin Li // LINK_NO_EXPORT_DYNAMIC: {{ld(.exe)?"}} 246*67e74705SXin Li // LINK_NO_EXPORT_DYNAMIC-NOT: "-export_dynamic" 247*67e74705SXin Li 248*67e74705SXin Li // RUN: %clang -target x86_64-apple-darwin12 -rdynamic -### %t.o \ 249*67e74705SXin Li // RUN: -mlinker-version=137 2> %t.log 250*67e74705SXin Li // RUN: FileCheck -check-prefix=LINK_EXPORT_DYNAMIC %s < %t.log 251*67e74705SXin Li // LINK_EXPORT_DYNAMIC: {{ld(.exe)?"}} 252*67e74705SXin Li // LINK_EXPORT_DYNAMIC: "-export_dynamic" 253*67e74705SXin Li 254*67e74705SXin Li // RUN: %clang -target x86_64h-apple-darwin -### %t.o 2> %t.log 255*67e74705SXin Li // RUN: FileCheck -check-prefix=LINK_X86_64H_ARCH %s < %t.log 256*67e74705SXin Li // 257*67e74705SXin Li // LINK_X86_64H_ARCH: {{ld(.exe)?"}} 258*67e74705SXin Li // LINK_X86_64H_ARCH: "x86_64h" 259*67e74705SXin Li 260*67e74705SXin Li // RUN: %clang -target x86_64-apple-darwin -arch x86_64 -arch x86_64h -### %t.o 2> %t.log 261*67e74705SXin Li // RUN: FileCheck -check-prefix=LINK_X86_64H_MULTIARCH %s < %t.log 262*67e74705SXin Li // 263*67e74705SXin Li // LINK_X86_64H_MULTIARCH: {{ld(.exe)?"}} 264*67e74705SXin Li // LINK_X86_64H_MULTIARCH: "x86_64" 265*67e74705SXin Li // 266*67e74705SXin Li // LINK_X86_64H_MULTIARCH: {{ld(.exe)?"}} 267*67e74705SXin Li // LINK_X86_64H_MULTIARCH: "x86_64h" 268*67e74705SXin Li 269*67e74705SXin Li // Check for the linker options to specify the iOS version when the 270*67e74705SXin Li // IPHONEOS_DEPLOYMENT_TARGET variable is used instead of the command-line 271*67e74705SXin Li // deployment target options. 272*67e74705SXin Li // RUN: env IPHONEOS_DEPLOYMENT_TARGET=7.0 \ 273*67e74705SXin Li // RUN: %clang -target arm64-apple-darwin -### %t.o 2> %t.log 274*67e74705SXin Li // RUN: FileCheck -check-prefix=LINK_IPHONEOS_VERSION_MIN %s < %t.log 275*67e74705SXin Li // RUN: env IPHONEOS_DEPLOYMENT_TARGET=7.0 \ 276*67e74705SXin Li // RUN: %clang -target i386-apple-darwin -### %t.o 2> %t.log 277*67e74705SXin Li // RUN: FileCheck -check-prefix=LINK_IOS_SIMULATOR_VERSION_MIN %s < %t.log 278*67e74705SXin Li // LINK_IPHONEOS_VERSION_MIN: -iphoneos_version_min 279*67e74705SXin Li // LINK_IOS_SIMULATOR_VERSION_MIN: -ios_simulator_version_min 280*67e74705SXin Li 281*67e74705SXin Li // Ditto for tvOS.... 282*67e74705SXin Li // RUN: env TVOS_DEPLOYMENT_TARGET=7.0 \ 283*67e74705SXin Li // RUN: %clang -target armv7-apple-darwin -### %t.o 2> %t.log 284*67e74705SXin Li // RUN: FileCheck -check-prefix=LINK_TVOS_VERSION_MIN %s < %t.log 285*67e74705SXin Li // RUN: env TVOS_DEPLOYMENT_TARGET=7.0 \ 286*67e74705SXin Li // RUN: %clang -target x86_64-apple-darwin -### %t.o 2> %t.log 287*67e74705SXin Li // RUN: FileCheck -check-prefix=LINK_TVOS_SIMULATOR_VERSION_MIN %s < %t.log 288*67e74705SXin Li // LINK_TVOS_VERSION_MIN: -tvos_version_min 289*67e74705SXin Li // LINK_TVOS_SIMULATOR_VERSION_MIN: -tvos_simulator_version_min 290*67e74705SXin Li 291*67e74705SXin Li // ...and for watchOS. 292*67e74705SXin Li // RUN: env WATCHOS_DEPLOYMENT_TARGET=2.0 \ 293*67e74705SXin Li // RUN: %clang -target armv7k-apple-darwin -### %t.o 2> %t.log 294*67e74705SXin Li // RUN: FileCheck -check-prefix=LINK_WATCHOS_VERSION_MIN %s < %t.log 295*67e74705SXin Li // RUN: env WATCHOS_DEPLOYMENT_TARGET=2.0 \ 296*67e74705SXin Li // RUN: %clang -target i386-apple-darwin -### %t.o 2> %t.log 297*67e74705SXin Li // RUN: FileCheck -check-prefix=LINK_WATCHOS_SIMULATOR_VERSION_MIN %s < %t.log 298*67e74705SXin Li // LINK_WATCHOS_VERSION_MIN: -watchos_version_min 299*67e74705SXin Li // LINK_WATCHOS_SIMULATOR_VERSION_MIN: -watchos_simulator_version_min 300*67e74705SXin Li 301*67e74705SXin Li // Check -iframework gets forward to ld as -F 302*67e74705SXin Li // RUN: %clang -target x86_64-apple-darwin %s -iframework Bar -framework Foo -### 2>&1 | \ 303*67e74705SXin Li // RUN: FileCheck --check-prefix=LINK-IFRAMEWORK %s 304*67e74705SXin Li // LINK-IFRAMEWORK: {{ld(.exe)?"}} 305*67e74705SXin Li // LINK-IFRAMEWORK: "-FBar" 306*67e74705SXin Li 307*67e74705SXin Li // Check ld64 accepts up to 5 digits with no extra characters 308*67e74705SXin Li // RUN: %clang -target x86_64-apple-darwin12 %s -### -o %t \ 309*67e74705SXin Li // RUN: -mlinker-version=133.3 2> %t.log 310*67e74705SXin Li // RUN: %clang -target x86_64-apple-darwin12 %s -### -o %t \ 311*67e74705SXin Li // RUN: -mlinker-version=133.3.0 2>> %t.log 312*67e74705SXin Li // RUN: %clang -target x86_64-apple-darwin12 %s -### -o %t \ 313*67e74705SXin Li // RUN: -mlinker-version=133.3.0.1 2>> %t.log 314*67e74705SXin Li // RUN: %clang -target x86_64-apple-darwin12 %s -### -o %t \ 315*67e74705SXin Li // RUN: -mlinker-version=133.3.0.1.2 2>> %t.log 316*67e74705SXin Li // RUN: %clang -target x86_64-apple-darwin12 %s -### -o %t \ 317*67e74705SXin Li // RUN: -mlinker-version=133.3.0.1.2.6 2>> %t.log 318*67e74705SXin Li // RUN: %clang -target x86_64-apple-darwin12 %s -### -o %t \ 319*67e74705SXin Li // RUN: -mlinker-version=133.3.0.1.a 2>> %t.log 320*67e74705SXin Li // RUN: %clang -target x86_64-apple-darwin12 %s -### -o %t \ 321*67e74705SXin Li // RUN: -mlinker-version=133.3.0.1a 2>> %t.log 322*67e74705SXin Li // RUN: FileCheck -check-prefix=LINK_VERSION_DIGITS %s < %t.log 323*67e74705SXin Li // LINK_VERSION_DIGITS-NOT: invalid version number in '-mlinker-version=133.3' 324*67e74705SXin Li // LINK_VERSION_DIGITS-NOT: invalid version number in '-mlinker-version=133.3.0' 325*67e74705SXin Li // LINK_VERSION_DIGITS-NOT: invalid version number in '-mlinker-version=133.3.0.1' 326*67e74705SXin Li // LINK_VERSION_DIGITS-NOT: invalid version number in '-mlinker-version=133.3.0.1.2' 327*67e74705SXin Li // LINK_VERSION_DIGITS: invalid version number in '-mlinker-version=133.3.0.1.2.6' 328*67e74705SXin Li // LINK_VERSION_DIGITS: invalid version number in '-mlinker-version=133.3.0.1.a' 329*67e74705SXin Li // LINK_VERSION_DIGITS: invalid version number in '-mlinker-version=133.3.0.1a' 330