Age | Commit message (Collapse) | Author | Files | Lines |
|
switched in executables created by the OSF1 linker.
(som_write_fixups): Handle R_EXIT just like the R_{F,L,R}SEL
fixups. Support R_ALT_ENTRY (handle just like R_EXIT).
|
|
* cofflink.c (coff_link_input_bfd): syment_base is unsigned
so can't compare -ve numbers with it.
Mon Sep 12 20:31:17 1994 Steve Chamberlain (sac@jonny.cygnus.com)
* configure.in (shcoff_vec): Use cofflink.o now.
* coff-sh.c: Rewritten to use new fast coff backend.
|
|
files are a.out.
|
|
(ns32k-*-netbsd): use ns32knbsd.
* hosts/{nbsd,i386nbsd,ns32knbsd,sparcnbsd}.h: New files, NetBSD
host support.
* sparcnetbsd.c: New file, adds support for NetBSD/sparc.
* config/sparc-nbsd.mt: Likewise.
* netbsd.h: New file, definitions common to all netbsd ports.
* i386netbsd.c: Use it.
* ns32knetbsd.c: Use it.
* Makefile.in, configure.in, targets.c, config/i386-nbsd.mt,
config/ns32k-nbsd.mt: canonicalize netbsd targets to conform to
file/variable naming conventions.
* i386netbsd.c: New file, renamed from netbsd386.c.
* ns32knetbsd.c: New file, renamed from netbsd532.c.
|
|
R_NO_RELOCATION fixups.
(bfd_section_from_som_symbol): Return the absolute section if the
symbol isn't contained in any section in the output file.
(som_slurp_symbol_table): ST_PRI_PROG and ST_SEC_PROG symbols are
not function symbols (they are magic code labels which *can* be the
targets of cross space branches). $START$ is not a section symbol.
|
|
* hosts/mpw.h [BFD_TRUE_FALSE]: Remove macro redefinitions of true
and false.
|
|
to STT_FUNC if the BSF_FUNCTION flag is set.
|
|
change it.
(_bfd_coff_generic_relocate_section): If r_symndx is -1, it is an
absolute reloc. Don't dump core using r_symndx as an array index.
* cf-m68klynx.c (coff_bfd_link_add_symbols): Define.
(lynx_link_add_symbols): New static function (copy of function in
coff-i386.c).
(coff_m68k_lynxrtype_to_howto): sym argument may be NULL.
* coff-i386.c (coff_i386_rtype_to_howto): Likewise.
* coff-a29k.c (coff_a29k_relocate_section): Handle an r_symndx
value of -1, meaning an absolute reloc.
|
|
* Makefile.in: Rebuild dependencies.
(BFD_LIBS): Remove ctor.o.
(CFILES): Remove ctor.c.
* libbfd.h: Rebuild.
|
|
error of some sort (for example, undefined symbols), then do not
apply any relocs, just notify the user of the errors.
(elf32_hppa_backend_begin_write_processing): Do not build a symbol
extension section for an executable (it's useless).
(elf32_hppa_link_output_symbol_hook): Do nothing if there was a
link error of some sort (for example, undefined symbols).
(elf32_hppa_read_symext_info): Kludge. Turn off SEC_HAS_CONTENTS
for all the input symbol extension sections to keep the generic
BFD code happy. Temporarily turn it on to read the contents of
the symbol extension section.
|
|
|
|
* config/hppabsd.mh (RANLIB): Likewise.
|
|
* cf-i386lynx.c: Remove #if 0 code.
(i386_lynxos_coff_object_p): Remove unused function.
(coff_bfd_link_add_symbols): Define.
(lynx_link_add_symbols): New static function.
* coffcode.h (coff_bfd_link_hash_table_create): If
coff_relocate_section is defined, only define this if not already
defined.
(coff_bfd_link_add_symbols, coff_bfd_final_link): Likewise.
* linker.c (_bfd_generic_final_link): Handle
bfd_indirect_link_order explicitly, rather than via
_bfd_default_link_order.
(set_symbol_from_hash): New static function, broken out of
_bfd_generic_link_write_global_symbol.
(_bfd_generic_link_write_global_symbol): Symbol setting code moved
to set_symbol_from_hash; call it.
(default_indirect_link_order): Add generic_linker argument.
Change all callers. If false, set the generic symbols based on
the hash table entries.
|
|
call to bfd_constructor_entry.
|
|
|
|
* coff-m68k.c (coff_relocate_section): Define.
* cf-m68klynx.c (coff_rtype_to_howto): Define.
(coff_m68k_lynx_rtype_to_howto): New static function.
* configure.in (m68kcoff_vec): Build cofflink.o.
(m68kcoffun_vec, m68klynx_coff_vec): Likewise.
|
|
correctly.
|
|
elf_backend_final_write_processing hook to boolean.
(struct elf_obj_tdata): Add linker field.
* elfcode.h (NAME(bfd_elf,write_object_contents)): Pass value of
tdata linker field to final_write_processing, rather than NULL.
(elf_bfd_final_link): Don't call final_write_processing hook. Set
tdata linker field to true.
* elf32-mips.c (mips_elf_final_write_processing): Change type of
second argument to boolean.
* elf32-hppa.c (elf32_hppa_backend_final_write_processing):
Likewise.
|
|
* coff-i960.c (RTYPE2HOWTO): Likewise.
* coff-m88k.c (RTYPE2HOWTO): Likewise.
* coff-we32k.c (RTYPE2HOWTO): Likewise.
Make i386 COFF use new COFF backend linker.
* coff-i386.c (RTYPE2HOWTO): Fully parenthesize arguments.
(coff_relocate_section): Define.
(coff_i386_rtype_to_howto): New function.
* configure.in (i386coff_vec): Use cofflink.o.
(i386lynx_coff_vec): Likewise.
* coffcode.h (bfd_coff_backend_data): Add new field
_bfd_coff_rtype_to_howto.
(bfd_coff_rtype_to_howto): Define.
(coff_rtype_to_howto): Define to use RTYPE2HOWTO, if not already
defined.
(bfd_coff_std_swap_table): Initialize new field.
* cofflink.c (_bfd_coff_final_link): Allocate section_count + 1
section_info structures, since the target_index is 1 based.
(coff_link_input_bfd): Set *secpp to bfd_com_section_ptr for a
common symbol. Adjust rel_hash by the output reloc count.
(_bfd_coff_generic_relocate_section): New function.
* libcoff-in.h (_bfd_coff_generic_relocate_section): Declare.
* libcoff.h: Rebuild.
* coff-alpha.c (alpha_ecoff_backend_data): Initialize new field.
* coff-mips.c (mips_ecoff_backend_data): Likewise.
|
|
symbols and undefined symbols which no type in the same manner
if the associated BFD symbol has BSF_FUNCTION set. For a defined
symbol which no type, select a SOM type based on the flags of the
section containing the symbol.
(som_slurp_symbol_type): Set BSF_FUNCTION for undefined ST_STUB
or ST_CODE symbols (importing a non-function code symbol is
meaningless in SOM).
(som_set_reloc_info): Don't set "offset" to the section's vma; it
should always start at zero.
|
|
|
|
* cofflink.c: New file.
* libcoff-in.h: Include bfdlink.h.
(obj_coff_external_syms, obj_coff_strings): Define accessor macro.
(obj_coff_sym_hashes): Define accessor macro.
(struct coff_tdata): Add fields external_syms, strings, and
sym_hashes.
(struct coff_link_hash_entry): Define.
(struct coff_link_hash_table): Define.
(coff_link_hash_lookup, coff_link_hash_traverse): Define.
(coff_hash_table): Define.
(_bfd_coff_link_hash_table_create): Declare.
(_bfd_coff_link_add_symbols, _bfd_coff_final_link): Declare.
* coffcode.h (bfd_coff_backend_data): Add fields _bfd_relsz,
_bfd_coff_swap_reloc_in, _bfd_coff_sym_is_global,
_bfd_coff_compute_section_file_positions,
_bfd_coff_relocate_section.
(bfd_coff_relsz, bfd_coff_swap_reloc_in): Define.
(bfd_coff_sym_is_global): Define.
(bfd_coff_compute_section_file_positions): Define.
(bfd_coff_relocate_section): Define.
(coff_mkobject_hook): Initialize obj_raw_syment_count and
obj_conv_table_size.
(coff_compute_section_file_positions): Set target_index of all
sections. Set output_has_begun field.
(coff_write_object_contents): Don't set target_index; now done by
coff_compute_section_file_positions. Remove obsolete handling of
scn_base and data_base. Don't bother to check that target_index
is positive, since it always is. Remove use of pad, which is
always zero. Check obj_raw_syment_count, not bfd_get_symcount,
for the number of symbols, but only write them out if
bfd_get_symcount is non-zero.
(coff_slurp_symbol_table): Use obj_raw_syment_count, not
bfd_get_symcount for the number of symbols. Don't set
obj_conv_table_size.
(coff_sym_is_global): New static function or macro.
(coff_slurp_reloc_table): Call coff_swap_reloc_in, not
bfd_swap_reloc_in.
(coff_bfd_link_hash_table_create): If coff_relocate_section is
defined, define as _bfd_coff_link_hash_table_create.
(coff_bfd_link_add_symbols): Similar change.
(coff_bfd_final_link): Similar change.
(coff_relocate_section): Define as NULL if not defined.
(bfd_coff_std_swap_table): Initialize new fields.
* coffgen.c (coff_real_object_p): Don't set obj_raw_syment_count
and obj_conv_table_size here.
(coff_count_linenumbers): Reindent. If bfd_get_symcount is zero,
add up the line numbers from the sections.
(coff_write_symbols): Don't set bfd_get_symcount.
(coff_pointerize_aux): Don't pointerize a nonpositive x_endndx
field.
(coff_get_normalized_symtab): Use obj_raw_syment_count, not
bfd_get_symcount.
(coff_print_symbol): If auxp->fix_end, print x_endndx value.
* coffswap.h (coff_swap_reloc_in): Rename from bfd_swap_reloc_in.
Reindent. Change argument type to PTR.
* coff-a29k.c (coff_a29k_relocate_section): New static function.
(coff_relocate_section): Define.
* configure.in (a29kcoff_big_vec): Compile cofflink.o.
* coff-alpha.c (alpha_ecoff_backend_data): Initialize new fields.
* coff-mips.c (mips_ecoff_backend_data): Likewise.
* libcoff.h: Rebuilt.
* Makefile.in: Rebuilt dependencies.
(BFD32_BACKENDS): Add cofflink.o.
(CFILES): Add cofflink.c.
|
|
symbol, and print its aux fields with appropriate labels.
|
|
|
|
|
|
|
|
commands for simultaneous definition of enumerator and enumerator name table.
(bfd_get_reloc_code_name): New function, for retrieving a symbolic name
associated with an enumerator.
* libbfd.h, bfd-in2.h: Regenerated.
|
|
unwind descriptor information is available.
|
|
argument, and use it to set DT_SONAME dynamic entry.
* bfd-in.h (bfd_elf32_size_dynamic_sections): Update prototype.
(bfd_elf64_size_dynamic_sections): Update prototype.
* bfd-in2.h: Rebuilt.
|
|
(coff_get_normalized_symtab): Verify obj_raw_syment_count, rather
than setting it.
|
|
|
|
before adding BYTES_IN_WORD.
|
|
not merely the first.
|
|
symbol, clear the name so that it is not put in the string table.
From Antti.Miettinen@ntc.nokia.com.
|
|
and use %ld to print it.
* osf-core.c (osf_core_core_file_p): Remove unused variable
dseccnt.
* ecoffswap.h (ecoff_swap_ext_out): If ECOFF_64, clear remaining
bytes in bits2.
|
|
|
|
rather than waiting until coff_slurp_symbol_table.
(coff_write_alien_symbol): Just ignore BSF_DEBUGGING symbols.
From Antti.Miettinen@ntc.nokia.com.
|
|
bfd_make_empty_symbol. From Antti.Miettinen@ntc.nokia.com.
|
|
(and output_offset) if there is one.
* aoutx.h (aout_link_check_archive_element): Discard the symbols
if the archive element was not needed.
* aoutx.h (aout_get_external_symbols): Ensure that a zero string
index yields an empty string.
(aout_link_write_symbols): If info->keep_memory is false, use name
from original hash table entry, not from entry in *sym_hash.
* aoutx.h (struct aout_final_link_info): Add fields contents,
relocs, symbol_map and output_syms.
(NAME(aout,final_link)): Work out the largest section size, reloc
size, and number of symbols. Use them to preallocate buffers that
are large enough for all cases.
(aout_link_input_bfd): Use preallocated symbol_map.
(aout_link_write_symbols): Remove symbol_map argument; use
preallocated symbol_map instead. Change all callers. Use
preallocated output_syms.
(aout_link_input_section): Remove symbol_map argument. Change all
callers. Use preallocated contents and relocs.
(aout_link_input_section_std): Remove symbol_map argument; use
preallocated symbol_map instead. Change all callers.
(aout_link_input_section_ext): Likewise.
|
|
(bfd_target): Add field _bfd_update_armap_timestamp.
* bfd.c (bfd_update_armap_timestamp): Define.
* bfd-in2.h: Rebuilt.
* libbfd-in.h (_bfd_noarchive_update_armap_timestamp): Define.
(_bfd_archive_bsd_update_armap_timestamp): Declare.
(_bfd_archive_coff_update_armap_timestamp): Define.
* libbfd.h: Rebuilt.
* archive.c (_bfd_write_archive_contents): Call
bfd_update_armap_timestamp instead of checking for a BSD archive
and calling bsd_update_armap_timestamp.
(_bfd_archive_bsd_update_armap_timestamp): Rename from
_bsd_update_armap_timestamp. Don't assume that armap_datepos is
already set.
* aout-target.h (MY_update_armap_timestamp): Define if not already
defined.
* coff-rs6000.c (rs6000coff_update_armap_timestamp): Define.
* ieee.c (ieee_update_armap_timestamp): Define.
* libecoff.h (_bfd_ecoff_update_armap_timestamp): Define.
* oasys.c (oasys_update_armap_timestamp): Define.
* som.c (som_update_armap_timestamp): Define.
|
|
* aoutx.h: String hash functions moved to hash.c. Retain
simplified versions of add_to_stringtab and emit_stringtab.
Change all callers to use new function and structure names.
* libbfd-in.h (_bfd_stringtab_init, _bfd_stringtab_free): Declare.
(_bfd_stringtab_size, _bfd_stringtab_add): Declare.
(_bfd_stringtab_emit): Declare.
* libbfd.h: Rebuilt.
|
|
* i386linux.c (linux_add_one_symbol): Create a fixup for any
defined absolute symbol, not just GOT or PLT symbols.
(linux_tally_symbols): Correct handling of references to defined
symbols.
|
|
* aoutx.h (adjust_o_magic): If the .bss VMA was set outside of
BFD, pad the .data section up to the VMA of the .bss section.
(aout_link_add_symbols): If a set symbol does not get modified,
treat it as a local symbol.
(aout_link_write_symbols): Set the value of set symbols
correctly. Don't discard set symbols even if discarding local
symbols.
(aout_link_write_other_symbol): Don't abort on bfd_link_hash_new,
since it can now happen for set symbols.
|
|
".rel", not ".rela." and ".rel."; make this work by checking
use_rela_p.
* elf32-i386.c (elf_i386_check_relocs): Just check for ".rel", not
".rel."
(elf_i386_size_dynamic_sections): Likewise.
(elf_i386_relocate_section): Likewise.
* elf32-sparc.c (elf32_sparc_check_relocs): Just check for
".rela", not ".rela."
(elf32_sparc_size_dynamic_sections): Likewise.
(elf32_sparc_relocate_section): Likewise.
|
|
PASS to the old value + 1.
|
|
no aux entries, use the symbol name as the file name.
(coff_find_nearest_line): Look for the right C_FILE symbol, rather
than always using the first one. If there is a debugging symbol
after a function symbol, skip it. Add the section VMA to the line
offset, since it was subtracted out in coff_slurp_line_table.
PR 5010.
|
|
allocate and attach an exec header to the BFD private data.
(som_begin_writing): Don't fill fields of the exec header based
on BFD private data here (like the exec flags). Do not write
the exec header here.
(som_write_headers): Instead do it here.
* som.h (struct somdata): New field "exec_hdr" for the executable
file header.
(obj_som_exec_hdr): New accessor macro.
|
|
named .linux-dynamic, not .dynamic.
(linux_add_one_symbol): Use .linux-dynamic, not .dynamic.
(bfd_linux_size_dynamic_sections): Likewise.
(linux_finish_dynamic_link): Likewise.
|
|
(coff_fix_symbol_name): Use STRING_SIZE_SIZE, not 4.
(coff_write_symbols, build_string_table): Likewise.
(coff_get_normalized_symtab): Likewise.
|
|
(struct coff_tdata): Remove unused fields index_slew, raw_linenos,
and flags.
* libcoff.h: Rebuilt.
* coffcode.h (coff_mkobject): Don't initialize raw_linenos.
(coff_mkobject_hook): Don't initialize flags.
|