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