From 6c9d16cc7d3feecde138464615973e29a69d714c Mon Sep 17 00:00:00 2001 From: George Rimar Date: Fri, 21 Jun 2019 14:15:15 +0000 Subject: [PATCH] [llvm-objcopy] - Get rid of dynrel.elf precompiled binary from inputs. We do not have to spread using the precompiled binaries in the tests, when we can use YAML. This patch removes the dynrel.elf binary and adds a few comments to the test cases. Differential revision: https://reviews.llvm.org/D63641 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@364052 91177308-0d34-0410-b5e6-96231b3b80d8 --- test/tools/llvm-objcopy/ELF/Inputs/dynrel.elf | Bin 13560 -> 0 bytes .../llvm-objcopy/ELF/dynamic-relocations.test | 61 ++++++++++++------ .../prefix-alloc-sections-dynrelocsec.test | 23 ++++++- 3 files changed, 64 insertions(+), 20 deletions(-) delete mode 100644 test/tools/llvm-objcopy/ELF/Inputs/dynrel.elf diff --git a/test/tools/llvm-objcopy/ELF/Inputs/dynrel.elf b/test/tools/llvm-objcopy/ELF/Inputs/dynrel.elf deleted file mode 100644 index fe9d6835421d72a2b907566c9feb115ed90aeacf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13560 zcmeI3&uddb5XUF+N7X8Qh+@Hm>p{K9BLxeghZ3J)RyVah-x-j zosbO;BS^$ap44jPu?%8Wa$@sAB2UVQd6=*fB#X%8BpO7J*x$?V<#ycPfAX-7)F>r5i2Q#O_PL&u`P|bQbBF6L11f zzzH}3C*TB}fD>>6PQVE`0Vgmw1n~dtq~P1h|BI7hH=TeJZ~{)i2{-{K-~^n26L11f zzzH~kIU;~J-H=z4+OL@%>LF@)Grny8Qzr4A{)*Z1UR)a9vLDuhnEb_nHsr^*{OrnX z{tGtFj}BtPHv&hsppK+(?+)MgMr)zn-U#>dMvmw9Nmym-K6%yT_l>w-onP-KzlZ$m z{XFIRP@eLBXWUn-98o^%?RD~ZdnM&%?>+ZXeN&XGa875i+oil)3;O! zR`(&(6)L})Ro!ONog_cA`;=LJK%hx;SKhm<$)1EkY$2FDCe+{_^~15siqu%;tG)Ttov&Dugt#4Qfk2ZIG5+ %t1 +# RUN: llvm-objcopy %t1 %t2 +# RUN: llvm-readobj --sections --section-data %t2 | FileCheck %s + +# CHECK: Name: .rela.plt +# CHECK-NEXT: Type: SHT_RELA +# CHECK-NEXT: Flags [ +# CHECK-NEXT: SHF_ALLOC +# CHECK-NEXT: ] +# CHECK-NEXT: Address: +# CHECK-NEXT: Offset: +# CHECK-NEXT: Size: 24 +# CHECK-NEXT: Link: +# CHECK-NEXT: Info: +# CHECK-NEXT: AddressAlignment: 8 +# CHECK-NEXT: EntrySize: 24 +# CHECK-NEXT: SectionData ( +# CHECK-NEXT: 0000: 18202000 00000000 07000000 01000000 |. .............| +# CHECK-NEXT: 0010: 00000000 00000000 |........| +# CHECK-NEXT: ) + +--- !ELF +FileHeader: + Class: ELFCLASS64 + Data: ELFDATA2LSB + Type: ET_EXEC + Machine: EM_X86_64 +Sections: + - Name: .rela.plt + Type: SHT_RELA + Flags: [ SHF_ALLOC ] + Address: 0x0000000000200220 + Link: 0 + AddressAlign: 0x0000000000000008 + Relocations: + - Offset: 0x0000000000202018 + Symbol: foo + Type: R_X86_64_JUMP_SLOT +Symbols: + - Name: foo + Binding: STB_GLOBAL diff --git a/test/tools/llvm-objcopy/ELF/prefix-alloc-sections-dynrelocsec.test b/test/tools/llvm-objcopy/ELF/prefix-alloc-sections-dynrelocsec.test index 9e267f6df0e..217fe55c446 100644 --- a/test/tools/llvm-objcopy/ELF/prefix-alloc-sections-dynrelocsec.test +++ b/test/tools/llvm-objcopy/ELF/prefix-alloc-sections-dynrelocsec.test @@ -1,5 +1,24 @@ -# RUN: llvm-objcopy --prefix-alloc-sections=.prefix %p/Inputs/dynrel.elf %t -# RUN: llvm-readobj --sections %t | FileCheck %s +## Check that llvm-objcopy can correctly add a prefix to +## a dynamic relocation section and its target section. + +# RUN: yaml2obj %s > %t1 +# RUN: llvm-objcopy --prefix-alloc-sections=.prefix %t1 %t2 +# RUN: llvm-readobj --sections %t2 | FileCheck %s # CHECK: Name: .prefix.rela.plt # CHECK: Name: .prefix.plt + +--- !ELF +FileHeader: + Class: ELFCLASS64 + Data: ELFDATA2LSB + Type: ET_EXEC + Machine: EM_X86_64 +Sections: + - Name: .rela.plt + Type: SHT_RELA + Flags: [ SHF_ALLOC ] + Link: 0 + - Name: .plt + Type: SHT_PROGBITS + Flags: [ SHF_ALLOC, SHF_EXECINSTR ] -- 2.50.1