forked from OSchip/llvm-project
ELF: Correctly identify SHT_NOTE sections with !SHF_ALLOC as type*Note
Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D11266 llvm-svn: 244317
This commit is contained in:
parent
2ab51bf13a
commit
01da42d8db
|
@ -71,8 +71,13 @@ DefinedAtom::ContentType ELFDefinedAtom<ELFT>::doContentType() const {
|
||||||
return typeGnuLinkOnce;
|
return typeGnuLinkOnce;
|
||||||
|
|
||||||
uint64_t flags = _section->sh_flags;
|
uint64_t flags = _section->sh_flags;
|
||||||
if (!(flags & SHF_ALLOC))
|
|
||||||
|
if (!(flags & SHF_ALLOC)) {
|
||||||
|
if (_section->sh_type == SHT_NOTE)
|
||||||
|
return (flags == SHF_WRITE) ? typeRWNote : typeRONote;
|
||||||
return _contentType = typeNoAlloc;
|
return _contentType = typeNoAlloc;
|
||||||
|
}
|
||||||
|
|
||||||
if (_section->sh_flags == (SHF_ALLOC | SHF_WRITE | SHF_TLS))
|
if (_section->sh_flags == (SHF_ALLOC | SHF_WRITE | SHF_TLS))
|
||||||
return _section->sh_type == SHT_NOBITS ? typeThreadZeroFill
|
return _section->sh_type == SHT_NOBITS ? typeThreadZeroFill
|
||||||
: typeThreadData;
|
: typeThreadData;
|
||||||
|
|
|
@ -1,9 +1,11 @@
|
||||||
# Check that the linker is not ignoring input sections.
|
# Check that the linker is not ignoring input sections.
|
||||||
# RUN: yaml2obj -format=elf %s > %t.obj
|
# RUN: yaml2obj -format=elf %s > %t.obj
|
||||||
# RUN: lld -flavor gnu -target x86_64 %t.obj -o %t.exe --noinhibit-exec
|
# RUN: lld -flavor gnu -target x86_64 %t.obj -o %t.exe --noinhibit-exec
|
||||||
# RUN: llvm-objdump -h %t.exe | FileCheck %s
|
# RUN: llvm-readobj -s %t.exe | FileCheck %s
|
||||||
|
|
||||||
# CHECK: {{[0-9]+}} .note
|
# CHECK: Section {
|
||||||
|
# CHECK: Name: .note
|
||||||
|
# CHECK-NEXT: Type: SHT_NOTE
|
||||||
|
|
||||||
---
|
---
|
||||||
FileHeader:
|
FileHeader:
|
||||||
|
|
Loading…
Reference in New Issue