- Jun 18, 2013
-
-
Sean Silva authored
llvm-svn: 184162
-
Sean Silva authored
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. llvm-svn: 184161
-
Sean Silva authored
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. llvm-svn: 184160
-
Rafael Espindola authored
The error message was: /home/espindola/llvm/llvm/tools/gold/gold-plugin.cpp: In function ‘ld_plugin_status cleanup_hook()’: /home/espindola/llvm/llvm/tools/gold/gold-plugin.cpp:461:30: error: cannot pass objects of non-trivially-copyable type ‘std::string {aka class std::basic_string<char>}’ through ‘...’ I will check if this was a clang or gcc issue. llvm-svn: 184138
-
- Jun 17, 2013
-
-
Rafael Espindola authored
llvm-svn: 184136
-
Rafael Espindola authored
llvm-svn: 184122
-
Sean Silva authored
llvm-svn: 184115
-
Rafael Espindola authored
llvm-svn: 184109
-
Rafael Espindola authored
llvm-svn: 184107
-
Rafael Espindola authored
llvm-svn: 184106
-
Rafael Espindola authored
llvm-svn: 184102
-
Rafael Espindola authored
llvm-svn: 184099
-
Rafael Espindola authored
This patch also adds a simpler version of sys::fs::remove and a tool_output_file constructor for when we already have an open file. llvm-svn: 184095
-
Rafael Espindola authored
llvm-svn: 184092
-
Rafael Espindola authored
llvm-ar is the only tool that needs to write archive files. Every other tool should be able to use the lib/Object interface. llvm-svn: 184083
-
Rafael Espindola authored
llvm-svn: 184081
-
- Jun 15, 2013
-
-
Sean Silva authored
llvm-svn: 184025
-
Sean Silva authored
llvm-svn: 184022
-
Rafael Espindola authored
Archive files (.a) can have a symbol table indicating which object files in them define which symbols. The purpose of this symbol table is to speed up linking by allowing the linker the read only the .o files it is actually going to use instead of having to parse every object's symbol table. LLVM's archive library currently supports a LLVM specific format for such table. It is hard to see any value in that now that llvm-ld is gone: * System linkers don't use it: GNU ar uses the same plugin as the linker to create archive files with a regular index. The OS X ar creates no symbol table for IL files, I assume the linker just parses all IL files. * It doesn't interact well with archives having both IL and native objects. * We probably don't want to be responsible for yet another archive format variant. This patch then: * Removes support for creating and reading such index from lib/Archive. * Remove llvm-ranlib, since there is nothing left for it to do. We should in the future add support for regular indexes to llvm-ar for both native and IL objects. When we do that, llvm-ranlib should be reimplemented as a symlink to llvm-ar, as it is equivalent to "ar s". llvm-svn: 184019
-
- Jun 14, 2013
-
-
Rafael Espindola authored
llvm-svn: 183980
-
Rafael Espindola authored
llvm-svn: 183968
-
Sean Silva authored
For consistency, change the address in the test case from 0xDEADBEEF to 0xCAFEBABE since 0xCAFEBABE that actually has a 2-byte alignment. llvm-svn: 183962
-
Sean Silva authored
llvm-svn: 183955
-
Sean Silva authored
llvm-svn: 183954
-
Sean Silva authored
The current functionality is extremely basic and a bit rough around the edges, but it will flesh out in future commits. llvm-svn: 183953
-
- Jun 13, 2013
-
-
Rafael Espindola authored
llvm-svn: 183947
-
Rafael Espindola authored
llvm-svn: 183941
-
Rafael Espindola authored
llvm-svn: 183940
-
Rafael Espindola authored
llvm-svn: 183928
-
Rafael Espindola authored
llvm-svn: 183912
-
Rafael Espindola authored
llvm-svn: 183909
-
Rafael Espindola authored
llvm-svn: 183908
-
- Jun 12, 2013
-
-
Rafael Espindola authored
It was only used to implement ExecuteAndWait and ExecuteNoWait. Expose just those two functions and make Execute and Wait implementations details. llvm-svn: 183864
-
Rui Ueyama authored
These records are mandatory for executables and are used by the loader. Reviewers: rafael CC: llvm-commits Differential Revision: http://llvm-reviews.chandlerc.com/D939 llvm-svn: 183852
-
Rafael Espindola authored
llvm-svn: 183840
-
- Jun 11, 2013
-
-
Rafael Espindola authored
This is preparation for replacing Path.h with PathV2.h. llvm-svn: 183782
-
Rafael Espindola authored
No functionality change. llvm-svn: 183759
-
Sean Silva authored
Should bring bots back to life. llvm-svn: 183715
-
Sean Silva authored
Currently, only emitting the ELF header is supported (no sections or segments). The ELFYAML code organization is broadly similar to the COFFYAML code. llvm-svn: 183711
-
- Jun 10, 2013
-
-
Rafael Espindola authored
llvm-svn: 183669
-