diff options
Diffstat (limited to 'bfd')
-rw-r--r-- | bfd/elf32-ppc.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/bfd/elf32-ppc.c b/bfd/elf32-ppc.c index c117f54..7cb4d86 100644 --- a/bfd/elf32-ppc.c +++ b/bfd/elf32-ppc.c @@ -3901,6 +3901,9 @@ ppc_elf_begin_write_processing (abfd, link_info) unsigned long length; const char * error_message = NULL; + if (link_info == NULL) + return; + /* Scan the input bfds, looking for apuinfo sections. */ num_input_sections = 0; output_section_size = 0; @@ -4023,7 +4026,7 @@ ppc_elf_write_section (abfd, asec, contents) asection * asec; bfd_byte * contents ATTRIBUTE_UNUSED; { - return strcmp (asec->name, APUINFO_SECTION_NAME) == 0; + return apuinfo_list_length () && strcmp (asec->name, APUINFO_SECTION_NAME) == 0; } @@ -4044,6 +4047,9 @@ ppc_elf_final_write_processing (abfd, linker) if (asec == NULL) return; + if (apuinfo_list_length () == 0) + return; + length = asec->_raw_size; if (length < 20) return; |