Mon Sep 12 11:43:08 1994 Ian Lance Taylor (ian@sanguine.cygnus.com)
+ * coff-alpha.c (ecoffalpha_little_vec): Add SEC_CODE and SEC_DATA
+ to section_flags.
+ * coff-mips.c (ecoff_little_vec, ecoff_big_vec): Likewise.
+
+ * elfcode.h (swap_out_syms): Set the type of an undefined symbol
+ to STT_FUNC if the BSF_FUNCTION flag is set.
+
* cofflink.c (coff_link_input_bfd): If r_symndx is -1, don't
change it.
(_bfd_coff_generic_relocate_section): If r_symndx is -1, it is an
if (bfd_is_com_section (syms[idx]->section))
sym.st_info = ELF_ST_INFO (STB_GLOBAL, STT_OBJECT);
else if (bfd_is_und_section (syms[idx]->section))
- sym.st_info = ELF_ST_INFO (STB_GLOBAL, STT_NOTYPE);
+ sym.st_info = ELF_ST_INFO (STB_GLOBAL,
+ ((syms[idx]->flags & BSF_FUNCTION)
+ ? STT_FUNC
+ : STT_NOTYPE));
else if (syms[idx]->flags & BSF_SECTION_SYM)
sym.st_info = ELF_ST_INFO (STB_LOCAL, STT_SECTION);
else if (syms[idx]->flags & BSF_FILE)
}
if (bed->elf_backend_final_write_processing)
- (*bed->elf_backend_final_write_processing) (abfd, NULL);
+ (*bed->elf_backend_final_write_processing) (abfd,
+ elf_tdata (abfd)->linker);
return write_shdrs_and_ehdr (abfd);
}
}
}
- /* Now backend stuff. */
- if (bed->elf_backend_final_write_processing)
- (*bed->elf_backend_final_write_processing) (abfd, NULL);
-
if (finfo.contents != NULL)
free (finfo.contents);
if (finfo.external_relocs != NULL)
free (elf_section_data (o)->rel_hashes);
}
+ elf_tdata (abfd)->linker = true;
+
return true;
error_return: