| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
| |
llvm-svn: 307167
|
|
|
|
| |
llvm-svn: 306700
|
|
|
|
|
|
|
|
|
| |
The --exclude-libs option is not a popular option, but at least some
programs in Android depend on it, so it's worth to support it.
Differential Revision: https://reviews.llvm.org/D34422
llvm-svn: 305920
|
|
|
|
|
|
|
|
|
|
| |
Reviewers: ruiu, rafael, grimar, atanasyan, psmith, dylanmckay
Reviewed By: ruiu, rafael, grimar, dylanmckay
Differential Revision: https://reviews.llvm.org/D32991
llvm-svn: 305444
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The ELF standard defines that the SHT_GROUP section as follows:
- its sh_link has the symbol index, and
- the symbol name is used to uniquify section groups.
Object files created by GNU gold does not seem to comply with the
standard. They have this additional rule:
- if the symbol has no name and a STT_SECTION symbol, a section
name is used instead of a symbol name.
If we don't do anything for this, the linker fails with a mysterious
error message if input files are generated by gas. It is unfortunate
but I think we need to support it.
Differential Revision: https://reviews.llvm.org/D34064
llvm-svn: 305218
|
|
|
|
| |
llvm-svn: 305047
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is PR33052, "Bug 33052 - -r eats comdats ".
To fix it I stop removing group section from out when -r is given
and fixing SHT_GROUP content when writing it just like we do some
other fixup, e.g. for Rel[a]. (it needs fix for section indices that
are in group).
Differential revision: https://reviews.llvm.org/D33485
llvm-svn: 304140
|
|
|
|
| |
llvm-svn: 303959
|
|
|
|
|
|
|
|
|
|
|
| |
CachedHashStringRef."
This reverts commit r303787.
It caused a slowdown in fast links. That is, links with no debug info
or optimizations.
llvm-svn: 303925
|
|
|
|
|
|
|
|
|
|
| |
A variable `ComdatGroup` is not supposed to contain a large number of
items. Even when linking clang, it ends up having only 300K strings.
It doesn't make sense to use CachedHashStringRef for this hash table.
This patch has neutral or slightly positive impact on performance while
reducing code complexity.
llvm-svn: 303787
|
|
|
|
| |
llvm-svn: 302832
|
|
|
|
|
|
|
| |
LazyObjectFile might turn out to be a BitcodeFile, so we need
OffsetInArchive.
llvm-svn: 302242
|
|
|
|
|
|
|
|
| |
It is needed for creating an unique identifier for ThinLTO.
This fixes pr32931.
llvm-svn: 302235
|
|
|
|
| |
llvm-svn: 302155
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
It seems virtually everyone who tries to do LTO build with Clang and
LLD was hit by a mistake to forget using llvm-ar command to create
archive files. I wasn't an exception. Since this is an annoying common
issue, it is probably better to handle that gracefully rather than
reporting an error and tell the user to redo build with different
configuration.
Differential Revision: https://reviews.llvm.org/D32721
llvm-svn: 302083
|
|
|
|
| |
llvm-svn: 301975
|
|
|
|
| |
llvm-svn: 301896
|
|
|
|
|
|
| |
Also factored out code.
llvm-svn: 301833
|
|
|
|
|
|
|
| |
Fixes PR32785. Thanks to Piotr Padlewski for the report and
Rafael for the fix.
llvm-svn: 301729
|
|
|
|
|
|
|
|
|
| |
This patch is to ignore .debug_gnu_pub{names,types} sections if the
-gdb-index option was given.
Differential Revision: https://reviews.llvm.org/D32662
llvm-svn: 301710
|
|
|
|
| |
llvm-svn: 301674
|
|
|
|
| |
llvm-svn: 301514
|
|
|
|
| |
llvm-svn: 301513
|
|
|
|
|
|
|
| |
SoName's type has changed from StringRef to std::string, so this
code does not make sense anymore.
llvm-svn: 301490
|
|
|
|
|
|
|
|
|
| |
This patch is to reduce amount of template uses. The new code is less
exciting and boring than before, but I think it is easier to read.
Differential Revision: https://reviews.llvm.org/D32467
llvm-svn: 301488
|
|
|
|
|
|
|
|
| |
We can just use the existing SoName member variable. It now initially
contains what was in DefaultSoName and is modified if the .so has an
actual soname.
llvm-svn: 301259
|
|
|
|
|
|
|
|
|
|
| |
Start using it in LLD to avoid needing to read bitcode again just to get the
target triple, and in llvm-lto2 to avoid printing symbol table information
that is inappropriate for the target.
Differential Revision: https://reviews.llvm.org/D32038
llvm-svn: 300300
|
|
|
|
| |
llvm-svn: 300297
|
|
|
|
|
|
|
| |
This patch uses DefaultSoName in getSoName instead of in parseSoName.
I think this is more readable. This patch also add comments.
llvm-svn: 300147
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Fixes PR32572.
When
(a) a library has no soname
and (b) library is given on the command line with path (and not through -L/-l flags)
DT_NEEDED entry for such library keeps the path as given.
This behavior is consistent with gold and bfd, and is used in compiler-rt test suite.
This is a second attempt after r300007 got reverted. This time relro-omagic test is
changed in a way to avoid hardcoding the path to the test directory in the objdump'd
binary.
llvm-svn: 300011
|
|
|
|
|
|
| |
This reverts commit r300007. Reason: breaks all the bots.
llvm-svn: 300008
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Fixes PR32572.
When
(a) a library has no soname
and (b) library is given on the command line with path (and not through -L/-l flags)
DT_NEEDED entry for such library keeps the path as given.
This behavior is consistent with gold and bfd, and is used in compiler-rt test suite.
llvm-svn: 300007
|
|
|
|
|
|
|
|
|
|
| |
LogName member was added to construct input file names for logging
only once. This patch does this in a different way. Now toString
caches its results.
Differential Revision: https://reviews.llvm.org/D31546
llvm-svn: 299375
|
|
|
|
| |
llvm-svn: 299184
|
|
|
|
|
|
| |
http://bb.pgr.jp/builders/i686-mingw32-RA-on-linux/builds/25073/steps/build_llvmclang/logs/stdio
llvm-svn: 299171
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
InputFiles. NFCI.
Introduce symbol table data structures that can be potentially written to
disk, have the LTO library build those data structures using temporarily
constructed modules and redirect the LTO library implementation to go through
those data structures. This allows us to remove the LLVMContext and Modules
owned by InputFile.
With this change I measured a peak memory consumption decrease from 5.4GB to
2.8GB in a no-op incremental ThinLTO link of Chromium on Linux. The impact on
memory consumption is larger in COFF linkers where we are currently forced
to materialize all metadata in order to read linker options. Peak memory
consumption linking a large piece of Chromium for Windows with full LTO and
debug info decreases from >64GB (OOM) to 15GB.
Part of PR27551.
Differential Revision: https://reviews.llvm.org/D31364
llvm-svn: 299168
|
|
|
|
| |
llvm-svn: 299115
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Previously, undefined symbol errors are one line like this
and wasn't easy to read.
/ssd/clang/bin/ld.lld: error: /ssd/llvm-project/lld/ELF/Writer.cpp:207: undefined symbol 'lld::elf::EhFrameSection<llvm::object::ELFType<(llvm::support::endianness)0, true> >::addSection(lld::elf::InputSectionBase*)'
This patch make it more structured like this.
bin/ld.lld: error: undefined symbol: lld::elf::EhFrameSection<llvm::object::ELFType<(llvm::support::endianness)0, true>
>>> Referenced by Writer.cpp:207 (/ssd/llvm-project/lld/ELF/Writer.cpp:207)
>>> Writer.cpp.o in archive lib/liblldELF.a
Discussion thread:
http://lists.llvm.org/pipermail/llvm-dev/2017-March/111459.html
Differential Revision: https://reviews.llvm.org/D31481
llvm-svn: 299097
|
|
|
|
|
|
|
| |
This makes the predicates independent of the flag representation
and makes the code a little easier to read.
llvm-svn: 298951
|
|
|
|
|
|
| |
That finally should linux BB after r298345.
llvm-svn: 298349
|
|
|
|
|
|
|
| |
Fix for linux build bot:
http://lab.llvm.org:8011/builders/llvm-clang-lld-x86_64-scei-ps4-ubuntu-fast/builds/8144/steps/build/logs/stdio
llvm-svn: 298348
|
|
|
|
|
|
| |
It is the only file type that needs it.
llvm-svn: 298323
|
|
|
|
|
|
|
|
|
|
|
| |
We had a few Config member functions that returns configuration values.
For example, we had is64() which returns true if the target is 64-bit.
The return values of these functions are constant and never change.
This patch is to compute them only once to make it clear that they'll
never change.
llvm-svn: 298168
|
|
|
|
|
|
|
| |
isLE() return true if the target is little-endian.
wordsize() returns 8 for 64-bit and 4 for 32-bit.
llvm-svn: 298167
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
When we perform LTO builds with a version of ar that does not
understand LLVM bitcode objects, we end up with undefined references,
because our archive files do not list the bitcode symbols in their
indices. The error messages do not make it clear what the real problem
is. This change adds a note that points out the likely problem and
solution. It is similar in spirit to r282633, but aims to avoid false
positives by only triggering when we see both undefined references and
archives without symbols in their indices.
Fixes PR32281.
Reviewers: davide, ruiu, tejohnson
Subscribers: llvm-commits
Differential Revision: https://reviews.llvm.org/D31011
llvm-svn: 298124
|
|
|
|
|
|
|
| |
It is sufficiently different in that it returns an offset in the input
file, not the output section.
llvm-svn: 297290
|
|
|
|
|
|
| |
With this InputSectionBase is now 144 bytes.
llvm-svn: 297278
|
|
|
|
| |
llvm-svn: 297077
|
|
|
|
| |
llvm-svn: 297061
|
|
|
|
|
|
| |
We converted them before, but there were a few remaining occurrences.
llvm-svn: 296510
|