brintos

brintos / llvm-project-archived public Read only

0
0
Text · 14.6 KiB · 5940ee2 Raw
278 lines · c
1// General tests that ld invocations on Solaris targets sane. Note that we use2// sysroot to make these tests independent of the host system.3 4// Check sparc-sun-solaris2.11, 32bit5// RUN: %clang -### %s --target=sparc-sun-solaris2.11 -fuse-ld= \6// RUN:     -rtlib=platform --unwindlib=platform \7// RUN:     --sysroot=%S/Inputs/solaris_sparc_tree 2>&1 \8// RUN:   | FileCheck --check-prefixes=CHECK-LD-SPARC32,CHECK-LD %s9// RUN: %clang -### %s --target=sparc-sun-solaris2.11 -fuse-ld=gld \10// RUN:     -rtlib=platform --unwindlib=platform \11// RUN:     --sysroot=%S/Inputs/solaris_sparc_tree 2>&1 \12// RUN:   | FileCheck --check-prefixes=CHECK-LD-SPARC32,CHECK-GLD %s13// CHECK-LD-SPARC32-NOT: warning:14// CHECK-LD-SPARC32: "-cc1" "-triple" "sparc-sun-solaris2.11"15// CHECK-LD-SPARC32-SAME: "-isysroot" "[[SYSROOT:[^"]+]]"16// CHECK-LD-SPARC32: "{{.*}}ld{{(.exe)?}}"17// CHECK-LD-SPARC32-SAME: "[[SYSROOT]]/usr/gcc/4.8/lib/gcc/sparc-sun-solaris2.11/4.8.2{{/|\\\\}}crt1.o"18// CHECK-LD-SPARC32-SAME: "[[SYSROOT]]/usr/lib{{/|\\\\}}crti.o"19// CHECK-LD-SPARC32-SAME: "[[SYSROOT]]/usr/gcc/4.8/lib/gcc/sparc-sun-solaris2.11/4.8.2{{/|\\\\}}crtbegin.o"20// CHECK-LD-SPARC32-SAME: "-L[[SYSROOT]]/usr/gcc/4.8/lib/gcc/sparc-sun-solaris2.11/4.8.2"21// CHECK-LD-SPARC32-SAME: "-L[[SYSROOT]]/usr/gcc/4.8/lib/gcc/sparc-sun-solaris2.11/4.8.2/../../.."22// CHECK-LD-SPARC32-SAME: "-L[[SYSROOT]]/usr/lib"23// CHECK-LD: "-z" "ignore" "-latomic" "-z" "record"24// CHECK-GLD: "--as-needed" "-latomic" "--no-as-needed"25// CHECK-LD-SPARC32-SAME: "-lgcc"26// CHECK-LD: "-z" "ignore" "-lgcc_s" "-z" "record"27// CHECK-GLD: "--as-needed" "-lgcc_s" "--no-as-needed"28// CHECK-LD-SPARC32-SAME: "-lc"29// CHECK-LD-SPARC32-SAME: "[[SYSROOT]]/usr/gcc/4.8/lib/gcc/sparc-sun-solaris2.11/4.8.2{{/|\\\\}}crtend.o"30// CHECK-LD-SPARC32-SAME: "[[SYSROOT]]/usr/lib{{/|\\\\}}crtn.o"31 32// Check sparc-sun-solaris2.11, 64bit33// RUN: %clang -m64 -### %s 2>&1 --target=sparc-sun-solaris2.11 \34// RUN:     -rtlib=platform --unwindlib=platform \35// RUN:     --sysroot=%S/Inputs/solaris_sparc_tree \36// RUN:   | FileCheck --check-prefix=CHECK-LD-SPARC64 %s37// CHECK-LD-SPARC64-NOT: warning:38// CHECK-LD-SPARC64: "-cc1" "-triple" "sparcv9-sun-solaris2.11"39// CHECK-LD-SPARC64-SAME: "-isysroot" "[[SYSROOT:[^"]+]]"40// CHECK-LD-SPARC64: "{{.*}}ld{{(.exe)?}}"41// CHECK-LD-SPARC64-SAME: "[[SYSROOT]]/usr/gcc/4.8/lib/gcc/sparc-sun-solaris2.11/4.8.2/sparcv9{{/|\\\\}}crt1.o"42// CHECK-LD-SPARC64-SAME: "[[SYSROOT]]/usr/lib/sparcv9{{/|\\\\}}crti.o"43// CHECK-LD-SPARC64-SAME: "[[SYSROOT]]/usr/gcc/4.8/lib/gcc/sparc-sun-solaris2.11/4.8.2/sparcv9{{/|\\\\}}crtbegin.o"44// CHECK-LD-SPARC64-SAME: "-L[[SYSROOT]]/usr/gcc/4.8/lib/gcc/sparc-sun-solaris2.11/4.8.2/sparcv9"45// CHECK-LD-SPARC64-SAME: "-L[[SYSROOT]]/usr/gcc/4.8/lib/gcc/sparc-sun-solaris2.11/4.8.2/../../../sparcv9"46// CHECK-LD-SPARC64-SAME: "-L[[SYSROOT]]/usr/lib/sparcv9"47// CHECK-LD-SPARC64-NOT:  "-latomic"48// CHECK-LD-SPARC64-SAME: "-lgcc"49// CHECK-LD-SPARC64-SAME: "-lgcc_s"50// CHECK-LD-SPARC64-SAME: "-lc"51// CHECK-LD-SPARC64-SAME: "[[SYSROOT]]/usr/gcc/4.8/lib/gcc/sparc-sun-solaris2.11/4.8.2/sparcv9{{/|\\\\}}crtend.o"52// CHECK-LD-SPARC64-SAME: "[[SYSROOT]]/usr/lib/sparcv9{{/|\\\\}}crtn.o"53 54// Check i386-pc-solaris2.11, 32bit55// RUN: %clang -### %s 2>&1 --target=i386-pc-solaris2.11 \56// RUN:     -rtlib=platform --unwindlib=platform \57// RUN:     --sysroot=%S/Inputs/solaris_x86_tree \58// RUN:   | FileCheck --check-prefix=CHECK-LD-X32 %s59// CHECK-LD-X32-NOT: warning:60// CHECK-LD-X32: "-cc1" "-triple" "i386-pc-solaris2.11"61// CHECK-LD-X32-SAME: "-isysroot" "[[SYSROOT:[^"]+]]"62// CHECK-LD-X32: "{{.*}}ld{{(.exe)?}}"63// CHECK-LD-X32-SAME: "[[SYSROOT]]/usr/lib{{/|\\\\}}crt1.o"64// CHECK-LD-X32-SAME: "[[SYSROOT]]/usr/lib{{/|\\\\}}crti.o"65// CHECK-LD-X32-SAME: "[[SYSROOT]]/usr/gcc/4.9/lib/gcc/i386-pc-solaris2.11/4.9.4{{/|\\\\}}crtbegin.o"66// CHECK-LD-X32-SAME: "-L[[SYSROOT]]/usr/gcc/4.9/lib/gcc/i386-pc-solaris2.11/4.9.4"67// CHECK-LD-X32-SAME: "-L[[SYSROOT]]/usr/gcc/4.9/lib/gcc/i386-pc-solaris2.11/4.9.4/../../.."68// CHECK-LD-X32-SAME: "-L[[SYSROOT]]/usr/lib"69// CHECK-LD-X32-NOT:  "-latomic"70// CHECK-LD-X32-SAME: "-lgcc"71// CHECK-LD-X32-SAME: "-lgcc_s"72// CHECK-LD-X32-SAME: "-lc"73// CHECK-LD-X32-SAME: "[[SYSROOT]]/usr/gcc/4.9/lib/gcc/i386-pc-solaris2.11/4.9.4{{/|\\\\}}crtend.o"74// CHECK-LD-X32-SAME: "[[SYSROOT]]/usr/lib{{/|\\\\}}crtn.o"75 76// Check i386-pc-solaris2.11, 64bit77// RUN: %clang -m64 -### %s 2>&1 \78// RUN:     --target=i386-pc-solaris2.11 \79// RUN:     -rtlib=platform --unwindlib=platform \80// RUN:     --sysroot=%S/Inputs/solaris_x86_tree \81// RUN:   | FileCheck --check-prefix=CHECK-LD-X64 %s82// CHECK-LD-X64-NOT: warning:83// CHECK-LD-X64: "-cc1" "-triple" "x86_64-pc-solaris2.11"84// CHECK-LD-X64-SAME: "-isysroot" "[[SYSROOT:[^"]+]]"85// CHECK-LD-X64: "{{.*}}ld{{(.exe)?}}"86// CHECK-LD-X64-SAME: "[[SYSROOT]]/usr/lib/amd64{{/|\\\\}}crt1.o"87// CHECK-LD-X64-SAME: "[[SYSROOT]]/usr/lib/amd64{{/|\\\\}}crti.o"88// CHECK-LD-X64-SAME: "[[SYSROOT]]/usr/gcc/4.9/lib/gcc/i386-pc-solaris2.11/4.9.4/amd64{{/|\\\\}}crtbegin.o"89// CHECK-LD-X64-SAME: "-L[[SYSROOT]]/usr/gcc/4.9/lib/gcc/i386-pc-solaris2.11/4.9.4/amd64"90// CHECK-LD-X64-SAME: "-L[[SYSROOT]]/usr/gcc/4.9/lib/gcc/i386-pc-solaris2.11/4.9.4/../../../amd64"91// CHECK-LD-X64-SAME: "-L[[SYSROOT]]/usr/lib/amd64"92// CHECK-LD-X64-NOT:  "-latomic"93// CHECK-LD-X64-SAME: "-lgcc"94// CHECK-LD-X64-SAME: "-lgcc_s"95// CHECK-LD-X64-SAME: "-lc"96// CHECK-LD-X64-SAME: "[[SYSROOT]]/usr/gcc/4.9/lib/gcc/i386-pc-solaris2.11/4.9.4/amd64{{/|\\\\}}crtend.o"97// CHECK-LD-X64-SAME: "[[SYSROOT]]/usr/lib/amd64{{/|\\\\}}crtn.o"98 99// Check the right -l flags are present with -shared100// RUN: %clang -### %s -shared 2>&1 \101// RUN:     --target=sparc-sun-solaris2.11 \102// RUN:     -rtlib=platform --unwindlib=platform \103// RUN:     --sysroot=%S/Inputs/solaris_sparc_tree \104// RUN:   | FileCheck --check-prefix=CHECK-SPARC32-SHARED %s105// CHECK-SPARC32-SHARED: "{{.*}}ld{{(.exe)?}}"106// CHECK-SPARC32-SHARED-SAME: "-lgcc_s"107// CHECK-SPARC32-SHARED-SAME: "-lc"108// CHECK-SPARC32-SHARED-NOT: "-lgcc"109 110/// Check that -static-libgcc is supported.111// RUN: %clang -### %s --target=sparc-sun-solaris2.11 \112// RUN:     -static-libgcc -rtlib=platform --unwindlib=platform \113// RUN:     --sysroot=%S/Inputs/solaris_sparc_tree 2>&1 \114// RUN:   | FileCheck --check-prefixes=CHECK-STATIC-LIBGCC %s115// CHECK-STATIC-LIBGCC-NOT: warning: argument unused during compilation: '-static-libgcc'116// CHECK-STATIC-LIBGCC: "-lgcc" "-lgcc_eh"117// CHECK-STATIC-LIBGCC-NOT: "-lgcc_s"118 119// Check that libm is only linked with clang++.120// RUN: %clang -### %s --target=sparc-sun-solaris2.11 \121// RUN:     -rtlib=platform --unwindlib=platform \122// RUN:     --sysroot=%S/Inputs/solaris_sparc_tree 2>&1 \123// RUN:   | FileCheck --check-prefix=CHECK-NOLIBM %s124// RUN: %clang -### %s -shared --target=sparc-sun-solaris2.11 \125// RUN:     -rtlib=platform --unwindlib=platform \126// RUN:     --sysroot=%S/Inputs/solaris_sparc_tree 2>&1 \127// RUN:   | FileCheck --check-prefix=CHECK-NOLIBM %s128// RUN: %clangxx -### %s --target=sparc-sun-solaris2.11 \129// RUN:     -rtlib=platform --unwindlib=platform \130// RUN:     --sysroot=%S/Inputs/solaris_sparc_tree 2>&1 \131// RUN:   | FileCheck --check-prefix=CHECK-LIBM %s132// RUN: %clangxx -### %s -shared --target=sparc-sun-solaris2.11 \133// RUN:     -rtlib=platform --unwindlib=platform \134// RUN:     --sysroot=%S/Inputs/solaris_sparc_tree 2>&1 \135// RUN:   | FileCheck --check-prefix=CHECK-LIBM %s136// CHECK-LIBM: "-lm"137// CHECK-NOLIBM-NOT: "-lm"138 139// Check the right ld flags are present with -pie.140// RUN: %clang --target=sparc-sun-solaris2.11 -### %s -pie -fuse-ld= \141// RUN:     -rtlib=platform --unwindlib=platform \142// RUN:     --sysroot=%S/Inputs/solaris_sparc_tree 2>&1 \143// RUN:   | FileCheck --check-prefix=CHECK-PIE-LD %s144// RUN: %clang --target=sparc-sun-solaris2.11 -### %s -pie -fuse-ld=gld \145// RUN:     -rtlib=platform --unwindlib=platform \146// RUN:     --sysroot=%S/Inputs/solaris_sparc_tree 2>&1 \147// RUN:   | FileCheck --check-prefix=CHECK-PIE-GLD %s148// RUN: %clang --target=sparc-sun-solaris2.11 -### %s -no-pie -fuse-ld= \149// RUN:     -rtlib=platform --unwindlib=platform \150// RUN:     --sysroot=%S/Inputs/solaris_sparc_tree 2>&1 \151// RUN:   | FileCheck --check-prefix=CHECK-NOPIE-LD %s152// RUN: %clang --target=sparc-sun-solaris2.11 -### %s -no-pie -fuse-ld=gld \153// RUN:     -rtlib=platform --unwindlib=platform \154// RUN:     --sysroot=%S/Inputs/solaris_sparc_tree 2>&1 \155// RUN:   | FileCheck --check-prefix=CHECK-NOPIE-GLD %s156 157// Check that -shared/-r/-static disable PIE.158// RUN: %clang --target=sparc-sun-solaris2.11 -### %s -shared -pie -fuse-ld= \159// RUN:     -rtlib=platform --unwindlib=platform \160// RUN:     --sysroot=%S/Inputs/solaris_sparc_tree 2>&1 \161// RUN:   | FileCheck --check-prefix=CHECK-NOPIE-LD %s162// RUN: %clang --target=sparc-sun-solaris2.11 -### %s -shared -pie -fuse-ld=gld \163// RUN:     -rtlib=platform --unwindlib=platform \164// RUN:     --sysroot=%S/Inputs/solaris_sparc_tree 2>&1 \165// RUN:   | FileCheck --check-prefix=CHECK-NOPIE-GLD %s166// RUN: %clang --target=sparc-sun-solaris2.11 -### %s -r -pie -fuse-ld= \167// RUN:     -rtlib=platform --unwindlib=platform \168// RUN:     --sysroot=%S/Inputs/solaris_sparc_tree 2>&1 \169// RUN:   | FileCheck --check-prefix=CHECK-NOPIE-LD %s170// RUN: %clang --target=sparc-sun-solaris2.11 -### %s -r -pie -fuse-ld=gld \171// RUN:     -rtlib=platform --unwindlib=platform \172// RUN:     --sysroot=%S/Inputs/solaris_sparc_tree 2>&1 \173// RUN:   | FileCheck --check-prefix=CHECK-NOPIE-GLD %s174// RUN: %clang --target=sparc-sun-solaris2.11 -### %s -static -pie -fuse-ld= \175// RUN:     -rtlib=platform --unwindlib=platform \176// RUN:     --sysroot=%S/Inputs/solaris_sparc_tree 2>&1 \177// RUN:   | FileCheck --check-prefix=CHECK-NOPIE-LD %s178// RUN: %clang --target=sparc-sun-solaris2.11 -### %s -static -pie -fuse-ld=gld \179// RUN:     -rtlib=platform --unwindlib=platform \180// RUN:     --sysroot=%S/Inputs/solaris_sparc_tree 2>&1 \181// RUN:   | FileCheck --check-prefix=CHECK-NOPIE-GLD %s182 183// CHECK-PIE-LD: "-z" "type=pie"184// CHECK-PIE-GLD: "-pie"185// CHECK-NOPIE-LD-NOT: "-z" "type=pie"186// CHECK-NOPIE-GLD-NOT: "-pie"187 188// -r suppresses default -l and crt*.o, values-*.o like -nostdlib.189// RUN: %clang -### %s --target=sparc-sun-solaris2.11 -r 2>&1 \190// RUN:     -rtlib=platform --unwindlib=platform \191// RUN:   | FileCheck %s --check-prefix=CHECK-RELOCATABLE192// CHECK-RELOCATABLE:     "-L193// CHECK-RELOCATABLE:     "-r"194// CHECK-RELOCATABLE-NOT: "-e"195// CHECK-RELOCATABLE-NOT: "-l196// CHECK-RELOCATABLE-NOT: /crt{{[^.]+}}.o197// CHECK-RELOCATABLE-NOT: /values-{{[^.]+}}.o198 199// Check that crt{begin,end}S.o is linked with -shared/-pie.200// RUN: %clang --target=sparc-sun-solaris2.11 -### %s \201// RUN:        -rtlib=platform --unwindlib=platform \202// RUN:        --sysroot=%S/Inputs/solaris_sparc_tree 2>&1 \203// RUN:   | FileCheck --check-prefix=CHECK-NOCRTS %s204// RUN: %clang --target=sparc-sun-solaris2.11 -### %s -shared \205// RUN:        -rtlib=platform --unwindlib=platform \206// RUN:        --sysroot=%S/Inputs/solaris_sparc_tree 2>&1 \207// RUN:   | FileCheck --check-prefix=CHECK-CRTS %s208// RUN: %clang --target=sparc-sun-solaris2.11 -### %s -no-pie \209// RUN:        -rtlib=platform --unwindlib=platform \210// RUN:        --sysroot=%S/Inputs/solaris_sparc_tree 2>&1 \211// RUN:   | FileCheck --check-prefix=CHECK-NOCRTS %s212// RUN: %clang --target=sparc-sun-solaris2.11 -### %s -pie \213// RUN:        -rtlib=platform --unwindlib=platform \214// RUN:        --sysroot=%S/Inputs/solaris_sparc_tree 2>&1 \215// RUN:   | FileCheck --check-prefix=CHECK-CRTS %s216// CHECK-CRTS: crtbeginS.o217// CHECK-CRTS: crtendS.o218// CHECK-NOCRTS-NOT: crtbeginS.o219// CHECK-NOCRTS-NOT: crtendS.o220 221// Check that crtfastmath.o is linked with -ffast-math.222 223// Check sparc-sun-solaris2.11, 32bit224// RUN: %clang --target=sparc-sun-solaris2.11 -### %s \225// RUN:        -rtlib=platform --unwindlib=platform \226// RUN:        --sysroot=%S/Inputs/solaris_sparc_tree 2>&1 \227// RUN:   | FileCheck --check-prefix=CHECK-NOCRTFASTMATH-SPARC32 %s228// RUN: %clang --target=sparc-sun-solaris2.11 -### %s -ffast-math \229// RUN:        -rtlib=platform --unwindlib=platform \230// RUN:        --sysroot=%S/Inputs/solaris_sparc_tree 2>&1 \231// RUN:   | FileCheck --check-prefix=CHECK-CRTFASTMATH-SPARC32 %s232// RUN: %clang --target=sparc-sun-solaris2.11 -### %s -ffp-model=fast \233// RUN:        -rtlib=platform --unwindlib=platform \234// RUN:        --sysroot=%S/Inputs/solaris_sparc_tree 2>&1 \235// RUN:   | FileCheck --check-prefix=CHECK-CRTFASTMATH-SPARC32 %s236// CHECK-CRTFASTMATH-SPARC32: "-isysroot" "[[SYSROOT:[^"]+]]"237// CHECK-CRTFASTMATH-SPARC32: "[[SYSROOT]]/usr/gcc/4.8/lib/gcc/sparc-sun-solaris2.11/4.8.2{{/|\\\\}}crtfastmath.o"238// CHECK-NOCRTFASTMATH-SPARC32-NOT: crtfastmath.o239 240// Check sparc-pc-solaris2.11, 64bit241// RUN: %clang -m64 --target=sparc-sun-solaris2.11 -### %s \242// RUN:        -rtlib=platform --unwindlib=platform \243// RUN:        --sysroot=%S/Inputs/solaris_sparc_tree 2>&1 \244// RUN:   | FileCheck --check-prefix=CHECK-NOCRTFASTMATH-SPARC64 %s245// RUN: %clang -m64 --target=sparc-sun-solaris2.11 -### %s -ffast-math \246// RUN:        -rtlib=platform --unwindlib=platform \247// RUN:        --sysroot=%S/Inputs/solaris_sparc_tree 2>&1 \248// RUN:   | FileCheck --check-prefix=CHECK-CRTFASTMATH-SPARC64 %s249// CHECK-CRTFASTMATH-SPARC64: "-isysroot" "[[SYSROOT:[^"]+]]"250// CHECK-CRTFASTMATH-SPARC64: "[[SYSROOT]]/usr/gcc/4.8/lib/gcc/sparc-sun-solaris2.11/4.8.2/sparcv9{{/|\\\\}}crtfastmath.o"251// CHECK-NOCRTFASTMATH-SPARC64-NOT: crtfastmath.o252 253// Check i386-pc-solaris2.11, 32bit254// RUN: %clang --target=i386-pc-solaris2.11 -### %s \255// RUN:        -rtlib=platform --unwindlib=platform \256// RUN:        --sysroot=%S/Inputs/solaris_x86_tree 2>&1 \257// RUN:   | FileCheck --check-prefix=CHECK-NOCRTFASTMATH-X32 %s258// RUN: %clang --target=i386-pc-solaris2.11 -### %s -ffast-math \259// RUN:        -rtlib=platform --unwindlib=platform \260// RUN:        --sysroot=%S/Inputs/solaris_x86_tree 2>&1 \261// RUN:   | FileCheck --check-prefix=CHECK-CRTFASTMATH-X32 %s262// CHECK-CRTFASTMATH-X32: "-isysroot" "[[SYSROOT:[^"]+]]"263// CHECK-CRTFASTMATH-X32: "[[SYSROOT]]/usr/gcc/4.9/lib/gcc/i386-pc-solaris2.11/4.9.4{{/|\\\\}}crtfastmath.o"264// CHECK-NOCRTFASTMATH-X32-NOT: crtfastmath.o265 266// Check i386-pc-solaris2.11, 64bit267// RUN: %clang -m64 --target=i386-pc-solaris2.11 -### %s \268// RUN:        -rtlib=platform --unwindlib=platform \269// RUN:        --sysroot=%S/Inputs/solaris_x86_tree 2>&1 \270// RUN:   | FileCheck --check-prefix=CHECK-NOCRTFASTMATH-X64 %s271// RUN: %clang -m64 --target=i386-pc-solaris2.11 -### %s -ffast-math \272// RUN:        -rtlib=platform --unwindlib=platform \273// RUN:        --sysroot=%S/Inputs/solaris_x86_tree 2>&1 \274// RUN:   | FileCheck --check-prefix=CHECK-CRTFASTMATH-X64 %s275// CHECK-CRTFASTMATH-X64: "-isysroot" "[[SYSROOT:[^"]+]]"276// CHECK-CRTFASTMATH-X64: "[[SYSROOT]]/usr/gcc/4.9/lib/gcc/i386-pc-solaris2.11/4.9.4/amd64{{/|\\\\}}crtfastmath.o"277// CHECK-NOCRTFASTMATH-X64-NOT: crtfastmath.o278