1557fd6d39 
								
							 
						 
						
							
							
								
								Write the section table and the section data in the same order that  
							
							... 
							
							
							
							gun as does. This makes it a lot easier to compare the output of both
as the addresses are now a lot closer.
llvm-svn: 127972 
							
						 
						
							2011-03-20 18:44:20 +00:00  
				
					
						
							
							
								 
						
							
								771911e28b 
								
							 
						 
						
							
							
								
								Split MCEELFStreamer and ELFObjectWriter into .h and .cpp files, so that other components can use them.  
							
							... 
							
							
							
							llvm-svn: 126942 
							
						 
						
							2011-03-03 14:52:12 +00:00  
				
					
						
							
							
								 
						
							
								d92d17bf67 
								
							 
						 
						
							
							
								
								PR9352: Always emit a relocation for weak symbols. Not emitting relocations  
							
							... 
							
							
							
							for calls to weak symbols with a definition has the appearance of working
with LLVM-generated code because weak symbol definitions are put in their
own sections.
llvm-svn: 126933 
							
						 
						
							2011-03-03 07:24:36 +00:00  
				
					
						
							
							
								 
						
							
								30a52dec93 
								
							 
						 
						
							
							
								
								Make all static functions become static class methods. Move shared (duplicated) functions to new MCELF class.  
							
							... 
							
							
							
							llvm-svn: 126686 
							
						 
						
							2011-02-28 21:45:04 +00:00  
				
					
						
							
							
								 
						
							
								9e18e96264 
								
							 
						 
						
							
							
								
								Put in the symbol table symbols only used in a .globl statement.  
							
							... 
							
							
							
							Fixes PR9292.
llvm-svn: 126330 
							
						 
						
							2011-02-23 20:22:07 +00:00  
				
					
						
							
							
								 
						
							
								37d5484d18 
								
							 
						 
						
							
							
								
								Handle FK_PCRel_1 and add a test case for this and FK_PCRel_4.  
							
							... 
							
							
							
							llvm-svn: 126157 
							
						 
						
							2011-02-21 23:25:41 +00:00  
				
					
						
							
							
								 
						
							
								490d02a334 
								
							 
						 
						
							
							
								
								Gas is very inconsistent about when a relaxation/relocation is needed. Do  
							
							... 
							
							
							
							the right thing and stop trying to copy it. Fixes PR8944.
llvm-svn: 125648 
							
						 
						
							2011-02-16 03:25:55 +00:00  
				
					
						
							
							
								 
						
							
								202630c6ee 
								
							 
						 
						
							
							
								
								Teach ARM/MC/ELF about gcc compatible reloc output to get past odd linkage  
							
							... 
							
							
							
							failures with relocations.
The code committed is a first cut at compatibility for emitted relocations in
ELF .o.
Why do this? because existing ARM tools like emitting relocs symbols as
explicit relocations, not as section-offset relocs.
Result is that with these changes,
1) relocs are now substantially identical what to gcc outputs.
2) larger apps (including many spec2k tests) compile, cross-link, and pass
Added reminder fixme to tests for future conversion to .s form.
llvm-svn: 124996 
							
						 
						
							2011-02-07 01:11:15 +00:00  
				
					
						
							
							
								 
						
							
								4761fba833 
								
							 
						 
						
							
							
								
								Teach ARM/MC/ELF about EF_ARM_EABI_VERSION. The magic number is set to  
							
							... 
							
							
							
							5 to match the current doc.
Added FIXME reminder Make it really configurable later.
llvm-svn: 124899 
							
						 
						
							2011-02-04 21:41:11 +00:00  
				
					
						
							
							
								 
						
							
								d2e2f56c36 
								
							 
						 
						
							
							
								
								Teach ARM/MC/ELF to handle R_ARM_JUMP24 relocation type for conditional jumps.  
							
							... 
							
							
							
							(yes, this is different from R_ARM_CALL)
- Adds a new method getARMBranchTargetOpValue() which handles the
  necessary distinction between the conditional and unconditional br/bl
  needed for ARM/ELF
At least for ARM mode, the needed fixup for conditional versus unconditional
br/bl is identical, but the ARM docs and existing ARM tools expect this
reloc type...
Added a few FIXME's for future naming fixups in ARMInstrInfo.td
llvm-svn: 124895 
							
						 
						
							2011-02-04 19:47:15 +00:00  
				
					
						
							
							
								 
						
							
								b3eca9bb71 
								
							 
						 
						
							
							
								
								Add support for the --noexecstack option.  
							
							... 
							
							
							
							llvm-svn: 124077 
							
						 
						
							2011-01-23 17:55:27 +00:00  
				
					
						
							
							
								 
						
							
								4b7b7fba38 
								
							 
						 
						
							
							
								
								Delay the creation of eh_frame so that the user can change the defaults.  
							
							... 
							
							
							
							Add support for SHT_X86_64_UNWIND.
llvm-svn: 124059 
							
						 
						
							2011-01-23 05:43:40 +00:00  
				
					
						
							
							
								 
						
							
								0e7e34e476 
								
							 
						 
						
							
							
								
								Remove more duplicated code.  
							
							... 
							
							
							
							llvm-svn: 124056 
							
						 
						
							2011-01-23 04:43:11 +00:00  
				
					
						
							
							
								 
						
							
								d4a5c05c97 
								
							 
						 
						
							
							
								
								Completed :lower16: / :upper16: support for movw / movt pairs on Darwin.  
							
							... 
							
							
							
							- Fixed :upper16: fix up routine. It should be shifting down the top 16 bits first.
- Added support for Thumb2 :lower16: and :upper16: fix up.
- Added :upper16: and :lower16: relocation support to mach-o object writer.
llvm-svn: 123424 
							
						 
						
							2011-01-14 02:38:49 +00:00  
				
					
						
							
							
								 
						
							
								39e36e7ab4 
								
							 
						 
						
							
							
								
								Style clean up - break up the breaks.  
							
							... 
							
							
							
							llvm-svn: 123347 
							
						 
						
							2011-01-13 00:07:51 +00:00  
				
					
						
							
							
								 
						
							
								9c5b65d289 
								
							 
						 
						
							
							
								
								1. Support ELF pcrel relocations for movw/movt:  
							
							... 
							
							
							
							R_ARM_MOVT_PREL and R_ARM_MOVW_PREL_NC.
2. Fix minor bug in ARMAsmPrinter - treat bitfield flag as a bitfield, not an enum.
3. Add support for 3 new elf section types (no-ops)
llvm-svn: 123294 
							
						 
						
							2011-01-12 00:19:25 +00:00  
				
					
						
							
							
								 
						
							
								3686473578 
								
							 
						 
						
							
							
								
								Fix PR8878.  
							
							... 
							
							
							
							llvm-svn: 122658 
							
						 
						
							2011-01-01 19:05:35 +00:00  
				
					
						
							
							
								 
						
							
								8fc59a682f 
								
							 
						 
						
							
							
								
								Handle reloc_riprel_4byte_movq_load. Should make the bots happy.  
							
							... 
							
							
							
							llvm-svn: 122579 
							
						 
						
							2010-12-27 02:03:24 +00:00  
				
					
						
							
							
								 
						
							
								2ac8355ecd 
								
							 
						 
						
							
							
								
								Add support for the same encodings of the personality function that gnu as  
							
							... 
							
							
							
							supports.
llvm-svn: 122577 
							
						 
						
							2010-12-27 00:36:05 +00:00  
				
					
						
							
							
								 
						
							
								9ae2d05d45 
								
							 
						 
						
							
							
								
								Add support for @note. Patch by Jörg Sonnenberger.  
							
							... 
							
							
							
							llvm-svn: 122568 
							
						 
						
							2010-12-26 21:30:59 +00:00  
				
					
						
							
							
								 
						
							
								0f8abeba1d 
								
							 
						 
						
							
							
								
								Merge IsFixupFullyResolved and IsSymbolRefDifferenceFullyResolved. We now  
							
							... 
							
							
							
							have a single point where targets test if a relocation is needed.
