Michael J. Spencer
4ff3c79998
Use nullptr instead of NULL, and remove use of VLA.
...
llvm-svn: 152386
2012-03-09 05:26:55 +00:00
Benjamin Kramer
398ecd6200
Use the old -std=c++0x flag for compatibility with pre-2011 versions of GCC.
...
llvm-svn: 152355
2012-03-09 00:23:07 +00:00
Nick Kledzik
1a6615dc88
Sources now require C++11 to build.
...
Add first linker pass (StubsPass) which looks for calls to shared library
symbols and replaces them with calls to a StubAtom. On ELF system, a "stub"
is a PLT entry. Added a simple test case.
Pass a Platform object to YAML reader and writer for converting fixup kinds
between names and values.
Change output of Resolver to be a File object instead of a vector of Atoms.
Thus, passes operate on a File instead of just Atoms.
Rework how to walk through a File's Atoms. Now iterator based instead of
a method that visits each atom.
llvm-svn: 152269
2012-03-08 00:18:30 +00:00
Nick Kledzik
6bc04c6904
Add support for SharedLibraryAtoms (proxy atoms for exported symbols from a
...
shared library) and AbsoluteAtoms (proxy atoms for absolute address (e.g. ROM)).
Redesign weak importing as can-be-null-at-runtime and can-be-null-at-build-time.
Add lots of test cases for all the above.
llvm-svn: 151204
2012-02-22 21:56:59 +00:00
Nick Kledzik
af18a2b29f
use llvm::DenseMap instead of std::map
...
llvm-svn: 150547
2012-02-15 00:50:07 +00:00
Nick Kledzik
49d6cc8457
(no commit message)
...
llvm-svn: 150539
2012-02-15 00:38:09 +00:00
Nick Kledzik
23384e84af
Add support for UndefinedAtom in yaml and native format. Add test cases with undefined atoms
...
llvm-svn: 149962
2012-02-07 02:59:54 +00:00
Michael J. Spencer
7aba8957c1
Cleanup system_error extensions.
...
llvm-svn: 149432
2012-01-31 21:47:13 +00:00
Michael J. Spencer
aa37613305
Don't delete the temp file until after we finish reading from it.
...
llvm-svn: 149431
2012-01-31 21:46:52 +00:00
Michael J. Spencer
8c36f458fa
&vectorval[0] is UB when vectorval.size() == 0.
...
llvm-svn: 149430
2012-01-31 21:46:41 +00:00
Michael J. Spencer
4e45ebb92c
Fix use after free.
...
llvm-svn: 149429
2012-01-31 21:46:29 +00:00
Michael J. Spencer
8526e64bef
Add pretty stack tracing and llvm_shutdown.
...
llvm-svn: 149428
2012-01-31 21:46:17 +00:00
Michael J. Spencer
846fe662ba
If cont.size() is 0, the expression &_contentPool[result] has undefined
...
behaivior because it indexes past the end of _contentPool.
llvm-svn: 149427
2012-01-31 21:46:05 +00:00
Michael J. Spencer
b2bd733593
Flexible array members are not in C++03, and MSVC doesn't support them.
...
llvm-svn: 149426
2012-01-31 21:45:53 +00:00
Michael J. Spencer
73e3e3c7b9
NULL requires including cstddef. Just use 0.
...
llvm-svn: 149425
2012-01-31 21:45:26 +00:00
Nick Kledzik
55fd6beb00
First chunk of native object file reader/writer. The lld-core tool now reads YAML file, links, writes that out as native object format, then reads that native file, then writes the YAML to stdout. Thus the test suite tests both YAML reading/writing as well as native object file reading/writing.
...
llvm-svn: 148256
2012-01-16 22:03:44 +00:00
Nick Kledzik
f4fb2c5ac8
A couple of big refactorings: 1) Move most attributes of Atom down to DefinedAtom, so only atoms representing definitions need to implement them. 2) Remove definitionTentative, definitionWeak, mergeDuplicates, and autoHide. Replace with merge and interposable attributes. 3) Make all methods on Atom be virtual so that future object file readers can lazily generated attributes
...
llvm-svn: 147903
2012-01-11 01:06:19 +00:00
Nick Kledzik
bfedfc171d
add initial support for coalescing by content (c-strings) with test case
...
llvm-svn: 147799
2012-01-09 20:18:15 +00:00
Nick Kledzik
7735a7d1a0
Support more Atom attributes. Add more test cases to lld-core
...
llvm-svn: 147571
2012-01-04 23:58:17 +00:00
Nick Kledzik
38eec3d931
Add more merging/coalescing test cases and make core linking work for them
...
llvm-svn: 147130
2011-12-22 02:38:01 +00:00
Nick Kledzik
f46669c828
Cleaned up Atom attribues some more. Added lots of doxygen comments
...
llvm-svn: 147105
2011-12-21 23:29:36 +00:00
Nick Kledzik
f96d0ade79
Refactor and comment Atom attributes. Replace combine() with internalName() and mergeDuplicates()
...
llvm-svn: 146958
2011-12-20 02:18:44 +00:00
Nick Kledzik
070e1a7643
add parseObjectTextFileOrSTDIN() utility
...
llvm-svn: 146931
2011-12-20 00:07:11 +00:00
Michael J. Spencer
773a8fb6ab
Initial commit. Code by Nick Kledzik. Cleanups and build system by me.
...
llvm-svn: 146844
2011-12-18 08:27:59 +00:00
Michael J. Spencer
a2a6e2f282
More renaming.
...
llvm-svn: 146829
2011-12-17 12:35:04 +00:00
Michael J. Spencer
c7e7638ec2
Rename lold to lld :(.
...
llvm-svn: 146828
2011-12-17 12:27:19 +00:00