c2413f59e4 
								
							 
						 
						
							
							
								
								Convert MachOObjectFile to a template.  
							
							... 
							
							
							
							For now it is templated only on being 64 or 32 bits. I will add little/big
endian next.
llvm-svn: 179097 
							
						 
						
							2013-04-09 14:49:08 +00:00  
				
					
						
							
							
								 
						
							
								eb8b211e61 
								
							 
						 
						
							
							
								
								More uses for SymbolTableEntryBase.  
							
							... 
							
							
							
							llvm-svn: 179076 
							
						 
						
							2013-04-09 01:04:06 +00:00  
				
					
						
							
							
								 
						
							
								5d6cec9bff 
								
							 
						 
						
							
							
								
								Add a SymbolTableEntryBase.  
							
							... 
							
							
							
							Use it when we don't need to know if we have a 32 or 64 bit SymbolTableEntry.
llvm-svn: 179074 
							
						 
						
							2013-04-09 00:22:58 +00:00  
				
					
						
							
							
								 
						
							
								65d601f96c 
								
							 
						 
						
							
							
								
								Add a SectionBase struct.  
							
							... 
							
							
							
							Use it to share code and when we don't need to know if we have a 32 or 64
bit Section.
llvm-svn: 179072 
							
						 
						
							2013-04-08 23:57:13 +00:00  
				
					
						
							
							
								 
						
							
								c0406e162c 
								
							 
						 
						
							
							
								
								Template the MachO types over the word size.  
							
							... 
							
							
							
							llvm-svn: 179051 
							
						 
						
							2013-04-08 20:45:01 +00:00  
				
					
						
							
							
								 
						
							
								29d4501774 
								
							 
						 
						
							
							
								
								Remove is64BitLoadCommand.  
							
							... 
							
							
							
							llvm-svn: 179048 
							
						 
						
							2013-04-08 20:18:53 +00:00  
				
					
						
							
							
								 
						
							
								d66c414619 
								
							 
						 
						
							
							
								
								Add all 4 MachO object types. Use the stored type to implement is64Bits().  
							
							... 
							
							
							
							llvm-svn: 179021 
							
						 
						
							2013-04-08 13:25:33 +00:00  
				
					
						
							
							
								 
						
							
								421305aff8 
								
							 
						 
						
							
							
								
								Make MachOObjectFile independent from MachOObject.  
							
							... 
							
							
							
							llvm-svn: 178998 
							
						 
						
							2013-04-07 20:01:29 +00:00  
				
					
						
							
							
								 
						
							
								c1f28b6a8e 
								
							 
						 
						
							
							
								
								Implement MachOObjectFile::getData directly.  
							
							... 
							
							
							
							llvm-svn: 178997 
							
						 
						
							2013-04-07 19:42:15 +00:00  
				
					
						
							
							
								 
						
							
								28814d7911 
								
							 
						 
						
							
							
								
								Implement MachOObjectFile::is64Bit directly.  
							
							... 
							
							
							
							llvm-svn: 178996 
							
						 
						
							2013-04-07 19:38:15 +00:00  
				
					
						
							
							
								 
						
							
								774a8cec37 
								
							 
						 
						
							
							
								
								Implement MachOObjectFile::getHeaderSize directly.  
							
							... 
							
							
							
							llvm-svn: 178995 
							
						 
						
							2013-04-07 19:31:49 +00:00  
				
					
						
							
							
								 
						
							
								d665259104 
								
							 
						 
						
							
							
								
								Implement MachOObjectFile::getHeader directly.  
							
							... 
							
							
							
							llvm-svn: 178994 
							
						 
						
							2013-04-07 19:26:57 +00:00  
				
					
						
							
							
								 
						
							
								60689987ef 
								
							 
						 
						
							
							
								
								Implement MachOObjectFile::getHeaderSize and MachOObjectFile::getData.  
							
							... 
							
							
							
							These were the last missing forwarding functions. Also consistently use
the forwarding functions instead of using MachOObj directly.
llvm-svn: 178992 
							
						 
						
							2013-04-07 19:05:30 +00:00  
				
					
						
							
							
								 
						
							
								3c50f06202 
								
							 
						 
						
							
							
								
								Remove LoadCommandInfo now that we always have a pointer to the command.  
							
							... 
							
							
							
							LoadCommandInfo was needed to keep a command and its offset in the file. Now