llvm-svn: 122549 
							
						 
						
							2010-12-24 21:22:02 +00:00  
				
					
						
							
							
								 
						
							
								73c0ae77ca 
								
							 
						 
						
							
							
								
								Simplify the handling of .size expressions.  
							
							... 
							
							
							
							llvm-svn: 122404 
							
						 
						
							2010-12-22 16:03:00 +00:00  
				
					
						
							
							
								 
						
							
								55184ddd35 
								
							 
						 
						
							
							
								
								Set the value of absolute symbols.  
							
							... 
							
							
							
							llvm-svn: 122268 
							
						 
						
							2010-12-20 21:14:39 +00:00  
				
					
						
							
							
								 
						
							
								b403e098a1 
								
							 
						 
						
							
							
								
								Merge isAbsolute into IsSymbolRefDifferenceFullyResolved.  
							
							... 
							
							
							
							llvm-svn: 122148 
							
						 
						
							2010-12-18 06:27:54 +00:00  
				
					
						
							
							
								 
						
							
								8396dd0893 
								
							 
						 
						
							
							
								
								Remove the MCObjectFormat class.  
							
							... 
							
							
							
							llvm-svn: 122147 
							
						 
						
							2010-12-18 05:37:28 +00:00  
				
					
						
							
							
								 
						
							
								fdaae0d16f 
								
							 
						 
						
							
							
								
								Move some data to the TargetWriter.  
							
							... 
							
							
							
							llvm-svn: 122134 
							
						 
						
							2010-12-18 03:27:34 +00:00  
				
					
						
							
							
								 
						
							
								d11460a65b 
								
							 
						 
						
							
							
								
								Store and free the TargetObjectWriter.  
							
							... 
							
							
							
							llvm-svn: 122070 
							
						 
						
							2010-12-17 18:01:31 +00:00  
				
					
						
							
							
								 
						
							
								6b5e56c2b1 
								
							 
						 
						
							
							
								
								Stub out explicit MCELFObjectTargetWriter interface.  
							
							... 
							
							
							
							llvm-svn: 122067 
							
						 
						
							2010-12-17 17:45:22 +00:00  
				
					
						
							
							
								 
						
							
								f0e24d426a 
								
							 
						 
						
							
							
								
								Move createELFObjectWriter to its own header.  
							
							... 
							
							
							
							llvm-svn: 122064 
							
						 
						
							2010-12-17 16:59:53 +00:00  
				
					
						
							
							
								 
						
							
								df63335844 
								
							 
						 
						
							
							
								
								Use getFixupKindInfo to implement isFixupKindPCRel, ELF version.  
							
							... 
							
							
							
							llvm-svn: 122050 
							
						 
						
							2010-12-17 07:28:17 +00:00  
				
					
						
							
							
								 
						
							
								f2adf782ab 
								
							 
						 
						
							
							
								
								MC/ObjectWriter: Add a new IsSymbolRefDifferenceFullyResolved target format specific hook.  
							
							... 
							
							
							
							- Currently just has stub implementations for Mach-O, ELF, and COFF.
llvm-svn: 122037 
							
						 
						
							2010-12-17 04:54:54 +00:00  
				
					
						
							
							
								 
						
							
								50269280f8 
								
							 
						 
						
							
							
								
								MC/Assembler: Strip out object writer arguments, now that it is always available  
							
							... 
							
							
							
							-- and remove FIXME asking for the same!
llvm-svn: 122032 
							
						 
						
							2010-12-17 02:45:59 +00:00  
				
					
						
							
							
								 
						
							
								4c1386add9 
								
							 
						 
						
							
							
								
								1. ARM/MC/ELF: A few more ELF relocs for .o  
							
							... 
							
							
							
							2. Fixed EmitLocalCommonSymbol for ELF (Yes, they exist. :)
   Test added.
llvm-svn: 121951 
							
						 
						
							2010-12-16 03:12:17 +00:00  
				
					
						
							
							
								 
						
							
								0e909c5f9c 
								
							 
						 
						
							
							
								
								First cut of ARM/MC/ELF PIC relocations.  
							
							... 
							
							
							
							Test has fixme, to move to .s -> .o test when AsmParser works better.
llvm-svn: 121732 
							
						 
						
							2010-12-13 23:16:07 +00:00  
				
					
						
							
							
								 
						
							
								e119da1146 
								
							 
						 
						
							
							
								
								Thumb unconditional branch binary encoding. rdar://8754994  
							
							... 
							
							
							
							llvm-svn: 121496 
							
						 
						
							2010-12-10 18:21:33 +00:00  
				
					
						
							
							
								 
						
							
								68b27eb9d1 
								
							 
						 
						
							
							
								
								Rename CB/CBZ specific fixup accordingly.  
							
							... 
							
							
							
							llvm-svn: 121404 
							
						 
						
							2010-12-09 19:50:12 +00:00  
				
					
						
							
							
								 
						
							
								c79c5f6e8c 
								
							 
						 
						
							
							
								
								ARM/MC/ELF TPsoft is now a proper pseudo inst.  
							
							... 
							
							
							
							Added test to check bl __aeabi_read_tp gets emitted properly for ELF/ASM
as well as ELF/OBJ (including fixup)
Also added support for ELF::R_ARM_TLS_IE32
llvm-svn: 121312 
							
						 
						
							2010-12-08 23:14:44 +00:00  
				
					
						
							
							
								 
						
							
								a7d6aa902a 
								
							 
						 
						
							
							
								
								Support the "target" encodings for the CB[N]Z instructions.  
							
							... 
							
							
							
							llvm-svn: 121308 
							
						 
						
							2010-12-08 23:01:43 +00:00  
				
					
						
							
							
								 
						
							
								8a6449c46e 
								
							 
						 
						
							
							
								
								Add support for loading from a constant pool.  
							
							... 
							
							
							
							llvm-svn: 121226 
							
						 
						
							2010-12-08 01:57:09 +00:00  
				
					
						
							
							
								 
						
							
								93e3cf0ebd 
								
							 
						 
						
							
							
								
								Sorry for such a large commit. The summary is that only MachO cares about the  
							
							... 
							
							
							
							actuall addresses in a .o file, so it is better to let the MachO writer compute
it.
This is good for two reasons. First, areas that shouldn't care about
addresses now don't have access to it. Second, the layout of each section
is independent. I should use this in a subsequent commit to speed it up.
Most of the patch is just removing the section address computation. The two
interesting parts are the change on how we handle padding in the end
of sections and how MachO can get the address of a-b when a and b are in
different sections.
Since now the expression evaluation normally doesn't know the section address,
it will think that a-b needs relocation and let the MachO writer know. Once
it has computed the section addresses, it calls back the expression evaluation
with the section addresses to resolve these expressions.
The remaining problem is the handling of padding. Currently it will create
a special alignment fragment at the end. Since that fragment doesn't update
the alignment of the section, it needs the real address to be computed.
Since now the layout will not compute a-b with a and b in different sections,
the only effect that the special alignment fragment has is update the
address size of the section. This can also be done by the MachO writer.
llvm-svn: 121076 
							
						 
						
							2010-12-07 00:27:36 +00:00  
				
					
						
							
							
								 
						
							
								9e1994698d 
								
							 
						 
						
							
							
								
								Add fixup for Thumb1 BL/BLX instructions.  
							
							... 
							
							
							
							llvm-svn: 121072 
							
						 
						
							2010-12-06 23:57:07 +00:00  
				
					
						
							
							
								 
						
							
								495c2bb9a6 
								
							 
						 
						
							
							
								
								Refactor ELFObjectWriter.  
							
							... 
							
							
							
							+ ARM/X86/MBlaze now share a common RecordRelocation
