History log of /external/llvm/tools/yaml2obj/yaml2elf.cpp
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
cddc3e03e4ec99c0268c03a126195173e519ed58 04-Mar-2016 Pirama Arumuga Nainar <pirama@google.com> Update aosp/master LLVM for rebase to r256229

http://b/26987366

(cherry picked from commit f3ef5332fa3f4d5ec72c178a2b19dac363a19383)

Change-Id: Ic75dcb63191d65df1b69724576392c0aaeb47728
/external/llvm/tools/yaml2obj/yaml2elf.cpp
6948897e478cbd66626159776a8017b3c18579b9 01-Jul-2015 Pirama Arumuga Nainar <pirama@google.com> Update aosp/master LLVM for rebase to r239765

Bug: 20140355: This rebase pulls the upstream fix for the spurious
warnings mentioned in the bug.

Change-Id: I7fd24253c50f4d48d900875dcf43ce3f1721a3da
/external/llvm/tools/yaml2obj/yaml2elf.cpp
ebe69fe11e48d322045d5949c83283927a0d790b 23-Mar-2015 Stephen Hines <srhines@google.com> Update aosp/master LLVM for rebase to r230699.

Change-Id: I2b5be30509658cb8266be782de0ab24f9099f9b9
/external/llvm/tools/yaml2obj/yaml2elf.cpp
37ed9c199ca639565f6ce88105f9e39e898d82d0 01-Dec-2014 Stephen Hines <srhines@google.com> Update aosp/master LLVM for rebase to r222494.

Change-Id: Ic787f5e0124df789bd26f3f24680f45e678eef2d
/external/llvm/tools/yaml2obj/yaml2elf.cpp
c6a4f5e819217e1e12c458aed8e7b122e23a3a58 21-Jul-2014 Stephen Hines <srhines@google.com> Update LLVM for rebase to r212749.

Includes a cherry-pick of:
r212948 - fixes a small issue with atomic calls

Change-Id: Ib97bd980b59f18142a69506400911a6009d9df18
/external/llvm/tools/yaml2obj/yaml2elf.cpp
dce4a407a24b04eebc6a376f8e62b41aaa7b071f 29-May-2014 Stephen Hines <srhines@google.com> Update LLVM for 3.5 rebase (r209712).

Change-Id: I149556c940fb7dc92d075273c87ff584f400941f
/external/llvm/tools/yaml2obj/yaml2elf.cpp
36b56886974eae4f9c5ebc96befd3e7bfe5de338 24-Apr-2014 Stephen Hines <srhines@google.com> Update to LLVM 3.5a.

Change-Id: Ifadecab779f128e62e430c2b4f6ddd84953ed617
/external/llvm/tools/yaml2obj/yaml2elf.cpp
6dd7893e8c7234d65cdc47e3f3ce251fdfb35768 12-Oct-2013 Will Dietz <wdietz2@illinois.edu> yaml2coff/elf: Touchup for compatibility.

* std::string::append(int, int) can be ambiguous.
* std::vector<>::data() is a C++11 feature, use ArrayRef abstraction.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192542 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/tools/yaml2obj/yaml2elf.cpp
081a1941b595f6294e4ce678fd61ef56a2ceb51e 09-Aug-2013 Michael J. Spencer <bigcheesegs@gmail.com> [Object] Split the ELF interface into 3 parts.

* ELFTypes.h contains template magic for defining types based on endianess, size, and alignment.
* ELFFile.h defines the ELFFile class which provides low level ELF specific access.
* ELFObjectFile.h contains ELFObjectFile which uses ELFFile to implement the ObjectFile interface.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188022 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/tools/yaml2obj/yaml2elf.cpp
068463b714bd53fffd41322a5654b4f359c2166c 22-Jun-2013 Sean Silva <silvas@purdue.edu> [yaml2obj][ELF] Make symbol table top-level key.

Although in reality the symbol table in ELF resides in a section, the
standard requires that there be no more than one SHT_SYMTAB. To enforce
this constraint, it is cleaner to group all the symbols under a
top-level `Symbols` key on the object file.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184627 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/tools/yaml2obj/yaml2elf.cpp
681dafbb6c605b96b141accf428923076606ec9e 22-Jun-2013 Sean Silva <silvas@purdue.edu> [yaml2obj][ELF] Narrow parameter.

