Revert [ELF] Simplify the condition to create .interp

This reverts r362355 (git commit c78c999a9c)

This causes some internal tests to fail; details provided offthread.

llvm-svn: 362755
This commit is contained in:
Jordan Rupprecht 2019-06-06 23:23:14 +00:00
parent b6cfa129cc
commit 0629e1252f
2 changed files with 11 additions and 8 deletions

View File

@ -138,7 +138,8 @@ StringRef elf::getOutputSectionName(const InputSectionBase *S) {
}
static bool needsInterpSection() {
return !Config->DynamicLinker.empty() && Script->needsInterpSection();
return !SharedFiles.empty() && !Config->DynamicLinker.empty() &&
Script->needsInterpSection();
}
template <class ELFT> void elf::writeResult() { Writer<ELFT>().run(); }

View File

@ -1,19 +1,21 @@
# REQUIRES: x86
# RUN: llvm-mc -filetype=obj -triple=x86_64-pc-linux %p/Inputs/shared.s -o %t1.o
# RUN: ld.lld -shared %t1.o -o %t.so
# RUN: llvm-mc -filetype=obj -triple=x86_64-pc-linux %s -o %t.o
# RUN: ld.lld --dynamic-linker foo %t.o -o %t
# RUN: llvm-readelf --program-headers %t | FileCheck %s
# RUN: ld.lld --dynamic-linker foo %t.o %t.so -o %t
# RUN: llvm-readelf -program-headers %t | FileCheck %s
# RUN: ld.lld --dynamic-linker=foo %t.o -o %t
# RUN: llvm-readelf --program-headers %t | FileCheck %s
# RUN: ld.lld --dynamic-linker=foo %t.o %t.so -o %t
# RUN: llvm-readelf -program-headers %t | FileCheck %s
# CHECK: [Requesting program interpreter: foo]
# RUN: ld.lld %t.o -o %t
# RUN: ld.lld %t.o %t.so -o %t
# RUN: llvm-readelf -program-headers %t | FileCheck --check-prefix=NO %s
# RUN: ld.lld --dynamic-linker foo --no-dynamic-linker %t.o -o %t
# RUN: llvm-readelf --program-headers %t | FileCheck --check-prefix=NO %s
# RUN: ld.lld --dynamic-linker foo --no-dynamic-linker %t.o %t.so -o %t
# RUN: llvm-readelf -program-headers %t | FileCheck --check-prefix=NO %s
# NO-NOT: PT_INTERP