Ian Lance Taylor
64d5f5d061
Tue Jan 9 15:22:53 1996 David Mosberger-Tang <davidm@azstarnet.com>
...
* coff-alpha.c (alpha_relocate_section): During final link, allow
output .lita section to be bigger than 64k by adjusting gp value
on a per-input section basis.
* libecoff.h (struct ecoff_tdata): Add issued_multiple_gp_warning
field.
(struct ecoff_section_tdata): Add gp field.
Tue Jan 9 12:00:36 1996 Ian Lance Taylor <ian@cygnus.com>
Handle Alpha ECOFF changes in OSF/1 3.2.
* libecoff.h (struct ecoff_backend_data): Add get_elt_at_filepos
field.
* coff-alpha.c: Include "aout/ar.h".
(alpha_ecoff_get_relocated_section_contents): Don't require an
ALPHA_R_IGNORE reloc after an ALPHA_R_GPDISP reloc, since OSF/1
3.2 doesn't generate one.
(alpha_relocate_section): Likewise.
(alpha_ecoff_slurp_armap): Define.
(alpha_ecoff_slurp_extended_name_table): Define.
(alpha_ecoff_construct_extended_name_table): Define.
(alpha_ecoff_truncate_arname): Define.
(alpha_ecoff_write_armap): Define.
(alpha_ecoff_generic_stat_arch_elt): Define.
(alpha_ecoff_update_armap_timestamp): Define.
(ARFZMAG): Define.
(alpha_ecoff_read_ar_hdr): New static function.
(alpha_ecoff_get_elt_at_filepos): New static function.
(alpha_ecoff_openr_next_archived_file): New static function.
(alpha_ecoff_get_elt_at_index): New static function.
(alpha_ecoff_backend_data): Initialize get_elt_at_filepos field.
(ecoffalpha_little_vec): Change BFD_JUMP_TABLE_ARCHIVE from
_bfd_ecoff to alpha_ecoff.
* ecoff.c (ecoff_link_add_archive_symbols): Use get_elt_at_filepos
field from backend structure, rather than always calling
_bfd_get_elt_at_filepos.
* coff-mips.c (mips_ecoff_backend_data): Initialize
get_elt_at_filepos field.
* archive.c (_bfd_generic_read_ar_hdr_mag): New function, copied
from _bfd_generic_read_ar_hdr with minor changes.
(_bfd_generic_read_ar_hdr): Use _bfd_generic_read_ar_hdr_mag.
* libbfd-in.h (_bfd_generic_read_ar_hdr_mag): Declare.
* libbfd.h: Rebuild.
* bfd-in.h (BFD_IN_MEMORY): Define.
* libbfd-in.h (struct bfd_in_memory): Define.
* libbfd.c (bfd_read): Handle BFD_IN_MEMORY flag.
(bfd_get_file_window): Don't try to map a BFD_IN_MEMORY file.
(bfd_write, bfd_stat): Abort if BFD_IN_MEMORY is set.
(bfd_tell, bfd_flush, bfd_seek): Handle BFD_IN_MEMORY flag.
* bfd.c (struct _bfd): Change iostream field from char * to PTR.
(bfd_get_size): Handle BFD_IN_MEMORY flag.
* cache.c (bfd_cache_close): Ignore BFD_IN_MEMORY files.
(bfd_open_file): Cast to PTR, not char *, when setting iostream.
(bfd_cache_lookup_worker): Abort if BFD_IN_MEMORY is set.
* opncls.c (bfd_fdopenr): Cast to PTR, not char *, when setting
iostream.
(bfd_openstreamr): Likewise.
* aoutx.h (NAME(aout,some_aout_object_p)): Only fstat iostream if
BFD_IN_MEMORY is not set.
* riscix.c (riscix_some_aout_object_p): Likewise.
* bfd-in2.h, libbfd.h: Rebuild.
* targets.c (bfd_target): Add _bfd_get_elt_at_index field.
(BFD_JUMP_TABLE_ARCHIVE): Add _get_elt_at_index.
(bfd_get_elt_at_index): Define.
* archive.c (_bfd_generic_get_elt_at_index): Rename from
bfd_get_elt_at_index. Change index parameter from int to
symindex.
* libbfd-in.h (_bfd_generic_get_elt_at_index): Declare.
(_bfd_noarchive_get_elt_at_index): Define.
(_bfd_archive_bsd_get_elt_at_index): Define.
(_bfd_archive_coff_get_elt_at_index): Define.
* bfd-in2.h, libbfd.h: Rebuild.
* aout-target.h (MY_get_elt_at_index): Define if not defined.
* coff-rs6000.c (xcoff_get_elt_at_index): Define.
* ieee.c (ieee_get_elt_at_index): Define.
* libecoff.h (_bfd_ecoff_get_elt_at_index): Define.
* oasys.c (oasys_get_elt_at_index): Define.
* som.c (som_get_elt_at_index): Define.
1996-01-09 20:40:39 +00:00
Ian Lance Taylor
c40d9c773f
* ecoff.c (_bfd_ecoff_find_nearest_line): Don't restrict line
...
numbers to the .text section.
PR 8767.
1996-01-09 17:01:15 +00:00
Ian Lance Taylor
efa77952c8
* ieee.c (ieee_write_debug_part): Change return type to boolean.
...
If there is a SEC_DEBUGGING section, get the contents of the debug
information part from it.
(ieee_set_section_contents): Store the contents of a SEC_DEBUGGING
section in memory.
(ieee_write_object_contents): Check ieee_write_debug_part return.
1996-01-08 22:02:36 +00:00
Fred Fish
767f22d543
* config.bfd (i[345]86-*-freebsd*): Add target.
...
* configure.in (i386freebsd_vec): Add vec.
* configure: Regenerate.
* Makefile.in (BFD32_BACKENDS): Add i386freebsd.o.
(BFD32_BACKENDS_CFILES): Add i386freebsd.c.
Rebuild dependencies..
* freebsd.h: New file.
* i386freebsd.c: New file.
* targets.c (i386freebsd_vec): Declare.
(bfd_target_vector): Add i386freebsd_vec.
* i386linux.c (SEGMENT_SIZE): Define as TARGET_PAGE_SIZE
* i386netbsd.c (SEGMENT_SIZE): Define as TARGET_PAGE_SIZE
1996-01-05 05:44:27 +00:00
Ian Lance Taylor
f8254a3cc5
* ieee.c (ieee_slurp_debug): New static function.
...
(ieee_object_p): Call it.
(ieee_slurp_section_data): Skip debugging sections.
(ieee_get_reloc_upper_bound): Likewise.
(ieee_get_section_contents): Likewise.
(ieee_canonicalize_reloc): Likewise.
(ieee_write_section_part): Likewise.
(ieee_write_debug_part): Likewise.
(ieee_write_data_part): Likewise.
(init_for_output): Likewise.
1996-01-04 21:30:09 +00:00
Michael Meissner
07a159dbd4
Make @GOT relocations work
1996-01-04 00:44:32 +00:00
Ian Lance Taylor
d812945a9a
* coffcode.h (coff_write_object_contents): If we don't know the
...
section of the entry point for an XCOFF executable, always set the
entry address to -1.
1996-01-03 20:07:39 +00:00
Michael Meissner
3a56d0b427
Add support for .note sections
1996-01-02 19:17:17 +00:00
Ian Lance Taylor
c4406e5068
* elf32-ppc.c: Remove trailing newline from calls to
...
_bfd_error_handler.
(ppc_elf_merge_private_bfd_data): Only warn about endianness
difference if target endianness is known.
1996-01-02 18:06:55 +00:00
Michael Meissner
08556813ed
Work in progress to add real GOT support
1995-12-21 17:50:22 +00:00
Ken Raeburn
86587dd4ca
* elf.c (copy_private_bfd_data): When attaching sections to segments ignore
...
sections that won't be allocated. Patch from Andreas Schwab.
1995-12-21 00:41:20 +00:00
Ken Raeburn
bf7f243f7e
configure m68k-cbm non-sysv4 correctly
1995-12-20 01:13:05 +00:00
Ian Lance Taylor
d9518e2edc
* coff-i960.c (CALC_ADDEND): Define.
...
(coff_i960_relocate_section): Add the input section VMA to the
addend for PC relative relocs.
PR 8697.
1995-12-19 21:38:51 +00:00
Ian Lance Taylor
dc092b6b2a
* targets.c (enum bfd_endian): Define.
...
(bfd_target): Rename byteorder_big_p to byteorder, and change it
from boolean to enum bfd_endian. Change header_byteorder_big_p
correspondingly.
* bfd-in.h (bfd_big_endian, bfd_little_endian): New macros.
(bfd_header_big_endian, bfd_header_little_endian): New macros.
* bfd-in2.h: Rebuild.
* All targets: Change initialization of byteorder and
header_byteorder to use enum bfd_endian values rather than
booleans.
* All files: Change all references to byteorder_big_p and
header_byteorder_big_p to use new bfd_*_endian macros.
1995-12-15 21:18:43 +00:00
Ian Lance Taylor
010a405a94
* coffgen.c (make_a_section_from_file): Set lma to s_paddr, not
...
s_vaddr.
* coffcode.h (coff_write_object_contents): Set s_paddr to lma, not
vma.
* ecoff.c (_bfd_ecoff_write_object_contents): Likewise.
1995-12-15 17:07:00 +00:00
Steve Chamberlain
fcb4390628
* pe[i]-i386.c (TARGET_UNDERSCORE): Define to '_'.
1995-12-15 15:32:29 +00:00
Ian Lance Taylor
1457810573
* ieee.c: Lots of minor cleanups. Make many functions return
...
errors rather than calling abort. Also:
(ieee_write_twobyte): Remove; change callers to call existing
ieee_write_2bytes function.
(ieee_write_expression): Don't output the section twice when
outputting a local symbol. Don't emit an extraneous zero if there
is only one term.
(ieee_slurp_sections): Set the lma as well as the vma.
(ieee_archive_p): Use bfd_alloc_grow rather than an obstack.
1995-12-14 20:33:14 +00:00
Ian Lance Taylor
0d709d3137
* ihex.c (ihex_set_arch_mach): Don't accept any architecture, just
...
a recognized one or bfd_arch_unknown.
(ihex_get_symtab_upper_bound): Define as bfd_0l, to permit objcopy
to succeed.
(ihex_get_symtab): Likewise.
1995-12-14 18:46:54 +00:00
Ian Lance Taylor
14dc2f774e
* aoutx.h: Include <ctype.h>.
...
(struct aout_link_includes_table): Define.
(struct aout_link_includes_totals): Define.
(struct aout_link_includes_entry): Define.
(aout_link_includes_lookup): Define macro.
(struct aout_final_link_info): Add includes field.
(aout_link_includes_newfunc): New static function.
(NAME(aout,final_link)): Initialize includes hash table.
(aout_link_write_symbols): Eliminate duplicate N_BINCL entries.
1995-12-13 20:47:36 +00:00
Stan Shebs
480ccad563
* mpw-config.in: Match on mips-*-* instead of mips-idt-ecoff.
1995-12-13 18:54:24 +00:00
Kim Knuttila
3920d9c924
Protected debugging code. (duh)
1995-12-13 16:22:02 +00:00
Kim Knuttila
207345f2f6
Fixes for .reloc
1995-12-13 12:56:29 +00:00
Ian Lance Taylor
273c019e53
* config.bfd: Handle sparc-*-elf*. From Ronald F. Guilmette
...
<rfg@monkeys.com>.
1995-12-12 16:44:22 +00:00
Ian Lance Taylor
010d9f2d13
* elflink.h (elf_link_add_object_symbols): Set section_count to 0
...
when setting sections to NULL.
PR 8600.
1995-12-08 22:47:28 +00:00
Ian Lance Taylor
4a4a66bdc9
* xcofflink.c (struct xcoff_loader_info): Add export_defineds
...
field.
(bfd_xcoff_size_dynamic_sections): Add export_defineds parameter.
(xcoff_build_ldsyms): If export_defineds is set, set XCOFF_EXPORT
for all symbols.
* bfd-in.h (bfd_xcoff_size_dynamic_sections): Update declaration.
* bfd-in2.h: Rebuild.
1995-12-07 01:08:54 +00:00
Ian Lance Taylor
55cac92082
* ihex.c (ihex_scan): Handle record types 4 and 5.
...
(ihex_object_p): Permit types 4 and 5.
(ihex_set_section_contents): Remove check for out of range
addresses.
(ihex_write_object_contents): Generate types 4 and 5.
1995-12-04 22:08:45 +00:00
Kim Knuttila
545bf026d5
Removed some debugging prints. duh
1995-12-04 21:47:37 +00:00
Ian Lance Taylor
1f4ae0d6b1
* elflink.h (elf_link_output_extsym): Just ignore warning and
...
indirect references to symbols which don't really exist.
1995-12-04 16:23:36 +00:00
Kim Knuttila
53d45489e3
Dumper for PowerPC .edata section
1995-12-04 01:58:54 +00:00
David Edelsohn
361e8876a0
* aout-arm.c (MY_swap_std_reloc_out): Use KEEPIT to get the symbol
...
index, don't call stoi.
1995-12-03 23:29:09 +00:00
Ian Lance Taylor
ffd1548911
* ihex.c: New file; support for Intel Hex format.
...
* targets.c (enum bfd_flavour): Add bfd_target_ihex_flavour.
(ihex_vec): Declare.
(bfd_target_vector): Always include ihex_vec.
* bfd.c (struct _bfd): Add ihex_data field to tdata union.
* Makefile.in: Rebuild dependencies.
(BFD_LIBS): Add ihex.o
(BFD_LIBS_CFILES): Add ihex.c.
* bfd-in2.h: Rebuild.
1995-12-02 02:00:08 +00:00
Ian Lance Taylor
ae0a6bea51
* bfd.c (bfd_record_phdr): New function.
...
* bfd-in.h (bfd_record_phdr): Declare.
* bfd_in2.h: Rebuild.
1995-12-01 21:45:33 +00:00
Ian Lance Taylor
ce0ee4bf49
* elf32-sparc.c (elf32_sparc_relocate_section): Remove bogus
...
BFD_ASSERT.
PR 8562.
1995-12-01 20:59:10 +00:00
Ian Lance Taylor
58142f101d
* libbfd.c (bfd_malloc, bfd_realloc): New functions.
...
(bfd_zmalloc): Return PTR, not char *. Take size_t, not
bfd_size_type.
* libbfd-in.h (bfd_malloc, bfd_realloc): Declare.
(bfd_zmalloc): Change declaration.
* libbfd.h: Rebuild.
* Many files: Use bfd_malloc and bfd_realloc rather than malloc
and realloc. Don't set bfd_error_no_memory if they fail.
1995-12-01 19:48:10 +00:00
Kim Knuttila
590662481c
PowerPC DLL Support
1995-12-01 01:01:42 +00:00
Ian Lance Taylor
6933148af0
* elf.c (_bfd_elf_make_section_from_shdr): Don't set lma based on
...
p_paddr if p_paddr is zero.
(make_mapping): Set includes_filehdr and includes_phdrs for first
PT_LOAD segment.
(map_sections_to_segments): Set includes_phdrs for PT_PHDR
segment.
(assign_file_positions_for_segments): Handle includes_filehdr and
includes_phdrs. Remove special handling of PT_PHDR and first
PT_LOAD segments.
(copy_private_bfd_data): Set includes_filehdr and includes_phdr
when appropriate. Remove special handling of PT_PHDR segment.
Use a more complex condition for when a section is included in a
segment to handle Solaris linker oddities.
1995-11-30 22:15:13 +00:00
Ian Lance Taylor
f62fed1c4a
Thu Nov 30 11:17:33 1995 Manfred Hollstein KS/EF4A 60/1F/110 #40283 <manfred@lts.sel.alcatel.de>
...
* coff-m88k.c (howto_table): Reformatted for easier reading;
special_function now points to new function m88k_special_reloc.
(howto_hvrt16): Function previously used for handling HVRT16 relocs
removed.
(rtype2howto): Do not add reloc's r_offset to the addend, this will
be done correctly by m88k_special_reloc.
(reloc_processing): New function to be used by RELOC_PROCESSING.
(RELOC_PROCESSING): Define to call reloc_processing.
1995-11-30 16:23:05 +00:00
Ian Lance Taylor
b00c57ec37
* peicode.h (pe_print_idata): Call malloc rather than xmalloc.
...
(pe_print_pdata): Likewise.
1995-11-29 22:10:57 +00:00
Ian Lance Taylor
a9713b91a7
* opncls.c (bfd_alloc_by_size_t): Set bfd_error_no_memory if
...
obstack_alloc fails.
(bfd_alloc_finish): Set bfd_error_no_memory if obstack_finish
fails.
* libbfd.c (bfd_zmalloc): Set bfd_error_no_memory if malloc fails.
* Many files: don't set bfd_error_no_memory if one of the above
routines fails.
1995-11-29 22:05:37 +00:00
Ian Lance Taylor
3dbf33eeb4
* elf.c (assign_file_positions_for_segments): Don't adjust p_paddr
...
if p_paddr_valid is set.
(copy_private_bfd_data): New static function.
(_bfd_elf_copy_private_section_data): Call copy_private_bfd_data.
1995-11-29 20:04:17 +00:00
Ian Lance Taylor
44ef8897da
* elf.c (assign_file_positions_for_segments): Fix case where extra
...
program headers were allocated.
1995-11-29 19:14:33 +00:00
Ian Lance Taylor
27fb8f2933
* elf.c (_bfd_elf_print_private_bfd_data): New function.
...
* elf-bfd.h (_bfd_elf_print_private_bfd_data): Declare.
* elfxx-target.h (bfd_elfNN_bfd_print_private_bfd_data): Define to
_bfd_elf_print_private_bfd_data.
1995-11-29 18:46:07 +00:00
Ian Lance Taylor
64ecde4619
* coff-alpha.c (alpha_ecoff_swap_reloc_in): Don't abort if
...
r_symndx is RELOC_SECTION_NONE for an ALPHA_R_IGNORE reloc.
Change a RELOC_SECTION_LITA symndx to RELOC_SECTION_ABS.
(alpha_ecoff_swap_reloc_out): Change RELOC_SECTION_ABS to
RELOC_SECTION_LITA for ALPHA_R_IGNORE.
(alpha_adjust_reloc_out): For ALPHA_R_IGNORE, don't change
RELOC_SECTION_ABS to RELOC_SECTION_NONE.
1995-11-29 17:40:58 +00:00
Ian Lance Taylor
fd0198f023
* elf-bfd.h (struct elf_obj_tdata): Add segment_map field.
...
* elf.c (make_mapping): New static function.
(map_sections_to_segments): New static function.
(elf_sort_sections): New static function.
(assign_file_positions_for_segments): New static function.
(map_program_segments): Remove.
(get_program_header_size): Remove sorted_hdrs, count, and
maxpagesize parameters. Simplify.
(assign_file_positions_except_relocs): When generating an
executable, use assign_file_positions_for_segments.
(elf_sort_hdrs): Remove.
(_bfd_elf_sizeof_headers): Remove eliminated parameters from call
to get_program_header_size.
1995-11-28 22:02:13 +00:00
Ian Lance Taylor
1ff0461b4e
* hp300hpux.c (MY(callback)): Set lma as well as vma.
1995-11-27 20:11:40 +00:00
Ian Lance Taylor
80c8485c44
* configure, config.in: Regenerate with autoconf 2.7.
1995-11-27 18:02:58 +00:00
Ian Lance Taylor
3b3f762596
* elf32-i386.c (elf_backend_plt_readonly): Set correctly, to 1.
...
* elf32-sparc.c (elf_backend_plt_readonly): Set correctly, to 0.
PR 8513.
1995-11-27 17:42:27 +00:00
Ian Lance Taylor
a877f5917f
* ecoff.c (_bfd_ecoff_new_section_hook): Handle .rconst section.
...
(ecoff_sec_to_styp_flags): Likewise.
(_bfd_ecoff_styp_to_sec_flags): Handle STYP_RCONST.
(ecoff_set_symbol_info): Handle scRConst.
(ecoff_slurp_reloc_table): Handle RELOC_SECTION_RCONST.
(ecoff_compute_section_file_positions): Handle .rconst section.
(_bfd_ecoff_write_object_contents): Likewise.
(ecoff_link_check_archive_element): Handle scRConst.
(ecoff_link_add_externals): Likewise.
(ecoff_link_write_external): Handle .rconst section.
(ecoff_reloc_link_order): Likewise.
* ecofflink.c (bfd_ecoff_debug_accumulate): Handle scRConst.
* coff-alpha.c (alpha_convert_external_reloc): Handle .rconst
section.
(alpha_relocate_section): Handle RELOC_SECTION_RCONST.
1995-11-22 19:01:43 +00:00
Ian Lance Taylor
fa63d1ef23
* sunos.c (sunos_scan_dynamic_symbol): Only set written if the
...
DEF_DYNAMIC flag is set.
PR 8493.
1995-11-22 17:04:56 +00:00
Ken Raeburn
25bada65f5
* host-aout.c: If TRAD_HEADER is defined, include it.
1995-11-22 00:57:55 +00:00