[PATCH] D51961: [objcopy] make objcopy follow program header standards

Armando Montanez via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Sep 11 17:58:01 PDT 2018


amontanez updated this revision to Diff 165003.
amontanez added a comment.

Now using llvm-readobj instead of llvm-readelf for test, updated patch to use Ehdr.e_phnum instead of calling size() repeatedly.


https://reviews.llvm.org/D51961

Files:
  llvm/test/tools/llvm-objcopy/relocatable-phdr.test
  llvm/tools/llvm-objcopy/Object.cpp


Index: llvm/tools/llvm-objcopy/Object.cpp
===================================================================
--- llvm/tools/llvm-objcopy/Object.cpp
+++ llvm/tools/llvm-objcopy/Object.cpp
@@ -1050,8 +1050,8 @@
   Ehdr.e_version = Obj.Version;
   Ehdr.e_entry = Obj.Entry;
   Ehdr.e_phnum = size(Obj.segments());
-  Ehdr.e_phoff = (size(Obj.segments()) != 0) ? Obj.ProgramHdrSegment.Offset : 0;
-  Ehdr.e_phentsize = (size(Obj.segments()) != 0) ? sizeof(Elf_Phdr) : 0;
+  Ehdr.e_phoff = (Ehdr.e_phnum != 0) ? Obj.ProgramHdrSegment.Offset : 0;
+  Ehdr.e_phentsize = (Ehdr.e_phnum != 0) ? sizeof(Elf_Phdr) : 0;
   Ehdr.e_flags = Obj.Flags;
   Ehdr.e_ehsize = sizeof(Elf_Ehdr);
   Ehdr.e_shentsize = sizeof(Elf_Shdr);
Index: llvm/test/tools/llvm-objcopy/relocatable-phdr.test
===================================================================
--- llvm/test/tools/llvm-objcopy/relocatable-phdr.test
+++ llvm/test/tools/llvm-objcopy/relocatable-phdr.test
@@ -2,15 +2,15 @@
 # for offset and header size when copied with llvm-objcopy.
 # RUN: yaml2obj %s > %t
 # RUN: llvm-objcopy %t %t2
-# RUN: llvm-readelf -file-headers %t2 | FileCheck %s
+# RUN: llvm-readobj -file-headers %t2 | FileCheck %s
 
 !ELF
 FileHeader:
   Class:           ELFCLASS64
   Data:            ELFDATA2LSB
   Type:            ET_EXEC
   Machine:         EM_X86_64
 
-# CHECK:     Start of program headers:          0 (bytes into file)
-# CHECK:     Size of program headers:           0 (bytes)
-# CHECK-NEXT:Number of program headers:         0
+# CHECK:     ProgramHeaderOffset: 0x0
+# CHECK:     ProgramHeaderEntrySize: 0
+# CHECK-NEXT:ProgramHeaderCount: 0


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D51961.165003.patch
Type: text/x-patch
Size: 1628 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20180912/db8e8520/attachment.bin>


More information about the llvm-commits mailing list