[PATCH] Object: Add support for bigobj

David Majnemer david.majnemer at gmail.com
Tue Sep 9 00:37:17 PDT 2014


Hi rafael, Bigcheese, ruiu,

This adds support for reading the "bigobj" variant of COFF produced by
cl's /bigobj and mingw's -mbig-obj.

The most significant difference that bigobj brings is more than 2**16
sections to COFF.

bigobj brings a few interesting differences with it:
- It doesn't have a Characteristics field in the file header.
- It doesn't have a SizeOfOptionalHeader field in the file header (it's
  only used in executable files).
- Auxiliary symbol records have the same width as a symbol table entry.
  Since symbol table entries are bigger, so are auxiliary symbol
  records.

Write support will come soon.

http://reviews.llvm.org/D5259

Files:
  include/llvm/Object/COFF.h
  include/llvm/Support/COFF.h
  lib/MC/WinCOFFObjectWriter.cpp
  lib/Object/COFFObjectFile.cpp
  test/MC/ARM/coff-file.s
  test/MC/COFF/alias.s
  test/MC/COFF/basic-coff-64.s
  test/MC/COFF/basic-coff.s
  test/MC/COFF/feat00.s
  test/MC/COFF/file.s
  test/MC/COFF/symbol-fragment-offset-64.s
  test/MC/COFF/symbol-fragment-offset.s
  test/MC/COFF/weak.s
  test/tools/llvm-readobj/Inputs/bigobj.coff-x86-64
  test/tools/llvm-readobj/bigobj.test
  test/tools/llvm-readobj/coff-file-sections-reading.test
  test/tools/llvm-readobj/cxx-cli-aux.test
  test/tools/llvm-readobj/sections-ext.test
  test/tools/llvm-readobj/symbols.test
  tools/llvm-nm/llvm-nm.cpp
  tools/llvm-objdump/COFFDump.cpp
  tools/llvm-objdump/llvm-objdump.cpp
  tools/llvm-readobj/COFFDumper.cpp
  tools/obj2yaml/coff2yaml.cpp
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D5259.13444.patch
Type: text/x-patch
Size: 70153 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20140909/5543f651/attachment.bin>


More information about the llvm-commits mailing list