that we always have a pointer to the command, we don't need the offset.
llvm-svn: 178991 
							
						 
						
							2013-04-07 18:42:06 +00:00  
				
					
						
							
							
								 
						
							
								224208b868 
								
							 
						 
						
							
							
								
								Add MachOObjectFile::LoadCommandInfo.  
							
							... 
							
							
							
							This avoids using MachOObject::getLoadCommandInfo.
llvm-svn: 178990 
							
						 
						
							2013-04-07 18:08:12 +00:00  
				
					
						
							
							
								 
						
							
								1309a448ff 
								
							 
						 
						
							
							
								
								Use getLoadCommandInfo instead of MachOObj->getLoadCommandInfo.  
							
							... 
							
							
							
							llvm-svn: 178989 
							
						 
						
							2013-04-07 17:41:59 +00:00  
				
					
						
							
							
								 
						
							
								17bece31af 
								
							 
						 
						
							
							
								
								Construct MachOObject in MachOObjectFile's constructor.  
							
							... 
							
							
							
							llvm-svn: 178988 
							
						 
						
							2013-04-07 16:58:48 +00:00  
				
					
						
							
							
								 
						
							
								717c4d44c4 
								
							 
						 
						
							
							
								
								Remove unused argument.  
							
							... 
							
							
							
							llvm-svn: 178987 
							
						 
						
							2013-04-07 16:40:00 +00:00  
				
					
						
							
							
								 
						
							
								5ffc079c8a 
								
							 
						 
						
							
							
								
								Remove MachOObjectFile::getObject.  
							
							... 
							
							
							
							llvm-svn: 178986 
							
						 
						
							2013-04-07 16:07:35 +00:00  
				
					
						
							
							
								 
						
							
								31fce89645 
								
							 
						 
						
							
							
								
								Remove two uses of getObject.  
							
							... 
							
							
							
							llvm-svn: 178985 
							
						 
						
							2013-04-07 15:46:05 +00:00  
				
					
						
							
							
								 
						
							
								b7b11f7bac 
								
							 
						 
						
							
							
								
								Remove last use of InMemoryStruct in llvm-objdump.  
							
							... 
							
							
							
							llvm-svn: 178979 
							
						 
						
							2013-04-07 14:40:18 +00:00  
				
					
						
							
							
								 
						
							
								91af8e84b9 
								
							 
						 
						
							
							
								
								Remove last use of InMemoryStruct from MachOObjectFile.cpp.  
							
							... 
							
							
							
							llvm-svn: 178948 
							
						 
						
							2013-04-06 03:50:05 +00:00  
				
					
						
							
							
								 
						
							
								15e2a9cd57 
								
							 
						 
						
							
							
								
								Don't use InMemoryStruct<macho::SymtabLoadCommand>.  
							
							... 
							
							
							
							This also required not using the RegisterStringTable API, which is also a
good thing.
llvm-svn: 178947 
							
						 
						
							2013-04-06 03:31:08 +00:00  
				
					
						
							
							
								 
						
							
								a65f5de499 
								
							 
						 
						
							
							
								
								Don't use InMemoryStruct in getSymbol64TableEntry.  
							
							... 
							
							
							
							llvm-svn: 178946 
							
						 
						
							2013-04-06 02:15:44 +00:00  
				
					
						
							
							
								 
						
							
								2a34c2d8dd 
								
							 
						 
						
							
							
								
								Don't use InMemoryStruct in getSymbolTableEntry.  
							
							... 
							
							
							
							llvm-svn: 178945 
							
						 
						
							2013-04-06 01:59:05 +00:00  
				
					
						
							
							
								 
						
							
								7caf2fbdc3 
								
							 
						 
						
							
							
								
								Don't use InMemoryStruct in getRelocation.  
							
							... 
							
							
							
							llvm-svn: 178943 
							
						 
						
							2013-04-06 01:24:11 +00:00  
				
					
						
							
							
								 
						
							
								4386fa9948 
								
							 
						 
						
							
							
								
								Define versions of Section that are explicitly marked as little endian.  
							
							... 
							
							
							
							These should really be templated like ELF, but this is a start.
llvm-svn: 178896 
							
						 
						
							2013-04-05 18:45:28 +00:00  
				
					
						
							
							
								 
						
							
								8622f2c14e 
								
							 
						 
						
							
							
								
								Don't use InMemoryStruct in getSection and getSection64.  
							
							... 
							
							
							
							llvm-svn: 178894 
							
						 
						
							2013-04-05 18:18:19 +00:00  
				
					
						
							
							
								 
						
							
								b0f76a4b75 
								
							 
						 
						
							
							
								
								Don't fetch pointers from a InMemoryStruct.  
							
							... 
							
							
							
							InMemoryStruct is extremely dangerous as it returns data from an internal
