mirror of
https://github.com/RPCS3/llvm.git
synced 2025-01-06 20:10:26 +00:00
19ab8f850f
Now the only method to configure ELF section's content and size is to assign a hexadecimal string to the `Content` field. Unfortunately this way is completely useless when you need to declare a really large section. To solve this problem this patch adds one more optional field `Size` to the `RawContentSection` structure. When yaml2obj generates an ELF file it uses the following algorithm: 1. If both `Content` and `Size` fields are missed create an empty section. 2. If only `Content` field is missed take section length from the `Size` field and fill the section by zero. 3. If only `Size` field is missed create a section using data from the `Content` field. 4. If both `Content` and `Size` fields are provided validate that the `Size` value is not less than size of `Content` data. Than take section length from the `Size`, fill beginning of the section by `Content` and the rest by zero. Examples -------- * Create a section 0x10000 bytes long filled by zero Name: .data Type: SHT_PROGBITS Flags: [ SHF_ALLOC ] Size: 0x10000 * Create a section 0x10000 bytes long starting from 'CA' 'FE' 'BA' 'BE' Name: .data Type: SHT_PROGBITS Flags: [ SHF_ALLOC ] Content: CAFEBABE Size: 0x10000 The patch reviewed by Michael Spencer. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@208995 91177308-0d34-0410-b5e6-96231b3b80d8 |
||
---|---|---|
.. | ||
ARM | ||
Inputs | ||
Mips | ||
X86 | ||
ar-create.test | ||
archive-delete.test | ||
archive-error-tmp.txt | ||
archive-extract-dir.test | ||
archive-format.test | ||
archive-long-index.test | ||
archive-move.test | ||
archive-replace-pos.test | ||
archive-symtab.test | ||
archive-toc.test | ||
archive-update.test | ||
check_binary_output.ll | ||
coff-archive-short.test | ||
coff-archive.test | ||
corrupt.test | ||
directory.ll | ||
elf-reloc-no-sym.test | ||
extract.ll | ||
lit.local.cfg | ||
mangle-ir.ll | ||
nm-archive.test | ||
nm-error.test | ||
nm-ir.ll | ||
nm-shared-object.test | ||
nm-trivial-object.test | ||
nm-universal-binary.test | ||
nm-weak-global-macho.test | ||
obj2yaml-coff-long-file-symbol.test | ||
obj2yaml-coff-weak-external.test | ||
obj2yaml.test | ||
objdump-file-header.test | ||
objdump-private-headers.test | ||
objdump-relocations.test | ||
objdump-section-content.test | ||
objdump-sectionheaders.test | ||
objdump-symbol-table.test | ||
readobj-elf-versioning.test | ||
readobj-shared-object.test | ||
readobj.test | ||
relocation-executable.test | ||
simple-archive.test | ||
yaml2obj-elf-bits-endian.test | ||
yaml2obj-elf-file-headers-with-e_flags.yaml | ||
yaml2obj-elf-file-headers.yaml | ||
yaml2obj-elf-rel.yaml | ||
yaml2obj-elf-section-basic.yaml | ||
yaml2obj-elf-section-invalid-size.yaml | ||
yaml2obj-elf-symbol-basic.yaml | ||
yaml2obj-elf-symbol-LocalGlobalWeak.yaml | ||
yaml2obj-readobj.test |