From 758d96d834ba725461abf4be36df9f13e0815054 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Wed, 22 Feb 2017 17:28:33 +0000 Subject: [PATCH] Align .gnu_debuglink sections on a 4-byte boundary. PR binutils/21193 * opncls.c (bfd_create_gnu_debuglink_section): Give the newly created section 4-byte alignment. --- bfd/ChangeLog | 6 ++++++ bfd/opncls.c | 7 +++++++ 2 files changed, 13 insertions(+) diff --git a/bfd/ChangeLog b/bfd/ChangeLog index cf5c41b5d4..8f8d37577e 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,9 @@ +2017-02-22 Nick Clifton + + PR binutils/21193 + * opncls.c (bfd_create_gnu_debuglink_section): Give the newly + created section 4-byte alignment. + 2017-02-22 Alan Modra * elf64-ppc.c (ppc64_elf_finish_dynamic_sections): Don't segfault diff --git a/bfd/opncls.c b/bfd/opncls.c index 2ab7dfec9c..4137a3bdcd 100644 --- a/bfd/opncls.c +++ b/bfd/opncls.c @@ -1645,6 +1645,8 @@ bfd_create_gnu_debuglink_section (bfd *abfd, const char *filename) if (sect == NULL) return NULL; + /* Compute the size of the section. Allow for the CRC after the filename, + and padding so that it will start on a 4-byte boundary. */ debuglink_size = strlen (filename) + 1; debuglink_size += 3; debuglink_size &= ~3; @@ -1654,6 +1656,11 @@ bfd_create_gnu_debuglink_section (bfd *abfd, const char *filename) /* XXX Should we delete the section from the bfd ? */ return NULL; + /* PR 21193: Ensure that the section has 4-byte alignment for the CRC. + Note - despite the name of the function being called, we are + setting an alignment power, not a byte alignment value. */ + bfd_set_section_alignment (abfd, sect, 2); + return sect; }