buffer when the endiannes doesn't match. This should fix the tests on big
endian hosts.
llvm-svn: 178875 
							
						 
						
							2013-04-05 15:15:22 +00:00  
				
					
						
							
							
								 
						
							
								0ac16d539c 
								
							 
						 
						
							
							
								
								Move an assert earlier in a file and check that the result of  
							
							... 
							
							
							
							our bitwise compare is equal to the field we're looking for.
Noticed on inspection.
llvm-svn: 176296 
							
						 
						
							2013-02-28 20:26:17 +00:00  
				
					
						
							
							
								 
						
							
								83c74e9fad 
								
							 
						 
						
							
							
								
								Add static cast to unsigned char whenever a character classification function is called with a signed char argument, in order to avoid assertions in Windows Debug configuration.  
							
							... 
							
							
							
							llvm-svn: 175006 
							
						 
						
							2013-02-12 21:21:59 +00:00  
				
					
						
							
							
								 
						
							
								048d2f9684 
								
							 
						 
						
							
							
								
								Object: Fix errant fallthrough.  
							
							... 
							
							
							
							llvm-svn: 174079 
							
						 
						
							2013-01-31 19:46:57 +00:00  
				
					
						
							
							
								 
						
							
								a9f810b6b5 
								
							 
						 
						
							
							
								
								Add a function to get the segment name of a section.  
							
							... 
							
							
							
							On MachO, sections also have segment names. When a tool looking at a .o file
prints a segment name, this is what they mean. In reality, a .o has only one
anonymous, segment.
This patch adds a MachO only function to fetch that segment name. I named it
getSectionFinalSegmentName since the main use for the name seems to be inform
the linker with segment this section should go to.
The patch also changes MachOObjectFile::getSectionName to return just the
section name instead of computing SegmentName,SectionName.
The main difference from the previous patch is that it doesn't use
InMemoryStruct. It is extremely dangerous: if the endians match it returns
a pointer to the file buffer, if not, it returns a pointer to an internal buffer
that is overwritten in the next API call.
We should change all of this code to use
support::detail::packed_endian_specific_integral like ELF, but since these
functions only handle strings, they work with big and little endian machines
as is.
I have tested this by installing ubuntu 12.10 ppc on qemu, that is why it took
so long :-)
llvm-svn: 170838 
							
						 
						
							2012-12-21 03:47:03 +00:00  
				
					
						
							
							
								 
						
							
								0f00de40dd 
								
							 
						 
						
							
							
								
								Revert 170545 while I debug the ppc failures.  
							
							... 
							
							
							
							llvm-svn: 170547 
							
						 
						
							2012-12-19 14:48:05 +00:00  
				
					
						
							
							
								 
						
							
								aa7b27801c 
								
							 
						 
						
							
							
								
								Add r170095 back.  
							
							... 
							
							
							
							I cannot reproduce it the failures locally, so I will keep an eye at the ppc
bots. This patch does add the change to the "Disassembly of section" message,
but that is not what was failing on the bots.
Original message:
Add a funciton to get the segment name of a section.
On MachO, sections also have segment names. When a tool looking at a .o file
prints a segment name, this is what they mean. In reality, a .o has only one
anonymous, segment.
This patch adds a MachO only function to fetch that segment name. I named it
getSectionFinalSegmentName since the main use for the name seems to be infor
the linker with segment this section should go to.
The patch also changes MachOObjectFile::getSectionName to return just the
section name instead of computing SegmentName,SectionName.
llvm-svn: 170545 
							
						 
						
							2012-12-19 14:15:04 +00:00  
				
					
						
							
							
								 
						
							
								5edabc131a 
								
							 
						 
						
							
							
								
								Teach MachO which sections contain code  
							
							... 
							
							
							
							llvm-svn: 170349 
							
						 
						
							2012-12-17 17:59:32 +00:00  
				
					
						
							
							
								 
						
							
								c859c2912f 
								
							 
						 
						
							
							
								
								Revert "Add a funciton to get the segment name of a section."  
							
							... 
							
							
							
							This reverts commit r170095 since it appears to be breaking the bots.
llvm-svn: 170105 
							
						 
						
							2012-12-13 06:36:18 +00:00  
				
					
						
							
							
								 
						
							
								bc8016d062 
								
							 
						 
						
							
							
								
								Add a funciton to get the segment name of a section.  
							
							... 
							
							
							
							On MachO, sections also have segment names. When a tool looking at a .o file
