Commit graph

1397 commits

Author SHA1 Message Date
Jeff Law
0cd908d2b9 Add entry I forgot to commit:
* som.c (som_set_reloc_info): Sign extend constants from
        R_DATA_OVERRIDE fixups.
        * libhppa.h (sign_extend): Renamed from sign_ext.  Fix.
        (low_sign_extend): Likewise.
1995-03-28 23:28:50 +00:00
Ian Lance Taylor
661cf37446 * bout.c (b_out_canonicalize_reloc): Handle SEC_CONSTRUCTOR
sections.
	(b_out_get_reloc_upper_bound): Likewise.
1995-03-28 20:27:35 +00:00
Ian Lance Taylor
da7bfa91fb * linker.c (generic_link_add_symbol_list): Skip constructor
symbols which the main linker code did not do anything with.
	(_bfd_generic_link_output_symbols): Use udata.p if it is set,
	rather than looking the symbol up in the hash table.  Just pass
	through constructor symbols for which udata.p is not set.  If the
	linker defined the symbol, clear the constructor flag.
Fix -r for b.out file format when constructor symbols are defined.
1995-03-28 20:17:37 +00:00
Ian Lance Taylor
03788f0539 * elfcode.h (elf_bfd_link_add_symbols): An empty archive is OK. 1995-03-18 06:56:00 +00:00
Ian Lance Taylor
7fe4ed45e9 * elfcode.h (elf_link_add_object_symbols): Check whether a dynamic
object has already been included, and ignore it the second time.
1995-03-17 16:51:36 +00:00
Ken Raeburn
75236adbd2 stab-syms.c: Rewrite to improve performance. Shaves about 5% off gprof run
time, according to gprof itself, on i486-netbsd.
1995-03-14 11:02:19 +00:00
Ian Lance Taylor
d042121899 * elfcode.h (write_relocs): Make static. Use PTR argument as a
pointer to a boolean variable set to true if something fails.
	Cast to PTR rather than void *.
	(sym_is_global): Rewrite for clarity.
	(map_program_segments): If the program header size is too small,
	call _bfd_error_handler and return failure rather than aborting.
	(NAME(bfd_elf,write_object_contents)): Pass boolean variable when
	calling write_relocs.
	(elf_symbol_from_bfd_symbol): Use BFD_ASSERT rather than abort.
	(struct elf_info_failed): Define.
	(NAME(bfd_elf,size_dynamic_sections)): Declare variables in inner
	blocks.  Pass elf_info_failed structure when calling
	elf_export_symbol and elf_adjust_dynamic_symbol.
	(elf_export_symbol): Treat data argument as elf_info_failed rather
	than bfd_link_info.  Set failed field on error.
	(elf_adjust_dynamic_symbol): Likewise.
	(struct elf_finfo_failed): Define.
	(elf_bfd_final_link): Pass elf_finfo_failed structure when calling
	elf_link_output_extsym.  Use BFD_ASSERT rather than abort.
	(elf_link_output_extsym): Treat data argument as elf_finfo_failed
	rather than elf_final_link_info.  Set failed field on error.
	(elf_link_input_bfd): Use BFD_ASSERT rather than abort.
	(elf_reloc_link_order): Likewise.
1995-03-13 21:55:44 +00:00
Ian Lance Taylor
f786a73f08 * elf32-sparc.c (elf32_sparc_size_dynamic_sections): Only write
out PLTRELSZ, PLTREL and JMPREL relocs if there is a .rela.plt
	section.  Solaris 2.4 apparently does not handle empty reloc
	information correctly.
1995-03-13 20:39:36 +00:00
Ian Lance Taylor
c4299ed83a * archive.c (bsd_write_armap): Cast getuid and getgid results to
long, and print with %ld.
1995-03-13 18:49:44 +00:00
David Edelsohn
890b53ef65 * elf32-arc.c (elf_arc_howto_table): Relocs with implicit addends
don't work too well with zero src_masks.  Correct values.
1995-03-12 13:26:57 +00:00
Ian Lance Taylor
6a107a2838 * aoutx.h (translate_to_native_sym_flags): Always use the output
section if it is not NULL.
PR 6477.
1995-03-10 21:43:02 +00:00
Ian Lance Taylor
99514eec14 * coffswap.h (coff_swap_scnhdr_out): If the line number count or
the reloc count does not fit, print an error and return 0.
	* coffcode.h (coff_write_object_contents): Check return value of
	coff_swap_scnhdr_out.
	* ecoff.c (_bfd_ecoff_write_object_contents): Check return value
	of bfd_coff_swap_scnhdr_out.