+ ARM/X86/MBlaze arch specific routines are limited to GetRelocType()
llvm-svn: 121043 
							
						 
						
							2010-12-06 21:57:34 +00:00  
				
					
						
							
							
								 
						
							
								baf2f3b3eb 
								
							 
						 
						
							
							
								
								Remove the getAddress getter, initialize Ordinal in the constructor and use  
							
							... 
							
							
							
							that on the ELF writer to detect a section we created.
llvm-svn: 120981 
							
						 
						
							2010-12-06 03:48:09 +00:00  
				
					
						
							
							
								 
						
							
								e7284c3671 
								
							 
						 
						
							
							
								
								Add a getSymbolOffset method and use it in the ELF writer.  
							
							... 
							
							
							
							llvm-svn: 120977 
							
						 
						
							2010-12-06 02:57:26 +00:00  
				
					
						
							
							
								 
						
							
								60ebca9aaf 
								
							 
						 
						
							
							
								
								The sections that the ELF object writer has to create are very simple and  
							
							... 
							
							
							
							contain only data. Handle them specially instead of using AddSectionToTheEnd.
This moves a hack from the generic assembler to the elf writer. It is also
a bit faster and should make other improvements easier.
llvm-svn: 120683 
							
						 
						
							2010-12-02 03:09:06 +00:00  
				
					
						
							
							
								 
						
							
								ce2bd8d05f 
								
							 
						 
						
							
							
								
								Add support for binary encoding of ARM 'adr' instructions referencing constant  
							
							... 
							
							
							
							pool entries (LEApcrel pseudo). Ongoing saga of rdar://8542291.
llvm-svn: 120635 
							
						 
						
							2010-12-02 00:28:45 +00:00  
				
					
						
							
							
								 
						
							
								943fb60b1f 
								
							 
						 
						
							
							
								
								Add correct encodings for STRD and LDRD, including fixup support.  Additionally, update these to unified syntax.  
							
							... 
							
							
							
							llvm-svn: 120589 
							
						 
						
							2010-12-01 19:18:46 +00:00  
				
					
						
							
							
								 
						
							
								5695098c4c 
								
							 
						 
						
							
							
								
								Fix a mised reloc rename spot.  
							
							... 
							
							
							
							llvm-svn: 120585 
							
						 
						
							2010-12-01 19:02:26 +00:00  
				
					
						
							
							
								 
						
							
								29805961d8 
								
							 
						 
						
							
							
								
								ARM/MC/ELF relocation "hello world" for movw/movt.  
							
							... 
							
							
							
							Lifted adjustFixupValue() from Darwin for sharing w ELF.
Test added
TODO:
  refactor ELFObjectWriter::RecordRelocation more.
  Possibly share more code with Darwin?
  Lots more relocations...
llvm-svn: 120534 
							
						 
						
							2010-12-01 02:40:06 +00:00  
				
					
						
							
							
								 
						
							
								8a3a7923eb 
								
							 
						 
						
							
							
								
								Define generic 1, 2 and 4 byte pc relative relocations. They are common  
							
							... 
							
							
							
							and at least the 4 byte one will be needed to implement the .cfi_* directives.
llvm-svn: 120240 
							
						 
						
							2010-11-28 14:17:56 +00:00  
				
					
						
							
							
								 
						
							
								9f75d5df0b 
								
							 
						 
						
							
							
								
								Behave a bit more like gnu as and use the symbol (instead of the section)  
							
							... 
							
							
							
							for any relocation to a symbol defined in a tls section.
llvm-svn: 120121 
							
						 
						
							2010-11-24 21:57:39 +00:00  
				
					
						
							
							
								 
						
							
								708ac4d6ad 
								
							 
						 
						
							
							
								
								Relocate with the symbol if the relocation is of kind NTPOFF.  
							
							... 
							
							
							
							Patch by David Meyer, I added the test.
llvm-svn: 120104 
							
						 
						
							2010-11-24 19:23:50 +00:00  
				
					
						
							
							
								 
						
							
								767a1e9adc 
								
							 
						 
						
							
							
								
								Fixed some style issues (no _, no spc after !)  
							
							... 
							
							
							
							llvm-svn: 119986 
							
						 
						
							2010-11-22 22:05:16 +00:00  
				
					
						
							
							
								 
						
							
								16b75262c4 
								
							 
						 
						
							
							
								
								Make the <ARCH>ELFObjectWriter statics private  
							
							... 
							
							
							
							llvm-svn: 119982 
							
						 
						
							2010-11-22 18:57:00 +00:00  
				
					
						
							
							
								 
						
							
								84ffdd5cf1 
								
							 
						 
						
							
							
								
								Fix misplaced statics.  
							
							... 
							
							
							
							llvm-svn: 119981 
							
						 
						
							2010-11-22 18:47:05 +00:00  
				
					
						
							
							
								 
						
							
								a262546df7 
								
							 
						 
						
							
							
								
								Kill trailing whitespace  
							
							... 
							
							
							
							llvm-svn: 119979 
							
						 
						
							2010-11-22 18:42:07 +00:00  
				
					
						
							
							
								 
						
							
								7c7d0ef287 
								
							 
						 
						
							
							
								
								Refactor the ELFRelocationEntry (pull up) and move the arch-specific statics to inside the class where it belongs.  
							
							... 
							
							
							
							Next step is to rationally break apart the RecordRelocation()
Probably the step will be to have 1 member function for ech slot of the ELFRelocationEntry()
llvm-svn: 119978 
							
						 
						
							2010-11-22 18:41:13 +00:00  
				
					
						
							
							
								 
						
							
								7699d6cfe9 
								
							 
						 
						
							
							
								
								Implement ELF object file writing support for the MBlaze backend. Its not perfect yet, but it works for many tests.  
							
							... 
							
							
							
							llvm-svn: 119952 
							
						 
						
							2010-11-21 22:06:28 +00:00  
				
					
						
							
							
								 
						
							
								26cb15a549 
								
							 
						 
						
							
							
								
								Handle PCRel relocations with absolute values. Fixes PR8656.  
							
							... 
							
							
							
							llvm-svn: 119917 
							
						 
						
							2010-11-21 00:48:25 +00:00  
				
					
						
							
							
								 
						
							
								7d19efd6ff 
								
							 
						 
						
							
							
								
								A bit more of gnu as compatibility when handling relocations with aliases.  
							
							... 
							
							
							
							llvm-svn: 119328 
							
						 
						
							2010-11-16 04:11:46 +00:00  
				
					
						
							
							
								 
						
							
								202d91e433 
								
							 
						 
						
							
							
								
								Fix compiler warnigns.  
							
							... 
							
							
							
							llvm-svn: 119175 
							
						 
						
							2010-11-15 19:20:50 +00:00  
				
					
						
							
							
								 
						
							
								8c3039b67b 
								
							 
						 
						
							
							
								
								Change MCExpr::EvaluateAsRelocatableImpl of variables to return the original  
							
							... 
							
							
							
							variable if recursing fails to simplify it.
Factor AliasedSymbol to be a method of MCSymbol.
Update MCAssembler::EvaluateFixup to match the change in
EvaluateAsRelocatableImpl.
Remove the WeakRefExpr hack, as the object writer now sees the weakref with
no extra effort needed.
Nothing else is using MCTargetExpr, but keep it for now.
Now that the ELF writer sees relocations with aliases, handle
    .weak    foo2
foo2:
    .weak    bar2
    .set    bar2,foo2
    .quad    bar2
the same way gas does and produce a relocation with bar2.
llvm-svn: 119152 
							
						 
						
							2010-11-15 16:33:49 +00:00  
				
					
						
							
							
								 
						
							
								96f4c01cb3 
								
							 
						 
						
							
							
								
								Dovetail with Dan Dunbar's rework of ELFObjectWriter.  
							
							... 
							
							
							
							Added 2 new subclasses - X86ELFObjectWriter and ARMELFObectWriter.
