[PATCH] D82479: [llvm-size] Output REL, RELA and STRTAB sections in some cases
Owen Reynolds via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Fri Jun 26 10:23:10 PDT 2020
gbreynoo updated this revision to Diff 273769.
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D82479/new/
https://reviews.llvm.org/D82479
Files:
llvm/test/tools/llvm-size/output-alloc.test
llvm/tools/llvm-size/llvm-size.cpp
Index: llvm/tools/llvm-size/llvm-size.cpp
===================================================================
--- llvm/tools/llvm-size/llvm-size.cpp
+++ llvm/tools/llvm-size/llvm-size.cpp
@@ -187,10 +187,11 @@
switch (static_cast<ELFSectionRef>(Section).getType()) {
case ELF::SHT_NULL:
case ELF::SHT_SYMTAB:
+ return false;
case ELF::SHT_STRTAB:
case ELF::SHT_REL:
case ELF::SHT_RELA:
- return false;
+ return static_cast<ELFSectionRef>(Section).getFlags() & ELF::SHF_ALLOC;
}
return true;
}
Index: llvm/test/tools/llvm-size/output-alloc.test
===================================================================
--- /dev/null
+++ llvm/test/tools/llvm-size/output-alloc.test
@@ -0,0 +1,38 @@
+## gnu size has a number of special cases regarding REL, RELA and STRTAB sections being considered in size output.
+## To avoid unnecessary complexity llvm size outputs these sections in cases they have the SHF_ALLOC flag.
+
+# RUN: yaml2obj %s -o %t1
+# RUN: llvm-size --format=sysv %t1 | FileCheck %s
+
+# CHECK: section size addr
+# CHECK-NEXT: .rela.alloc
+# CHECK-NEXT: .rel.alloc
+# CHECK-NEXT: .strtab.alloc
+# CHECK-NEXT: Total
+# CHECK-EMPTY:
+
+--- !ELF
+FileHeader:
+ Class: ELFCLASS64
+ Data: ELFDATA2LSB
+ Type: ET_REL
+ Machine: EM_X86_64
+Sections:
+ - Name: .rela.alloc
+ Type: SHT_RELA
+ Flags: [ SHF_ALLOC ]
+ - Name: .rel.alloc
+ Type: SHT_REL
+ Flags: [ SHF_ALLOC ]
+ - Name: .strtab.alloc
+ Type: SHT_STRTAB
+ Flags: [ SHF_ALLOC ]
+ - Name: .rela
+ Type: SHT_RELA
+ Flags: []
+ - Name: .rel
+ Type: SHT_REL
+ Flags: []
+ - Name: .strtab
+ Type: SHT_STRTAB
+ Flags: []
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D82479.273769.patch
Type: text/x-patch
Size: 1693 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20200626/1bd41296/attachment-0001.bin>
More information about the llvm-commits
mailing list