Rafael Espindola 
							
						 
					 
					
						
						
							
						
						a0949b50dc 
					 
					
						
						
							
							Remove some code duplication.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116484  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-10-14 16:34:44 +00:00 
						 
				 
			
				
					
						
							
							
								Rafael Espindola 
							
						 
					 
					
						
						
							
						
						d8e0bfe07a 
					 
					
						
						
							
							Another case of 256 sections not being enough :-)  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115858  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-10-06 22:28:19 +00:00 
						 
				 
			
				
					
						
							
							
								Rafael Espindola 
							
						 
					 
					
						
						
							
						
						152c1061e0 
					 
					
						
						
							
							Get binding and visibility info from the the alias, but Type from the symbol  
						
						... 
						
						
						
						being aliased.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115836  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-10-06 21:02:29 +00:00 
						 
				 
			
				
					
						
							
							
								Rafael Espindola 
							
						 
					 
					
						
						
							
						
						153666c038 
					 
					
						
						
							
							If a symbol is global, reloc against it even if it is in a mergeable section.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115817  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-10-06 19:27:21 +00:00 
						 
				 
			
				
					
						
							
							
								Rafael Espindola 
							
						 
					 
					
						
						
							
						
						3223f19ff0 
					 
					
						
						
							
							Make sure weak symbols are listed after the local ones.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115795  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-10-06 16:47:31 +00:00 
						 
				 
			
				
					
						
							
							
								Rafael Espindola 
							
						 
					 
					
						
						
							
						
						8cecf253e4 
					 
					
						
						
							
							Correctly handle GOTPCREL relocations.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115793  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-10-06 16:23:36 +00:00 
						 
				 
			
				
					
						
							
							
								Rafael Espindola 
							
						 
					 
					
						
						
							
						
						3729d0052b 
					 
					
						
						
							
							Use a relocation against the symbol if it is a PLT and the symbol is in another  
						
						... 
						
						
						
						section. Common because of linkonce sections.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115718  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-10-05 23:57:26 +00:00 
						 
				 
			
				
					
						
							
							
								Rafael Espindola 
							
						 
					 
					
						
						
							
						
						01f9ea35a7 
					 
					
						
						
							
							Implement more alias cases.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115699  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-10-05 22:26:43 +00:00 
						 
				 
			
				
					
						
							
							
								Rafael Espindola 
							
						 
					 
					
						
						
							
						
						f5c347dfc2 
					 
					
						
						
							
							256 sections should be enough for anyone...  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115687  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-10-05 21:20:07 +00:00 
						 
				 
			
				
					
						
							
							
								Rafael Espindola 
							
						 
					 
					
						
						
							
						
						62fed8bd38 
					 
					
						
						
							
							Don't crash in a strange .size directive.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115684  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-10-05 21:02:45 +00:00 
						 
				 
			
				
					
						
							
							
								Rafael Espindola 
							
						 
					 
					
						
						
							
						
						737cd213e3 
					 
					
						
						
							
							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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115643  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-10-05 18:01:23 +00:00 
						 
				 
			
				
					
						
							
							
								Rafael Espindola 
							
						 
					 
					
						
						
							
						
						5c77c16f31 
					 
					
						
						
							
							Produce a undefined reference to _GLOBAL_OFFSET_TABLE_ when needed.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115623  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-10-05 15:48:37 +00:00 
						 
				 
			
				
					
						
							
							
								Rafael Espindola 
							
						 
					 
					
						
						
							
						
						8f413fa9c0 
					 
					
						
						
							
							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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115619  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-10-05 15:11:03 +00:00 
						 
				 
			
				
					
						
							
							
								Rafael Espindola 
							
						 
					 
					
						
						
							
						
						607d1f6d32 
					 
					
						
						
							
							Implement ELF::R_X86_64_GOTPCREL.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115547  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-10-04 19:51:39 +00:00 
						 
				 
			
				
					
						
							
							
								Rafael Espindola 
							
						 
					 
					
						
						
							
						
						cebdc01d66 
					 
					
						
						
							
							Move isFixupKindX86PCRel.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115545  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-10-04 19:46:28 +00:00 
						 
				 
			
				
					
						
							
							
								Rafael Espindola 
							
						 
					 
					
						
						
							
						
						92bf6684f6 
					 
					
						
						
							
							Produce a R_X86_64_PLT32 when needed.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115541  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-10-04 19:04:13 +00:00 
						 
				 
			
				
					
						
							
							
								Rafael Espindola 
							
						 
					 
					
						
						
							
						
						28f9ac8101 
					 
					
						
						
							
							Produce a R_X86_64_GOT32 when needed.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115537  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-10-04 18:44:25 +00:00 
						 
				 
			
				
					
						
							
							
								Rafael Espindola 
							
						 
					 
					
						
						
							
						
						55fb102130 
					 
					
						
						
							
							Include the section address in the computation of the relocation.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115509  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-10-04 15:59:01 +00:00 
						 
				 
			
				
					
						
							
							
								Rafael Espindola 
							
						 
					 
					
						
						
							
						
						01263d35d4 
					 
					
						
						
							
							Correctly compute the relocation when it is not in the first fragment.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115506  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-10-04 15:28:43 +00:00 
						 
				 
			
				
					
						
							
							
								Rafael Espindola 
							
						 
					 
					
						
						
							
						
						9d8b7555cd 
					 
					
						
						
							
							Implement a very basic PIC case.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115454  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-10-03 00:46:57 +00:00 
						 
				 
			
				
					
						
							
							
								Rafael Espindola 
							
						 
					 
					
						
						
							
						
						7eae36b38b 
					 
					
						
						
							
							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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115194  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-09-30 20:18:35 +00:00 
						 
				 
			
				
					
						
							
							
								Rafael Espindola 
							
						 
					 
					
						
						
							
						
						a8c02c3bdd 
					 
					
						
						
							
							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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115134  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-09-30 03:11:42 +00:00 
						 
				 
			
				
					
						
							
							
								Rafael Espindola 
							
						 
					 
					
						
						
							
						
						7070387f08 
					 
					
						
						
							
							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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115131  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-09-30 02:22:20 +00:00 
						 
				 
			
				
					
						
							
							
								Rafael Espindola 
							
						 
					 
					
						
						
							
						
						53725bc57a 
					 
					
						
						
							
							On elf, undefined symbols can start with .L.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114958  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-09-28 16:19:11 +00:00 
						 
				 
			
				
					
						
							
							
								Rafael Espindola 
							
						 
					 
					
						
						
							
						
						c3c413f631 
					 
					
						
						
							
							Write relocations in the end of the file. This matches what gas does and  
						
						... 
						
						
						
						makes files easier to diff.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114898  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-09-27 22:04:54 +00:00 
						 
				 
			
				
					
						
							
							
								Rafael Espindola 
							
						 
					 
					
						
						
							
						
						2c6ec31df6 
					 
					
						
						
							
							Factor symbol value computation into a function.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114891  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-09-27 21:23:02 +00:00 
						 
				 
			
				
					
						
							
							
								Rafael Espindola 
							
						 
					 
					
						
						
							
						
						73ffea47d2 
					 
					
						
						
							
							Move ELF to HasReliableSymbolDifference=true. Also take the opportunity to put  
						
						... 
						
						
						
						symbols defined in merge sections in independent atoms.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114786  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-09-25 05:42:19 +00:00 
						 
				 
			
				
					
						
							
							
								Rafael Espindola 
							
						 
					 
					
						
						
							
						
						a648918eb7 
					 
					
						
						
							
							Reapply 114678 and 114667. Reverting them did not fix the bot:  
						
						... 
						
						
						
						http://google1.osuosl.org:8011/builders/llvm-gcc-i386-linux-selfhost/builds/69 
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114761  91177308-0d34-0410-b5e6-96231b3b80d8 
					
						2010-09-24 21:19:03 +00:00 
						 
				 
			
				
					
						
							
							
								Rafael Espindola 
							
						 
					 
					
						
						
							
						
						cd4b20a25b 
					 
					
						
						
							
							Revert 114678 and 114667 to see if  
						
						... 
						
						
						
						http://google1.osuosl.org:8011/builders/llvm-gcc-i386-linux-selfhost 