prints a segment name, this is what they mean. In reality, a .o has only one,
anonymous, segment.
This patch adds a MachO only function to fetch that segment name. I named it
getSectionFinalSegmentName since the main use for the name seems to be informing
the linker with segment this section should go to.
The patch also changes MachOObjectFile::getSectionName to return just the
section name instead of computing SegmentName,SectionName.
llvm-svn: 170095 
							
						 
						
							2012-12-13 04:07:18 +00:00  
				
					
						
							
							
								 
						
							
								07cc84876e 
								
							 
						 
						
							
							
								
								Remove some dead code.  
							
							... 
							
							
							
							llvm-svn: 169963 
							
						 
						
							2012-12-12 06:18:15 +00:00  
				
					
						
							
							
								 
						
							
								ed0881b2a6 
								
							 
						 
						
							
							
								
								Use the new script to sort the includes of every file under lib.  
							
							... 
							
							
							
							Sooooo many of these had incorrect or strange main module includes.
I have manually inspected all of these, and fixed the main module
include to be the nearest plausible thing I could find. If you own or
care about any of these source files, I encourage you to take some time
and check that these edits were sensible. I can't have broken anything
(I strictly added headers, and reordered them, never removed), but they
may not be the headers you'd really like to identify as containing the
API being implemented.
Many forward declarations and missing includes were added to a header
files to allow them to parse cleanly when included first. The main
module rule does in fact have its merits. =]
llvm-svn: 169131 
							
						 
						
							2012-12-03 16:50:05 +00:00  
				
					
						
							
							
								 
						
							
								f3e84b1790 
								
							 
						 
						
							
							
								
								Object: Pass the buffer name through when making a copy.  
							
							... 
							
							
							
							Should bring the buildbots back to life.
llvm-svn: 168935 
							
						 
						
							2012-11-29 20:08:03 +00:00  
				
					
						
							
							
								 
						
							
								aae0a4bd87 
								
							 
						 
						
							
							
								
								Fix a memory leak in MachOObjectFile.  
							
							... 
							
							
							
							MachOObjectFile owns a MachOObj, but never frees it. Both MachOObjectFile
and MachOObj want to own the MemoryBuffer, though, so we have to be careful
and give them each one of their own.
Thanks to Greg Clayton, Eric Christopher and Michael Spencer for helping
figure out what's going wrong here.
rdar://12561773
llvm-svn: 168923 
							
						 
						
							2012-11-29 19:14:11 +00:00  
				
					
						
							
							
								 
						
							
								4f223bf7c4 
								
							 
						 
						
							
							
								
								Add interface for querying object files for symbol values.  
							
							... 
							
							
							
							Currently only implemented for ELF.
Patch by Amara Emerson.
llvm-svn: 166918 
							
						 
						
							2012-10-29 10:47:00 +00:00  
				
					
						
							
							
								 
						
							
								b96a320a2e 
								
							 
						 
						
							
							
								
								Cosmetic changes  
							
							... 
							
							
							
							llvm-svn: 165588 
							
						 
						
							2012-10-10 01:45:52 +00:00  
				
					
						
							
							
								 
						
							
								3f31fa05d5 
								
							 
						 
						
							
							
								
								This patch adds new functions to the SectionRef and ObjectFile interfaces to determine whether or not a section is meant to be read-only.  These functions will be used by the MCJIT RuntimeDyld to give hints to the memory manager during the object loading process in a future patch.  
							
							... 
							
							
							
							Patch by Ashok Thirumurthi.
llvm-svn: 165586 
							
						 
						
							2012-10-10 01:41:33 +00:00  
				
					
						
							
							
								 
						
							
								9520719b9b 
								
							 
						 
						
							
							
								
								Mark some static arrays as const.  
							
							... 
							
							
							
							llvm-svn: 157377 
							
						 
						
							2012-05-24 06:35:32 +00:00  
				
					
						
							
							
								 
						
							
								4a80e94b86 
								
							 
						 
						
							
							
								
								Fix the implementation of MachOObjectFile::isSectionZeroInit so it follows the MachO spec.  
							
							... 
							
							
							
							llvm-svn: 155976 
							
						 
						
							2012-05-02 02:31:28 +00:00  
				
					
						
							
							
								 
						
							
								a737f7de2b 
								
							 
						 
						
							
							
								
								Remove unused variable.  
							
							... 
							
							
							
							llvm-svn: 154661 
							
						 
						
							2012-04-13 08:09:12 +00:00  
				
					
						
							
							
								 
						
							
								2138ef6d3d 
								
							 
						 
						
							
							
								
								This patch improves the MCJIT runtime dynamic loader by adding new handling  
							
							... 
							
							
							
							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-12 20:13:57 +00:00  
				
					
						
							
							
								 
						
							
								549515e128 
								
							 
						 
						
							
							
								
								Add a constructor for DataRefImpl and remove excess initialization.  
							
							... 
							
							
							
							llvm-svn: 154371 
							
						 
						
							2012-04-10 01:54:44 +00:00  
				
					
						
							
							
								 
						
							
								d53422d1a7 
								
							 
						 
						
							
							
								
								[Object]  
							
							... 
							
							
							
							Make Binary::TypeID more granular, to distinguish between ELF 32/64 little/big
