mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-23 03:02:36 +01:00
[llvm-objcopy][ELF] Allow --dump-section to dump an empty non-SHT_NOBITS section
This is the ELF part of D75949. GNU objcopy from binutils 2.35 onwards will support an empty non-SHT_NOBITS section as well https://sourceware.org/git/?p=binutils-gdb.git;a=commit;h=e052e2ba295a65b6ea80cbc3f90495beca299c42 Reviewed By: jhenderson Differential Revision: https://reviews.llvm.org/D79339
This commit is contained in:
parent
288e72abc1
commit
4e41eb3f79
@ -4,9 +4,11 @@
|
||||
# RUN: llvm-objcopy --dump-section .text=%t4 %t %t5
|
||||
# RUN: llvm-objcopy --dump-section .foo=%t6 %t %t7
|
||||
# RUN: not llvm-objcopy --dump-section .bar=%t8 %t %t9 2>&1 | FileCheck %s --check-prefix=NOBITS -DINPUT=%t
|
||||
# RUN: llvm-objcopy --dump-section .empty=%t.empty %t /dev/null
|
||||
# RUN: od -t x1 %t2 | FileCheck %s --ignore-case
|
||||
# RUN: od -t x1 %t6 | FileCheck %s --ignore-case --check-prefix=NON-ALLOC
|
||||
# RUN: wc -c %t2 | FileCheck %s --check-prefix=SIZE
|
||||
# RUN: wc -c %t.empty | FileCheck %s --check-prefix=EMPTY
|
||||
# RUN: diff %t2 %t3
|
||||
# RUN: diff %t4 %t3
|
||||
|
||||
@ -26,6 +28,9 @@ Sections:
|
||||
Type: SHT_PROGBITS
|
||||
Flags: [ SHF_WRITE ]
|
||||
Content: "CAFE"
|
||||
- Name: .empty
|
||||
Type: SHT_PROGBITS
|
||||
Flags: [ SHF_ALLOC ]
|
||||
- Name: .bar
|
||||
Type: SHT_NOBITS
|
||||
Flags: [ SHF_WRITE ]
|
||||
@ -42,3 +47,5 @@ ProgramHeaders:
|
||||
# SIZE: 4
|
||||
|
||||
# NOBITS: error: '[[INPUT]]': cannot dump section '.bar': it has no contents
|
||||
|
||||
# EMPTY: 0
|
||||
|
@ -288,7 +288,7 @@ static Error dumpSectionToFile(StringRef SecName, StringRef Filename,
|
||||
Object &Obj) {
|
||||
for (auto &Sec : Obj.sections()) {
|
||||
if (Sec.Name == SecName) {
|
||||
if (Sec.OriginalData.empty())
|
||||
if (Sec.Type == SHT_NOBITS)
|
||||
return createStringError(object_error::parse_failed,
|
||||
"cannot dump section '%s': it has no contents",
|
||||
SecName.str().c_str());
|
||||
|
Loading…
Reference in New Issue
Block a user