[PATCH] D11266: LLD: ELF: Correctly identify SHT_NOTE sections with !SHF_ALLOC as type*Note
Tom Stellard
thomas.stellard at amd.com
Thu Jul 16 08:00:22 PDT 2015
tstellarAMD created this revision.
tstellarAMD added a subscriber: llvm-commits.
http://reviews.llvm.org/D11266
Files:
lib/ReaderWriter/ELF/Atoms.cpp
test/elf/note.test
Index: test/elf/note.test
===================================================================
--- test/elf/note.test
+++ 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:
Index: lib/ReaderWriter/ELF/Atoms.cpp
===================================================================
--- lib/ReaderWriter/ELF/Atoms.cpp
+++ lib/ReaderWriter/ELF/Atoms.cpp
@@ -71,8 +71,13 @@
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;
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D11266.29911.patch
Type: text/x-patch
Size: 1209 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20150716/719178e9/attachment.bin>
More information about the llvm-commits
mailing list