llvm-svn: 152435 
							
						 
						
							2012-03-09 20:41:57 +00:00  
				
					
						
							
							
								 
						
							
								c429b80da1 
								
							 
						 
						
							
							
								
								[Object]  
							
							... 
							
							
							
							Add ObjectFile::getLoadName() for retrieving the soname/installname of a shared object.
llvm-svn: 151845 
							
						 
						
							2012-03-01 22:19:54 +00:00  
				
					
						
							
							
								 
						
							
								2fc34c5f84 
								
							 
						 
						
							
							
								
								[Object]  
							
							... 
							
							
							
							* 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-03-01 01:36:50 +00:00  
				
					
						
							
							
								 
						
							
								7e4b976c36 
								
							 
						 
						
							
							
								
								[Object] Add symbol attribute flags: ST_ThreadLocal, ST_Common, and 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-29 02:11:55 +00:00  
				
					
						
							
							
								 
						
							
								1df4b84db4 
								
							 
						 
						
							
							
								
								In the ObjectFile interface, replace isInternal(), isAbsolute(), isGlobal(), and isWeak(), with a bitset of flags.  
							
							... 
							
							
							
							llvm-svn: 151670 
							
						 
						
							2012-02-28 23:47:53 +00:00  
				
					
						
							
							
								 
						
							
								8c4729fd44 
								
							 
						 
						
							
							
								
								[Object] Add {begin,end}_dynamic_symbols stubs and implementation for ELF.  
							
							... 
							
							
							
							Add -D option to llvm-nm to dump dynamic symbols.
Patch by David Meyer.
llvm-svn: 151600 
							
						 
						
							2012-02-28 00:40:37 +00:00  
				
					
						
							
							
								 
						
							
								cbe72fc959 
								
							 
						 
						
							
							
								
								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: 145408 
							
						 
						
							2011-11-29 17:40:10 +00:00  
				
					
						
							
							
								 
						
							
								37ab257b88 
								
							 
						 
						
							
							
								
								Revert r145180 as it is causing test failures on all the bots.  
							
							... 
							
							
							
							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-27 10:37:47 +00:00  
				
					
						
							
							
								 
						
							
								2631f93f7d 
								
							 
						 
						
							
							
								
								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: 145180 
							
						 
						
							2011-11-27 10:12:52 +00:00  
				
					
						
							
							
								 
						
							
								debe01c660 
								
							 
						 
						
							
							
								
								If we're searching for a symbol reference to pretty-print a scattered relocation address, and we don't find a symbol table entry, try section begin addresses as well.  
							
							... 
							
							
							
							llvm-svn: 143151 
							
						 
						
							2011-10-27 21:53:50 +00:00  
				
					
						
							
							
								 
						
							
								62972f5cd3 
								
							 
						 
						
							
							
								
								Fix pretty printing of i386 local sect diff relocations, TLV relocations, and x86_64 TLV relocations in MachO.  
							
							... 
							
							
							
							llvm-svn: 143140 
							
						 
						
							2011-10-27 20:46:09 +00:00  
				
					
						
							
							
								 
						
							
								bc14bd3bfb 
								
							 
						 
						
							
							
								
								Add support for scattered relocations to the MachO relocatation pretty printer.  
							
							... 
							
							
							
							llvm-svn: 143051 
							
						 
						
							2011-10-26 20:42:54 +00:00  
				
					
						
							
							
								 
						
							
								90c49c037e 
								
							 
						 
						
							
							
								
								The order of the two symbol listings in a Macho x86_64 subtractor relocation is reversed from what seems intuitive to me.  
							
							... 
							
							
							
							llvm-svn: 143035 
							
						 
						
							2011-10-26 17:28:49 +00:00  
				
					
						
							
							
								 
						
							
								04e46b6ae4 
								
							 
						 
						
							
							
								
								Include the full 64 bits of relocation data in the type info for MachO relocations, so that we can recognize scattered relocations.  
							
							... 
							
							
							
							llvm-svn: 143033 
							
						 
						
							2011-10-26 17:10:22 +00:00  
				
					
						
							
							
								 
						
							
								7be76590e6 
								
							 
						 
						
							
							
								
								Expand relocation type field to 64 bits.  MachO scattered relocations require 33 bits of type info.  
							
							... 
							
							
							
							llvm-svn: 143032 
							
						 
						
							2011-10-26 17:08:49 +00:00  
				
					
						
							
							
								 
						
							
								b92de2de71 
								
							 
						 
						
							
							
								
								Improve pretty printing of GOT relocations in MachO on x86_64.  
							
							... 
							
							
							
							llvm-svn: 143031 
							
						 
						
							2011-10-26 17:05:20 +00:00  
				
					
						
							
							
								 
						
							
								ff37313f12 
								
							 
						 
						
							
							
								
								Remove unused variable.  
							
							... 
							
							
							
							llvm-svn: 143011 
							
						 
						
							2011-10-26 03:47:16 +00:00  
				
					
						
							
							
								 
						
							
								377137e2ed 
								
							 
						 
						
							
							
								
								Remove extraneous printing of "-PC".  
							
							... 
							
							
							
							llvm-svn: 142970 
							
						 
						
							2011-10-25 20:44:00 +00:00  
				
					
						
							
							
								 
						
							
								fa3e5200b8 
								
							 
						 
						
							
							
								
								Add support for the notion of "hidden" relocations.  On MachO, these are relocation entries that are used as additional information for other, real relocations, rather than being relocations themselves.  
							
							... 
							
							
							
							I'm not familiar enough with ELF or COFF to know if they should have any relocations marked hidden.
