Currently, only custom sections can be selected by operations that use section names, because only custom sections have explicit names (whereas known sections have names defined by the spec and only use their indices in the binary format). This CL makes objdopy use the spec-defined names for these sections, allowing them to be used in operations such as dumping and removal. This is a prerequisite for fixing https://github.com/emscripten-core/emscripten/issues/13084 Differential Revision: https://reviews.llvm.org/D126509
47 lines
1.4 KiB
Plaintext
47 lines
1.4 KiB
Plaintext
## Test the contents of a custom section dumped from a binary.
|
|
# RUN: yaml2obj %s -o %t
|
|
# RUN: llvm-objcopy --dump-section=producers=%t.sec %t
|
|
# RUN: od -t x1 %t.sec | FileCheck %s
|
|
|
|
# RUN: not llvm-objcopy --dump-section=nonexistent=%t.sec %t 2>&1 | FileCheck --check-prefix=NONEXISTENT %s
|
|
# RUN: not llvm-objcopy --dump-section=producers=%t.dir/bar %t 2>&1 | FileCheck -DMSG=%errc_ENOENT --check-prefix=DIROUT %s
|
|
|
|
## Raw contents of the producers section.
|
|
# CHECK: 0000000 01 0c 70 72 6f 63 65 73 73 65 64 2d 62 79 01 05
|
|
# CHECK: 0000020 63 6c 61 6e 67 05 39 2e 30 2e 30
|
|
|
|
# NONEXISTENT: section 'nonexistent' not found
|
|
# DIROUT: error: {{.*}}/bar': [[MSG]]
|
|
|
|
## Test dumping the type section (a known section).
|
|
# RUN: llvm-objcopy --dump-section=TYPE=%t.sec %t
|
|
# RUN: od -t x1 %t.sec | FileCheck %s --check-prefix=TYPESEC
|
|
|
|
## Raw contents of the type section.
|
|
# TYPESEC: 000000 01 60 01 7f 01 7d
|
|
# TYPESEC: 000006
|
|
|
|
## Check that dumping and removing a section works in the same invocation
|
|
# RUN: llvm-objcopy --dump-section=producers=%t.sec --remove-section=producers %t %t2
|
|
# RUN: od -t x1 %t.sec | FileCheck %s
|
|
# RUN: obj2yaml %t2 | FileCheck --check-prefix=REMOVED %s
|
|
|
|
# REMOVED-NOT: producers
|
|
|
|
--- !WASM
|
|
FileHeader:
|
|
Version: 0x00000001
|
|
Sections:
|
|
- Type: TYPE
|
|
Signatures:
|
|
- Index: 0
|
|
ParamTypes:
|
|
- I32
|
|
ReturnTypes:
|
|
- F32
|
|
- Type: CUSTOM
|
|
Name: producers
|
|
Tools:
|
|
- Name: clang
|
|
Version: 9.0.0
|