1995-03-09 22:58:14 +00:00
Ian Lance Taylor
0318ed3109 * bfd.c: Include <stdarg.h> or <varargs.h>, depending upon
ANSI_PROTOTYPES.
	(bfd_error_handler_type): New global type.
	(_bfd_error_program_name): New static variable.
	(_bfd_default_error_handler): New static function.
	(_bfd_error_handler): New BFD private global variable.
	(bfd_set_error_handler): New globally visible function.
	(bfd_set_error_program_name): New globally visible function.
	* libbfd-in.h (_bfd_error_handler): Declare.
	* bfd-in2.h, libbfd.h: Rebuild.
1995-03-09 22:16:40 +00:00
Ian Lance Taylor
2f6754271f * aoutx.h (NAME(aout,swap_ext_reloc_in)): Add symcount parameter,
and use it instead of bfd_get_symcount.  Check r_index after
	setting r_extern based on whether this is a base relative reloc.
	(NAME(aout,swap_std_reloc_IN)): Add symcount parameter, and use it
	instead of bfd_get_symcount.
	(NAME(aout,slurp_reloc_table)): Pass bfd_get_symcount to reloc
	swap routines.
	* libaout.h (NAME(aout,swap_ext_reloc_in)): Add symcount parameter
	to declaration.
	(NAME(aout,swap_std_reloc_in)): Likewise.
	* sunos.c (sunos_canonicalize_dynamic_reloc): Pass
	info->dynsym_count to reloc swap routines.
	* aout-ns32k.c (MY_swap_std_reloc_in): Add symcount parameter.
	* hp300hpux.c (MY(swap_std_reloc_in)): Likewise.
	(MY(slurp_reloc_table)): Pass bfd_get_symcount to reloc swap
	routine.
	* i386lynx.c (NAME(lynx,swap_ext_reloc_in)): Add symcount
	parameter.
	(NAME(lynx,swap_std_reloc_in)): Likewise.
	(NAME(lynx,slurp_reloc_table)): Pass bfd_get_symcount to reloc
	swap routines.
1995-03-09 20:14:04 +00:00
Ian Lance Taylor
0f6020cb02 * cpu-mips.c (arch_info_struct): Add mips:8000 entry. 1995-03-08 20:47:26 +00:00
Ian Lance Taylor
a48769bfbf * elfcode.h (swap_out_syms): Mark an undefined BSF_WEAK symbol as
STB_WEAK rather than STB_GLOBAL.
1995-03-08 05:56:53 +00:00
David Edelsohn
917666603b * configure.in (SELECT_VECS): Split bfd_elf32_arc_vec into big/little.
* targets.c (bfd_target_vector): Likewise.
	* elf32-arc.c (TARGET_BIG_SYM): Define.
	(TARGET_BIG_NAME): Define.
	* config/arc-elf.mt (DEFAULT_VECTOR): Set to bfd_elf32_littlearc_vec.
	(SELECT_VECS): Add bfd_elf32_bigarc_vec.
1995-03-08 04:41:13 +00:00
Ian Lance Taylor
f135c69272 * coffcode.h (bfd_coff_backend_data): Add new field
_bfd_coff_adjust_symndx.
	(bfd_coff_adjust_symndx): Define.
	(coff_adjust_symndx): Define as NULL if not already defined.
	(bfd_coff_std_swap_table): Initialize new field to
	coff_adjust_symndx.
	* cofflink.c (coff_link_input_bfd): Call coff_adjust_symndx if it
	is defined.
	* coff-a29k.c (coff_a29k_adjust_symndx): New static function.
	(coff_adjust_symndx): Define before including coffcode.h.
	* libcoff.h: Rebuild.