llvm-svn: 142961 
							
						 
						
							2011-10-25 20:35:53 +00:00  
				
					
						
							
							
								 
						
							
								52cd8acafc 
								
							 
						 
						
							
							
								
								Teach the MachO relocation pretty-printer to interpret ARM half-relocations.  
							
							... 
							
							
							
							llvm-svn: 142938 
							
						 
						
							2011-10-25 18:48:41 +00:00  
				
					
						
							
							
								 
						
							
								171f485f15 
								
							 
						 
						
							
							
								
								More fixes and improvements to MachO relocation pretty-printing, particular for x86 and x86_64 relocations with addends.  
							
							... 
							
							
							
							llvm-svn: 142875 
							
						 
						
							2011-10-24 23:20:07 +00:00  
				
					
						
							
							
								 
						
							
								c8c94da8c8 
								
							 
						 
						
							
							
								
								Get relocation parsing/dumping to a mostly-working state for MachO files.  
							
							... 
							
							
							
							llvm-svn: 142852 
							
						 
						
							2011-10-24 21:44:00 +00:00  
				
					
						
							
							
								 
						
							
								953af053eb 
								
							 
						 
						
							
							
								
								Stub out some of the MachO relocation decoding hooks.  
							
							... 
							
							
							
							llvm-svn: 142840 
							
						 
						
							2011-10-24 20:19:18 +00:00  
				
					
						
							
							
								 
						
							
								cef5641982 
								
							 
						 
						
							
							
								
								STABS symbols are debug symbols.  
							
							... 
							
							
							
							llvm-svn: 142673 
							
						 
						
							2011-10-21 19:26:54 +00:00  
				
					
						
							
							
								 
						
							
								321731539e 
								
							 
						 
						
							
							
								
								Object: Add isSymbolAbsolute and getSymbolSection.  
							
							... 
							
							
							
							llvm-svn: 142317 
							
						 
						
							2011-10-17 23:54:46 +00:00  
				
					
						
							
							
								 
						
							
								017597540e 
								
							 
						 
						
							
							
								
								Object: Add isSymbolWeak.  
							
							... 
							
							
							
							llvm-svn: 142316 
							
						 
						
							2011-10-17 23:54:22 +00:00  
				
					
						
							
							
								 
						
							
								d39466760a 
								
							 
						 
						
							
							
								
								Object: Fix redundant name.  
							
							... 
							
							
							
							llvm-svn: 142238 
							
						 
						
							2011-10-17 20:19:29 +00:00  
				
					
						
							
							
								 
						
							
								000721f058 
								
							 
						 
						
							
							
								
								The VMAs stored in the symbol table of a MachO file are absolute addresses, not offsets from the section.  
							
							... 
							
							
							
							llvm-svn: 141828 
							
						 
						
							2011-10-12 22:37:10 +00:00  
				
					
						
							
							
								 
						
							
								34e1707fbb 
								
							 
						 
						
							
							
								
								Don't label a STAB debugging symbol as a function symbol.  
							
							... 
							
							
							
							llvm-svn: 141824 
							
						 
						
							2011-10-12 22:23:12 +00:00  
				
					
						
							
							
								 
						
							
								fb02ecde5e 
								
							 
						 
						
							
							
								
								sectionContainsSymbol needs to be based on VMA's rather than section indices to properly account for files with segment load commands that contain no sections.  
							
							... 
							
							
							
							llvm-svn: 141822 
							
						 
						
							2011-10-12 22:21:32 +00:00  
				
					
						
							
							
								 
						
							
								f903c154c7 
								
							 
						 
						
							
							
								
								Section indices in MachO symbol tables begin at 1, not 0.  
							
							... 
							
							
							
							llvm-svn: 141815 
							
						 
						
							2011-10-12 21:43:24 +00:00  
				
					
						
							
							
								 
						
							
								27c579dba4 
								
							 
						 
						
							
							
								
								Expose MachOObjectFile externally, like we do for COFF.  First step in reducing the amount of special-purpose code needed for llvm-objdump.  
							
							... 
							
							
							
							llvm-svn: 141684 
							
						 
						
							2011-10-11 17:32:27 +00:00  
				
					
						
							
							
								 
						
							
								ee3be4f2a9 
								
							 
						 
						
							
							
								
								Fix warning.  
							
							... 
							
							
							
							llvm-svn: 141597 
							
						 
						
							2011-10-10 23:36:56 +00:00  
				
					
						
							
							
								 
						
							
								7989460a1f 
								
							 
						 
						
							
							
								
								Object: add getSectionAlignment.  
							
							... 
							
							
							
							llvm-svn: 141581 
							
						 
						
							2011-10-10 21:55:43 +00:00  
				
					
						
							
							
								 
						
							
								e5fd004719 
								
							 
						 
						
							
							
								
								Change relocation API to be per section. This time without breaking GCC.  
							
							... 
							
							
							
							llvm-svn: 141385 
							
						 
						
							2011-10-07 19:25:32 +00:00  
				
					
						
							
							
								 
						
							
								206d8a7f48 
								
							 
						 
						
							
							
								
								Revert 141376 and 141377 due to breaking the build.  
							
							... 
							
							
							
							--- Reverse-merging r141377 into '.':