ARM and X86 require different code for RecordRelocation(), possibly others.
llvm-svn: 119149 
							
						 
						
							2010-11-15 16:18:39 +00:00  
				
					
						
							
							
								 
						
							
								240028d11d 
								
							 
						 
						
							
							
								
								Move the logic to decide with which symbol we produce a relocation (if any) to  
							
							... 
							
							
							
							a central location. This also makes us a bit more compatible with gas.
llvm-svn: 119094 
							
						 
						
							2010-11-14 23:53:26 +00:00  
				
					
						
							
							
								 
						
							
								7d0ba3464e 
								
							 
						 
						
							
							
								
								Handle a peculiar comdat case: Creating a section with an undefined  
							
							... 
							
							
							
							signature symbol causes a local symbol to be created unless there is
some other use of the symbol.
llvm-svn: 119026 
							
						 
						
							2010-11-14 04:17:37 +00:00  
				
					
						
							
							
								 
						
							
								0e3decfcf7 
								
							 
						 
						
							
							
								
								Simplify getSymbolIndexInSymbolTable by setting the actual index of  
							
							... 
							
							
							
							the symbols.
llvm-svn: 119022 
							
						 
						
							2010-11-14 03:12:24 +00:00  
				
					
						
							
							
								 
						
							
								fe0c28f4db 
								
							 
						 
						
							
							
								
								MC: Simplify Mach-O and ELF object writer implementations.  
							
							... 
							
							
							
							- What was I thinking?????
llvm-svn: 118992 
							
						 
						
							2010-11-13 07:33:40 +00:00  
				
					
						
							
							
								 
						
							
								dcc7732f88 
								
							 
						 
						
							
							
								
								MCELF: Copy the symbol name only if we're going to modify it.  
							
							... 
							
							
							
							llvm-svn: 118920 
							
						 
						
							2010-11-12 19:26:04 +00:00  
				
					
						
							
							
								 
						
							
								a3e9a2298d 
								
							 
						 
						
							
							
								
								Initial comdat implementation.  
							
							... 
							
							
							
							llvm-svn: 118805 
							
						 
						
							2010-11-11 18:13:52 +00:00  
				
					
						
							
							
								 
						
							
								fb6540c112 
								
							 
						 
						
							
							
								
								Make AliasedSymbol able to handle MCTargetExpr. They can get here if  
							
							... 
							
							
							
							a weakref is used with a VariantKind.
llvm-svn: 118798 
							
						 
						
							2010-11-11 17:24:43 +00:00  
				
					
						
							
							
								 
						
							
								fa7b55754c 
								
							 
						 
						
							
							
								
								Fix the symbol index of weak references. Also make RecordRelocation a bit  
							
							... 
							
							
							
							easier to read by having const references to the symbol, aliased symbol and
renamed symbol.
llvm-svn: 118793 
							
						 
						
							2010-11-11 16:48:11 +00:00  
				
					
						
							
							
								 
						
							
								19fa38000a 
								
							 
						 
						
							
							
								
								Remove some explicit arguments to getELFSection. This is  
							
							... 
							
							
							
							a leftover from the removal of isExplicit.
llvm-svn: 118774 
							
						 
						
							2010-11-11 03:40:25 +00:00  
				
					
						
							
							
								 
						
							
								5a8d781caa 
								
							 
						 
						
							
							
								
								Factor some code into WriteSection.  
							
							... 
							
							
							
							llvm-svn: 118733 
							
						 
						
							2010-11-10 23:36:59 +00:00  
				
					
						
							
							
								 
						
							
								eb97f59753 
								
							 
						 
						
							
							
								
								Update the section index map after we add the medatada sections.  
							
							... 
							
							
							
							llvm-svn: 118728 
							
						 
						
							2010-11-10 22:34:07 +00:00  
				
					
						
							
							
								 
						
							
								1801410fa8 
								
							 
						 
						
							
							
								
								Use SectionIndexMap in WriteSymbolTable to make it a little less brittle.  
							
							... 
							
							
							
							llvm-svn: 118725 
							
						 
						
							2010-11-10 22:16:43 +00:00  
				
					
						
							
							
								 
						
							
								d634003ebd 
								
							 
						 
						
							
							
								
								Factor some code into ComputeIndexMap.  
							
							... 
							
							
							
							llvm-svn: 118722 
							
						 
						
							2010-11-10 21:51:05 +00:00  
				
					
						
							
							
								 
						
							
								51d68339a2 
								
							 
						 
						
							
							
								
								Change the String<size> methods to take a fragment instead of a buffer.  
							
							... 
							
							
							
							llvm-svn: 118709 
							
						 
						
							2010-11-10 20:02:59 +00:00  
				
					
						
							
							
								 
						
							
								36ef57d2eb 
								
							 
						 
						
							
							
								
								Use MCSectionELF in places we know we have an ELF section.  
							
							... 
							
							
							
							llvm-svn: 118699 
							
						 
						
							2010-11-10 19:05:07 +00:00  
				
					
						
							
							
								 
						
							
								9bb44a5ce8 
								
							 
						 
						
							
							
								
								Fixed version of 118639 with an extra assert to catch similar problems  
							
							... 
							
							
							
							earlier. Implicit bool -> int conversions are evil!
llvm-svn: 118651 
							
						 
						
							2010-11-09 23:42:07 +00:00  
				
					
						
							
							
								 
						
							
								33048f069f 
								
							 
						 
						
							
							
								
								Revert previous patch. Missed a case.  
							
							... 
							
							
							
							llvm-svn: 118645 
							
						 
						
							2010-11-09 22:54:38 +00:00  
				
					
						
							
							
								 
						
							
								4bdd2724e3 
								
							 
						 
						
							
							
								
								Remove IsExplicit. It was always false.  
							
							... 
							
							
							
							llvm-svn: 118639 
							
						 
						
							2010-11-09 22:37:44 +00:00  
				
					
						
							
							
								 
						
							
								1614597873 
								
							 
						 
						
							
							
								
								Implement .weakref.  
							
							... 
							
							
							
							llvm-svn: 117911 
							
						 
						
							2010-11-01 14:28:48 +00:00  
				
					
						
							
							
								 
						
							
								3fe87a1eed 
								
							 
						 
						
							
							
								
								Add support for files with more than 65280 sections. No testcase since  
							
							... 
							
							
							
							it would be a bit too big :-)
llvm-svn: 117849 
							
						 
						
							2010-10-31 00:16:26 +00:00  
				
					
						
							
							
								 
						
							
								45834a0065 
								
							 
						 
						
							
							
								
								Be more strict on when we produce an undefined reference. In gas a file with  
							
							... 
							
							
							
							just
.type   foo,@object
will produce an undefined reference to foo. On the other hand, a file with
just
.weakref bar, foo
will not. It is somewhat hard to support both in MC since both statements
should create the symbols. It should be possible if we really need to by
adding to the flags, but hopefully that is not necessary.
With this patch we do not produce a undefined reference in any of those cases.
The assembly file needs an actual use for the undefined reference to be
present.
This is in preparation for a patch implementing .weakref.
llvm-svn: 117735 
							
						 
						
							2010-10-29 23:09:31 +00:00  
				
					
						
							
							
								 
						
							
								3c5a54e4b9 
								
							 
						 
						
							
							
								
								Defined weak symbols should have non-zero value.  
							
							... 
							
							
							
							llvm-svn: 117585 
							
						 
						
							2010-10-28 19:39:57 +00:00  
				
					
						
							
							
								 
						
							
								29f70afbae 
								
							 
						 
						
							
							
								
								Fix relocations with renamed symbols.  
							
							... 
							
							
							
							llvm-svn: 117575 
							
						 
						
							2010-10-28 19:08:03 +00:00  
				
					
						
							
							
								 
						
							
								6cd76e63f8 
								
							 
						 
						
							
							
								
								Aliases defined with .symver should copy the binding of the symbols they alias.  
							
							... 
							
							
							
							Move the existing patching for undefined symbols so that all the patching