1995-03-07 19:56:31 +00:00
Ian Lance Taylor
597e3d58ba * format.c (bfd_check_format_matches): Skip binary_vec when
searching through bfd_target_vector.
1995-03-07 19:32:39 +00:00
Ian Lance Taylor
d211786089 * elfcode.h (elf_sort_hdrs): Check SHT_NOBITS before checking
sh_size.
1995-03-07 17:25:07 +00:00
David Edelsohn
df168c35f9 * elfcode.h (elf_sort_hdrs): Keep SHT_NOBITS sections after
!SHT_NOBITS ones.
1995-03-07 07:34:21 +00:00
Jeff Law
0f4161ddd0 * cpu-hppa.c (arch_info_struct): Support both PA1.0 and PA1.1
machine types.
	(bfd_hppa_arch): Link in both PA1.0 and PA1.1 architecture info
	structures.
	* libhppa.h (enum pa_arch): New enumeration to describe the
	different variants of the PA architecture.
	* som.c (som_object_setup): Use new enumeration to set machine
	type.
	(som_finish_writing): If the machine type is PA1.1, then use the
	PA1.1 machine identifier in the output file.
1995-03-06 17:00:18 +00:00
Ian Lance Taylor
773033d2d2 * aoutx.h (NAME(aout,set_section_contents)): Double check that the
caller is writing to a valid section.
PR 5996 cleanup.
1995-03-02 21:00:39 +00:00
Ian Lance Taylor
c9f92c114b Thu Mar 2 14:37:57 1995 Bryan Ford <baford@cs.utah.edu>
* binary.c: Add support for reading binary files.  Loads the raw
	contents of the file into a data section and wraps some symbols
	around it.  The symbols `_binary_<filename>_start' and
	`_binary_<filename>_end' indicate the start and end of the data,
	while `_binary_<filename>_size' is an absolute symbol whose value
	is the size of the data.  <filename> is the name of the binary
	input file, with all non-alphanumeric characters converted to
	underscores.

	* archures.c (bfd_arch_get_compatible): Assume users knows what
	they're doing if one of the architectures is bfd_arch_unknown.
1995-03-02 20:04:07 +00:00
Michael Meissner
3598343227 Warn if GOT16 overflows. 1995-03-01 22:34:34 +00:00
Jason Molenda
8760f77caf Wed Mar 1 11:52:55 1995 Jason Molenda <crash@phydeaux.cygnus.com>
* configure.host: Recognize powerpc-*-aix*.

for sludge.cygnus.com.
1995-03-01 19:55:05 +00:00
Ian Lance Taylor
46cde09506 * coff-i960.c (COFF_PAGE_SIZE): Define. 1995-03-01 18:06:13 +00:00
Ian Lance Taylor
d842ea0b17 * configure.in: Rewrite output of TDEFAULTS to avoid relying on
semantics of single quotes in parameter substitution.
1995-03-01 16:58:57 +00:00
Ian Lance Taylor
afbc1a16b3 * elfcode.h (elf_sort_hdrs): Sort empty sections before non-empty
sections, if they have the same VMA.
1995-02-28 19:33:51 +00:00
Ian Lance Taylor
c47c90f441 * config.bfd (i[345]86-*-linuxelf*): New target. Use i386-lelf.
(i[345]86-*-gnuelf*): New target.  Use i386-gelf.
	* config/i386-lelf.mt: New file.
	* config/i386-gelf.mt: New file.
1995-02-28 17:54:37 +00:00
Kung Hsu
490d89a787 * config.bfd: add a29k-*-vxworks configuration. 1995-02-27 20:59:54 +00:00
Ian Lance Taylor
19a681380e * bout.c (b_out_slurp_reloc_table): Don't return an error if asked
for relocations for the .bss section.
PR 6377.
1995-02-22 02:20:51 +00:00
Jeff Law
ee4d24c613 * som.c (som_bfd_ar_write_symbol_stuff): Handle objects with odd
lengths.
1995-02-21 22:15:19 +00:00
Jeff Law
312eb91b73 Add missed log entry for som.c. 1995-02-21 05:12:58 +00:00
Ian Lance Taylor
ebb6075d2a * hosts/sysv4.h: Include <unistd.h>, <stdlib.h>, and <time.h>.
Only define SEEK_SET and SEEK_CUR if they are not already defined.
	Remove all external function declarations.
1995-02-17 18:35:40 +00:00
Michael Meissner
eaba51690a Make GOT relocs offset by 32768, which allows the table to double in size. 1995-02-17 17:41:08 +00:00
Ian Lance Taylor
cd0456a208 * syms.c (bfd_decode_symclass): Return 'W' for a weak symbol. 1995-02-17 17:26:48 +00:00
Ian Lance Taylor
6936966a62 * coffgen.c (coff_real_object_p): Set start address and flags
before calling coff_mkobject_hook.  Restore them on failure.
	* ecoff.c (_bfd_ecoff_mkobject_hook): If not ECOFF_AOUT_ZMAGIC,
	clear D_PAGED.
PR 6341.
1995-02-17 16:57:18 +00:00
Ian Lance Taylor
6dc6a81a7c * coffgen.c: Reindented. 1995-02-17 16:46:52 +00:00
David Edelsohn
b596295f13 * reloc.c (bfd_perform_relocation): Don't use bitpos in overflow calculations.
(bfd_install_relocation): Likewise.
1995-02-16 22:40:19 +00:00
Ian Lance Taylor
fe46552d89 * hosts/std-host.h: Remove all function declarations which return
int or void, except the one for free.
1995-02-16 18:23:57 +00:00
Michael Meissner
bcbe2c719c Fix powerpc PC relative reloc & add some 16 bit relocs. 1995-02-15 19:57:56 +00:00
Michael Meissner
8c9bfee312 Reconize old versions of the PowerPC machine code (EM_PPC_OLD and EM_CYGNUS_POWERPC). 1995-02-14 19:20:16 +00:00
Ian Lance Taylor
aed592693f * aoutf1.h (MACHTYPE_OK): Don't define if already defined. Don't
accept M_SPARC if bfd_arch_sparc is not in the list of supported
	architectures, and don't accept a 680x0 machine type if
	bfd_arch_m68k is not in the list of supported architectures.
	* aout0.c (MACHTYPE_OK): Define.
1995-02-14 17:49:30 +00:00
Ian Lance Taylor
1f9327360d * aoutx.h (NAME(aout,swap_ext_reloc_in)): Don't return a pointer
to garbage if the symbol index is out of range.
	(NAME(aout,swap_std_reloc_in)): Likewise.
1995-02-14 04:27:39 +00:00
Ian Lance Taylor
405affccae Revert this patch, since it breaks linking PIC code with no dynamic
objects:
	* elfcode.h (elf_bfd_final_link): Add assertion to make sure that
	dynamic and dynobj are in synch.
1995-02-13 19:04:05 +00:00
David Edelsohn
866da18e1f * archures (bfd_mach_arc_base): #define.
(bfd_mach_arc_host, bfd_mach_arc_graphics, bfd_mach_arc_audio): Ditto.
	* cpu-arc.c (arch_info_struct): Define entries for each cpu variant.
	(bfd_arc_arch): Link each one in.
	(arc_get_mach): New function.
	* elf32-arc.c (arc_info_to_howto_rel): Renamed from arc_info_to_howto.
	(elf_info_to_howto_rel): Update.
	(arc_elf_object_p, arc_elf_final_write_processing): New functions.
	(elf_backend_object_p): Define.
	(elf_backend_final_write_processing): Define.
	(USE_REL): Define.
1995-02-10 01:40:36 +00:00
Ken Raeburn
10bf6ddf08 * Makefile.in (BFD32_BACKENDS): Add i386msdos.o. 1995-02-10 00:17:32 +00:00
Ian Lance Taylor
c93e959c81 * i386linux.c (NEEDS_SHRLIB): Define.
(linux_tally_symbols): Crash if a NEEDS_SHRLIB symbol is
	undefined.  From hjl@nynexst.com (H.J. Lu).
1995-02-09 17:19:53 +00:00
Ian Lance Taylor
62e5acdce9 * elfcode.h (elf_bfd_final_link): Add assertion to make sure that
dynamic and dynobj are in synch.
1995-02-09 17:03:47 +00:00