This fixes PR 17110 which shows that the SH section relocation code can be called
authorNick Clifton <nickc@redhat.com>
Tue, 8 Jul 2014 15:20:48 +0000 (16:20 +0100)
committerNick Clifton <nickc@redhat.com>
Tue, 8 Jul 2014 15:20:48 +0000 (16:20 +0100)
for input BFDs as well as output BFDs.

PR ld/17110
* elf32-sh.c (sh_elf_osec_to_segment): Do not look for output
segments in input bfds.

bfd/ChangeLog
bfd/elf32-sh.c

index edf983ae319a782ecf173200e84aa1baabe73c5c..1a84fc5ea8485dc832fe7249c9bc513e1588936b 100644 (file)
@@ -1,3 +1,9 @@
+2014-07-08  Nick Clifton  <nickc@redhat.com>
+
+       PR ld/17110
+       * elf32-sh.c (sh_elf_osec_to_segment): Do not look for output
+       segments in input bfds.
+
 2014-07-08  Will Newton  <will.newton@linaro.org>
 
        * elf32-arm.c (ELF_MAXPAGESIZE): Increase the default
index 34dfea2197e58fcdec2558e4b085b55b98d65ba6..5085830d8affac975915f20a17d1fa320cfe400d 100644 (file)
@@ -3676,7 +3676,9 @@ sh_elf_osec_to_segment (bfd *output_bfd, asection *osec)
 {
   Elf_Internal_Phdr *p = NULL;
 
-  if (output_bfd->xvec->flavour == bfd_target_elf_flavour)
+  if (output_bfd->xvec->flavour == bfd_target_elf_flavour
+      /* PR ld/17110: Do not look for output segments in an input bfd.  */
+      && output_bfd->direction != read_direction)
     p = _bfd_elf_find_segment_containing_section (output_bfd, osec);
 
   /* FIXME: Nothing ever says what this index is relative to.  The kernel