Go to file
Peter Collingbourne 0bb825d208 ELF: Add .interp synthetic sections first in createSyntheticSections().
Our .interp section is not a SyntheticSection. As a result, it terminates the
loop in removeUnusedSyntheticSections(). This has at least two consequences:

- The synthetic .bss and .bss.rel.ro sections are always present in
  dynamically linked executables, even when they are not needed.
- The synthetic .ARM.exidx (and possibly other) sections are always present
  in partitions other than the last one, even when not needed.
  .ARM.exidx in particular is problematic because it assumes that its
  list of code sections is non-empty in getLinkOrderDep(), which can
  lead to a crash if the partition does not have any code sections.

Fix these problems by moving the creation of the .interp sections to the
top of createSyntheticSections(). While here, make the code a little less
error-prone by changing the add() lambdas to take a SyntheticSection instead
of an InputSectionBase.

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

llvm-svn: 373347
2019-10-01 16:10:13 +00:00
clang [Diagnostics] Move warning into the subgroup (-Wenum-compare-conditional) 2019-10-01 15:44:38 +00:00
clang-tools-extra [clangd] Implement getBeginning for overloaded operators. 2019-10-01 11:03:56 +00:00
compiler-rt compiler-rt: use __GLIBC_PREREQ for SANITIZER_INTERCEPT_GETRANDOM 2019-10-01 00:58:29 +00:00
debuginfo-tests Make nrvo-string test more robust. 2019-06-27 20:38:37 +00:00
libc Add a director, along with README.txt and LICENSE.txt, for libc. 2019-09-16 21:39:08 +00:00
libclc travis: Add LLVM 9 build 2019-09-27 05:58:15 +00:00
libcxx [libc++] Harden usage of static_assert against C++03 2019-10-01 12:12:21 +00:00
libcxxabi [Testing] unbreak after r372963 2019-09-26 11:32:02 +00:00
libunwind Unwind: avoid warning about unused typedef 2019-09-20 20:46:33 +00:00
lld ELF: Add .interp synthetic sections first in createSyntheticSections(). 2019-10-01 16:10:13 +00:00
lldb Remove size_t return parameter from FindTypes 2019-10-01 15:40:41 +00:00
llgo
llvm [AMDGPU] Add VerifyScheduling support. 2019-10-01 15:45:47 +00:00
openmp [OpenMP] FreeBSD address check if mapped more native 2019-09-28 19:01:59 +00:00
parallel-libs
polly [Alignment][NFC] Remove AllocaInst::setAlignment(unsigned) 2019-09-30 13:34:44 +00:00
pstl [pstl] Allow customizing whether per-TU insulation is provided 2019-08-13 12:49:00 +00:00
.arcconfig
.clang-format
.clang-tidy
.git-blame-ignore-revs Add LLDB reformatting to .git-blame-ignore-revs 2019-09-04 09:31:55 +00:00
.gitignore Add a newline at the end of the file 2019-09-04 06:33:46 +00:00
README.md

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.