Go to file
Pirama Arumuga Nainar e61652a384 [LTO] Drop non-prevailing definitions only if linkage is not local or appending
Summary:
This fixes PR 37422

In ELF, non-weak symbols can also be non-prevailing.  In this particular
PR, the __llvm_profile_* symbols are non-prevailing but weren't getting
dropped - causing multiply-defined errors with lld.

Also add a test, strong_non_prevailing.ll, to ensure that multiple
copies of a strong symbol are dropped.

To fix the test regressions exposed by this fix,
- do not mark prevailing copies for symbols with 'appending' linkage.
There's no one prevailing copy for such symbols.
- fix the prevailing version in dead-strip-fulllto.ll
- explicitly pass exported symbols to llvm-lto in fumcimport.ll and
funcimport_var.ll

Reviewers: tejohnson, pcc

Subscribers: mehdi_amini, inglorion, eraman, steven_wu, dexonsmith,
dang, srhines, llvm-commits

Differential Revision: https://reviews.llvm.org/D54125

llvm-svn: 346436
2018-11-08 20:10:07 +00:00
clang [Tooling] Produce diagnostics for missing input files. 2018-11-08 16:57:01 +00:00
clang-tools-extra [clang-tidy] Untangle layering in ClangTidyDiagnosticConsumer somewhat. NFC 2018-11-08 17:42:16 +00:00
compiler-rt Introduce `sanitizer_malloc_introspect_t` for Darwin which is a sub-class of Darwin's `malloc_introspection_t` and use it when setting up the malloc zone. 2018-11-08 17:50:34 +00:00
debuginfo-tests Set config.lit_tools_dir, which is needed by lit.llvm.initialize. 2018-11-06 21:54:27 +00:00
libclc Remove redundant OVERRRIDES file 2018-11-04 00:54:46 +00:00
libcxx Fix -Wimplicit-fallthrough warning 2018-11-07 23:51:13 +00:00
libcxxabi Use C++11 fallthrough attribute syntax when available and add a break 2018-11-01 18:24:03 +00:00
libunwind [CMake] Link to compiler-rt if LIBUNWIND_USE_COMPILER_RT is ON. 2018-10-08 18:35:00 +00:00
lld Fix -Wextra-qualification warning 2018-11-08 18:53:56 +00:00
lldb [lldb] Fix initialization order warnings. 2018-11-08 19:57:59 +00:00
llgo Update copyright year to 2018. 2018-06-18 12:22:17 +00:00
llvm [LTO] Drop non-prevailing definitions only if linkage is not local or appending 2018-11-08 20:10:07 +00:00
openmp [OPENMP]Make lambda mapping follow reqs for PTR_AND_OBJ mapping. 2018-11-08 15:47:30 +00:00
parallel-libs Update copyright year to 2018. 2018-06-18 12:22:17 +00:00
polly [CMake] Fix generation of exported targets in build directory 2018-11-06 15:18:17 +00:00
README.md Update the project name in README.md 2018-10-19 00:03:01 +00:00

README.md

The LLVM Compiler Infrastructure

This directory and its subdirectories contain source code for LLVM, a toolkit for the construction of highly optimized compilers, optimizers, and runtime environments.