U    tools/llvm-objdump/MachODump.cpp
--- Reverse-merging r141376 into '.':
U    include/llvm/Object/COFF.h
U    include/llvm/Object/ObjectFile.h
U    include/llvm-c/Object.h
U    tools/llvm-objdump/llvm-objdump.cpp
U    lib/Object/MachOObjectFile.cpp
U    lib/Object/COFFObjectFile.cpp
U    lib/Object/Object.cpp
U    lib/Object/ELFObjectFile.cpp
llvm-svn: 141379 
							
						 
						
							2011-10-07 18:25:37 +00:00  
				
					
						
							
							
								 
						
							
								b0d61540cb 
								
							 
						 
						
							
							
								
								Change relocation API to be per section.  
							
							... 
							
							
							
							llvm-svn: 141376 
							
						 
						
							2011-10-07 18:15:25 +00:00  
				
					
						
							
							
								 
						
							
								800619f2bb 
								
							 
						 
						
							
							
								
								Object: Add isSection{Data,BSS}.  
							
							... 
							
							
							
							llvm-svn: 140721 
							
						 
						
							2011-09-28 20:57:30 +00:00  
				
					
						
							
							
								 
						
							
								75d1cf3391 
								
							 
						 
						
							
							
								
								Object: make the following changes into SymbolRef  
							
							... 
							
							
							
							- Add enum SymbolType and function getSymbolType()
- Add function isGlobal() - it's returns true for symbols that can be used in another objects, such as library functions.
- Rename function getAddress() to getOffset() and add new function getAddress(), because currently getAddress() returns section offset of symbol first byte. new getAddress() return symbol address.
- Change usage SymbolRef::getAddress() to getOffset() in tools/llvm-nm and tools/llvm-objdump.
Patch by Danil Malyshev!
llvm-svn: 139683 
							
						 
						
							2011-09-14 01:22:52 +00:00  
				
					
						
							
							
								 
						
							
								eba0b40384 
								
							 
						 
						
							
							
								
								Remove dead code.  
							
							... 
							
							
							
							llvm-svn: 139343 
							
						 
						
							2011-09-09 00:22:05 +00:00  
				
					
						
							
							
								 
						
							
								940b598f6f 
								
							 
						 
						
							
							
								
								Fix release build:  
							
							... 
							
							
							
							MachOObjectFile.cpp:524: error: unused variable 'NumLoadCommands' [-Wunused-variable]