The full ELFYAML::Section isn't needed.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184626 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/tools/yaml2obj/yaml2elf.cpp
58495694c09540459e4eea50eef2dcffc705f3c3 22-Jun-2013 Sean Silva <silvas@purdue.edu> [yaml2obj][ELF] Don't special case writing these.

Just add them to the vector of section headers like the rest of the
section headers.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184624 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/tools/yaml2obj/yaml2elf.cpp
efc78986b3bf51572e013bfdf8cbb9e06a47c788 22-Jun-2013 Sean Silva <silvas@purdue.edu> [yaml2obj][ELF] Make this "type switch" actually readable.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184623 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/tools/yaml2obj/yaml2elf.cpp
e766884193afeb684fe1e14f74c316405e9d801f 22-Jun-2013 Sean Silva <silvas@purdue.edu> [yaml2obj][ELF] Align section contents in the output.

The improperly aligned section content in the output was causing
buildbot failures. This should fix them.

Incidentally, this results in a simpler and more robust API for
ContiguousBlobAccumulator.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184621 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/tools/yaml2obj/yaml2elf.cpp
326c193e0aa221c7836adfa16a3ec85857d7d8b7 21-Jun-2013 Sean Silva <silvas@purdue.edu> [yaml2obj][ELF] Allow expressing undefined symbols.

Previously we unconditionally enforced that section references in
symbols in the YAML had a name that was a section name present in the
object, and linked the references to that section. Now, permit empty
section names (already the default, if the `Section` key is not
provided) to indicate SHN_UNDEF.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184513 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/tools/yaml2obj/yaml2elf.cpp
552d7cd31a0f6eb0e1434981196f477ae741a184 21-Jun-2013 Sean Silva <silvas@purdue.edu> Unbreak bots. Didn't realize this was a C++11 feature.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184508 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/tools/yaml2obj/yaml2elf.cpp
4235ba32f2610ee2ed1e0c4bfca5c67835e9f97d 21-Jun-2013 Sean Silva <silvas@purdue.edu> [yaml2obj][ELF] Don't explicitly set `Binding` with STB_*

Instead, just have 3 sub-lists, one for each of
{STB_LOCAL,STB_GLOBAL,STB_WEAK}.

This allows us to be a lot more explicit w.r.t. the symbol ordering in
the object file, because if we allowed explicitly setting the STB_*
`Binding` key for the symbol, then we might have ended up having to
shuffle STB_LOCAL symbols to the front of the list, which is likely to
cause confusion and potential for error.

Also, this new approach is simpler ;)

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184506 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/tools/yaml2obj/yaml2elf.cpp
e38f640b22979994b42fb2f2aafc44cc39c20e8e 20-Jun-2013 Sean Silva <silvas@purdue.edu> [yaml2obj][ELF] Add support for st_value and st_size.

After this patch, the ELF file produced by
`yaml2obj-elf-symbol-basic.yaml`, when linked and executed on x86_64
(under SysV ABI, obviously; I tested on Linux), produces a working
executable that goes into an infinite loop!

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184469 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/tools/yaml2obj/yaml2elf.cpp
6525e92b32c52772f7d750ada7084245655629e6 20-Jun-2013 Sean Silva <silvas@purdue.edu> [yaml2obj][ELF] Allow symbols to reference sections.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184468 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/tools/yaml2obj/yaml2elf.cpp
c18f66e70dea8abc8c9d86d40088fc8fc8247b20 20-Jun-2013 Sean Silva <silvas@purdue.edu> [yaml2obj][ELF] Add the section name -> section index map to State.

One of the key things that the YAML format abstracts over is the use of
section numbers for referencing sections. Instead, textual section names
are used, which yaml2obj then translates into appropriate section
numbers. (Technically ELF doesn't care about section names (only section
numbers), but since this is a testing tool, readability counts).