is done in the same function.
llvm-svn: 117570 
							
						 
						
							2010-10-28 18:33:03 +00:00  
				
					
						
							
							
								 
						
							
								936ba3af28 
								
							 
						 
						
							
							
								
								Implement R_X86_64_DTPOFF32.  
							
							... 
							
							
							
							llvm-svn: 117548 
							
						 
						
							2010-10-28 15:11:03 +00:00  
				
					
						
							
							
								 
						
							
								2dbec3f762 
								
							 
						 
						
							
							
								
								Implement TLSLD.  
							
							... 
							
							
							
							llvm-svn: 117547 
							
						 
						
							2010-10-28 15:02:40 +00:00  
				
					
						
							
							
								 
						
							
								e8f08be11c 
								
							 
						 
						
							
							
								
								Implement DTPOFF.  
							
							... 
							
							
							
							llvm-svn: 117546 
							
						 
						
							2010-10-28 14:48:59 +00:00  
				
					
						
							
							
								 
						
							
								6f23eb380d 
								
							 
						 
						
							
							
								
								Implement TLSLDM.  
							
							... 
							
							
							
							llvm-svn: 117544 
							
						 
						
							2010-10-28 14:37:09 +00:00  
				
					
						
							
							
								 
						
							
								b3b49bbc39 
								
							 
						 
						
							
							
								
								Implement VK_GOTNTPOFF and switch RelocNeedsGOT to use VariantKind.  
							
							... 
							
							
							
							llvm-svn: 117543 
							
						 
						
							2010-10-28 14:22:44 +00:00  
				
					
						
							
							
								 
						
							
								f8537165bd 
								
							 
						 
						
							
							
								
								Add support for R_386_TLS_GD, R_386_TLS_LE_32, R_386_TLS_IE and R_386_TLS_LE.  
							
							... 
							
							
							
							llvm-svn: 117494 
							
						 
						
							2010-10-27 21:23:52 +00:00  
				
					
						
							
							
								 
						
							
								24c8b04d5f 
								
							 
						 
						
							
							
								
								Implement R_X86_64_GOTTPOFF, R_X86_64_TLSGD and R_X86_64_TPOFF32.  
							
							... 
							
							
							
							llvm-svn: 117481 
							
						 
						
							2010-10-27 20:28:07 +00:00  
				
					
						
							
							
								 
						
							
								14807270be 
								
							 
						 
						
							
							
								
								Replace pointer arithmetic with StringRef::substr.  
							
							... 
							
							
							
							llvm-svn: 117477 
							
						 
						
							2010-10-27 19:53:52 +00:00  
				
					
						
							
							
								 
						
							
								26496e6835 
								
							 
						 
						
							
							
								
								Produce an error for an invalid use of .symver.  
							
							... 
							
							
							
							llvm-svn: 117462 
							
						 
						
							2010-10-27 17:56:18 +00:00  
				
					
						
							
							
								 
						
							
								cc1b168ef6 
								
							 
						 
						
							
							
								
								Symbols defined as the difference of other two end up in the ABS section.  
							
							... 
							
							
							
							llvm-svn: 117451 
							
						 
						
							2010-10-27 16:04:30 +00:00  
				
					
						
							
							
								 
						
							
								eb0c2c170d 
								
							 
						 
						
							
							
								
								Add support for the .symver directive. This is really ugly, but most of it is  
							
							... 
							
							
							
							contained in the ELF object writer.
llvm-svn: 117448 
							
						 
						
							2010-10-27 15:18:17 +00:00  
				
					
						
							
							
								 
						
							
								a5efd6a27c 
								
							 
						 
						
							
							
								
								Move more logic to isInSymtab and simplify.  
							
							... 
							
							
							
							llvm-svn: 117447 
							
						 
						
							2010-10-27 14:44:52 +00:00  
				
					
						
							
							
								 
						
							
								0ed1543d4e 
								
							 
						 
						
							
							
								
								Add support for emitting ARM file attributes.  
							
							... 
							
							
							
							llvm-svn: 117275 
							
						 
						
							2010-10-25 17:50:35 +00:00  
				
					
						
							
							
								 
						
							
								800fd3533c 
								
							 
						 
						
							
							
								
								Add X86::reloc_global_offset_table and use it to have a single place where  
							
							... 
							
							
							
							we check for _GLOBAL_OFFSET_TABLE_.
llvm-svn: 117241 
							
						 
						
							2010-10-24 17:35:42 +00:00  
				
					
						
							
							
								 
						
							
								1851090515 
								
							 
						 
						
							
							
								
								Making the e_machine configurable by the target backend in ELFObjectWriter.  
							
							... 
							
							
							
							llvm-svn: 117099 
							
						 
						
							2010-10-22 15:52:49 +00:00  
				
					
						
							
							
								 
						
							
								ee8d15157a 
								
							 
						 
						
							
							
								
								Small cleanups and fixes in preparation for fixing _GLOBAL_OFFSET_TABLE_.  
							
							... 
							
							
							
							llvm-svn: 116848 
							
						 
						
							2010-10-19 19:31:37 +00:00  
				
					
						
							
							
								 
						
							
								fba9f74932 
								
							 
						 
						
							
							
								
								Implement R_386_GOT32.  
							
							... 
							
							
							
							llvm-svn: 116744 
							
						 
						
							2010-10-18 20:47:21 +00:00  
				
					
						
							
							
								 
						
							
								0a5314fdb3 
								
							 
						 
						
							
							
								
								Relocate with .bss instead of using the symbol. Matches gas behavior.  
							
							... 
							
							
							
							llvm-svn: 116741 
							
						 
						
							2010-10-18 20:25:33 +00:00  
				
					
						
							
							
								 
						
							
								3604d4441a 
								
							 
						 
						
							
							
								
								Reenable assert.  
							
							... 
							
							
							
							llvm-svn: 116738 
							
						 
						
							2010-10-18 19:33:01 +00:00  
				
					
						
							
							
								 
						
							
								e3dc9e2ea1 
								
							 
						 
						
							
							
								
								Produce ELF::R_386_GOTPC relocations.  
							
							... 
							
							
							
							llvm-svn: 116728 
							
						 
						
							2010-10-18 18:36:12 +00:00  
				
					
						
							
							
								 
						
							
								257374bb0f 
								
							 
						 
						
							
							
								
								Make the bots happy.  
							
							... 
							
							
							
							llvm-svn: 116719 
							
						 
						
							2010-10-18 18:03:28 +00:00  
				
					
						
							
							
								 
						
							
								3521f8467d 
								
							 
						 
						
							
							
								
								Produce a R_386_PLT32 when needed. Moved the default cases of switches to the  
							
							... 
							
							
							
							start for consistency.
llvm-svn: 116715 
							
						 
						
							2010-10-18 16:58:03 +00:00  
				
					
						
							
							
								 
						
							
								4464e0858f 
								
							 
						 
						
							
							
								
								Handle GOTOFF correctly on i386.  
							
							... 
							
							
							
							llvm-svn: 116711 
							
						 
						
							2010-10-18 16:38:04 +00:00  
				
					
						
							
							
								 
						
							
								77414757f6 
								
							 
						 
						
							
							
								
								Fix a typo and silence unused variable warnings in -Asserts build.  
							
							... 
							
							
							
							llvm-svn: 116685 
							
						 
						
							2010-10-17 07:38:40 +00:00  
				
					
						
							
							
								 
						
							
								4262a22225 
								
							 
						 
						
							
							
								
								Add a MCObjectFormat class so that code common to all targets that use a  
							
							... 
							
							
							
							single object format can be shared.
