1# REQUIRES: mips 2# 3# Check warning and errors in case of input 4# files with incompatible floating point ABI flags. 5 6# RUN: yaml2obj --docnum=1 %s -o %t-dbl.o 7# RUN: yaml2obj --docnum=2 %s -o %t-sgl.o 8# RUN: yaml2obj --docnum=3 %s -o %t-soft.o 9# RUN: yaml2obj --docnum=4 %s -o %t-fp64.o 10# RUN: yaml2obj --docnum=5 %s -o %t-fp64old.o 11# RUN: yaml2obj --docnum=6 %s -o %t-fp64a.o 12# RUN: yaml2obj --docnum=7 %s -o %t-fpxx.o 13 14# RUN: not ld.lld %t-dbl.o %t-fp64.o -shared -o /dev/null 2>&1 \ 15# RUN: | FileCheck -check-prefixes=DBLFP64 %s 16 17# RUN: not ld.lld %t-sgl.o %t-fp64old.o -shared -o /dev/null 2>&1 \ 18# RUN: | FileCheck -check-prefixes=SGLFP64OLD %s 19 20# RUN: not ld.lld %t-soft.o %t-fp64a.o -shared -o /dev/null 2>&1 \ 21# RUN: | FileCheck -check-prefixes=SOFTFP64A %s 22 23# RUN: not ld.lld %t-sgl.o %t-fpxx.o -shared -o /dev/null 2>&1 \ 24# RUN: | FileCheck -check-prefixes=SGLFPXX %s 25 26# DBLFP64: {{.*}}fp64.o: floating point ABI '-mgp32 -mfp64' is incompatible with target floating point ABI '-mdouble-float' 27# SGLFP64OLD: {{.*}}fp64old.o: floating point ABI '-mgp32 -mfp64 (old)' is incompatible with target floating point ABI '-msingle-float' 28# SOFTFP64A: {{.*}}fp64a.o: floating point ABI '-mgp32 -mfp64 -mno-odd-spreg' is incompatible with target floating point ABI '-msoft-float' 29# SGLFPXX: {{.*}}fpxx.o: floating point ABI '-mfpxx' is incompatible with target floating point ABI '-msingle-float' 30 31# dbl.o 32--- !ELF 33FileHeader: 34 Class: ELFCLASS64 35 Data: ELFDATA2MSB 36 Type: ET_REL 37 Machine: EM_MIPS 38 Flags: [ EF_MIPS_ARCH_64 ] 39 40Sections: 41- Name: .MIPS.abiflags 42 Type: SHT_MIPS_ABIFLAGS 43 ISA: MIPS64 44 ASEs: [] 45 FpABI: FP_DOUBLE 46 GPRSize: REG_64 47 CPR1Size: REG_64 48 CPR2Size: REG_NONE 49 50# sgl.o 51--- !ELF 52FileHeader: 53 Class: ELFCLASS64 54 Data: ELFDATA2MSB 55 Type: ET_REL 56 Machine: EM_MIPS 57 Flags: [ EF_MIPS_ARCH_64 ] 58 59Sections: 60- Name: .MIPS.abiflags 61 Type: SHT_MIPS_ABIFLAGS 62 ISA: MIPS64 63 ASEs: [] 64 FpABI: FP_SINGLE 65 GPRSize: REG_64 66 CPR1Size: REG_64 67 CPR2Size: REG_NONE 68 69# soft.o 70--- !ELF 71FileHeader: 72 Class: ELFCLASS64 73 Data: ELFDATA2MSB 74 Type: ET_REL 75 Machine: EM_MIPS 76 Flags: [ EF_MIPS_ARCH_64 ] 77 78Sections: 79- Name: .MIPS.abiflags 80 Type: SHT_MIPS_ABIFLAGS 81 ISA: MIPS64 82 ASEs: [] 83 FpABI: FP_SOFT 84 GPRSize: REG_64 85 CPR1Size: REG_64 86 CPR2Size: REG_NONE 87 88# fp64.o 89--- !ELF 90FileHeader: 91 Class: ELFCLASS64 92 Data: ELFDATA2MSB 93 Type: ET_REL 94 Machine: EM_MIPS 95 Flags: [ EF_MIPS_ARCH_64 ] 96 97Sections: 98- Name: .MIPS.abiflags 99 Type: SHT_MIPS_ABIFLAGS 100 ISA: MIPS64 101 ASEs: [] 102 FpABI: FP_64 103 GPRSize: REG_64 104 CPR1Size: REG_64 105 CPR2Size: REG_NONE 106 107# fp64old.o 108--- !ELF 109FileHeader: 110 Class: ELFCLASS64 111 Data: ELFDATA2MSB 112 Type: ET_REL 113 Machine: EM_MIPS 114 Flags: [ EF_MIPS_ARCH_64 ] 115 116Sections: 117- Name: .MIPS.abiflags 118 Type: SHT_MIPS_ABIFLAGS 119 ISA: MIPS64 120 ASEs: [] 121 FpABI: FP_OLD_64 122 GPRSize: REG_64 123 CPR1Size: REG_64 124 CPR2Size: REG_NONE 125 126# fp64a.o 127--- !ELF 128FileHeader: 129 Class: ELFCLASS64 130 Data: ELFDATA2MSB 131 Type: ET_REL 132 Machine: EM_MIPS 133 Flags: [ EF_MIPS_ARCH_64 ] 134 135Sections: 136- Name: .MIPS.abiflags 137 Type: SHT_MIPS_ABIFLAGS 138 ISA: MIPS64 139 ASEs: [] 140 FpABI: FP_64A 141 GPRSize: REG_64 142 CPR1Size: REG_64 143 CPR2Size: REG_NONE 144 145# fpxx.o 146--- !ELF 147FileHeader: 148 Class: ELFCLASS64 149 Data: ELFDATA2MSB 150 Type: ET_REL 151 Machine: EM_MIPS 152 Flags: [ EF_MIPS_ARCH_64 ] 153 154Sections: 155- Name: .MIPS.abiflags 156 Type: SHT_MIPS_ABIFLAGS 157 ISA: MIPS64 158 ASEs: [] 159 FpABI: FP_XX 160 GPRSize: REG_64 161 CPR1Size: REG_64 162 CPR2Size: REG_NONE 163