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
Benjamin Kramer
95c602ade3
MCELF: Always overwrite FixedValue.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112259 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-27 10:38:39 +00:00
Benjamin Kramer
4ba1b3074b
MCELF: Fix a thinko of mine.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112203 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-26 18:12:04 +00:00
Benjamin Kramer
63d37b9322
MCELF: Compensate for the addend on i386. Patch by Roman Divacky, with some cleanups.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112197 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-26 17:23:02 +00:00
Benjamin Kramer
7b83c26051
MCELF: Use precomputed symbol indices, patch by Roman Divacky.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112079 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-25 20:09:43 +00:00
Benjamin Kramer
2f6e0e68a4
Relocate against parent if the symbol is not in section or it's a common symbol, from Roman Divacky.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111925 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-24 17:34:39 +00:00
Benjamin Kramer
c522f6e70b
Fix thinko. Having no tests is great ...
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111848 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-23 21:32:00 +00:00
Benjamin Kramer
36c6dc22bc
Reduce code duplication.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111846 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-23 21:23:52 +00:00
Benjamin Kramer
0b6cbfe04c
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.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111844 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-23 21:19:37 +00:00
Benjamin Kramer
bcf2db60dd
Add the symbol offset to the relocation value when we relocate against section. By Roman Divacky.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111824 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-23 19:05:46 +00:00
Benjamin Kramer
30dc1ee78a
Use the proper relocation section + cleanup, from Roman Divacky.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111819 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-23 18:24:20 +00:00
Benjamin Kramer
44cbde85ba
MCELF: Count the section orders properly. Patch by Roman Divacky.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111517 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-19 13:44:49 +00:00
Benjamin Kramer
81cfb8529b
Remove dead code. Fixes a GCC warning.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111271 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-17 19:45:05 +00:00
Benjamin Kramer
e5b57347e9
Sketch i386 relocations handling, from Roman Divacky.
...
Hello world builds & runs now on i386/ELF with -integrated-as.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111264 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-17 18:20:28 +00:00
Benjamin Kramer
299fbe3a5a
Use the correct entry size for relocation entries, from Roman Divacky.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111259 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-17 17:56:13 +00:00
Benjamin Kramer
377a572d9b
Differentiate between RELA and REL relocations, from Roman Divacky.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111252 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-17 17:30:07 +00:00
Benjamin Kramer
eb97677764
One baby step towards i386 ELF, from Roman Divacky.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111247 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-17 17:02:29 +00:00
Benjamin Kramer
172d7d6a12
Try to silence a overeager GCC warning.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111214 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-17 00:33:24 +00:00
Benjamin Kramer
368ae7e4ec
A round of minor cleanups for ELFObjectWriter.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111213 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-17 00:00:46 +00:00
Benjamin Kramer
1f8aa7bf08
Silence warnings and simplify code. Eliminate a 32/64 bit portability issue.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111201 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-16 23:00:12 +00:00
Eli Friedman
a44fa2473a
Fixes for generation of ELF relocations. Patch by Roman Divacky.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111183 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-16 21:17:09 +00:00
Eli Friedman
f8020a3978
Fix a few warnings in and detabify MCELFStreamer and ELFObjectWriter.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111175 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-16 19:15:06 +00:00
Matt Fleming
3565a06ebf
Add ELF ObjectWriter and Streamer support.
...
I forgot to add these files in commit 111172.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111174 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-16 18:57:57 +00:00