This simplifies using section names as symbolic references in various
parts of the code. An upcoming commit will use this to allow symbols to
reference sections.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184467 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/tools/yaml2obj/yaml2elf.cpp
0382b30eb5ecdde9749841a2f39960ab8e2de87c 20-Jun-2013 Sean Silva <silvas@purdue.edu> [yaml2obj][ELF] Start factoring into "single point of truth".

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184457 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/tools/yaml2obj/yaml2elf.cpp
b14f972ed6865a978402fb1c788ee7939b58680d 20-Jun-2013 Sean Silva <silvas@purdue.edu> [yaml2obj][ELF] Just let this class own its buffer.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184456 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/tools/yaml2obj/yaml2elf.cpp
e1e1bb1b362b81bd8ff2037efbeda11bf3f73787 19-Jun-2013 Sean Silva <silvas@purdue.edu> Remove `using namespace` and use explicit qualification.

There were only two places it was actually making anything shorter.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184273 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/tools/yaml2obj/yaml2elf.cpp
83bc34561bcf9eaccd5fc1e25f6be7397d4ae4ec 19-Jun-2013 Sean Silva <silvas@purdue.edu> Remove spurious space.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184272 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/tools/yaml2obj/yaml2elf.cpp
9e82a5c767b535a917993887d185a696eca023e9 19-Jun-2013 Sean Silva <silvas@purdue.edu> Remove unused parameter.

Not sure why we weren't catching this with -Wunused-parameter...

Spotted by inspection.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184271 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/tools/yaml2obj/yaml2elf.cpp
ea94e114b436996805012f4395b0a9182aed2334 19-Jun-2013 Sean Silva <silvas@purdue.edu> [yaml2obj][ELF] Support ELFOSABI_* enum.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184268 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/tools/yaml2obj/yaml2elf.cpp
1230407e341969202d0620f9cc916c3568a50d05 19-Jun-2013 Sean Silva <silvas@purdue.edu> There is no ELF ABI version enum.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184267 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/tools/yaml2obj/yaml2elf.cpp
5ba1225fb074f8035668637292d994d4c39757d1 19-Jun-2013 Sean Silva <silvas@purdue.edu> [yaml2obj][ELF] Support st_info through `Binding` and `Type` YAML keys.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184263 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/tools/yaml2obj/yaml2elf.cpp
c2b6adff3e94f8e299caa31947ad970096377e40 19-Jun-2013 Sean Silva <silvas@purdue.edu> [yaml2obj][ELF] Don't monkeypatch the YAML sections.

Previously, we would monkeypatch the vector of YAML::Section's in order
to ensure that the SHT_NULL entry is present. Now we just add it
unconditionally.

The proliferation of small numerical adjustments is beginning to
frighten me, but I can't think of a way having a single point of truth
for them without introducing a whole new layer of data structures (i.e.
lots of code and complexity) between the YAML and binary ELF formats.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184260 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/tools/yaml2obj/yaml2elf.cpp
ca0170ffa1ba6d53f0008b345cb5ac777e81c3b1 19-Jun-2013 Sean Silva <silvas@purdue.edu> [yaml2obj][ELF] Ensure STN_UNDEF entry is present.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184258 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/tools/yaml2obj/yaml2elf.cpp
afcf60fe15999ea07193118f447a34f41171e433 19-Jun-2013 Sean Silva <silvas@purdue.edu> [yaml2obj][ELF] Rudimentary symbol table support.

Currently, we only output the name.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184255 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/tools/yaml2obj/yaml2elf.cpp
a7bd8549fdcb18c686bdadf46000452c927d3b5d 18-Jun-2013 Sean Silva <silvas@purdue.edu> [yaml2obj][ELF] Add dummy .strtab section.

This will be needed later for holding symbol names, due to the libObject
issue mentioned in the commit message of r184161.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184242 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/tools/yaml2obj/yaml2elf.cpp
c60c86dcaee929840ac5ad16d1adffa20ba46494 18-Jun-2013 Sean Silva <silvas@purdue.edu> [yaml2obj][ELF] Factor out string table section creation.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184162 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/tools/yaml2obj/yaml2elf.cpp
7dc89c1f3ab870e5f517aa201d98befd6249ed5f 18-Jun-2013 Sean Silva <silvas@purdue.edu> [yaml2obj][ELF] Refer specifically to the section header string table.

