aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Object
AgeCommit message (Collapse)AuthorFilesLines
2012-05-18Refactor data-in-code annotations.Jim Grosbach1-0/+13
Use a dedicated MachO load command to annotate data-in-code regions. This is the same format the linker produces for final executable images, allowing consistency of representation and use of introspection tools for both object and executable files. Data-in-code regions are annotated via ".data_region"/".end_data_region" directive pairs, with an optional region type. data_region_directive := ".data_region" { region_type } region_type := "jt8" | "jt16" | "jt32" | "jta32" end_data_region_directive := ".end_data_region" The previous handling of ARM-style "$d.*" labels was broken and has been removed. Specifically, it didn't handle ARM vs. Thumb mode when marking the end of the section. rdar://11459456 llvm-svn: 157062
2012-05-02Fix the implementation of MachOObjectFile::isSectionZeroInit so it follows ↵Eli Friedman1-4/+6
the MachO spec. llvm-svn: 155976
2012-04-16Implement GDB integration for source level debugging of code JITed usingPreston Gurd1-10/+0
the MCJIT execution engine. The GDB JIT debugging integration support works by registering a loaded object image with a pre-defined function that GDB will monitor if GDB is attached. GDB integration support is implemented for ELF only at this time. This integration requires GDB version 7.0 or newer. Patch by Andy Kaylor! llvm-svn: 154868
2012-04-13Remove unused variable.Benjamin Kramer1-3/+0
llvm-svn: 154661
2012-04-12This patch improves the MCJIT runtime dynamic loader by adding new handlingPreston Gurd2-4/+72
of zero-initialized sections, virtual sections and common symbols and preventing the loading of sections which are not required for execution such as debug information. Patch by Andy Kaylor! llvm-svn: 154610
2012-04-10Add a constructor for DataRefImpl and remove excess initialization.Danil Malyshev2-16/+0
llvm-svn: 154371
2012-04-03Object: drop bogus VMCore dependencyDylan Noblesmith1-1/+1
llvm-svn: 153956
2012-03-19[Object/COFF]: Expose getSectionContents.Michael J. Spencer1-10/+19
llvm-svn: 153051
2012-03-19[Object/COFF]: Expose getSectionName.Michael J. Spencer1-19/+24
Also add some documentation. llvm-svn: 153050
2012-03-15Fix bug found by warning.Michael J. Spencer1-1/+2
llvm-svn: 152812
2012-03-09[Object]David Meyer3-3/+3
Make Binary::TypeID more granular, to distinguish between ELF 32/64 little/big llvm-svn: 152435
2012-03-01[Object]David Meyer2-0/+11
Add ObjectFile::getLoadName() for retrieving the soname/installname of a shared object. llvm-svn: 151845
2012-03-01[Object]David Meyer2-0/+41
* Add begin_dynamic_table() / end_dynamic_table() private interface to ELFObjectFile. * Add begin_libraries_needed() / end_libraries_needed() interface to ObjectFile, for grabbing the list of needed libraries for a shared object or dynamic executable. * Implement this new interface completely for ELF, leave stubs for COFF and MachO. * Add 'llvm-readobj' tool for dumping ObjectFile information. llvm-svn: 151785
2012-02-29[Object] Add symbol attribute flags: ST_ThreadLocal, ST_Common, and ↵David Meyer2-4/+13
ST_Undefined. Implement these completely for ELF. Rename ST_External to ST_Unknown, and slightly change its semantics. It now only indicates that the symbol's type is unknown, not that the symbol is undefined. (For that, use ST_Undefined). llvm-svn: 151696
2012-02-28In the ObjectFile interface, replace isInternal(), isAbsolute(), isGlobal(), ↵David Meyer2-65/+32
and isWeak(), with a bitset of flags. llvm-svn: 151670
2012-02-28[Object] Add {begin,end}_dynamic_symbols stubs and implementation for ELF.Michael J. Spencer2-0/+19
Add -D option to llvm-nm to dump dynamic symbols. Patch by David Meyer. llvm-svn: 151600
2012-02-22Remove static ctor.Benjamin Kramer1-2/+2
llvm-svn: 151160
2012-02-12Expose the ELFObjectFile class directly in the Object/ELF.h header, similarlyEli Bendersky1-1695/+25
to what's done for MachO and COFF. This allows advanced uses of the class to be implemented outside the Object library. In particular, the DyldELFObject subclass is now moved into its logical home - ExecutionEngine/RuntimeDyld. This patch was reviewed by Michael Spencer. llvm-svn: 150327
2012-02-04Object: avoid undefined behavior when bounds-checkingDylan Noblesmith1-8/+22
Don't form an out of bounds pointer just to test if it would be out of bounds. Also perform the same bounds checking for all the previous mapped structures. llvm-svn: 149750
2012-01-24Sink assert-only variables into the assertsMatt Beaumont-Gay1-16/+10
llvm-svn: 148849
2012-01-23Silence warnings in -asserts buildMatt Beaumont-Gay1-0/+6
llvm-svn: 148715
2012-01-22Remove trailing spacesEli Bendersky1-2/+2
llvm-svn: 148654
2012-01-22Basic runtime dynamic loading capabilities added to ELFObjectFile, implementedEli Bendersky1-19/+239
in a subclass named DyldELFObject. This class supports rebasing the object file it represents by re-mapping section addresses to the actual memory addresses the object was placed in. This is required for MC-JIT implementation on ELF with debugging support. Patch reviewed on llvm-commits. Developed together with Ashok Thirumurthi and Andrew Kaylor. llvm-svn: 148653
2011-12-25Remove unused variables.Rafael Espindola1-1/+1
llvm-svn: 147261
2011-12-20Unweaken vtables as per ↵David Blaikie2-0/+4
http://llvm.org/docs/CodingStandards.html#ll_virtual_anch llvm-svn: 146960
2011-12-12LLVMBuild: Remove trailing newline, which irked me.Daniel Dunbar1-1/+0
llvm-svn: 146409
2011-11-29build/CMake: Finish removal of add_llvm_library_dependencies.Daniel Dunbar1-5/+0
llvm-svn: 145420
2011-11-29Fixed ObjectFile functions:Danil Malyshev4-32/+140
- getSymbolOffset() renamed as getSymbolFileOffset() - getSymbolFileOffset(), getSymbolAddress(), getRelocationAddress() returns same result for ELFObjectFile, MachOObjectFile and COFFObjectFile. - added getRelocationOffset() - fixed MachOObjectFile::getSymbolSize() - fixed MachOObjectFile::getSymbolSection() - fixed MachOObjectFile::getSymbolOffset() for symbols without section data. llvm-svn: 145408
2011-11-28Fix some possible gcc-4.2 may be used uninitialized warnings.Daniel Dunbar1-2/+2
llvm-svn: 145292
2011-11-27Revert r145180 as it is causing test failures on all the bots.Chandler Carruth4-126/+32
Original commit message: Fixed ObjectFile functions: - getSymbolOffset() renamed as getSymbolFileOffset() - getSymbolFileOffset(), getSymbolAddress(), getRelocationAddress() returns same result for ELFObjectFile, MachOObjectFile and COFFObjectFile. - added getRelocationOffset() - fixed MachOObjectFile::getSymbolSize() - fixed MachOObjectFile::getSymbolSection() - fixed MachOObjectFile::getSymbolOffset() for symbols without section data. llvm-svn: 145182
2011-11-27Fixed ObjectFile functions:Danil Malyshev4-32/+126
- getSymbolOffset() renamed as getSymbolFileOffset() - getSymbolFileOffset(), getSymbolAddress(), getRelocationAddress() returns same result for ELFObjectFile, MachOObjectFile and COFFObjectFile. - added getRelocationOffset() - fixed MachOObjectFile::getSymbolSize() - fixed MachOObjectFile::getSymbolSection() - fixed MachOObjectFile::getSymbolOffset() for symbols without section data. llvm-svn: 145180
2011-11-16Object/COFF: Support common symbols.Michael J. Spencer1-1/+3
llvm-svn: 144861
2011-11-12build: Attempt to rectify inconsistencies between CMake and LLVMBuild ↵Daniel Dunbar1-1/+1
versions of explicit dependencies. - The hope is that we have a tool/test to verify these are accurate (and tight) soon. llvm-svn: 144444
2011-11-08Object/COFF: Fix PE reading.Michael J. Spencer1-23/+30
llvm-svn: 144148
2011-11-05MachOObject: Use DataExtractor's uleb parser instead of rolling our own.Benjamin Kramer1-21/+10
llvm-svn: 143810
2011-11-04Simplify code.Benjamin Kramer1-4/+3
llvm-svn: 143695
2011-11-03build: Add initial cut at LLVMBuild.txt files.Daniel Dunbar1-0/+23
llvm-svn: 143634
2011-11-02Removed unused variable.Chad Rosier1-1/+0
llvm-svn: 143591
2011-11-02object/COFF: Properly initalize uses of DataRefImpl.Michael J. Spencer1-0/+2
llvm-svn: 143562
2011-11-02Object/Archive: Add symbol table iteration.Michael J. Spencer1-9/+71
llvm-svn: 143561
2011-10-27If we're searching for a symbol reference to pretty-print a scattered ↵Owen Anderson1-0/+18
relocation address, and we don't find a symbol table entry, try section begin addresses as well. llvm-svn: 143151
2011-10-27Fix pretty printing of i386 local sect diff relocations, TLV relocations, ↵Owen Anderson1-7/+50
and x86_64 TLV relocations in MachO. llvm-svn: 143140
2011-10-27Expose relocation accessors through the libObject C API.Owen Anderson1-0/+45
llvm-svn: 143109
2011-10-27Add relocation iterators to the libObject C API.Owen Anderson1-0/+23
llvm-svn: 143107
2011-10-26Add support for scattered relocations to the MachO relocatation pretty printer.Owen Anderson1-86/+144
llvm-svn: 143051
2011-10-26The order of the two symbol listings in a Macho x86_64 subtractor relocation ↵Owen Anderson1-1/+3
is reversed from what seems intuitive to me. llvm-svn: 143035
2011-10-26Include the full 64 bits of relocation data in the type info for MachO ↵Owen Anderson1-1/+3
relocations, so that we can recognize scattered relocations. llvm-svn: 143033
2011-10-26Expand relocation type field to 64 bits. MachO scattered relocations ↵Owen Anderson3-4/+4
require 33 bits of type info. llvm-svn: 143032
2011-10-26Improve pretty printing of GOT relocations in MachO on x86_64.Owen Anderson1-0/+7
llvm-svn: 143031
2011-10-26Remove unused variable.Eric Christopher1-1/+0
llvm-svn: 143011