4439 Commits

Author SHA1 Message Date
Rafael Espindola
122c57c0b8 Add r184420 back, but also handle long file names.
Original message:

Don't include directory names in archives.

This matches the behavior of both gnu and os x versions of ar.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184423 91177308-0d34-0410-b5e6-96231b3b80d8
2013-06-20 13:41:51 +00:00
Rafael Espindola
9d39cb1d64 Revert "Don't include directory names in archives."
This reverts commit 184420.
Investigating the bot failures.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184421 91177308-0d34-0410-b5e6-96231b3b80d8
2013-06-20 13:23:48 +00:00
Rafael Espindola
be984d6376 Don't include directory names in archives.
This matches the behavior of both gnu and os x versions of ar.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184420 91177308-0d34-0410-b5e6-96231b3b80d8
2013-06-20 13:16:44 +00:00
Rafael Espindola
6f2c88a08b Remove remaining bits of the old LLVM specific symtab handling.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184418 91177308-0d34-0410-b5e6-96231b3b80d8
2013-06-20 13:00:30 +00:00
Rafael Espindola
e9ff273aca Remove more unused functions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184416 91177308-0d34-0410-b5e6-96231b3b80d8
2013-06-20 12:45:47 +00:00
Rafael Espindola
f0436b82fd Remove unused methods.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184415 91177308-0d34-0410-b5e6-96231b3b80d8
2013-06-20 12:42:00 +00:00
Rafael Espindola
a18b281791 Use the simpler sys::fs::exists.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184413 91177308-0d34-0410-b5e6-96231b3b80d8
2013-06-20 12:04:39 +00:00
Rafael Espindola
436cd0cfcf Convert a use of sys::Path.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184412 91177308-0d34-0410-b5e6-96231b3b80d8
2013-06-20 11:59:19 +00:00
David Blaikie
3df7d2f70b llvm-dwarfdump: Add support for dumping the .debug_loc section
This is a basic implementation - we still don't have any support (that I
know of) for dumping DWARF expressions in a meaningful way, so the
location information itself is just printed as a sequence of bytes as we
do elsewhere.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184361 91177308-0d34-0410-b5e6-96231b3b80d8
2013-06-19 21:37:13 +00:00
Rafael Espindola
ce1164be37 Remove unused function.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184359 91177308-0d34-0410-b5e6-96231b3b80d8
2013-06-19 21:33:52 +00:00
Rafael Espindola
63e8ba9bcf Really fix the missing header :-(
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184355 91177308-0d34-0410-b5e6-96231b3b80d8
2013-06-19 21:21:43 +00:00
Rafael Espindola
b167ba7f95 Add missing include found by the bots.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184354 91177308-0d34-0410-b5e6-96231b3b80d8
2013-06-19 21:20:41 +00:00
Rafael Espindola
b4900b132e Remove last use of PathV1.h from Archive.h
Store the individual fields we need instead of a sys::FileStatus.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184353 91177308-0d34-0410-b5e6-96231b3b80d8
2013-06-19 21:13:59 +00:00
Rafael Espindola
27ff1f3f7d Always set the mode.
This matches GNU ar behavior. Also remove the now unused getFileStatus method.
Not sure how to add a test, it would have to run ls -l or something like that.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184337 91177308-0d34-0410-b5e6-96231b3b80d8
2013-06-19 19:17:15 +00:00
Rafael Espindola
13f4fd77b9 Remove more uses of sys::Path.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184328 91177308-0d34-0410-b5e6-96231b3b80d8
2013-06-19 17:49:07 +00:00
Rafael Espindola
dd3ef1a13b Remove unused function.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184320 91177308-0d34-0410-b5e6-96231b3b80d8
2013-06-19 16:47:34 +00:00
Rafael Espindola
3baf01bd95 Another attempt at fixing the bots.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184318 91177308-0d34-0410-b5e6-96231b3b80d8
2013-06-19 16:16:13 +00:00
Rafael Espindola
7391366cdf Attempt at fixing some bots.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184316 91177308-0d34-0410-b5e6-96231b3b80d8
2013-06-19 15:56:53 +00:00
Rafael Espindola
4d07abbb01 Reduce sys::Path usage in llvm-ar.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184315 91177308-0d34-0410-b5e6-96231b3b80d8
2013-06-19 15:45:37 +00:00
Rafael Espindola
8fe960ed50 Remove the 'R' modifier.
It is not present in GNU or OS X versions and doesn't make a lot of sense
for llvm-ar.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184306 91177308-0d34-0410-b5e6-96231b3b80d8
2013-06-19 14:58:16 +00:00
Wan Xiaofei
1b11a1925e Test commit access.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184278 91177308-0d34-0410-b5e6-96231b3b80d8
2013-06-19 02:26:00 +00:00
Sean Silva
e1e1bb1b36 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
2013-06-19 01:13:28 +00:00
Sean Silva
83bc34561b Remove spurious space.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184272 91177308-0d34-0410-b5e6-96231b3b80d8
2013-06-19 01:10:58 +00:00
Sean Silva
9e82a5c767 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
2013-06-19 01:10:11 +00:00
Sean Silva
ea94e114b4 [yaml2obj][ELF] Support ELFOSABI_* enum.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184268 91177308-0d34-0410-b5e6-96231b3b80d8
2013-06-19 00:55:28 +00:00
Sean Silva
1230407e34 There is no ELF ABI version enum.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184267 91177308-0d34-0410-b5e6-96231b3b80d8
2013-06-19 00:55:23 +00:00
Sean Silva
5ba1225fb0 [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
2013-06-19 00:11:59 +00:00
Sean Silva
c2b6adff3e [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
2013-06-18 23:37:23 +00:00
Sean Silva
ca0170ffa1 [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
2013-06-18 23:19:17 +00:00
Sean Silva
afcf60fe15 [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
2013-06-18 23:14:03 +00:00
Sean Silva
a7bd8549fd [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
2013-06-18 21:37:50 +00:00
Rafael Espindola
3991c72748 Convert most uses of PathV1.h in ToolRunner.cpp.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184210 91177308-0d34-0410-b5e6-96231b3b80d8
2013-06-18 17:20:08 +00:00
Rafael Espindola
8ee23f00c7 Add a version of unique_file that return just the file name.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184206 91177308-0d34-0410-b5e6-96231b3b80d8
2013-06-18 17:01:00 +00:00
Rafael Espindola
21a78d149f Return a std::string from PrependMainExecutablePath.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184204 91177308-0d34-0410-b5e6-96231b3b80d8
2013-06-18 16:47:55 +00:00
Rafael Espindola
3b9eb80bd7 Remove PathV1.h use from BugDriver.cpp.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184203 91177308-0d34-0410-b5e6-96231b3b80d8
2013-06-18 16:21:54 +00:00
Rafael Espindola
9a23039e42 Remove use of PathV1.h from ExecutionDriver.cpp.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184202 91177308-0d34-0410-b5e6-96231b3b80d8
2013-06-18 16:14:09 +00:00
Rafael Espindola
2c073ee754 Remove usage of PathV1.h from OptimizerDriver.cpp.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184198 91177308-0d34-0410-b5e6-96231b3b80d8
2013-06-18 15:54:13 +00:00
Rafael Espindola
366f510a41 Convert some uses of eraseFromDisk.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184196 91177308-0d34-0410-b5e6-96231b3b80d8
2013-06-18 15:33:18 +00:00
Rafael Espindola
88088f4067 Don't use PathV1.h in tools/bugpoint/Miscompilation.cpp.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184193 91177308-0d34-0410-b5e6-96231b3b80d8
2013-06-18 15:29:32 +00:00
Alexey Samsonov
9c22f87b13 Basic support for parsing Mach-O universal binaries in LLVMObject library
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184191 91177308-0d34-0410-b5e6-96231b3b80d8
2013-06-18 15:03:28 +00:00
Bill Wendling
99cb622041 Use pointers to the MCAsmInfo and MCRegInfo.
Someone may want to do something crazy, like replace these objects if they
change or something.

No functionality change intended.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184175 91177308-0d34-0410-b5e6-96231b3b80d8
2013-06-18 07:20:20 +00:00
Sean Silva
c60c86dcae [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
2013-06-18 01:11:27 +00:00
Sean Silva
7dc89c1f3a [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
2013-06-18 01:11:24 +00:00
Sean Silva
13a8e2da76 [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
2013-06-18 01:11:21 +00:00
Rafael Espindola
b317987c2b Fix the build with gcc 4.7 and -std=c++11.
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.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184138 91177308-0d34-0410-b5e6-96231b3b80d8
2013-06-17 22:24:06 +00:00
Rafael Espindola
74aec35172 Convert two uses of eraseFromDisk.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184136 91177308-0d34-0410-b5e6-96231b3b80d8
2013-06-17 21:50:28 +00:00
Rafael Espindola
cacfeed162 Remove usage of PathV1.h in FindBugs.cpp.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184122 91177308-0d34-0410-b5e6-96231b3b80d8
2013-06-17 20:48:36 +00:00
Sean Silva
4b548ecb01 [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
2013-06-17 20:14:59 +00:00
Rafael Espindola
11db6df569 Don't use PathV1.h in CrashDebugger.cpp.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184109 91177308-0d34-0410-b5e6-96231b3b80d8
2013-06-17 19:33:18 +00:00
Rafael Espindola
f656a1d499 Don't use PathV1.h in ToolRunner.h.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184107 91177308-0d34-0410-b5e6-96231b3b80d8
2013-06-17 19:21:38 +00:00