A bug in libObject will cause it to assert() if a symbol table's string
table and the section header string table are the same section, so we
need to ensure that we emit two different string tables (among other
things). The problematic code is the hardcoded usage of ".strtab"
(`dot_strtab_sec`) for looking up symbol names in
ELFObjectFile<ELFT>::getSymbolName.

I discussed this with Michael, and he has some local improvements to the
ELF code in libObject that, among other things, should fix our handling
of this scenario.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184161 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/tools/yaml2obj/yaml2elf.cpp
13a8e2da7636b9f90d10cd77ac2a9194aa492cb4 18-Jun-2013 Sean Silva <silvas@purdue.edu> [yaml2obj][ELF] Ensure more fields are zero'd.

I was spotting garbage in the output. I'd like to just zero the entire
ELFYAML::Section to be sure, but it contains non-POD types. (I'm also
trying to avoid bloating the ELFYAML::Foo classes with a bunch of
constructor code).

No test, since this is by its very nature unpredictable. I'm pretty sure
that one of the sanitizers would catch it immediately though.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184160 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/tools/yaml2obj/yaml2elf.cpp
4b548ecb012ce27feff9f58aad27775df679b159 17-Jun-2013 Sean Silva <silvas@purdue.edu> [yaml2obj][ELF] Exit with error status on error.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184115 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/tools/yaml2obj/yaml2elf.cpp
f3f3523b9c714d9b98f6102ce79ed3d0c9050169 15-Jun-2013 Sean Silva <silvas@purdue.edu> [yaml2obj] Move some classes into anonymous namespaces.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184025 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/tools/yaml2obj/yaml2elf.cpp
fe57e347a57d643bbbcc9c19c8267a3e8c06b5a6 15-Jun-2013 Sean Silva <silvas@purdue.edu> [yaml2obj] Add support for sh_link via `Link` key.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184022 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/tools/yaml2obj/yaml2elf.cpp
97d37e818153c6c5f844ddebaab26be324dbe41c 14-Jun-2013 Sean Silva <silvas@purdue.edu> [yaml2obj] Add support for sh_addralign via `AddressAlign` key.

For consistency, change the address in the test case from 0xDEADBEEF to
0xCAFEBABE since 0xCAFEBABE that actually has a 2-byte alignment.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@183962 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/tools/yaml2obj/yaml2elf.cpp
2a7e79a30f87be4103963e6049a2f1cf171f502c 14-Jun-2013 Sean Silva <silvas@purdue.edu> [yaml2obj] Add support for specifying raw section content.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@183955 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/tools/yaml2obj/yaml2elf.cpp
45b812d1a79f3f8642821e65a25d92e3d741a095 14-Jun-2013 Sean Silva <silvas@purdue.edu> [yaml2obj] Add sh_addr via `Address` key.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@183954 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/tools/yaml2obj/yaml2elf.cpp
274264ce2ba93d26702f7ebfe6aea121df44113f 14-Jun-2013 Sean Silva <silvas@purdue.edu> [yaml2obj] Initial ELF section support.

The current functionality is extremely basic and a bit rough around the
edges, but it will flesh out in future commits.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@183953 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/tools/yaml2obj/yaml2elf.cpp
457c8ebfd070eb7ee840ec97142f975974cfc834 11-Jun-2013 Sean Silva <silvas@purdue.edu> Fix dubious type name similar to member name.

Should bring bots back to life.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@183715 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/tools/yaml2obj/yaml2elf.cpp
5918b7a03d4d6a52e18f7c102250c9cfd6ae52dd 11-Jun-2013 Sean Silva <silvas@purdue.edu> [yaml2obj] Initial ELF support.

Currently, only emitting the ELF header is supported (no sections or
segments).

The ELFYAML code organization is broadly similar to the COFFYAML code.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@183711 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/tools/yaml2obj/yaml2elf.cpp