diff options
| author | Tom Stellard <thomas.stellard@amd.com> | 2015-08-07 14:36:04 +0000 |
|---|---|---|
| committer | Tom Stellard <thomas.stellard@amd.com> | 2015-08-07 14:36:04 +0000 |
| commit | 01da42d8db3263ede2c10b466daed51f4b1d43e5 (patch) | |
| tree | f39be773bdc0ce6a37357e261ecebe0d57e91830 | |
| parent | 2ab51bf13a1f6ca96823b755c036227dfd0892f9 (diff) | |
| download | bcm5719-llvm-01da42d8db3263ede2c10b466daed51f4b1d43e5.tar.gz bcm5719-llvm-01da42d8db3263ede2c10b466daed51f4b1d43e5.zip | |
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
| -rw-r--r-- | lld/lib/ReaderWriter/ELF/Atoms.cpp | 7 | ||||
| -rw-r--r-- | lld/test/elf/note.test | 6 |
2 files changed, 10 insertions, 3 deletions
diff --git a/lld/lib/ReaderWriter/ELF/Atoms.cpp b/lld/lib/ReaderWriter/ELF/Atoms.cpp index 45a82d1392c..63963339316 100644 --- a/lld/lib/ReaderWriter/ELF/Atoms.cpp +++ b/lld/lib/ReaderWriter/ELF/Atoms.cpp @@ -71,8 +71,13 @@ DefinedAtom::ContentType ELFDefinedAtom<ELFT>::doContentType() const { return typeGnuLinkOnce; 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; + } + if (_section->sh_flags == (SHF_ALLOC | SHF_WRITE | SHF_TLS)) return _section->sh_type == SHT_NOBITS ? typeThreadZeroFill : typeThreadData; diff --git a/lld/test/elf/note.test b/lld/test/elf/note.test index 01329e9c8f6..e7544c1f126 100644 --- a/lld/test/elf/note.test +++ b/lld/test/elf/note.test @@ -1,9 +1,11 @@ # Check that the linker is not ignoring input sections. # RUN: yaml2obj -format=elf %s > %t.obj # 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: |

