brintos

brintos / llvm-project-archived public Read only

0
0
Text · 10.8 KiB · 94db632 Raw
222 lines · c
1// RUN: %clang \2// RUN:   --target=aarch64-pc-freebsd11 %s                              \3// RUN:   --sysroot=%S/Inputs/basic_freebsd64_tree -### 2>&1 \4// RUN:   | FileCheck --check-prefix=CHECK-ARM64 %s5// CHECK-ARM64: "-cc1" "-triple" "aarch64-pc-freebsd11"6// CHECK-ARM64: ld{{.*}}" "--sysroot=[[SYSROOT:[^"]+]]"7// CHECK-ARM64: "--eh-frame-hdr" "-dynamic-linker" "{{.*}}ld-elf{{.*}}" "-o" "a.out" "{{.*}}crt1.o" "{{.*}}crti.o" "{{.*}}crtbegin.o" "-L[[SYSROOT]]/usr/lib" "{{.*}}.o" "-lgcc" "--as-needed" "-lgcc_s" "--no-as-needed" "-lc" "-lgcc" "--as-needed" "-lgcc_s" "--no-as-needed" "{{.*}}crtend.o" "{{.*}}crtn.o"8//9// RUN: %clang \10// RUN:   --target=powerpc-pc-freebsd %s    \11// RUN:   --sysroot=%S/Inputs/basic_freebsd_tree -### 2>&1 \12// RUN:   | FileCheck --check-prefix=CHECK-PPC %s13// CHECK-PPC: "-cc1" "-triple" "powerpc-pc-freebsd"14// CHECK-PPC: ld{{.*}}" "--sysroot=[[SYSROOT:[^"]+]]"15// CHECK-PPC: "--eh-frame-hdr" "-dynamic-linker" "{{.*}}ld-elf{{.*}}" "-o" "a.out" "{{.*}}crt1.o" "{{.*}}crti.o" "{{.*}}crtbegin.o" "-L[[SYSROOT]]/usr/lib" "{{.*}}.o" "-lgcc" "--as-needed" "-lgcc_s" "--no-as-needed" "-lc" "-lgcc" "--as-needed" "-lgcc_s" "--no-as-needed" "{{.*}}crtend.o" "{{.*}}crtn.o"16//17// RUN: %clang \18// RUN:   --target=powerpc64-pc-freebsd %s                              \19// RUN:   --sysroot=%S/Inputs/basic_freebsd64_tree -### 2>&1 \20// RUN:   | FileCheck --check-prefix=CHECK-PPC64 %s21// CHECK-PPC64: "-cc1" "-triple" "powerpc64-pc-freebsd"22// CHECK-PPC64: ld{{.*}}" "--sysroot=[[SYSROOT:[^"]+]]"23// CHECK-PPC64: "--eh-frame-hdr" "-dynamic-linker" "{{.*}}ld-elf{{.*}}" "-o" "a.out" "{{.*}}crt1.o" "{{.*}}crti.o" "{{.*}}crtbegin.o" "-L[[SYSROOT]]/usr/lib" "{{.*}}.o" "-lgcc" "--as-needed" "-lgcc_s" "--no-as-needed" "-lc" "-lgcc" "--as-needed" "-lgcc_s" "--no-as-needed" "{{.*}}crtend.o" "{{.*}}crtn.o"24 25// RUN: %clang \26// RUN:   --target=powerpc64le-unknown-freebsd13 %s \27// RUN:   --sysroot=%S/Inputs/basic_freebsd64_tree -### 2>&1 \28// RUN:   | FileCheck --check-prefix=CHECK-PPC64LE %s29// CHECK-PPC64LE: "-cc1" "-triple" "powerpc64le-unknown-freebsd13"30// CHECK-PPC64LE: ld{{.*}}" "--sysroot=[[SYSROOT:[^"]+]]"31// CHECK-PPC64LE: "--eh-frame-hdr" "-dynamic-linker" "{{.*}}ld-elf{{.*}}" "-o" "a.out" "{{.*}}crt1.o" "{{.*}}crti.o" "{{.*}}crtbegin.o" "-L[[SYSROOT]]/usr/lib" "{{.*}}.o" "-lgcc" "--as-needed" "-lgcc_s" "--no-as-needed" "-lc" "-lgcc" "--as-needed" "-lgcc_s" "--no-as-needed" "{{.*}}crtend.o" "{{.*}}crtn.o"32 33//34// Check that -m32 properly adjusts the toolchain flags.35//36// RUN: %clang --target=x86_64-pc-freebsd -m32 %s \37// RUN:   --sysroot=%S/Inputs/multiarch_freebsd64_tree -### 2>&1 \38// RUN:   | FileCheck --check-prefix=CHECK-LIB32 %s39// CHECK-LIB32: "-cc1" "-triple" "i386-pc-freebsd"40// CHECK-LIB32: ld{{.*}}" {{.*}} "-m" "elf_i386_fbsd"41//42// RUN: %clang --target=x86_64-pc-freebsd -m32 %s 2>&1 \43// RUN:   --sysroot=%S/Inputs/multiarch_freebsd64_tree -print-search-dirs 2>&1 \44// RUN:   | FileCheck --check-prefix=CHECK-LIB32PATHS %s45// CHECK-LIB32PATHS: libraries: ={{.*:?}}/usr/lib3246//47// Check that O32 MIPS uses /usr/lib32 on a 64-bit tree.48//49// RUN: %clang --target=mips-freebsd12 %s \50// RUN:   --sysroot=%S/Inputs/multiarch_freebsd64_tree -print-search-dirs 2>&1 \51// RUN:   | FileCheck --check-prefix=CHECK-LIB32PATHS %s52//53// Check that MIPS passes the correct linker emulation.54//55// RUN: %clang --target=mips-freebsd -### %s %s 2>&1 \56// RUN:   | FileCheck --check-prefix=CHECK-MIPS-LD %s57// CHECK-MIPS-LD: ld{{.*}}" {{.*}} "-m" "elf32btsmip_fbsd"58// RUN: %clang --target=mipsel-freebsd -### %s %s 2>&1 \59// RUN:   | FileCheck --check-prefix=CHECK-MIPSEL-LD %s60// CHECK-MIPSEL-LD: ld{{.*}}" {{.*}} "-m" "elf32ltsmip_fbsd"61// RUN: %clang --target=mips64-freebsd -### %s %s 2>&1 \62// RUN:   | FileCheck --check-prefix=CHECK-MIPS64-LD %s63// CHECK-MIPS64-LD: ld{{.*}}" {{.*}} "-m" "elf64btsmip_fbsd"64// RUN: %clang --target=mips64el-freebsd -### %s %s 2>&1 \65// RUN:   | FileCheck --check-prefix=CHECK-MIPS64EL-LD %s66// CHECK-MIPS64EL-LD: ld{{.*}}" {{.*}} "-m" "elf64ltsmip_fbsd"67// RUN: %clang --target=mips64-freebsd -mabi=n32 -### %s %s 2>&1 \68// RUN:   | FileCheck --check-prefix=CHECK-MIPSN32-LD %s69// CHECK-MIPSN32-LD: ld{{.*}}" {{.*}} "-m" "elf32btsmipn32_fbsd"70// RUN: %clang --target=mips64el-freebsd -mabi=n32 -### %s %s 2>&1 \71// RUN:   | FileCheck --check-prefix=CHECK-MIPSN32EL-LD %s72// CHECK-MIPSN32EL-LD: ld{{.*}}" {{.*}} "-m" "elf32ltsmipn32_fbsd"73//74// Check that RISC-V passes the correct linker emulation.75//76// RUN: %clang --target=riscv64-freebsd -### %s %s 2>&1 \77// RUN:   | FileCheck --check-prefix=CHECK-RV64I-LD %s78// CHECK-RV64I-LD: ld{{.*}}" {{.*}} "-m" "elf64lriscv"79//80// Check that LoongArch passes the correct linker emulation.81//82// RUN: %clang --target=loongarch64-freebsd -### %s %s 2>&1 \83// RUN:   | FileCheck --check-prefix=CHECK-LA64-LD %s84// CHECK-LA64-LD: ld{{.*}}" {{.*}} "-m" "elf64loongarch"85//86// Check options passed to the linker on LoongArch87//88// RUN: %clang --target=loongarch64-freebsd -mno-relax -### %s %s 2>&1 \89// RUN:   | FileCheck --check-prefix=CHECK-LA64-LD-OPTS %s90// CHECK-LA64-LD-OPTS: ld{{.*}}" {{.*}} "-X" "--no-relax"91//92// Check that the new linker flags are passed to FreeBSD93// RUN: %clang --target=x86_64-pc-freebsd10.0 -m32 %s \94// RUN:   --sysroot=%S/Inputs/multiarch_freebsd64_tree -### 2>&1 \95// RUN:   | FileCheck --check-prefix=CHECK-LDFLAGS_HASH %s96// RUN: %clang --target=x86_64-pc-freebsd -m32 %s \97// RUN:   --sysroot=%S/Inputs/multiarch_freebsd64_tree -### 2>&1 \98// RUN:   | FileCheck --check-prefix=CHECK-LDFLAGS_HASH %s99// CHECK-LDFLAGS_HASH: --hash-style=both100// CHECK-LDFLAGS_HASH: --enable-new-dtags101//102// Check that we do not pass --hash-style=gnu and --hash-style=both to linker103// and provide correct path to the dynamic linker for MIPS platforms.104// Also verify that we tell the assembler to target the right ISA and ABI.105// RUN: %clang -### %s 2>&1 \106// RUN:     --target=mips-unknown-freebsd10.0 \107// RUN:   | FileCheck --check-prefix=CHECK-MIPS %s108// CHECK-MIPS: "{{[^" ]*}}ld{{[^" ]*}}"109// CHECK-MIPS: "-dynamic-linker" "{{.*}}/libexec/ld-elf.so.1"110// CHECK-MIPS-NOT: "--hash-style={{gnu|both}}"111// RUN: %clang -### %s 2>&1 \112// RUN:     --target=mipsel-unknown-freebsd10.0 \113// RUN:   | FileCheck --check-prefix=CHECK-MIPSEL %s114// CHECK-MIPSEL: "{{[^" ]*}}ld{{[^" ]*}}"115// CHECK-MIPSEL: "-dynamic-linker" "{{.*}}/libexec/ld-elf.so.1"116// CHECK-MIPSEL-NOT: "--hash-style={{gnu|both}}"117// RUN: %clang -### %s 2>&1 \118// RUN:     --target=mips64-unknown-freebsd10.0 \119// RUN:   | FileCheck --check-prefix=CHECK-MIPS64 %s120// CHECK-MIPS64: "{{[^" ]*}}ld{{[^" ]*}}"121// CHECK-MIPS64: "-dynamic-linker" "{{.*}}/libexec/ld-elf.so.1"122// CHECK-MIPS64-NOT: "--hash-style={{gnu|both}}"123// RUN: %clang -### %s 2>&1 \124// RUN:     --target=mips64el-unknown-freebsd10.0 \125// RUN:   | FileCheck --check-prefix=CHECK-MIPS64EL %s126// CHECK-MIPS64EL: "{{[^" ]*}}ld{{[^" ]*}}"127// CHECK-MIPS64EL: "-dynamic-linker" "{{.*}}/libexec/ld-elf.so.1"128// CHECK-MIPS64EL-NOT: "--hash-style={{gnu|both}}"129 130// RUN: %clang --target=x86_64-pc-freebsd -static %s \131// RUN:   --sysroot=%S/Inputs/multiarch_freebsd64_tree -### 2>&1 \132// RUN:   | FileCheck --check-prefix=CHECK-STATIC %s133// CHECK-STATIC: ld{{.*}}" "--eh-frame-hdr" "-Bstatic"134// CHECK-STATIC: crt1.o135// CHECK-STATIC: crtbeginT.o136 137// RUN: %clang --target=x86_64-pc-freebsd -shared %s \138// RUN:   --sysroot=%S/Inputs/multiarch_freebsd64_tree -### 2>&1 \139// RUN:   | FileCheck --check-prefix=CHECK-SHARED %s140// CHECK-SHARED: ld{{.*}}" "--eh-frame-hdr" "-shared"141// CHECK-SHARED: crti.o142// CHECK-SHARED: crtbeginS.o143 144// RUN: %clang --target=x86_64-pc-freebsd -pie %s \145// RUN:   --sysroot=%S/Inputs/multiarch_freebsd64_tree -### 2>&1 \146// RUN:   | FileCheck --check-prefix=CHECK-PIE %s147// CHECK-PIE: pie148// CHECK-PIE: Scrt1.o149// CHECK-PIE: crtbeginS.o150 151// RUN: %clang --target=x86_64-pc-freebsd %s \152// RUN:   --sysroot=%S/Inputs/multiarch_freebsd64_tree -### 2>&1 \153// RUN:   | FileCheck --check-prefix=CHECK-NORMAL %s154// CHECK-NORMAL: crt1.o155// CHECK-NORMAL: crtbegin.o156 157// RUN: %clang -### %s --target=arm-unknown-freebsd10.0 -no-integrated-as 2>&1 \158// RUN:   | FileCheck --check-prefix=CHECK-ARM %s159// CHECK-ARM-NOT: "-cc1"{{.*}}" "-exception-model=sjlj"160// CHECK-ARM: as{{.*}}" "-mfpu=softvfp"{{.*}}"-meabi=5"161// CHECK-ARM-NOT: as{{.*}}" "-mfpu=vfp"162// CHECK-ARM-NOT: as{{.*}}" "-matpcs"163 164// RUN: %clang -### %s --target=arm-gnueabi-freebsd10.0 -no-integrated-as 2>&1 \165// RUN:   | FileCheck --check-prefix=CHECK-ARM-EABI %s166// CHECK-ARM-EABI-NOT: "-cc1"{{.*}}" "-exception-model=sjlj"167// CHECK-ARM-EABI: as{{.*}}" "-mfpu=softvfp" "-meabi=5"168// CHECK-ARM-EABI-NOT: as{{.*}}" "-mfpu=vfp"169// CHECK-ARM-EABI-NOT: as{{.*}}" "-matpcs"170 171// RUN: %clang -### %s --target=arm-gnueabihf-freebsd10.0 -no-integrated-as 2>&1 \172// RUN:   | FileCheck --check-prefix=CHECK-ARM-EABIHF %s173// CHECK-ARM-EABIHF-NOT: "-cc1"{{.*}}" "-exception-model=sjlj"174// CHECK-ARM-EABIHF: as{{.*}}" "-mfpu=vfp" "-meabi=5"175// CHECK-ARM-EABIHF-NOT: as{{.*}}" "-mfpu=softvfp"176// CHECK-ARM-EABIHF-NOT: as{{.*}}" "-matpcs"177 178// RUN: %clang --target=sparc64-unknown-freebsd -### %s -fpic -no-integrated-as 2>&1 \179// RUN:   | FileCheck --check-prefix=CHECK-SPARC-PIC %s180// CHECK-SPARC-PIC: as{{.*}}" "-KPIC181 182// RUN: %clang -mcpu=ultrasparc --target=sparc64-unknown-freebsd -### %s -no-integrated-as 2>&1 \183// RUN:   | FileCheck --check-prefix=CHECK-SPARC-CPU %s184// CHECK-SPARC-CPU: cc1{{.*}}" "-target-cpu" "ultrasparc"185// CHECK-SPARC-CPU: as{{.*}}" "-Av9a186 187// Check that -G flags are passed to the linker for mips188// RUN: %clang --target=mips-unknown-freebsd -### %s -G0 2>&1 \189// RUN:   | FileCheck --check-prefix=CHECK-MIPS-G %s190// CHECK-MIPS-G: ld{{.*}}" "-G0"191 192// Check CPU type for MIPS193// RUN: %clang --target=mips-unknown-freebsd -### -c %s 2>&1 \194// RUN:   | FileCheck -check-prefix=CHECK-MIPS-CPU %s195// RUN: %clang --target=mipsel-unknown-freebsd -### -c %s 2>&1 \196// RUN:   | FileCheck -check-prefix=CHECK-MIPS-CPU %s197// CHECK-MIPS-CPU: "-target-cpu" "mips2"198 199// Check CPU type for MIPS64200// RUN: %clang --target=mips64-unknown-freebsd -### -c %s 2>&1 \201// RUN:   | FileCheck -check-prefix=CHECK-MIPS64-CPU %s202// RUN: %clang --target=mips64el-unknown-freebsd -### -c %s 2>&1 \203// RUN:   | FileCheck -check-prefix=CHECK-MIPS64-CPU %s204// CHECK-MIPS64-CPU: "-target-cpu" "mips3"205 206// RUN: %clang --target=ppc64-unknown-freebsd13.0 -### -S %s 2>&1 | \207// RUN: FileCheck -check-prefix=PPC64-MUNWIND %s208// PPC64-MUNWIND: "-funwind-tables=2"209 210/// -r suppresses -dynamic-linker, default -l and crt*.o like -nostdlib.211// RUN: %clang -### %s --target=aarch64-pc-freebsd11 -r \212// RUN:   --sysroot=%S/Inputs/basic_freebsd64_tree 2>&1 | FileCheck %s --check-prefix=RELOCATABLE213// RELOCATABLE:     "-r"214// RELOCATABLE-NOT: "-dynamic-linker"215// RELOCATABLE-NOT: "-l216// RELOCATABLE-NOT: crt{{[^./\\]+}}.o217 218// Check that the -X and --no-relax flags are passed to the linker on riscv64219// RUN: %clang --target=riscv64-unknown-freebsd -mno-relax -### %s 2>&1 \220// RUN:   | FileCheck -check-prefix=RISCV64-FLAGS %s221// RISCV64-FLAGS: "-X" "--no-relax"222