This also adds support for
mov zed+(bar-foo), %eax
on ELF and COFF targets.
llvm-svn: 116675 
							
						 
						
							2010-10-16 18:23:53 +00:00  
				
					
						
							
							
								 
						
							
								84378f0f53 
								
							 
						 
						
							
							
								
								Refactor alias handling to AliasedSymbol.  
							
							... 
							
							
							
							llvm-svn: 116600 
							
						 
						
							2010-10-15 18:25:33 +00:00  
				
					
						
							
							
								 
						
							
								fbcf0db7ee 
								
							 
						 
						
							
							
								
								Refactor code a bit and avoid creating unnecessary entries in the string  
							
							... 
							
							
							
							map.
llvm-svn: 116579 
							
						 
						
							2010-10-15 15:39:06 +00:00  
				
					
						
							
							
								 
						
							
								bee6e9f8e0 
								
							 
						 
						
							
							
								
								Remove some code duplication.  
							
							... 
							
							
							
							llvm-svn: 116484 
							
						 
						
							2010-10-14 16:34:44 +00:00  
				
					
						
							
							
								 
						
							
								883936ce0b 
								
							 
						 
						
							
							
								
								Another case of 256 sections not being enough :-)  
							
							... 
							
							
							
							llvm-svn: 115858 
							
						 
						
							2010-10-06 22:28:19 +00:00  
				
					
						
							
							
								 
						
							
								5f2d6a5cd9 
								
							 
						 
						
							
							
								
								Get binding and visibility info from the the alias, but Type from the symbol  
							
							... 
							
							
							
							being aliased.
llvm-svn: 115836 
							
						 
						
							2010-10-06 21:02:29 +00:00  
				
					
						
							
							
								 
						
							
								d444577382 
								
							 
						 
						
							
							
								
								If a symbol is global, reloc against it even if it is in a mergeable section.  
							
							... 
							
							
							
							llvm-svn: 115817 
							
						 
						
							2010-10-06 19:27:21 +00:00  
				
					
						
							
							
								 
						
							
								83b2a3337f 
								
							 
						 
						
							
							
								
								Make sure weak symbols are listed after the local ones.  
							
							... 
							
							
							
							llvm-svn: 115795 
							
						 
						
							2010-10-06 16:47:31 +00:00  
				
					
						
							
							
								 
						
							
								8f3d2c9058 
								
							 
						 
						
							
							
								
								Correctly handle GOTPCREL relocations.  
							
							... 
							
							
							
							llvm-svn: 115793 
							
						 
						
							2010-10-06 16:23:36 +00:00  
				
					
						
							
							
								 
						
							
								d7565c3a06 
								
							 
						 
						
							
							
								
								Use a relocation against the symbol if it is a PLT and the symbol is in another  
							
							... 
							
							
							
							section. Common because of linkonce sections.
llvm-svn: 115718 
							
						 
						
							2010-10-05 23:57:26 +00:00  
				
					
						
							
							
								 
						
							
								0ad137e98e 
								
							 
						 
						
							
							
								
								Implement more alias cases.  
							
							... 
							
							
							
							llvm-svn: 115699 
							
						 
						
							2010-10-05 22:26:43 +00:00  
				
					
						
							
							
								 
						
							
								3844da781f 
								
							 
						 
						
							
							
								
								256 sections should be enough for anyone...  
							
							... 
							
							
							
							llvm-svn: 115687 
							
						 
						
							2010-10-05 21:20:07 +00:00  
				
					
						
							
							
								 
						
							
								c58a37ea51 
								
							 
						 
						
							
							
								
								Don't crash in a strange .size directive.  
							
							... 
							
							
							
							llvm-svn: 115684 
							
						 
						
							2010-10-05 21:02:45 +00:00  
				
					
						
							
							
								 
						
							
								b1d0789357 
								
							 
						 
						
							
							
								
								Implement a simple alias case and refactor the code a bit so that the  
							
							... 
							
							
							
							isInSymtab and isLocal logic in the two loops don't get easily out of sync.
llvm-svn: 115643 
							
						 
						
							2010-10-05 18:01:23 +00:00  
				
					
						
							
							
								 
						
							
								d03e81dba8 
								
							 
						 
						
							
							
								
								Produce a undefined reference to _GLOBAL_OFFSET_TABLE_ when needed.  
							
							... 
							
							
							
							llvm-svn: 115623 
							
						 
						
							2010-10-05 15:48:37 +00:00  
				
					
						
							
							
								 
						
							
								bce26a1ee0 
								
							 
						 
						
							
							
								
								On ELF we need to know which symbols are used in relocations to decide if  
							
							... 
							
							
							
							they should be in the symbol table or not. Instead of "guessing", just compute
the symbol table after the relocations are known.
llvm-svn: 115619 
							
						 
						
							2010-10-05 15:11:03 +00:00  
				
					
						
							
							
								 
						
							
								fd1fff8b19 
								
							 
						 
						
							
							
								
								Implement ELF::R_X86_64_GOTPCREL.  
							
							... 
							
							
							
							llvm-svn: 115547 
							
						 
						
							2010-10-04 19:51:39 +00:00  
				
					
						
							
							
								 
						
							
								308363336b 
								
							 
						 
						
							
							
								
								Move isFixupKindX86PCRel.  
							
							... 
							
							
							
							llvm-svn: 115545 
							
						 
						
							2010-10-04 19:46:28 +00:00  
				
					
						
							
							
								 
						
							
								baadbd554a 
								
							 
						 
						
							
							
								
								Produce a R_X86_64_PLT32 when needed.  
							
							... 
							
							
							
							llvm-svn: 115541 
							
						 
						
							2010-10-04 19:04:13 +00:00  
				
					
						
							
							
								 
						
							
								b2c4ca6433 
								
							 
						 
						
							
							
								
								Produce a R_X86_64_GOT32 when needed.  
							
							... 
							
							
							
							llvm-svn: 115537 
							
						 
						
							2010-10-04 18:44:25 +00:00  
				
					
						
							
							
								 
						
							
								da0e3d07b2 
								
							 
						 
						
							
							
								
								Include the section address in the computation of the relocation.  
							
							... 
							
							
							
							llvm-svn: 115509 
							
						 
						
							2010-10-04 15:59:01 +00:00  
				
					
						
							
							
								 
						
							
								7c48b06930 
								
							 
						 
						
							
							
								
								Correctly compute the relocation when it is not in the first fragment.  
							
							... 
							
							
							
							llvm-svn: 115506 
							
						 
						
							2010-10-04 15:28:43 +00:00  
				
					
						
							
							
								 
						
							
								f70b4e0c2e 
								
							 
						 
						
							
							
								
								Implement a very basic PIC case.  
							
							... 
							
							
							
							llvm-svn: 115454 
							
						 
						
							2010-10-03 00:46:57 +00:00  
				
					
						
							
							
								 
						
							
								f987d5ea1c 
								
							 
						 
						
							
							
								
								Factor some logic into ShouldRelocOnSymbol. This simplifies the code and  
							
							... 
							
							
							
							fixes some cases where we were producing relocations with at symbol that
should use a section instead.
llvm-svn: 115194 
							
						 
						
							2010-09-30 20:18:35 +00:00  
				
					
						
							
							
								 
						
							
								70d6e0e0ff 
								
							 
						 
						
							
							
								
								Correctly produce R_X86_64_32 or R_X86_64_32S.  
							
							... 
							
							
							
							With this patch in
movq    $foo, foo(%rip)
foo:
.long   foo
We produce a R_X86_64_32S for the first relocation and R_X86_64_32 for the
second one.
llvm-svn: 115134 
							
						 
						
							2010-09-30 03:11:42 +00:00  
				
					
						
							
							
								 
						
							
								2ebaee9c75 
								
							 
						 
						
							
							
								
								Make it possible for the MCObjectWriter to decide if a given fixup is fully  
							
							... 
							
							
							
							resolved or not. Different object files have different restrictions and
