summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRoland McGrath <mcgrathr@google.com>2013-11-01 14:37:46 -0700
committerRoland McGrath <mcgrathr@google.com>2013-11-01 14:49:41 -0700
commitbc235b9f0311d995ad172231e678a9d583b7ed19 (patch)
treebcb1cf377aa586600bcadd0962b9e0c51c615606
parent41798d24b43a46c0ee4a3ccec795b155aeb1d82f (diff)
downloadppe42-binutils-bc235b9f0311d995ad172231e678a9d583b7ed19.tar.gz
ppe42-binutils-bc235b9f0311d995ad172231e678a9d583b7ed19.zip
*-*-nacl* layout: Drop requirement that some section have SEC_HAS_CONTENTS set.
bfd/ * elf-nacl.c (segment_eligible_for_headers): Drop requirement that some section have SEC_HAS_CONTENTS set. It's not set for .note.gnu.build-id, and a segment of only read-only SHT_NOBITS sections is implausible and not really supportable anyway. (cherry picked from commit 86e0565d9c985fa0ba46c85dbe6e77bcaf62dd33)
-rw-r--r--bfd/ChangeLog7
-rw-r--r--bfd/elf-nacl.c7
2 files changed, 9 insertions, 5 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 34ecf12c3f..e9a2f287e9 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,10 @@
+2013-11-01 Roland McGrath <mcgrathr@google.com>
+
+ * elf-nacl.c (segment_eligible_for_headers): Drop requirement that
+ some section have SEC_HAS_CONTENTS set. It's not set for
+ .note.gnu.build-id, and a segment of only read-only SHT_NOBITS
+ sections is implausible and not really supportable anyway.
+
2013-10-29 Roland McGrath <mcgrathr@google.com>
* elf64-x86-64.c (elf_x86_64_nacl_plt0_entry): Correct 9-byte nop
diff --git a/bfd/elf-nacl.c b/bfd/elf-nacl.c
index 5ec11616c4..c46b4cba3b 100644
--- a/bfd/elf-nacl.c
+++ b/bfd/elf-nacl.c
@@ -44,14 +44,13 @@ segment_executable (struct elf_segment_map *seg)
}
/* Determine if this segment is eligible to receive the file and program
- headers. It must be read-only, non-executable, and have contents.
+ headers. It must be read-only and non-executable.
Its first section must start far enough past the page boundary to
allow space for the headers. */
static bfd_boolean
segment_eligible_for_headers (struct elf_segment_map *seg,
bfd_vma minpagesize, bfd_vma sizeof_headers)
{
- bfd_boolean any_contents = FALSE;
unsigned int i;
if (seg->count == 0 || seg->sections[0]->lma % minpagesize < sizeof_headers)
return FALSE;
@@ -59,10 +58,8 @@ segment_eligible_for_headers (struct elf_segment_map *seg,
{
if ((seg->sections[i]->flags & (SEC_CODE|SEC_READONLY)) != SEC_READONLY)
return FALSE;
- if (seg->sections[i]->flags & SEC_HAS_CONTENTS)
- any_contents = TRUE;
}
- return any_contents;
+ return TRUE;
}
OpenPOWER on IntegriCloud