llvm-svn: 139341 
							
						 
						
							2011-09-09 00:16:50 +00:00  
				
					
						
							
							
								 
						
							
								022ecdf277 
								
							 
						 
						
							
							
								
								Add support for relocations to ObjectFile.  
							
							... 
							
							
							
							Patch by Danil Malyshev!
llvm-svn: 139314 
							
						 
						
							2011-09-08 20:52:17 +00:00  
				
					
						
							
							
								 
						
							
								f6f3e81c07 
								
							 
						 
						
							
							
								
								ObjectFile: Add a method to check whether a section contains a symbol.  
							
							... 
							
							
							
							- No ELF or COFF implementation yet, I don't have a way to test that.
  Should be straightforward to add though.
llvm-svn: 135288 
							
						 
						
							2011-07-15 18:39:21 +00:00  
				
					
						
							
							
								 
						
							
								99582e9b52 
								
							 
						 
						
							
							
								
								MachOObjectFile: Get symbol functions ready for 64 bit.  
							
							... 
							
							
							
							llvm-svn: 135282 
							
						 
						
							2011-07-15 17:32:45 +00:00  
				
					
						
							
							
								 
						
							
								c41d4fe243 
								
							 
						 
						
							
							
								
								Output MachO section names in the form SEGMENT,section.  
							
							... 
							
							
							
							llvm-svn: 135231 
							
						 
						
							2011-07-15 00:29:02 +00:00  
				
					
						
							
							
								 
						
							
								56498d167a 
								
							 
						 
						
							
							
								
								Add support for 64 bit objects to MachOObjectFile.  
							
							... 
							
							
							
							- I don't see a better way than duplicating all the code.
llvm-svn: 135229 
							
						 
						
							2011-07-15 00:14:48 +00:00  
				
					
						
							
							
								 
						
							
								b1d80722a8 
								
							 
						 
						
							
							
								
								MachOObjectFile: Change isSectionText to return true for sections named text, not for load commands name __TEXT (which isn't the case in actual object files)  
							
							... 
							
							
							
							llvm-svn: 135228 
							
						 
						
							2011-07-15 00:14:46 +00:00  
				
					
						
							
							
								 
						
							
								1d6167fd30 
								
							 
						 
						
							
							
								
								Object: Add proper error handling.  
							
							... 
							
							
							
							llvm-svn: 133872 
							
						 
						
							2011-06-25 17:55:23 +00:00  
				
					
						
							
							
								 
						
							
								ec29b121ff 
								
							 
						 
						
							
							
								
								Make Binary the parent of ObjectFile and update children to new interface.  
							
							... 
							
							
							
							llvm-svn: 133870 
							
						 
						
							2011-06-25 17:54:50 +00:00  
				
					
						
							
							
								 
						
							
								aa41981dd8 
								
							 
						 
						
							
							
								
								Revert the last two commits in the series. r132911, r132912.  
							
							... 
							
							
							
							llvm-svn: 132913 
							
						 
						
							2011-06-13 11:53:31 +00:00  
				
					
						
							
							
								 
						
							
								a7f9c49aab 
								
							 
						 
						
							
							
								
								Make Binary the parent of ObjectFile and update children to new interface.  
							
							... 
							
							
							
							llvm-svn: 132911 
							
						 
						
							2011-06-13 11:12:33 +00:00  
				
					
						
							
							
								 
						
							
								ae95ad1935 
								
							 
						 
						
							
							
								
								Use enums for constant values.  
							
							... 
							
							
							
							llvm-svn: 129984 
							
						 
						
							2011-04-22 06:34:01 +00:00  
				
					
						
							
							
								 
						
							
								22a19816f6 
								
							 
						 
						
							
							
								
								Make the file format strings a little prettier for mach-o.  
							
							... 
							
							
							
							llvm-svn: 129980 
							
						 
						
							2011-04-22 04:08:58 +00:00  
				
					
						
							
							
								 
						
							
								7b015c7598 
								
							 
						 
						
							
							
								
								Add an ObjectFile implementation for mach-o.  
							
							... 
							
							
							
							Patch by Patrick Walton!
llvm-svn: 129974 
							
						 
						
							2011-04-22 03:19:48 +00:00