From fa1c7d9bdf64ff4ae2348a127e984de1aeb23740 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 llvm-svn: 364052 --- .../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 llvm/test/tools/llvm-objcopy/ELF/Inputs/dynrel.elf diff --git a/llvm/test/tools/llvm-objcopy/ELF/Inputs/dynrel.elf b/llvm/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/llvm/test/tools/llvm-objcopy/ELF/prefix-alloc-sections-dynrelocsec.test b/llvm/test/tools/llvm-objcopy/ELF/prefix-alloc-sections-dynrelocsec.test index 9e267f6df0e0..217fe55c4463 100644 --- a/llvm/test/tools/llvm-objcopy/ELF/prefix-alloc-sections-dynrelocsec.test +++ b/llvm/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 ]