summaryrefslogtreecommitdiffstats
path: root/llvm/lib/MC/ELFObjectWriter.cpp
Commit message (Collapse)AuthorAgeFilesLines
...
* Fix the symbol index of weak references. Also make RecordRelocation a bitRafael Espindola2010-11-111-22/+12
| | | | | | | easier to read by having const references to the symbol, aliased symbol and renamed symbol. llvm-svn: 118793
* Remove some explicit arguments to getELFSection. This isRafael Espindola2010-11-111-6/+4
| | | | | | a leftover from the removal of isExplicit. llvm-svn: 118774
* Factor some code into WriteSection.Rafael Espindola2010-11-101-62/+72
| | | | llvm-svn: 118733
* Update the section index map after we add the medatada sections.Rafael Espindola2010-11-101-0/+4
| | | | llvm-svn: 118728
* Use SectionIndexMap in WriteSymbolTable to make it a little less brittle.Rafael Espindola2010-11-101-16/+17
| | | | llvm-svn: 118725
* Factor some code into ComputeIndexMap.Rafael Espindola2010-11-101-14/+28
| | | | llvm-svn: 118722
* Change the String<size> methods to take a fragment instead of a buffer.Rafael Espindola2010-11-101-77/+40
| | | | llvm-svn: 118709
* Use MCSectionELF in places we know we have an ELF section.Rafael Espindola2010-11-101-6/+6
| | | | llvm-svn: 118699
* Fixed version of 118639 with an extra assert to catch similar problemsRafael Espindola2010-11-091-3/+3
| | | | | | earlier. Implicit bool -> int conversions are evil! llvm-svn: 118651
* Revert previous patch. Missed a case.Rafael Espindola2010-11-091-3/+3
| | | | llvm-svn: 118645
* Remove IsExplicit. It was always false.Rafael Espindola2010-11-091-3/+3
| | | | llvm-svn: 118639
* Implement .weakref.Rafael Espindola2010-11-011-2/+15
| | | | llvm-svn: 117911
* Add support for files with more than 65280 sections. No testcase sinceRafael Espindola2010-10-311-42/+109
| | | | | | it would be a bit too big :-) llvm-svn: 117849
* Be more strict on when we produce an undefined reference. In gas a file withRafael Espindola2010-10-291-1/+4
| | | | | | | | | | | | | | | | | | | | | | | 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
* Defined weak symbols should have non-zero value.Rafael Espindola2010-10-281-4/+3
| | | | llvm-svn: 117585
* Fix relocations with renamed symbols.Rafael Espindola2010-10-281-5/+6
| | | | llvm-svn: 117575
* Aliases defined with .symver should copy the binding of the symbols they alias.Rafael Espindola2010-10-281-6/+21
| | | | | | | Move the existing patching for undefined symbols so that all the patching is done in the same function. llvm-svn: 117570
* Implement R_X86_64_DTPOFF32.Rafael Espindola2010-10-281-0/+3
| | | | llvm-svn: 117548
* Implement TLSLD.Rafael Espindola2010-10-281-0/+4
| | | | llvm-svn: 117547
* Implement DTPOFF.Rafael Espindola2010-10-281-0/+4
| | | | llvm-svn: 117546
* Implement TLSLDM.Rafael Espindola2010-10-281-0/+4
| | | | llvm-svn: 117544
* Implement VK_GOTNTPOFF and switch RelocNeedsGOT to use VariantKind.Rafael Espindola2010-10-281-15/+16
| | | | llvm-svn: 117543
* Add support for R_386_TLS_GD, R_386_TLS_LE_32, R_386_TLS_IE and R_386_TLS_LE.Rafael Espindola2010-10-271-0/+17
| | | | llvm-svn: 117494
* Implement R_X86_64_GOTTPOFF, R_X86_64_TLSGD and R_X86_64_TPOFF32.Rafael Espindola2010-10-271-0/+12
| | | | llvm-svn: 117481
* Replace pointer arithmetic with StringRef::substr.Benjamin Kramer2010-10-271-6/+5
| | | | llvm-svn: 117477
* Produce an error for an invalid use of .symver.Rafael Espindola2010-10-271-0/+5
| | | | llvm-svn: 117462
* Symbols defined as the difference of other two end up in the ABS section.Rafael Espindola2010-10-271-5/+2
| | | | llvm-svn: 117451
* Add support for the .symver directive. This is really ugly, but most of it isRafael Espindola2010-10-271-14/+56
| | | | | | contained in the ELF object writer. llvm-svn: 117448
* Move more logic to isInSymtab and simplify.Rafael Espindola2010-10-271-21/+19
| | | | llvm-svn: 117447
* Add support for emitting ARM file attributes.Rafael Espindola2010-10-251-3/+1
| | | | llvm-svn: 117275
* Add X86::reloc_global_offset_table and use it to have a single place whereRafael Espindola2010-10-241-4/+5
| | | | | | we check for _GLOBAL_OFFSET_TABLE_. llvm-svn: 117241
* Making the e_machine configurable by the target backend in ELFObjectWriter.Wesley Peck2010-10-221-5/+9
| | | | llvm-svn: 117099
* Small cleanups and fixes in preparation for fixing _GLOBAL_OFFSET_TABLE_.Rafael Espindola2010-10-191-7/+11
| | | | llvm-svn: 116848
* Implement R_386_GOT32.Rafael Espindola2010-10-181-0/+3
| | | | llvm-svn: 116744
* Relocate with .bss instead of using the symbol. Matches gas behavior.Rafael Espindola2010-10-181-0/+3
| | | | llvm-svn: 116741
* Reenable assert.Rafael Espindola2010-10-181-1/+2
| | | | llvm-svn: 116738
* Produce ELF::R_386_GOTPC relocations.Rafael Espindola2010-10-181-1/+6
| | | | llvm-svn: 116728
* Make the bots happy.Rafael Espindola2010-10-181-1/+3
| | | | llvm-svn: 116719
* Produce a R_386_PLT32 when needed. Moved the default cases of switches to theRafael Espindola2010-10-181-7/+13
| | | | | | start for consistency. llvm-svn: 116715
* Handle GOTOFF correctly on i386.Rafael Espindola2010-10-181-5/+15
| | | | llvm-svn: 116711
* Fix a typo and silence unused variable warnings in -Asserts build.Benjamin Kramer2010-10-171-4/+2
| | | | llvm-svn: 116685
* Add a MCObjectFormat class so that code common to all targets that use aRafael Espindola2010-10-161-16/+5
| | | | | | | | | | | | single object format can be shared. This also adds support for mov zed+(bar-foo), %eax on ELF and COFF targets. llvm-svn: 116675
* Refactor alias handling to AliasedSymbol.Rafael Espindola2010-10-151-13/+15
| | | | llvm-svn: 116600
* Refactor code a bit and avoid creating unnecessary entries in the stringRafael Espindola2010-10-151-19/+19
| | | | | | map. llvm-svn: 116579
* Remove some code duplication.Rafael Espindola2010-10-141-49/+18
| | | | llvm-svn: 116484
* Another case of 256 sections not being enough :-)Rafael Espindola2010-10-061-1/+1
| | | | llvm-svn: 115858
* Get binding and visibility info from the the alias, but Type from the symbolRafael Espindola2010-10-061-3/+25
| | | | | | being aliased. llvm-svn: 115836
* If a symbol is global, reloc against it even if it is in a mergeable section.Rafael Espindola2010-10-061-3/+3
| | | | llvm-svn: 115817
* Make sure weak symbols are listed after the local ones.Rafael Espindola2010-10-061-2/+3
| | | | llvm-svn: 115795
* Correctly handle GOTPCREL relocations.Rafael Espindola2010-10-061-3/+6
| | | | llvm-svn: 115793
OpenPOWER on IntegriCloud