summaryrefslogtreecommitdiffstats
path: root/llvm/lib/MC/ELFObjectWriter.cpp
Commit message (Collapse)AuthorAgeFilesLines
...
* Use a relocation against the symbol if it is a PLT and the symbol is in anotherRafael Espindola2010-10-051-2/+11
| | | | | | section. Common because of linkonce sections. llvm-svn: 115718
* Implement more alias cases.Rafael Espindola2010-10-051-0/+11
| | | | llvm-svn: 115699
* 256 sections should be enough for anyone...Rafael Espindola2010-10-051-1/+1
| | | | llvm-svn: 115687
* Don't crash in a strange .size directive.Rafael Espindola2010-10-051-5/+15
| | | | llvm-svn: 115684
* Implement a simple alias case and refactor the code a bit so that theRafael Espindola2010-10-051-17/+35
| | | | | | isInSymtab and isLocal logic in the two loops don't get easily out of sync. llvm-svn: 115643
* Produce a undefined reference to _GLOBAL_OFFSET_TABLE_ when needed.Rafael Espindola2010-10-051-1/+25
| | | | llvm-svn: 115623
* On ELF we need to know which symbols are used in relocations to decide ifRafael Espindola2010-10-051-23/+44
| | | | | | | 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
* Implement ELF::R_X86_64_GOTPCREL.Rafael Espindola2010-10-041-0/+3
| | | | llvm-svn: 115547
* Move isFixupKindX86PCRel.Rafael Espindola2010-10-041-12/+12
| | | | llvm-svn: 115545
* Produce a R_X86_64_PLT32 when needed.Rafael Espindola2010-10-041-1/+10
| | | | llvm-svn: 115541
* Produce a R_X86_64_GOT32 when needed.Rafael Espindola2010-10-041-1/+12
| | | | llvm-svn: 115537
* Include the section address in the computation of the relocation.Rafael Espindola2010-10-041-1/+8
| | | | llvm-svn: 115509
* Correctly compute the relocation when it is not in the first fragment.Rafael Espindola2010-10-041-1/+1
| | | | llvm-svn: 115506
* Implement a very basic PIC case.Rafael Espindola2010-10-031-0/+7
| | | | llvm-svn: 115454
* Factor some logic into ShouldRelocOnSymbol. This simplifies the code andRafael Espindola2010-09-301-38/+31
| | | | | | | fixes some cases where we were producing relocations with at symbol that should use a section instead. llvm-svn: 115194
* Correctly produce R_X86_64_32 or R_X86_64_32S.Rafael Espindola2010-09-301-8/+9
| | | | | | | | | | | | | 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
* Make it possible for the MCObjectWriter to decide if a given fixup is fullyRafael Espindola2010-09-301-4/+51
| | | | | | | | | | | 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
* On elf, undefined symbols can start with .L.Rafael Espindola2010-09-281-1/+4
| | | | llvm-svn: 114958
* Write relocations in the end of the file. This matches what gas does andRafael Espindola2010-09-271-2/+1
| | | | | | makes files easier to diff. llvm-svn: 114898
* Factor symbol value computation into a function.Rafael Espindola2010-09-271-9/+17
| | | | llvm-svn: 114891
* Move ELF to HasReliableSymbolDifference=true. Also take the opportunity to putRafael Espindola2010-09-251-7/+15
| | | | | | symbols defined in merge sections in independent atoms. llvm-svn: 114786
* Reapply 114678 and 114667. Reverting them did not fix the bot:Rafael Espindola2010-09-241-2/+5
| | | | | | http://google1.osuosl.org:8011/builders/llvm-gcc-i386-linux-selfhost/builds/69 llvm-svn: 114761
* Revert 114678 and 114667 to see ifRafael Espindola2010-09-241-5/+2
| | | | | | | | http://google1.osuosl.org:8011/builders/llvm-gcc-i386-linux-selfhost gets happy. llvm-svn: 114742
* Correctly handle weak undefined symbols. Before we would get a invalid bindingRafael Espindola2010-09-231-5/+20
| | | | | | (2 == STB_WEAK | STB_GLOBAL). llvm-svn: 114690
* Correctly compute the offset of the symbol. Forgot these bits from theRafael Espindola2010-09-231-1/+4
| | | | | | last commit. llvm-svn: 114678
* Represent relocations against local symbols as relocations against the sectionRafael Espindola2010-09-231-1/+1
| | | | | | | | | 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
* Fix the FIXME.Rafael Espindola2010-09-231-1/+1
| | | | llvm-svn: 114639
* Fix typo and add a FIXME.Rafael Espindola2010-09-221-1/+2
| | | | llvm-svn: 114570
* Revert unrelated change that was accidentally included in the previous commit.Rafael Espindola2010-09-211-4/+1
| | | | llvm-svn: 114383
* Implement support for .local and its "interesting" interactions with .comm.Rafael Espindola2010-09-211-5/+10
| | | | llvm-svn: 114382
* Produce a R_X86_64_32 when the value is >=0.Rafael Espindola2010-09-201-2/+5
| | | | llvm-svn: 114339
* Make sure the STT_FILE symbol is the first one in the symbol table.Rafael Espindola2010-09-181-0/+13
| | | | llvm-svn: 114285
* Avoid relocations in a common case.Rafael Espindola2010-09-171-1/+10
| | | | llvm-svn: 114229
* Print the address of sections as 0 and create the metadata sections in theRafael Espindola2010-09-161-33/+24
| | | | | | same order as gnu as. llvm-svn: 114109
* MCELF: Write relocation fragments in the right endian.Benjamin Kramer2010-09-091-5/+26
| | | | | | - This code is gross, but does the job for now. llvm-svn: 113509
* Make ELF OS ABI dependent on the OS from target triple.Roman Divacky2010-09-091-4/+13
| | | | llvm-svn: 113508
* ELF_STB_Local is 0 so setting and checking it must be done speciallyRoman Divacky2010-09-081-2/+2
| | | | llvm-svn: 113375
* Unresolved weak symbols have value equal zero.Roman Divacky2010-09-081-1/+1
| | | | llvm-svn: 113358
* MCELF: Align symtab, relocation sections and section headers properly. Patch ↵Benjamin Kramer2010-09-061-12/+24
| | | | | | by Krister Wombell. llvm-svn: 113155
* Allow creation of SHT_NULL sections, from Roman Divacky.Benjamin Kramer2010-08-311-0/+1
| | | | llvm-svn: 112605
* MCELF: The value of all common symbols is the offset from the start of the ↵Benjamin Kramer2010-08-301-3/+5
| | | | | | section. Patch by Roman Divacky. llvm-svn: 112492
* The value is offset from the start of the section for non-common symbols, ↵Benjamin Kramer2010-08-301-0/+2
| | | | | | submitted by Jordan Gordeev. llvm-svn: 112473
* Index external symbols by symbol table instead of parent section, by Roman ↵Benjamin Kramer2010-08-301-1/+1
| | | | | | Divacky. llvm-svn: 112472
* squish dead code.Chris Lattner2010-08-281-9/+8
| | | | llvm-svn: 112350
* MCELF: Always overwrite FixedValue.Benjamin Kramer2010-08-271-2/+3
| | | | llvm-svn: 112259
* MCELF: Fix a thinko of mine.Benjamin Kramer2010-08-261-1/+3
| | | | llvm-svn: 112203
* MCELF: Compensate for the addend on i386. Patch by Roman Divacky, with some ↵Benjamin Kramer2010-08-261-14/+7
| | | | | | cleanups. llvm-svn: 112197
* MCELF: Use precomputed symbol indices, patch by Roman Divacky.Benjamin Kramer2010-08-251-11/+7
| | | | llvm-svn: 112079
* Relocate against parent if the symbol is not in section or it's a common ↵Benjamin Kramer2010-08-241-1/+2
| | | | | | symbol, from Roman Divacky. llvm-svn: 111925
* Fix thinko. Having no tests is great ...Benjamin Kramer2010-08-231-4/+4
| | | | llvm-svn: 111848
OpenPOWER on IntegriCloud