256 lines · plain
1# REQUIRES: mips2# RUN: llvm-mc -filetype=obj -triple=mips-unknown-linux %s -o %tmips3# RUN: ld.lld -m elf32btsmip -e _start %tmips -o %t2mips4# RUN: llvm-readobj --file-headers %t2mips \5# RUN: | FileCheck -DOSABI=SystemV --check-prefix=MIPS %s6# RUN: ld.lld -m elf32btsmip_fbsd -e _start %tmips -o %t2mips7# RUN: llvm-readobj --file-headers %t2mips \8# RUN: | FileCheck -DOSABI=FreeBSD --check-prefix=MIPS %s9# RUN: ld.lld %tmips -e _start -o %t3mips10# RUN: llvm-readobj --file-headers %t3mips \11# RUN: | FileCheck -DOSABI=SystemV --check-prefix=MIPS %s12# RUN: echo 'OUTPUT_FORMAT(elf32-tradbigmips)' > %tmips.script13# RUN: ld.lld %tmips.script -e _start %tmips -o %t4mips14# RUN: llvm-readobj --file-headers %t4mips \15# RUN: | FileCheck -DOSABI=SystemV --check-prefix=MIPS %s16# RUN: echo 'OUTPUT_FORMAT(elf32-tradbigmips-freebsd)' > %tmips.script17# RUN: ld.lld %tmips.script -e _start %tmips -o %t4mips18# RUN: llvm-readobj --file-headers %t4mips \19# RUN: | FileCheck -DOSABI=FreeBSD --check-prefix=MIPS %s20# RUN: echo 'OUTPUT_FORMAT(elf32-bigmips)' > %tmips2.script21# RUN: ld.lld %tmips2.script -e _start %tmips -o %t5mips22# RUN: llvm-readobj --file-headers %t5mips \23# RUN: | FileCheck -DOSABI=SystemV --check-prefix=MIPS %s24# MIPS: ElfHeader {25# MIPS-NEXT: Ident {26# MIPS-NEXT: Magic: (7F 45 4C 46)27# MIPS-NEXT: Class: 32-bit (0x1)28# MIPS-NEXT: DataEncoding: BigEndian (0x2)29# MIPS-NEXT: FileVersion: 130# MIPS-NEXT: OS/ABI: [[OSABI]]31# MIPS-NEXT: ABIVersion: 132# MIPS-NEXT: Unused: (00 00 00 00 00 00 00)33# MIPS-NEXT: }34# MIPS-NEXT: Type: Executable (0x2)35# MIPS-NEXT: Machine: EM_MIPS (0x8)36# MIPS-NEXT: Version: 137# MIPS-NEXT: Entry:38# MIPS-NEXT: ProgramHeaderOffset: 0x3439# MIPS-NEXT: SectionHeaderOffset:40# MIPS-NEXT: Flags [41# MIPS-NEXT: EF_MIPS_ABI_O3242# MIPS-NEXT: EF_MIPS_ARCH_3243# MIPS-NEXT: EF_MIPS_CPIC44# MIPS-NEXT: ]45 46# RUN: llvm-mc -filetype=obj -triple=mipsel-unknown-linux %s -o %tmipsel47# RUN: ld.lld -m elf32ltsmip -e _start %tmipsel -o %t2mipsel48# RUN: llvm-readobj --file-headers %t2mipsel \49# RUN: | FileCheck -DOSABI=SystemV --check-prefix=MIPSEL %s50# RUN: ld.lld -m elf32ltsmip_fbsd -e _start %tmipsel -o %t2mipsel51# RUN: llvm-readobj --file-headers %t2mipsel \52# RUN: | FileCheck -DOSABI=FreeBSD --check-prefix=MIPSEL %s53# RUN: ld.lld -melf32ltsmip -e _start %tmipsel -o %t2mipsel54# RUN: llvm-readobj --file-headers %t2mipsel \55# RUN: | FileCheck -DOSABI=SystemV --check-prefix=MIPSEL %s56# RUN: ld.lld %tmipsel -e _start -o %t3mipsel57# RUN: llvm-readobj --file-headers %t3mipsel \58# RUN: | FileCheck -DOSABI=SystemV --check-prefix=MIPSEL %s59# RUN: echo 'OUTPUT_FORMAT(elf32-tradlittlemips)' > %tmipsel.script60# RUN: ld.lld %tmipsel.script -e _start %tmipsel -o %t4mipsel61# RUN: llvm-readobj --file-headers %t4mipsel \62# RUN: | FileCheck -DOSABI=SystemV --check-prefix=MIPSEL %s63# RUN: echo 'OUTPUT_FORMAT(elf32-tradlittlemips-freebsd)' > %tmipsel.script64# RUN: ld.lld %tmipsel.script -e _start %tmipsel -o %t4mipsel65# RUN: llvm-readobj --file-headers %t4mipsel \66# RUN: | FileCheck -DOSABI=FreeBSD --check-prefix=MIPSEL %s67# MIPSEL: ElfHeader {68# MIPSEL-NEXT: Ident {69# MIPSEL-NEXT: Magic: (7F 45 4C 46)70# MIPSEL-NEXT: Class: 32-bit (0x1)71# MIPSEL-NEXT: DataEncoding: LittleEndian (0x1)72# MIPSEL-NEXT: FileVersion: 173# MIPSEL-NEXT: OS/ABI: [[OSABI]]74# MIPSEL-NEXT: ABIVersion: 175# MIPSEL-NEXT: Unused: (00 00 00 00 00 00 00)76# MIPSEL-NEXT: }77# MIPSEL-NEXT: Type: Executable (0x2)78# MIPSEL-NEXT: Machine: EM_MIPS (0x8)79# MIPSEL-NEXT: Version: 180# MIPSEL-NEXT: Entry:81# MIPSEL-NEXT: ProgramHeaderOffset: 0x3482# MIPSEL-NEXT: SectionHeaderOffset:83# MIPSEL-NEXT: Flags [84# MIPSEL-NEXT: EF_MIPS_ABI_O3285# MIPSEL-NEXT: EF_MIPS_ARCH_3286# MIPSEL-NEXT: EF_MIPS_CPIC87# MIPSEL-NEXT: ]88 89# RUN: llvm-mc -filetype=obj -triple=mips64-unknown-linux-gnuabin32 %s -o %tmipsn3290# RUN: ld.lld -m elf32btsmipn32 -e _start %tmipsn32 -o %t2mipsn3291# RUN: llvm-readobj --file-headers %t2mipsn32 \92# RUN: | FileCheck -DOSABI=SystemV --check-prefix=MIPSN32 %s93# RUN: ld.lld -m elf32btsmipn32_fbsd -e _start %tmipsn32 -o %t2mipsn3294# RUN: llvm-readobj --file-headers %t2mipsn32 \95# RUN: | FileCheck -DOSABI=FreeBSD --check-prefix=MIPSN32 %s96# RUN: ld.lld %tmipsn32 -e _start -o %t3mipsn3297# RUN: llvm-readobj --file-headers %t3mipsn32 \98# RUN: | FileCheck -DOSABI=SystemV --check-prefix=MIPSN32 %s99# RUN: echo 'OUTPUT_FORMAT(elf32-ntradbigmips)' > %tmipsn32.script100# RUN: ld.lld %tmipsn32.script -e _start %tmipsn32 -o %t4mipsn32101# RUN: llvm-readobj --file-headers %t4mipsn32 \102# RUN: | FileCheck -DOSABI=SystemV --check-prefix=MIPSN32 %s103# RUN: echo 'OUTPUT_FORMAT(elf32-ntradbigmips-freebsd)' > %tmipsn32.script104# RUN: ld.lld %tmipsn32.script -e _start %tmipsn32 -o %t4mipsn32105# RUN: llvm-readobj --file-headers %t4mipsn32 \106# RUN: | FileCheck -DOSABI=FreeBSD --check-prefix=MIPSN32 %s107# MIPSN32: ElfHeader {108# MIPSN32-NEXT: Ident {109# MIPSN32-NEXT: Magic: (7F 45 4C 46)110# MIPSN32-NEXT: Class: 32-bit (0x1)111# MIPSN32-NEXT: DataEncoding: BigEndian (0x2)112# MIPSN32-NEXT: FileVersion: 1113# MIPSN32-NEXT: OS/ABI: [[OSABI]]114# MIPSN32-NEXT: ABIVersion: 1115# MIPSN32-NEXT: Unused: (00 00 00 00 00 00 00)116# MIPSN32-NEXT: }117# MIPSN32-NEXT: Type: Executable (0x2)118# MIPSN32-NEXT: Machine: EM_MIPS (0x8)119# MIPSN32-NEXT: Version: 1120# MIPSN32-NEXT: Entry:121# MIPSN32-NEXT: ProgramHeaderOffset: 0x34122# MIPSN32-NEXT: SectionHeaderOffset:123# MIPSN32-NEXT: Flags [124# MIPSN32-NEXT: EF_MIPS_ABI2125# MIPSN32-NEXT: EF_MIPS_ARCH_64126# MIPSN32-NEXT: EF_MIPS_CPIC127# MIPSN32-NEXT: ]128 129# RUN: llvm-mc -filetype=obj -triple=mips64el-unknown-linux-gnuabin32 %s -o %tmipsn32el130# RUN: ld.lld -m elf32ltsmipn32 -e _start %tmipsn32el -o %t2mipsn32el131# RUN: llvm-readobj --file-headers %t2mipsn32el \132# RUN: | FileCheck -DOSABI=SystemV --check-prefix=MIPSN32EL %s133# RUN: ld.lld -m elf32ltsmipn32_fbsd -e _start %tmipsn32el -o %t2mipsn32el134# RUN: llvm-readobj --file-headers %t2mipsn32el \135# RUN: | FileCheck -DOSABI=FreeBSD --check-prefix=MIPSN32EL %s136# RUN: ld.lld -melf32ltsmipn32 -e _start %tmipsn32el -o %t2mipsn32el137# RUN: llvm-readobj --file-headers %t2mipsn32el \138# RUN: | FileCheck -DOSABI=SystemV --check-prefix=MIPSN32EL %s139# RUN: ld.lld %tmipsn32el -e _start -o %t3mipsn32el140# RUN: llvm-readobj --file-headers %t3mipsn32el \141# RUN: | FileCheck -DOSABI=SystemV --check-prefix=MIPSN32EL %s142# RUN: echo 'OUTPUT_FORMAT(elf32-ntradlittlemips)' > %tmipsn32el.script143# RUN: ld.lld %tmipsn32el.script -e _start %tmipsn32el -o %t4mipsn32el144# RUN: llvm-readobj --file-headers %t4mipsn32el \145# RUN: | FileCheck -DOSABI=SystemV --check-prefix=MIPSN32EL %s146# RUN: echo 'OUTPUT_FORMAT(elf32-ntradlittlemips-freebsd)' > %tmipsn32el.script147# RUN: ld.lld %tmipsn32el.script -e _start %tmipsn32el -o %t4mipsn32el148# RUN: llvm-readobj --file-headers %t4mipsn32el \149# RUN: | FileCheck -DOSABI=FreeBSD --check-prefix=MIPSN32EL %s150# MIPSN32EL: ElfHeader {151# MIPSN32EL-NEXT: Ident {152# MIPSN32EL-NEXT: Magic: (7F 45 4C 46)153# MIPSN32EL-NEXT: Class: 32-bit (0x1)154# MIPSN32EL-NEXT: DataEncoding: LittleEndian (0x1)155# MIPSN32EL-NEXT: FileVersion: 1156# MIPSN32EL-NEXT: OS/ABI: [[OSABI]]157# MIPSN32EL-NEXT: ABIVersion: 1158# MIPSN32EL-NEXT: Unused: (00 00 00 00 00 00 00)159# MIPSN32EL-NEXT: }160# MIPSN32EL-NEXT: Type: Executable (0x2)161# MIPSN32EL-NEXT: Machine: EM_MIPS (0x8)162# MIPSN32EL-NEXT: Version: 1163# MIPSN32EL-NEXT: Entry:164# MIPSN32EL-NEXT: ProgramHeaderOffset: 0x34165# MIPSN32EL-NEXT: SectionHeaderOffset:166# MIPSN32EL-NEXT: Flags [167# MIPSN32EL-NEXT: EF_MIPS_ABI2168# MIPSN32EL-NEXT: EF_MIPS_ARCH_64169# MIPSN32EL-NEXT: EF_MIPS_CPIC170# MIPSN32EL-NEXT: ]171 172# RUN: llvm-mc -filetype=obj -triple=mips64-unknown-linux -position-independent \173# RUN: %s -o %tmips64174# RUN: ld.lld -m elf64btsmip -e _start %tmips64 -o %t2mips64175# RUN: llvm-readobj --file-headers %t2mips64 \176# RUN: | FileCheck -DOSABI=SystemV --check-prefix=MIPS64 %s177# RUN: ld.lld -m elf64btsmip_fbsd -e _start %tmips64 -o %t2mips64178# RUN: llvm-readobj --file-headers %t2mips64 \179# RUN: | FileCheck -DOSABI=FreeBSD --check-prefix=MIPS64 %s180# RUN: ld.lld %tmips64 -e _start -o %t3mips64181# RUN: llvm-readobj --file-headers %t3mips64 \182# RUN: | FileCheck -DOSABI=SystemV --check-prefix=MIPS64 %s183# RUN: echo 'OUTPUT_FORMAT(elf64-tradbigmips)' > %tmips64.script184# RUN: ld.lld %tmips64.script -e _start %tmips64 -o %t4mips64185# RUN: llvm-readobj --file-headers %t4mips64 \186# RUN: | FileCheck -DOSABI=SystemV --check-prefix=MIPS64 %s187# RUN: echo 'OUTPUT_FORMAT(elf64-tradbigmips-freebsd)' > %tmips64.script188# RUN: ld.lld %tmips64.script -e _start %tmips64 -o %t4mips64189# RUN: llvm-readobj --file-headers %t4mips64 \190# RUN: | FileCheck -DOSABI=FreeBSD --check-prefix=MIPS64 %s191# MIPS64: ElfHeader {192# MIPS64-NEXT: Ident {193# MIPS64-NEXT: Magic: (7F 45 4C 46)194# MIPS64-NEXT: Class: 64-bit (0x2)195# MIPS64-NEXT: DataEncoding: BigEndian (0x2)196# MIPS64-NEXT: FileVersion: 1197# MIPS64-NEXT: OS/ABI: [[OSABI]]198# MIPS64-NEXT: ABIVersion: 0199# MIPS64-NEXT: Unused: (00 00 00 00 00 00 00)200# MIPS64-NEXT: }201# MIPS64-NEXT: Type: Executable (0x2)202# MIPS64-NEXT: Machine: EM_MIPS (0x8)203# MIPS64-NEXT: Version: 1204# MIPS64-NEXT: Entry:205# MIPS64-NEXT: ProgramHeaderOffset: 0x40206# MIPS64-NEXT: SectionHeaderOffset:207# MIPS64-NEXT: Flags [208# MIPS64-NEXT: EF_MIPS_ARCH_64209# MIPS64-NEXT: EF_MIPS_CPIC210# MIPS64-NEXT: EF_MIPS_PIC211# MIPS64-NEXT: ]212 213# RUN: llvm-mc -filetype=obj -triple=mips64el-unknown-linux \214# RUN: -position-independent %s -o %tmips64el215# RUN: ld.lld -m elf64ltsmip -e _start %tmips64el -o %t2mips64el216# RUN: llvm-readobj --file-headers %t2mips64el \217# RUN: | FileCheck -DOSABI=SystemV --check-prefix=MIPS64EL %s218# RUN: ld.lld -m elf64ltsmip_fbsd -e _start %tmips64el -o %t2mips64el219# RUN: llvm-readobj --file-headers %t2mips64el \220# RUN: | FileCheck -DOSABI=FreeBSD --check-prefix=MIPS64EL %s221# RUN: ld.lld %tmips64el -e _start -o %t3mips64el222# RUN: llvm-readobj --file-headers %t3mips64el \223# RUN: | FileCheck -DOSABI=SystemV --check-prefix=MIPS64EL %s224# RUN: echo 'OUTPUT_FORMAT(elf64-tradlittlemips)' > %tmips64el.script225# RUN: ld.lld %tmips64el.script -e _start %tmips64el -o %t4mips64el226# RUN: llvm-readobj --file-headers %t4mips64el \227# RUN: | FileCheck -DOSABI=SystemV --check-prefix=MIPS64EL %s228# RUN: echo 'OUTPUT_FORMAT(elf64-tradlittlemips-freebsd)' > %tmips64el.script229# RUN: ld.lld %tmips64el.script -e _start %tmips64el -o %t4mips64el230# RUN: llvm-readobj --file-headers %t4mips64el \231# RUN: | FileCheck -DOSABI=FreeBSD --check-prefix=MIPS64EL %s232# MIPS64EL: ElfHeader {233# MIPS64EL-NEXT: Ident {234# MIPS64EL-NEXT: Magic: (7F 45 4C 46)235# MIPS64EL-NEXT: Class: 64-bit (0x2)236# MIPS64EL-NEXT: DataEncoding: LittleEndian (0x1)237# MIPS64EL-NEXT: FileVersion: 1238# MIPS64EL-NEXT: OS/ABI: [[OSABI]]239# MIPS64EL-NEXT: ABIVersion: 0240# MIPS64EL-NEXT: Unused: (00 00 00 00 00 00 00)241# MIPS64EL-NEXT: }242# MIPS64EL-NEXT: Type: Executable (0x2)243# MIPS64EL-NEXT: Machine: EM_MIPS (0x8)244# MIPS64EL-NEXT: Version: 1245# MIPS64EL-NEXT: Entry:246# MIPS64EL-NEXT: ProgramHeaderOffset: 0x40247# MIPS64EL-NEXT: SectionHeaderOffset:248# MIPS64EL-NEXT: Flags [249# MIPS64EL-NEXT: EF_MIPS_ARCH_64250# MIPS64EL-NEXT: EF_MIPS_CPIC251# MIPS64EL-NEXT: EF_MIPS_PIC252# MIPS64EL-NEXT: ]253 254.globl _start255_start:256