different native assemblers have different idiosyncrasies we want to emulate
for now.
Move the existing MachO logic to the new place and implement an ELF one that
gets fixups to globals right.
llvm-svn: 115131 
							
						 
						
							2010-09-30 02:22:20 +00:00  
				
					
						
							
							
								 
						
							
								01d20a76fe 
								
							 
						 
						
							
							
								
								On elf, undefined symbols can start with .L.  
							
							... 
							
							
							
							llvm-svn: 114958 
							
						 
						
							2010-09-28 16:19:11 +00:00  
				
					
						
							
							
								 
						
							
								96bfb50c03 
								
							 
						 
						
							
							
								
								Write relocations in the end of the file. This matches what gas does and  
							
							... 
							
							
							
							makes files easier to diff.
llvm-svn: 114898 
							
						 
						
							2010-09-27 22:04:54 +00:00  
				
					
						
							
							
								 
						
							
								9735f4ff8d 
								
							 
						 
						
							
							
								
								Factor symbol value computation into a function.  
							
							... 
							
							
							
							llvm-svn: 114891 
							
						 
						
							2010-09-27 21:23:02 +00:00  
				
					
						
							
							
								 
						
							
								75d65b9a03 
								
							 
						 
						
							
							
								
								Move ELF to HasReliableSymbolDifference=true. Also take the opportunity to put  
							
							... 
							
							
							
							symbols defined in merge sections in independent atoms.
llvm-svn: 114786 
							
						 
						
							2010-09-25 05:42:19 +00:00  
				
					
						
							
							
								 
						
							
								cf1f985838 
								
							 
						 
						
							
							
								
								Reapply 114678 and 114667. Reverting them did not fix the bot:  
							
							... 
							
							
							
							http://google1.osuosl.org:8011/builders/llvm-gcc-i386-linux-selfhost/builds/69 
llvm-svn: 114761 
						
							2010-09-24 21:19:03 +00:00  
				
					
						
							
							
								 
						
							
								3843bb9d2c 
								
							 
						 
						
							
							
								
								Revert 114678 and 114667 to see if  
							
							... 
							
							
							
							http://google1.osuosl.org:8011/builders/llvm-gcc-i386-linux-selfhost 
gets happy.
llvm-svn: 114742 
						
							2010-09-24 18:48:08 +00:00  
				
					
						
							
							
								 
						
							
								f458f04eb1 
								
							 
						 
						
							
							
								
								Correctly handle weak undefined symbols. Before we would get a invalid binding  
							
							... 
							
							
							
							(2 == STB_WEAK | STB_GLOBAL).
llvm-svn: 114690 
							
						 
						
							2010-09-23 19:55:14 +00:00  
				
					
						
							
							
								 
						
							
								6366d1b858 
								
							 
						 
						
							
							
								
								Correctly compute the offset of the symbol. Forgot these bits from the  
							
							... 
							
							
							
							last commit.
llvm-svn: 114678 
							
						 
						
							2010-09-23 18:01:31 +00:00  
				
					
						
							
							
								 
						
							
								48e108753b 
								
							 
						 
						
							
							
								
								Represent relocations against local symbols as relocations against the section  
							
							... 
							
							
							
							they are in. Both ways should be equivalent, but gas produces relocations
against the section.
Roman wrote the patch, I added the test.
llvm-svn: 114667 
							
						 
						
							2010-09-23 17:25:18 +00:00  
				
					
						
							
							
								 
						
							
								2816588eb9 
								
							 
						 
						
							
							
								
								Fix the FIXME.  
							
							... 
							
							
							
							llvm-svn: 114639 
							
						 
						
							2010-09-23 14:14:56 +00:00  
				
					
						
							
							
								 
						
							
								0e527b7ed5 
								
							 
						 
						
							
							
								
								Fix typo and add a FIXME.  
							
							... 
							
							
							
							llvm-svn: 114570 
							
						 
						
							2010-09-22 19:04:41 +00:00  
				
					
						
							
							
								 
						
							
								461a692c7f 
								
							 
						 
						
							
							
								
								Revert unrelated change that was accidentally included in the previous commit.  
							
							... 
							
							
							
							llvm-svn: 114383 
							
						 
						
							2010-09-21 00:40:19 +00:00  
				
					
						
							
							
								 
						
							
								f0591c1642 
								
							 
						 
						
							
							
								
								Implement support for .local and its "interesting" interactions with .comm.  
							
							... 
							
							
							
							llvm-svn: 114382 
							
						 
						
							2010-09-21 00:24:38 +00:00  
				
					
						
							
							
								 
						
							
								32ab4558fe 
								
							 
						 
						
							
							
								
								Produce a R_X86_64_32 when the value is >=0.  
							
							... 
							
							
							
							llvm-svn: 114339 
							
						 
						
							2010-09-20 19:20:47 +00:00  
				
					
						
							
							
								 
						
							
								57e599a82a 
								
							 
						 
						
							
							
								
								Make sure the STT_FILE symbol is the first one in the symbol table.  
							
							... 
							
							
							
							llvm-svn: 114285 
							
						 
						
							2010-09-18 15:03:21 +00:00  
				
					
						
							
							
								 
						
							
								0ecde03e9f 
								
							 
						 
						
							
							
								
								Avoid relocations in a common case.  
							
							... 
							
							
							
							llvm-svn: 114229 
							
						 
						
							2010-09-17 22:34:41 +00:00  
				
					
						
							
							
								 
						
							
								44bf266111 
								
							 
						 
						
							
							
								
								Print the address of sections as 0 and create the metadata sections in the  
							
							... 
							
							
							
							same order as gnu as.
llvm-svn: 114109 
							
						 
						
							2010-09-16 19:46:31 +00:00  
				
					
						
							
							
								 
						
							
								6c3c349b2b 
								
							 
						 
						
							
							
								
								MCELF: Write relocation fragments in the right endian.  
							
							... 
							
							
							
							- This code is gross, but does the job for now.
