aboutsummaryrefslogtreecommitdiff
path: root/bfd/elfcode.h
AgeCommit message (Collapse)AuthorFilesLines
1994-02-07 * elfcode.h (prep_headers, swap_out_syms): Check for NULL returnDavid MacKenzie1-10/+36
from bfd_new_strtab. (elf_compute_section_file_positions): Check for false return from swap_out_syms. * linker.c (default_indirect_link_order): Check for NULL return from bfd_get_relocated_section_contents. * syms.c: Make example application in doc call xmalloc, not bfd_xmalloc. * aoutx.h (NAME(aout,slurp_symbol_table), aout_link_get_symbols, NAME(aout,link_hash_table_create)): * bout.c (b_out_slurp_reloc_table, b_out_squirt_out_relocs): * ecoff.c (ecoff_bfd_link_hash_table_create): * ecofflink.c (bfd_ecoff_debug_init): * format.c (bfd_check_format_matches): * linker.c (_bfd_generic_link_hash_table_create): (_bfd_generic_final_link): * reloc16.c (bfd_coff_reloc16_relax_section): (bfd_coff_reloc16_get_relocated_section_contents): * elf32-hppa.c (hppa_elf_build_arg_reloc_stub): * elf32-mips.c (mips_elf_final_link): * elfcode.h (bfd_new_strtab): (bfd_add_2_to_strtab): (elf_slurp_symbol_table): (elf_corefile_note): * libbfd.c (bfd_zmalloc): Use malloc and check the result, instead of bfd_xmalloc.
1994-01-25 * opncls.c (_bfd_new_bfd, _bfd_new_bfd_contained_in): AddDavid MacKenzie1-1/+1
"_bfd_" to function names. * archive.c (_bfd_create_empty_archive_element_shell), libbfd-in.h: Change callers. * libbfd.c (bfd_zmalloc): Renamed from zalloc. * libbfd.c (bfd_add_to_string_table), trad-core.c (trad_unix_core_file_p), targets.c (bfd_target_list), ptrace-core.c (ptrace_unix_core_file_p), opncls.c (new_bfd), libbfd-in.h, ieee.c (ieee_make_empty_symbol), elf32-hppa.c (hppa_elf_stub_branch_reloc), (hppa_elf_stub_reloc): Change callers. * libbfd.h: Regenerated. * archive.c (_bfd_look_for_bfd_in_cache): Add "_bfd_" to name. (_bfd_get_elt_at_filepos), coff-rs6000.c (rs6000coff_get_elt_at_filepos), libbfd-in.h: Change callers. * format.c (bfd_check_format_matches), libbfd-in.h, targets.c, elfcode.h (elf_object_p): Rename target_vector to bfd_target_vector and default_vector to bfd_default_vector. * libbfd.h: Regenerated.
1994-01-24 * elfcode.h (swap_out_syms): Use elf_section_from_bfd_section toIan Lance Taylor1-1/+2
get the index of a common section, rather than always using SHN_COMMON (MIPS has multiple common sections).
1994-01-14 * elfcode.h (elf_object_p): If there is a SHT_DYNAMIC section, setIan Lance Taylor1-6/+17
the DYNAMIC flag for the BFD. (NAME(bfd_elf,write_object_contents)): Don't try to write out a BFD with the DYNAMIC flag set, since we don't generate the program header table correctly.
1993-11-24 * elfcode.h (map_program_segments): Restore check of file_size !=Ian Lance Taylor1-22/+26
mem_size, but only if SHT_PROGBITS.
1993-11-18 * elfcode.h (bfd_section_from_shdr): Don't dump core if targetIan Lance Taylor1-58/+98
section has no ELF section data. (elf_make_sections): Set addralign of reloc section to 4. (elf_fake_sections): Likewise. (map_program_segments): Don't consider section 0. (assign_file_positions_except_relocs): Don't consider section 0. In the main loop, skip the symtab and strtab sections, since their positions are set elsewhere. (swap_out_syms): Set addralign of symtab section to 4. Set addralign of strtab sections to 1. (assign_file_positions_for_relocs): Don't consider section 0. (write_object_contents): Don't write out section 0. (sym_is_global): Take abfd argument. Call elf_backend_sym_is_global if it is not NULL. (elf_map_symbols): Pass abfd to sym_is_global. (write_object_contents): Call elf_backend_final_write_processing if it is defined.
1993-11-08 * elfcode.h (bfd_section_from_shdr): Remove duplicate assignmentIan Lance Taylor1-32/+51
to filepos in SHT_STRTAB case. (assign_file_position_for_section): Set BFD section filepos as well as ELF section sh_offset.
1993-10-26 * elfcode.h (assign_file_position_for_section): Align sh_offset toIan Lance Taylor1-37/+36
sh_addralign (this is what UnixWare does, and it shouldn't hurt).
1993-10-07elfcode.h (EALIGN): Define, dependent on ARCH_SIZE.Ken Raeburn1-52/+46
(align_file_position): New function. (elf_locate_sh): Disabled function deleted. (assign_file_positions_for_symtab_and_strtabs): Align position, then place symtab, then do other sections. (map_program_segments): Align program header. (assign_file_positions_except_relocs): Align section headers. (assign_file_positions_for_relocs): Align relocation sections. Fixes ld/3584.
1993-09-23 * section.c (SEC_DEBUGGING): New section flag.Ian Lance Taylor1-0/+7
* elfcode.h (bfd_section_from_shdr): If section is SHT_PROGBITS, and the name starts with .debug, .line or .stab, set SEC_DEBUGGING. * elf32-target.h (TARGET_BIG_SYM, TARGET_LITTLE_SYM): Added SEC_DEBUGGING to section_flags. * elf64-target.h (TARGET_BIG_SYM, TARGET_LITTLE_SYM): Added SEC_DEBUGGING and SEC_CODE to section_flags. * bfd-in2.h: Updated.
1993-09-20 * elfcode.h (bfd_section_from_shdr): Only set SEC_DATA for aIan Lance Taylor1-4/+4
SHF_PROGBITS or SHT_STRTAB section if SEC_ALLOC is set. Never set SEC_DATA for a SHF_NOBITS section. * nlm32-i386.c (nlm_i386_mangle_relocs): Check SEC_LOAD rather than SEC_CODE | SEC_DATA. Add some casts to avoid warnings. * nlmcode.h: Add some casts to avoid warnings. (nlm_write_object_contents): Ignore relocs for sections that are neither code nor data. Just use the symbol value for debugging symbols; don't offset by the section vma.
1993-09-16 * elfcode.h (elf_map_symbols): Create section symbols for allIan Lance Taylor1-47/+94
sections, not just allocated sections; debugging sections can have relocs. (elf_symbol_from_bfd_symbol): If there is an output section, use the section index from that rather than the input section.
1993-08-20* elfcode.h (elf_build_phdrs): Unused function deleted.Ken Raeburn1-428/+169
(bfd_shdr_from_section): Ditto. (write_relocs): Don't change section contents for addend. (elf_locate_sh): Return type is now always elf_internal_shdr, since the other types were really aliases for this type anyways. Don't compile this function, since it is static and doesn't appear to be used in this file. (sym_is_global): Return non-zero for weak symbols. Abort if sec ptr is null. (swap_out_syms): Reorder tests so function symbols can be weak. (elf_slurp_symbol_table): Don't use BSF_EXPORT. (elf_slurp_reloca_table): Make RELOC_PROCESSING section smaller by extracting out some common code. Abort if BFD section symbol has null name. (elf_slurp_reloc_table): Translate ELF section symbols into BFD section symbols. Don't read section contents to fill in addend field. * Merged from OSF: Tue Jun 15 14:38:32 1993 Michael Meissner (meissner@osf.org) * libelf.h (struct Elf_Sym_Extra): New structure to contain ELF specific information for a symbol. Put in elf_sym_num, which gives the external symbol number in the elf object file, since local symbols must come before global symbols. (elf_sym_extra): New macro. (elf_symtab_map): Delete, in favor of using Elf_Sym_Extra. * elfcode.h (elf_map_symbols): Use Elf_Sym_Extra to map internal symbol number to external number. Store the address of the Elf_Sym_Extra field for the symbol in the udata field. (elf_write_object_contents): Use Elf_Sym_Extra to map out symbols. Sun Jun 20 16:30:11 1993 Michael Meissner (meissner@osf.org) * elfcode.h (elf_obj_tdata): Add field to count the size of the array of pointers to section symbols. (elf_map_symbols): Bump the max index of the section symbols so that we don't overwrite memory. Store the max index into the elf_obj_tdata field. Sat Jun 19 10:12:27 1993 Michael Meissner (meissner@osf.org) * elfcode.h (elf_obj_tdata): Add pointer to an array of pointers to the section symbols we created. Remove unused field internal_syms. (elf_map_symbols): Fill in array of pointers to section symbols. Only create section symbols for sections that have SEC_ALLOC set, and have non-zero size. (elf_symbol_from_bfd_symbol): If udata is NULL, and this is a section symbol, look up the section in the list of section symbols, and set the udata pointer appropriately. Otherwise, if udata is still NULL, fail an assertion, and use 0, instead of dropping core.
1993-08-05Wed Jun 23 06:05:58 1993 Michael Meissner (meissner@osf.org)Ken Raeburn1-5/+7
* elfcode.h (elf_write_object_contents): Don't drop core if elf_symbol_from returns a NULL pointer when processing a non-elf symbol, use a 0 size instead. Tue Jun 15 14:38:32 1993 Michael Meissner (meissner@osf.org) * elfcode.h (elf_hash): Delete macro mapping elf_hash to bfd_elf32_hash, since the hash table is independent of the 32/64 bit system.
1993-07-26Reimplement segment writing.Ken Raeburn1-118/+345
(elf_write_phdrs): Use precomputed e_phoff rather than making assumptions. (elf_build_phdrs): Disabled, for now. (assign_file_position_for_section): Don't change file offset for SHT_NOBITS. (assign_file_positions_for_symtab_and_strtabs): New function. (struct seg_info): New type. (map_program_segments): New function. (assign_file_positions_except_relocs): For executables, leave section headers &c for last, and properly align all sections with flag SHF_ALLOC set. (prep_headers): No longer abort when EXEC_P is set. (write_shdrs_and_ehdr): Deleted all code relating to program segments. (various): Deleted some unused code, and debugging "malloc(0)" calls. (write_relocs): Cache value of last symbol looked up, to save time if the symbol is referred to repeatedly. (elf_fake_sections): Check only SEC_RELOC flag, not number of relocs. (assign_section_numbers): Likewise.
1993-07-20 * configure.in (*-*-netware, i[34]86-*-netware): New configs.Fred Fish1-8/+0
* Makefile.in (BFD32_BACKENDS): Add nlm.o, nlm32.o, nlm32-gen.o. * Makefile.in (BFD64_BACKENDS): Add nlm64.o, nlm64-gen.o. * Makefile.in (CFILES): Add nlm{32,64}.c, nlm{32,64}-gen.c. * Makefile.in (nlm.o, nlm{32,64}.o, nlm{32,64}-gen.o: New targets. * bfd-in2.h (INLINE): Defines moved here. * {aoutx.h, elf.c, elfcode.h}: Move INLINE defines to bfd-in2.h. * libelf.h (CAT4): Move define to bfd-in2.h. * bfd-in2.h (CAT4): Merge CAT4 macro with other CAT macros. * bfd-in2.h (union tdata): Add nlm_obj_data. * bfd-in2.h (enum target_flavour): Add bfd_target_nlm_flavour. * targets.c (bfd_nlm{32,64}_{big,little}_vec): Add prototypes. * targets.c (target_vector): Add bfd_nlm{32,64}_{big,little}_vec. * (libnlm.h, nlm.c, nlmcode.h, nlm{32,64}-gen.c, nlm{32,64}-target.h, nlm{32,64}.c, config/i386-nlm.mt): New files for NLM support.
1993-07-19* elf.c, elfcode.h, libelf.h: Serious reorganization.Ken Raeburn1-1166/+1248
Deleted `thunk' structure, merged into tdata, duplicate data eliminated. Rearranged functions, grouping by function. Broke up many functions in elfcode.h, re-ordered many parts of file writing to handle unpredictable state of section relocation table as provided by various applications. Still needs cleanup: Merge functions back together, split out data structure with only data that is used only when writing out object file. * elf.c (bfd_elf_generic_reloc): New function, taken from coff-mips.c. * elf32-sparc.c (elf_sparc_howto_table): Use it, to work around bfd_perform_relocation lossage.
1993-07-13make sanitize dtrt wrt v9Ken Raeburn1-4/+4
1993-07-11 * elfcode.h: Use memset not bzero.Jim Kingdon1-1/+1
* trad-core.c: Don't include <sys/file.h>. * i386linux.h: Include <sys/file.h>. * coff-m68k-un.c: new file to handle names with underscores on svr3 machines. * coff-m68k.c (m68k_rtype2howto): added #ifdef ONLY_DECLARE_RELOCS to not duplicate the function in the executable. (TARGET_SYM, TARGET_NAME, NAMES_HAVE_UNDERSCORE): new macros needed by coff-m68k-un.c. * coffcode.h (MC68KBCSMAGIC): case added. * targets.c: Add m68kcoffun_vec. * configure.host: added support for Bull dpx/2. * config/dpx2.mh, hosts/dpx2.h: new files. * Makefile.in: added target coff-m68k-un.
1993-07-06* elfcode.h (elf_read): Delete static declaration, since function has moved.Ken Raeburn1-257/+211
(elf_map_symbols): Write out section symbols for all sections, for now. (elf_symbol_from_bfd_symbol): Allow match if both symbols are section symbols for the same section. (elf_find_nearest_line): Don't print message, just return false.
1993-06-22Sigh. Null pointer return might be right in some cases; don't abort.Ken Raeburn1-2/+0
1993-06-22More get_word/put_word changes.Ken Raeburn1-17/+21
(bfd_section_from_shdr, case SHT_PROGBITS): If section already exists, still use its address to fill in the rawdata slot. (section_from_elf_index): Abort if section pointer is null.
1993-06-22Use new size-independent elf internal data structures.Ken Raeburn1-98/+113
(put_word, get_word): Define as appropriate for architecture word size. Structure swapping functions changed to use them as appropriate. (bfd_add_to_strtab): Now static. (sym_is_global): New function. (elf_map_symbols): Call it. Now returns void. Removed unused local variable. (bfd_section_from_shdr): Mark string tables other than for section and symbol names as normal sections having contents. (fix_up_strtabs): New function; fixes up ELF header fields for stab sections with string tables associated. (elf_write_object_contents): Map fix_up_strtabs over all BFD sections. Reordered condition tests for symbol flags; default to local-object value instead of global-object. (elf_symbol_from_bfd_symbol): Hid conditionally-used variable inside condition test. (elf_print_symbol): Use fprintf_vma. (elf_idx_of_sym, bfd_shdr_from_section): Unused functions commented out.
1993-06-21* elfcode.h (bfd_add_to_strtab): Now static.Ken Raeburn1-123/+201
(sym_is_global): New function. (bfd_section_from_shdr): Makr stirng tables other than for section and symbol names as normal sections having contents. (fix_up_strtabs): New function; fixes up ELF header fields for stab sections with string tables associated. (elf_write_object_contents): Map fix_up_strtabs over all BFD sections. Reordered condition tests for symbol flags; default to local-object value instead of global-object. * elfcode.h (new_section_hook): Define here.
1993-06-18 * Makefile.in: Add elf32-{mips,m88k,generic}.Jim Kingdon1-0/+3338
elf32-{mips,m88k,generic}.c: New files. targets.c (target_vector): Include bfd_elf32_{mips,m88k,generic}_vec. elfcode.h (elf_object_p): Match elf32-generic for all machines which don't match a different target.