gets happy.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114742  91177308-0d34-0410-b5e6-96231b3b80d8 
					
						2010-09-24 18:48:08 +00:00 
						 
				 
			
				
					
						
							
							
								Rafael Espindola 
							
						 
					 
					
						
						
							
						
						e15eb4e14c 
					 
					
						
						
							
							Correctly handle weak undefined symbols. Before we would get a invalid binding  
						
						... 
						
						
						
						(2 == STB_WEAK | STB_GLOBAL).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114690  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-09-23 19:55:14 +00:00 
						 
				 
			
				
					
						
							
							
								Rafael Espindola 
							
						 
					 
					
						
						
							
						
						a5c6b78bf8 
					 
					
						
						
							
							Correctly compute the offset of the symbol. Forgot these bits from the  
						
						... 
						
						
						
						last commit.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114678  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-09-23 18:01:31 +00:00 
						 
				 
			
				
					
						
							
							
								Rafael Espindola 
							
						 
					 
					
						
						
							
						
						b142bef30b 
					 
					
						
						
							
							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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114667  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-09-23 17:25:18 +00:00 
						 
				 
			
				
					
						
							
							
								Rafael Espindola 
							
						 
					 
					
						
						
							
						
						51efe7a253 
					 
					
						
						
							
							Fix the FIXME.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114639  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-09-23 14:14:56 +00:00 
						 
				 
			
				
					
						
							
							
								Rafael Espindola 
							
						 
					 
					
						
						
							
						
						38738bf1a8 
					 
					
						
						
							
							Fix typo and add a FIXME.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114570  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-09-22 19:04:41 +00:00 
						 
				 
			
				
					
						
							
							
								Rafael Espindola 
							
						 
					 
					
						
						
							
						
						aa359bddbf 
					 
					
						
						
							
							Revert unrelated change that was accidentally included in the previous commit.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114383  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-09-21 00:40:19 +00:00 
						 
				 
			
				
					
						
							
							
								Rafael Espindola 
							
						 
					 
					
						
						
							
						
						f7c10a3cff 
					 
					
						
						
							
							Implement support for .local and its "interesting" interactions with .comm.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114382  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-09-21 00:24:38 +00:00 
						 
				 
			
				
					
						
							
							
								Rafael Espindola 
							
						 
					 
					
						
						
							
						
						43779dcfef 
					 
					
						
						
							
							Produce a R_X86_64_32 when the value is >=0.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114339  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-09-20 19:20:47 +00:00 
						 
				 
			
				
					
						
							
							
								Rafael Espindola 
							
						 
					 
					
						
						
							
						
						ad49cf5866 
					 
					
						
						
							
							Make sure the STT_FILE symbol is the first one in the symbol table.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114285  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-09-18 15:03:21 +00:00 
						 
				 
			
				
					
						
							
							
								Rafael Espindola 
							
						 
					 
					
						
						
							
						
						0007489312 
					 
					
						
						
							
							Avoid relocations in a common case.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114229  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-09-17 22:34:41 +00:00 
						 
				 
			
				
					
						
							
							
								Rafael Espindola 
							
						 
					 
					
						
						
							
						
						71859c640f 
					 
					
						
						
							
							Print the address of sections as 0 and create the metadata sections in the  
						
						... 
						
						
						
						same order as gnu as.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114109  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-09-16 19:46:31 +00:00 
						 
				 
			
				
					
						
							
							
								Benjamin Kramer 
							
						 
					 
					
						
						
							
						
						5e492e8d42 
					 
					
						
						
							
							MCELF: Write relocation fragments in the right endian.  
						
						... 
						
						
						
						- This code is gross, but does the job for now.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@113509  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-09-09 18:01:29 +00:00 
						 
				 
			
				
					
						
							
							
								Roman Divacky 
							
						 
					 
					
						
						
							
						
						5baf79edc0 
					 
					
						
						
							
							Make ELF OS ABI dependent on the OS from target triple.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@113508  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-09-09 17:57:50 +00:00 
						 
				 
			
				
					
						
							
							
								Roman Divacky 
							
						 
					 
					
						
						
							
						
						b629dcca72 
					 
					
						
						
							
							ELF_STB_Local is 0 so setting and checking it must be done specially  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@113375  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-09-08 18:08:40 +00:00 
						 
				 
			
				
					
						
							
							
								Roman Divacky 
							
						 
					 
					
						
						
							
						
						563b38a89a 
					 
					
						
						
							
							Unresolved weak symbols have value equal zero.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@113358  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-09-08 14:29:45 +00:00 
						 
				 
			
				
					
						
							
							
								Benjamin Kramer 
							
						 
					 
					
						
						
							
						
						a9eadca2fd 
					 
					
						
						
							
							MCELF: Align symtab, relocation sections and section headers properly. Patch by Krister Wombell.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@113155  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-09-06 16:11:52 +00:00 
						 
				 
			
				
					
						
							
							
								Benjamin Kramer 
							
						 
					 
					
						
						
							
						
						19dc7faf25 
					 
					
						
						
							
							Allow creation of SHT_NULL sections, from Roman Divacky.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112605  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-08-31 17:03:33 +00:00 
						 
				 
			
				
					
						
							
							
								Benjamin Kramer 
							
						 
					 
					
						
						
							
						
						6cc53be24c 
					 
					
						
						
							
							MCELF: The value of all common symbols is the offset from the start of the section.  Patch by Roman Divacky.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112492  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-08-30 17:20:17 +00:00 
						 
				 
			
				
					
						
							
							
								Benjamin Kramer 
							
						 
					 
					
						
						
							
						
						51799ddc7c 
					 
					
						
						
							
							The value is offset from the start of the section for non-common symbols, submitted by Jordan Gordeev.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112473  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-08-30 12:00:16 +00:00 
						 
				 
			
				
					
						
							
							
								Benjamin Kramer 
							
						 
					 
					
						
						
							
						
						679d236117 
					 
					
						
						
							
							Index external symbols by symbol table instead of parent section, by Roman Divacky.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112472  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-08-30 11:59:29 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						b188a3789e 
					 
					
						
						
							
							squish dead code.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112350  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-08-28 03:21:03 +00:00