[llvm] r178190 - Updated ELF relocation test for .eh_frame section

David Blaikie dblaikie at gmail.com
Wed Mar 27 19:01:25 PDT 2013


On Wed, Mar 27, 2013 at 3:58 PM, Jack Carter <jack.carter at imgtec.com> wrote:
> Author: jacksprat
> Date: Wed Mar 27 17:58:49 2013
> New Revision: 178190
>
> URL: http://llvm.org/viewvc/llvm-project?rev=178190&view=rev
> Log:
> Updated ELF relocation test for .eh_frame section
>
> Made sure we were looking a correct section
> Added Mips32/64 as an extra check
> Updated llvm-objdump to generate symbolic info for Mips relocations
>
> Modified:
>     llvm/trunk/include/llvm/Object/ELF.h
>     llvm/trunk/test/MC/ELF/fde-reloc.s
>
> Modified: llvm/trunk/include/llvm/Object/ELF.h
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/Object/ELF.h?rev=178190&r1=178189&r2=178190&view=diff
> ==============================================================================
> --- llvm/trunk/include/llvm/Object/ELF.h (original)
> +++ llvm/trunk/include/llvm/Object/ELF.h Wed Mar 27 17:58:49 2013
> @@ -1634,6 +1634,63 @@ error_code ELFObjectFile<ELFT>::getReloc
>        res = "Unknown";
>      }
>      break;
> +  case ELF::EM_MIPS:
> +    switch (type) {
> +      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_NONE);
> +      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_16);
> +      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_32);
> +      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_REL32);
> +      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_26);
> +      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_HI16);
> +      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_LO16);
> +      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_GPREL16);
> +      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_LITERAL);
> +      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_GOT16);
> +      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_PC16);
> +      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_CALL16);
> +      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_GPREL32);
> +      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_SHIFT5);
> +      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_SHIFT6);
> +      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_64);
> +      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_GOT_DISP);
> +      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_GOT_PAGE);
> +      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_GOT_OFST);
> +      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_GOT_HI16);
> +      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_GOT_LO16);
> +      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_SUB);
> +      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_INSERT_A);
> +      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_INSERT_B);
> +      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_DELETE);
> +      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_HIGHER);
> +      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_HIGHEST);
> +      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_CALL_HI16);
> +      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_CALL_LO16);
> +      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_SCN_DISP);
> +      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_REL16);
> +      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_ADD_IMMEDIATE);
> +      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_PJUMP);
> +      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_RELGOT);
> +      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_JALR);
> +      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_TLS_DTPMOD32);
> +      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_TLS_DTPREL32);
> +      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_TLS_DTPMOD64);
> +      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_TLS_DTPREL64);
> +      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_TLS_GD);
> +      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_TLS_LDM);
> +      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_TLS_DTPREL_HI16);
> +      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_TLS_DTPREL_LO16);
> +      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_TLS_GOTTPREL);
> +      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_TLS_TPREL32);
> +      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_TLS_TPREL64);
> +      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_TLS_TPREL_HI16);
> +      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_TLS_TPREL_LO16);
> +      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_GLOB_DAT);
> +      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_COPY);
> +      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_JUMP_SLOT);
> +    default:
> +      res = "Unknown";
> +    }
> +    break;
>    case ELF::EM_AARCH64:
>      switch (type) {
>        LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_NONE);
>
> Modified: llvm/trunk/test/MC/ELF/fde-reloc.s
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/MC/ELF/fde-reloc.s?rev=178190&r1=178189&r2=178190&view=diff
> ==============================================================================
> --- llvm/trunk/test/MC/ELF/fde-reloc.s (original)
> +++ llvm/trunk/test/MC/ELF/fde-reloc.s Wed Mar 27 17:58:49 2013

Seems to be failing:
http://lab.llvm.org:8011/builders/clang-x86_64-ubuntu-gdb-75/builds/3456

> @@ -1,5 +1,18 @@
> -// RUN: llvm-mc -filetype=obj %s -o - -triple x86_64-pc-linux | llvm-objdump -r - | FileCheck --check-prefix=X86-64 %s
> -// RUN: llvm-mc -filetype=obj %s -o - -triple i686-pc-linux | llvm-objdump -r - | FileCheck --check-prefix=I686 %s
> +// This just tests that a relocation of the specified type shows up as the first
> +// relocation in the relocation section for .eh_frame when produced by the
> +// assembler.
> +
> +// RUN: llvm-mc -filetype=obj %s -o - -triple x86_64-pc-linux | \
> +// RUN: llvm-objdump -r - | FileCheck --check-prefix=X86-64 %s
> +
> +// RUN: llvm-mc -filetype=obj %s -o - -triple i686-pc-linux | \
> +// RUN: llvm-objdump -r - | FileCheck --check-prefix=I686 %s
> +
> +// RUN: llvm-mc -filetype=obj %s -o - -triple mips-unknown-unknown | \
> +// RUN: llvm-objdump -r - | FileCheck --check-prefix=MIPS32 %s
> +
> +// RUN: llvm-mc -filetype=obj %s -o - -triple mips64-unknown-unknown | \
> +// RUN: llvm-objdump -r - | FileCheck --check-prefix=MIPS64 %s
>
>  // PR15448
>
> @@ -7,5 +20,14 @@ func:
>         .cfi_startproc
>         .cfi_endproc
>
> -// X86-64: R_X86_64_PC32
> -// I686: R_386_PC32
> +// X86-64: RELOCATION RECORDS FOR [.eh_frame]:
> +// X86-64-NEXT: R_X86_64_PC32
> +
> +// I686: RELOCATION RECORDS FOR [.eh_frame]:
> +// I686-NEXT: R_386_PC32
> +
> +// MIPS32: RELOCATION RECORDS FOR [.eh_frame]:
> +// MIPS32-NEXT: R_MIPS_32
> +
> +// MIPS64: RELOCATION RECORDS FOR [.eh_frame]:
> +// MIPS64-NEXT: R_MIPS_64
>
>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits



More information about the llvm-commits mailing list