llvm-svn: 113509 
							
						 
						
							2010-09-09 18:01:29 +00:00  
				
					
						
							
							
								 
						
							
								3b727f55aa 
								
							 
						 
						
							
							
								
								Make ELF OS ABI dependent on the OS from target triple.  
							
							... 
							
							
							
							llvm-svn: 113508 
							
						 
						
							2010-09-09 17:57:50 +00:00  
				
					
						
							
							
								 
						
							
								2ef1a589c5 
								
							 
						 
						
							
							
								
								ELF_STB_Local is 0 so setting and checking it must be done specially  
							
							... 
							
							
							
							llvm-svn: 113375 
							
						 
						
							2010-09-08 18:08:40 +00:00  
				
					
						
							
							
								 
						
							
								6c27de28b5 
								
							 
						 
						
							
							
								
								Unresolved weak symbols have value equal zero.  
							
							... 
							
							
							
							llvm-svn: 113358 
							
						 
						
							2010-09-08 14:29:45 +00:00  
				
					
						
							
							
								 
						
							
								3723ba1fe0 
								
							 
						 
						
							
							
								
								MCELF: Align symtab, relocation sections and section headers properly. Patch by Krister Wombell.  
							
							... 
							
							
							
							llvm-svn: 113155 
							
						 
						
							2010-09-06 16:11:52 +00:00  
				
					
						
							
							
								 
						
							
								4226198a1d 
								
							 
						 
						
							
							
								
								Allow creation of SHT_NULL sections, from Roman Divacky.  
							
							... 
							
							
							
							llvm-svn: 112605 
							
						 
						
							2010-08-31 17:03:33 +00:00  
				
					
						
							
							
								 
						
							
								b1b493bcab 
								
							 
						 
						
							
							
								
								MCELF: The value of all common symbols is the offset from the start of the section.  Patch by Roman Divacky.  
							
							... 
							
							
							
							llvm-svn: 112492 
							
						 
						
							2010-08-30 17:20:17 +00:00  
				
					
						
							
							
								 
						
							
								8199447851 
								
							 
						 
						
							
							
								
								The value is offset from the start of the section for non-common symbols, submitted by Jordan Gordeev.  
							
							... 
							
							
							
							llvm-svn: 112473 
							
						 
						
							2010-08-30 12:00:16 +00:00  
				
					
						
							
							
								 
						
							
								f791b9fc56 
								
							 
						 
						
							
							
								
								Index external symbols by symbol table instead of parent section, by Roman Divacky.  
							
							... 
							
							
							
							llvm-svn: 112472 
							
						 
						
							2010-08-30 11:59:29 +00:00  
				
					
						
							
							
								 
						
							
								95bb297c26 
								
							 
						 
						
							
							
								
								squish dead code.  
							
							... 
							
							
							
							llvm-svn: 112350 
							
						 
						
							2010-08-28 03:21:03 +00:00  
				
					
						
							
							
								 
						
							
								05e22982c8 
								
							 
						 
						
							
							
								
								MCELF: Always overwrite FixedValue.  
							
							... 
							
							
							
							llvm-svn: 112259 
							
						 
						
							2010-08-27 10:38:39 +00:00  
				
					
						
							
							
								 
						
							
								2c45f431fa 
								
							 
						 
						
							
							
								
								MCELF: Fix a thinko of mine.  
							
							... 
							
							
							
							llvm-svn: 112203 
							
						 
						
							2010-08-26 18:12:04 +00:00  
				
					
						
							
							
								 
						
							
								929cc7618f 
								
							 
						 
						
							
							
								
								MCELF: Compensate for the addend on i386. Patch by Roman Divacky, with some cleanups.  
							
							... 
							
							
							
							llvm-svn: 112197 
							
						 
						
							2010-08-26 17:23:02 +00:00  
				
					
						
							
							
								 
						
							
								37b384cd66 
								
							 
						 
						
							
							
								
								MCELF: Use precomputed symbol indices, patch by Roman Divacky.  
							
							... 
							
							
							
							llvm-svn: 112079 
							
						 
						
							2010-08-25 20:09:43 +00:00  
				
					
						
							
							
								 
						
							
								a536f077fe 
								
							 
						 
						
							
							
								
								Relocate against parent if the symbol is not in section or it's a common symbol, from Roman Divacky.  
							
							... 
							
							
							
							llvm-svn: 111925 
							
						 
						
							2010-08-24 17:34:39 +00:00  
				
					
						
							
							
								 
						
							
								d41b53c037 
								
							 
						 
						
							
							
								
								Fix thinko. Having no tests is great ...  
							
							... 
							
							
							
							llvm-svn: 111848 
							
						 
						
							2010-08-23 21:32:00 +00:00  
				
					
						
							
							
								 
						
							
								c4809c930a 
								
							 
						 
						
							
							
								
								Reduce code duplication.  
							
							... 
							
							
							
							llvm-svn: 111846 
							
						 
						
							2010-08-23 21:23:52 +00:00  
				
					
						
							
							
								 
						
							
								86511dce18 
								
							 
						 
						
							
							
								
								ELFObjectWriter: Run ComputeSymbolTable before recording relocations. This way we can use the information it has computed and don't have to recompute the same stuff over and over again.  
							
							... 
							
							
							
							llvm-svn: 111844 
							
						 
						
							2010-08-23 21:19:37 +00:00  
				
					
						
							
							
								 
						
							
								40f83489b4 
								
							 
						 
						
							
							
								
								Add the symbol offset to the relocation value when we relocate against section. By Roman Divacky.  
							
							... 
							
							
							
							llvm-svn: 111824 
							
						 
						
							2010-08-23 19:05:46 +00:00  
				
					
						
							
							
								 
						
							
								620b68e883 
								
							 
						 
						
							
							
								
								Use the proper relocation section + cleanup, from Roman Divacky.  
							
							... 
							
							
							
							llvm-svn: 111819 
							
						 
						
							2010-08-23 18:24:20 +00:00  
				
					
						
							
							
								 
						
							
								448886d5df 
								
							 
						 
						
							
							
								
								MCELF: Count the section orders properly. Patch by Roman Divacky.  
							
							... 
							
							
							
							llvm-svn: 111517 
							
						 
						
							2010-08-19 13:44:49 +00:00  
				
					
						
							
							
								 
						
							
								da7604f53d 
								
							 
						 
						
							
							
								
								Remove dead code. Fixes a GCC warning.  
							
							... 
							
							
							
							llvm-svn: 111271 
							
						 
						
							2010-08-17 19:45:05 +00:00  
				
					
						
							
							
								 
						
							
								1afba421a9 
								
							 
						 
						
							
							
								
								Sketch i386 relocations handling, from Roman Divacky.  
							
							... 
							
							
							
							Hello world builds & runs now on i386/ELF with -integrated-as.
llvm-svn: 111264 
							
						 
						
							2010-08-17 18:20:28 +00:00  
				
					
						
							
							
								 
						
							
								fd0541566b 
								
							 
						 
						
							
							
								
								Use the correct entry size for relocation entries, from Roman Divacky.  
							
							... 
							
							
							
							llvm-svn: 111259 
							
						 
						
							2010-08-17 17:56:13 +00:00  
				
					
						
							
							
								 
						
							
								1fe76565d0 
								
							 
						 
						
							
							
								
								Differentiate between RELA and REL relocations, from Roman Divacky.  
							
							... 
							
							
							
							llvm-svn: 111252 
							
						 
						
							2010-08-17 17:30:07 +00:00  
				
					
						
							
							
								 
						
							
								896bd7e932 
								
							 
						 
						
							
							
								
								One baby step towards i386 ELF, from Roman Divacky.  
							
							... 
							
							
							
							llvm-svn: 111247 
							
						 
						
							2010-08-17 17:02:29 +00:00  
				
					
						
							
							
								 
						
							
								b962ca0ce5 
								
							 
						 
						
							
							
								
								Try to silence a overeager GCC warning.  
							
							... 
							
							
							
							llvm-svn: 111214 
							
						 
						
							2010-08-17 00:33:24 +00:00  
				
					
						
							
							
								 
						
							
								5f237942f5 
								
							 
						 
						
							
							
								
								A round of minor cleanups for ELFObjectWriter.  
							
							... 
							
							
							
							llvm-svn: 111213 
							
						 
						
							2010-08-17 00:00:46 +00:00  
				
					
						
							
							
								 
						
							
								be6cca2b7d 
								
							 
						 
						
							
							
								
								Silence warnings and simplify code. Eliminate a 32/64 bit portability issue.  
							
							... 
							
							
							
							llvm-svn: 111201 
							
						 
						
							2010-08-16 23:00:12 +00:00  
				
					
						
							
							
								 
						
							
								1fe0d53aec 
								
							 
						 
						
							
							
								
								Fixes for generation of ELF relocations.  Patch by Roman Divacky.  
							
							... 
							
							
							
							llvm-svn: 111183 
							
						 
						
							2010-08-16 21:17:09 +00:00  
				
					
						
							
							
								 
						
							
								b20b5249d2 
								
							 
						 
						
							
							
								
								Fix a few warnings in and detabify MCELFStreamer and ELFObjectWriter.  
							
							... 
							
							
							
							llvm-svn: 111175 
							
						 
						
							2010-08-16 19:15:06 +00:00  
				
					
						
							
							
								 
						
							
								6c1ad4835e 
								
							 
						 
						
							
							
								
								Add ELF ObjectWriter and Streamer support.  
							
							... 
							
							
							
							I forgot to add these files in commit 111172.
llvm-svn: 111174 
							
						 
						
							2010-08-16 18:57:57 +00:00