Commit Graph

3293 Commits

Author SHA1 Message Date
Jeff Law
7b951eed4d * elf32-mn10200.c (mn10200_elf_final_link_relocate): Simplify
somewhat.
        (mn10200_elf_relax_section): Correctly compute a symbol's value
        when the symbol is local, but not in the same section as we are
        relaxing.  Implement abs24 -> abs16, imm24 -> imm16 and d24 -> d16
        relaxing.
Another 1.3% size reduction for hello world.  Only relaxing left todo is
imm16 -> imm8 and d16 -> d8 where applicable.
1997-02-21 23:19:34 +00:00
David Edelsohn
77dd1a25d8 * elf32-m32r.c: Rewrite to use ELF backend linker.
Store lower 16 bits of addend in R_M32R_HI16_[SU]LO insns.
	Add small data area support (R_M32R_SDA16).
	* reloc.c: Document BFD_RELOC_M32R_SDA16.
	* bfd-in2.h,libbfd.h: Regenerated.
1997-02-21 22:09:40 +00:00
Jeff Law
7c49f021ca Twiddle some comments to more accurately reflect reality. 1997-02-21 07:21:32 +00:00
Jeff Law
c17db7cfb4 Remove debugging printf. 1997-02-21 07:18:35 +00:00
Jeff Law
fd39566111 * elf32-mn10200.c (mn10200_elf_relax_section): New function.
(mn10200_elf_relax_delete_bytes): Likewise.
        (mn10200_elf_symbol_address_p): Likewise.
        (mn10200_elf_get_relocated_section_contents): Likewise.
        (bfd_elf32_bfd_relax_section): Define.
        (bfd_elf32_bfd_get_relocated_section_contents): Likewise.
First cut at relaxing linker for the mn10200:

	jsr:24 -> jsr:16
	jmp:24 -> jmp:16
	jmp:16 -> bra:8
	bCC .+4;bra:8 -> bCC':8


Reduces code size by about 2.5% for hello world.
1997-02-21 07:14:30 +00:00
Ian Lance Taylor
db986c6049 fix with make headers 1997-02-20 22:49:40 +00:00
Jeff Law
64af667971 * elf32-mn10200.c (mn10200_elf_final_link_relocate): New function.
(mn10200_elf_relocate_section): Likewise.
        (elf_backend_relocate_section): Define.
New style linker for the mn10200.
1997-02-20 20:54:28 +00:00
Michael Meissner
c6c7035cfb Since d10v is public now, remove all sanitization statements 1997-02-20 16:05:18 +00:00
Martin Hunt
fd8d7c31c0 Tue Feb 18 17:22:59 1997 Martin M. Hunt <hunt@pizza.cygnus.com>
* Makefile.in, archures.c, config.bfd, configure.in, elf.c,
	reloc.c, targets.c: New target, elf-*-D30V.

	* bfd-in2.h, configure, libbfd.h: Rebuilt.

	* cpu-d30v.c, elf32-d30v.c: New files.
1997-02-19 01:29:29 +00:00
Fred Fish
92a956e87d * reloc.c (struct reloc_howto_struct): Fix typo in comment.
* bfd-in2.h: Regenerated.
start-sanitize-tic80
	* coff-tic80.c (RTYPE2HOWTO): Replace abort with real function.
	(rtype2howto): Add function.
	(tic80_howto_table): Add.
end-sanitize-tic80
1997-02-18 23:01:02 +00:00
Jeff Law
8d1ba96ecc * elf32-v850.c (v850_elf_relocate_section): Make sure r_symndx
is initialized before it is used.
Something Doug noticed.
1997-02-18 17:06:20 +00:00
Ian Lance Taylor
8ceca98345 * hp300hpux.c (convert_sym_type): Don't convert a secondary common
symbol into a weak undefined symbol; leave it as a common symbol.
1997-02-17 16:29:21 +00:00
Ian Lance Taylor
54626f1aa4 * elflink.h (elf_link_add_object_symbols): Don't issue a warning
about a symbol defined in a dynamic object if it has already been
	defined in a regular object.
1997-02-15 00:12:47 +00:00
Ian Lance Taylor
8696b2db70 Thu Feb 13 20:53:22 1997 Klaus Kaempf (kkaempf@progis.de)
* reloc.c (BFD_RELOC_ALPHA_CODEADDR): New relocation for
	openVMS/Alpha.
	* evax.h (ALPHA_R_CODEADDR): New relocation.
	* evax-alpha.c (ALPHA_R_CODEADDR): 64 bit procedure relocation for
	openVMS/Alpha.
	* evax-etir.c (ALPHA_R_CODEADDR): Output object code for this
	relocation.
	* bfd-in2.h, libbfd.h: Rebuild.

	Restrict symbol length to 64 bytes, case preserving:
	* evax-emh.c (_bfd_evax_write_emh): Remove case hacking.
	* evax-misc.c (_bfd_evax_case_hack_symbol): Remove.
	(_bfd_evax_length_hash_symbol): Added.
	* evax-etir.c (_bfd_evax_write_etir): Call
	_bfd_evax_length_hash_symbol before output of symbol.
	* evax-egsd.c (_bfd_evax_write_egsd): Likewise.
	* evax.h (flag_hash_long_names, flag_show_after_trunc): Remove.

	* evax-emh.c: Output filename to object file without path.

	* evax-egsd.c: New sections for local and global commons.

	* evax-alpha.c, evax-emh.c, evax-egsd.c, evax-etir.c,
	evax-misc.c, evax.h: Remove 8 bit characters from copyright
	notices.  Replace AXP with Alpha.
1997-02-14 02:13:19 +00:00
Ian Lance Taylor
236969ac80 Thu Feb 13 20:53:22 1997 Klaus Kaempf (kkaempf@progis.de)
* makefile.vms: Add gcc flags to allow compiling with current gcc
	snapshot
	(targmatch.h): New dependency.
1997-02-14 01:54:51 +00:00
Ian Lance Taylor
3a8dddb286 Thu Feb 13 20:50:02 1997 Klaus Kaempf (kkaempf@progis.de)
* makefile.vms: New file.
1997-02-14 01:50:50 +00:00
Ian Lance Taylor
62332d05fd * sunos.c (sunos_create_dynamic_sections): We need the dynamic
sections if we are creating a shared library.
1997-02-12 23:14:36 +00:00
David Edelsohn
3883007ed1 * configure.host (i386-windows): Don't set host64=true. 1997-02-11 23:46:10 +00:00
Ian Lance Taylor
a4183ba5c9 * elf32-mips.c (reloc_type): Add R_MIPS16_GPREL.
(elf_mips16_gprel_howto): New static variable.
	(mips16_gprel_reloc): New static function.
	(bfd_elf32_bfd_reloc_type_lookup): Handle BFD_RELOC_MIPS16_GPREL.
	(mips_info_to_howto_rel): Handle R_MIPS16_GPREL.
	(mips_elf_relocate_section): Handle R_MIPS16_GPREL.
	* reloc.c (BFD_RELOC_MIPS16_GPREL): Define.
	* bfd-in2.h, libbfd.h: Rebuild.
1997-02-11 20:30:12 +00:00
David Edelsohn
b9c5ee689d * elf32-m32r.c (elf_m32r_howto_table): Change partial_inplace to true
for R_M32R_{16,32,24,HI16_ULO,HI16_SLO,LO16}.
1997-02-11 19:45:51 +00:00
Gavin Romig-Koch
276c2d7dc8 Add r5900 1997-02-11 13:26:34 +00:00
Ian Lance Taylor
ba4a45946c * elflink.h (elf_link_input_bfd): If we've discarded a section,
the output section will be the absolute section; don't print an
	assertion message for that case when doing a relocateable link.
PR 11647.
1997-02-07 17:40:24 +00:00
Ian Lance Taylor
e900e695a2 * elf32-mips.c (FN_STUB, CALL_STUB, CALL_FP_STUB): Define.
(struct mips_elf_link_hash_entry): Add new fields fn_stub,
	need_fn_sub, call_stub, and call_fp_stub.
	(struct mips_elf_link_hash_table): Add field mips16_stubs_seen.
	(mips_elf_link_hash_newfunc): Initialize new fields.
	(mips_elf_link_hash_table_create): Likewise.
	(mips_elf_relocate_section): Redirect relocations to use mips16
	stubs when appropriate.
	(mips_elf_check_relocs): Attach stub sections to the appropriate
	symbol.  Set need_fn_stub when appropriate.
	(mips_elf_always_size_sections): New static function.
	(mips_elf_check_mips16_stubs): New static function.
	(elf_backend_always_size_sections): Define.
	* elf-bfd.h (struct elf_obj_tdata): Add local_stubs field.
1997-02-06 22:15:37 +00:00
Ian Lance Taylor
258b1f5d18 * elflink.h (elf_link_input_bfd): Discard local symbols that are
attached to sections which are not being included in the link.
1997-02-06 22:02:51 +00:00
Ian Lance Taylor
5b61a02aae * cofflink.c (_bfd_coff_generic_relocate_section): Ignore the
symbol value when computing the addend for a pc_relative
	pcrel_offset reloc.
1997-02-05 18:21:08 +00:00
Ian Lance Taylor
5a50eec623 * cofflink.c (_bfd_coff_generic_relocate_section): If doing a
relocateable link, just skip pc_relative pcrel_offset relocs.
	* coff-arm.c (coff_arm_rtype_to_howto): Return a different howto
	structure for an ARM26 reloc which can be resolved.
	(coff_arm_adjust_symndx): Only convert ARM26 to ARM26D if the
	reloc can be resolved.
PR 11599.
1997-02-03 20:31:39 +00:00
Ian Lance Taylor
bcb686ca09 * coff-h8300.c (h8300_reloc16_extra_cases): Correct off by one
error in overflow check for R_RELBYTE.
PR 11591.
1997-02-03 16:54:36 +00:00
Ian Lance Taylor
e9797c8ae5 comment fix 1997-01-31 23:15:42 +00:00
Ian Lance Taylor
6c58561e7a * ieee.c (ieee_slurp_section_data): Pick up the start address.
From Mark Rasin <mark.rasin@telrad.co.il>.
1997-01-31 19:15:40 +00:00
Ian Lance Taylor
167dc907f2 * aoutx.h (aout_link_write_symbols): Don't apply discard_l to
debugging symbols.
Mentioned in PR 11540.
1997-01-31 19:08:31 +00:00
Jeff Law
1a2faf1f1e * elf32-mn10200.c (reloc_type): Add 16bit pc-relative reloc.
(elf_mn10200_howto_table): Likewise.
        (mn10200_reloc_map): Likewise.
How did I miss the 16bit pc-relative relocs?!?
1997-01-29 07:02:22 +00:00
David Edelsohn
1d5c6cfdf0 * reloc.c: Add relocs BFD_RELOC_M32R_{HI16_[US]LO,LO16}.
* bfd-in2.h, libbfd.h: Regenerated.
	* elf32-m32r.c: Add support for them.
1997-01-27 20:35:24 +00:00
Ian Lance Taylor
54aa1deab3 * aout-arm.c (MY_swap_std_reloc_in): Remove unused r_length.
* elf32-ppc.c (ppc_elf_check_relocs): Remove unused plt.
start-sanitize-v850
	* elf32-v850.c (v850_elf_final_link_relocate): Remove used
	r_format and r_pcrel.  Always return a value.
end-sanitize-v850
	* riscix.c (MY_final_link_callback): Define to dummy value.
1997-01-27 18:22:54 +00:00
Ian Lance Taylor
9950f925f7 * elf32-i386.c (elf_i386_size_dynamic_sections): When checking for
relocations against the text segment, look up the output name of
	the reloc section.
	* elf32-m68k.c (elf_m68k_size_dynamic_sections): Likewise.
	* elf32-mips.c (mips_elf_size_dynamic_sections): Likewise.
	* elf32-ppc.c (ppc_elf_size_dynamic_sections): Likewise.
	* elf32-sparc.c (elf32_sparc_size_dynamic_sections): Likewise.
	* elf64-alpha.c (elf64_alpha_size_dynamic_sections): Likewise.
1997-01-27 18:13:01 +00:00
Fred Fish
8c00b01dee * coff-tic80.c (tic80coff_vec): Use correct data put/get
routines for little endian data.
	* coffcode.h (coff_write_object_contents): Set magic to
 	TIC80_ARCH_MAGIC for TIc80.
1997-01-23 03:09:05 +00:00
Fred Fish
0716c2e910 * coff-tic80.c (tic80coff_vec): Change to little endian data
as the default.
1997-01-21 20:15:46 +00:00
Ian Lance Taylor
db109ca2d8 * elflink.h (NAME(bfd_elf,size_dynamic_sections)): Change type of
auxiliary_filters parameter to be const char * const *.  Accept a
	NULL terminated array.
	* bfd-in.h (bfd_elf32_size_dynamic_sections): Update declaration.
	(bfd_elf32_size_dynamic_sections): Update declaration.
	* bfd-in2.h: Rebuild.
1997-01-16 22:48:57 +00:00
Ian Lance Taylor
c7f8d0a524 update copyright 1997-01-16 22:48:24 +00:00
David Edelsohn
e1616e16d8 * libaout.h (machine_type): Reserve several values for sparclet. 1997-01-14 16:47:40 +00:00
Michael Meissner
91eb4378ee Fix sanitize string 1997-01-14 03:45:40 +00:00
Michael Meissner
4af93ad0dc Allow tic80-*-*, not just tic80-*-coff 1997-01-14 03:45:03 +00:00
Michael Meissner
0ce71ebd3d Cleanup; fix some aborts 1997-01-14 00:41:55 +00:00
Jeff Law
09a7bde377 Fix typo. 1997-01-06 22:23:08 +00:00
Jeff Law
4013169286 * elf32-mn10200.c (elf_mn10200_howto): Don't ever set partial-inplace.
Use bfd_elf_generic_reloc as special function for all relocs.
        (bfd_elf32_mn10200_reloc): Remove unnecessary function.
Working on relocs for the mn10200.
1997-01-06 22:20:38 +00:00
Jeff Law
483e1b9161 * elf32-mn10200.c (elf_mn10200_howto): Set partial_inplace for
24bit pc-relative reloc.
1997-01-06 20:33:53 +00:00
Fred Fish
28eb95aa33 * Makefile.in (coff-tic80.o): Add coffcode.h to dependency list.
* coff-tic80.c (tic80coff_vec): Data byte order is big endian and
	header byte order is little endian.  Use correct bfd_get and
	bfd_put routines for little endian headers.
	* coffcode.h (coff_set_arch_mach_hook): Set arch to
	bfd_arch_tic80 for TIC80_ARCH_MAGIC number.
1997-01-04 01:24:50 +00:00
Jeff Law
b3ef389468 * reloc.c: Add BFD_RELOC_24.
* elf32-mn10200.c (enum reloc_type): Add 24bit and pcrel relocs.
        (elf_mn10200_howto, mn10200_reloc_map): Corresponding changes.
        * bfd-in2.h, libbfd.h: Rebuilt.
Starting on relocs for the mn10200.
1997-01-04 00:02:12 +00:00
Ian Lance Taylor
56f3b62cf5 fix copyrights 1997-01-03 22:17:57 +00:00
Ian Lance Taylor
ff12f30335 Fri Jan 3 16:58:31 1997 Richard Henderson <rth@tamu.edu>
elf64-alpha multiple .got rewrite:

	* elf-bfd.h (struct elf_backend_data): Add always_size_sections entry.
	(bfd_elf*_mkobject): Don't define here ...
	* elfxx-target.h: ... but rather here.  Default always_size_sections
	hook to NULL.
	* elf.c (elf_mkobject): Rename to bfd_elf_mkobject, since that was
	what the #defines in elf-bfd.h transmuted it to anyway.

	* section.c: Add SEC_LINKER_CREATED flag.
	* bfd-in2.h: Rebuild.
	* elf32-i386.c (elf_i386_check_relocs): Add SEC_LINKER_CREATED to
	relocation section flags.
	(elf_i386_size_dynamic_sections): Use SEC_LINKER_CREATED instead of
	SEC_IN_MEMORY to recognize generated bits.
	* elf32-m68k.c (elf_m68k_check_relocs, elf_m68k_size_dynamic_sections):
	Likewise.
	* elf32-mips.c (mips_elf_final_link, mips_elf_create_dynamic_sections,
	mips_elf_create_compact_rel_section, mips_elf_create_got_section,
	mips_elf_check_relocs, mips_elf_size_dynamic_sections): Likewise.
	* elf32-ppc.c (ppc_elf_create_linker_section,
	ppc_elf_size_dynamic_sections): Likewise.
	* elf32-sparc.c (elf32_sparc_check_relocs,
	elf32_sparc_size_dynamic_sections): Likewise.
	* elflink.c (_bfd_elf_create_got_section): Add SEC_LINKER_CREATED to
	section flags.
	(_bfd_elf_create_dynamic_sections): Likewise.
	(_bfd_elf_make_linker_section_rela): Likewise.
	* elflink.h (elf_link_create_dynamic_sections): Likewise.
	(bfd_elf,size_dynamic_sections): Call the always_size_sections hook.
	(elf_bfd_final_link): Use SEC_LINKER_CREATED instead of SEC_IN_MEMORY
	to identify generated bits.
	(elf_link_input_bfd): Likewise.

	* elf64-alpha.c: Rewrite everything touching relocations.
1997-01-03 22:09:40 +00:00
Michael Meissner
de224d6a49 Put common variables into the appropriate section, based on relocation types 1997-01-03 16:55:34 +00:00
Ian Lance Taylor
7c342fc5b0 * config.bfd (mips*el-*-linux*): New target.
(mips*-*-linux*): New target.
1996-12-31 21:27:05 +00:00
Ian Lance Taylor
99f1722b7c * elf32-mips.c (_bfd_mips_elf_merge_private_bfd_data): Clean up.
Return a useful value.
1996-12-31 21:26:27 +00:00
Ian Lance Taylor
6ded661565 * Makefile.in (ALL_CFLAGS): Add -D_GNU_SOURCE. 1996-12-31 20:43:28 +00:00
Ian Lance Taylor
ab98712ad0 * configure.host: Use ac_cv_func_mmap_fixed_mapped instead of
ac_cv_func_mmap in bfd/configure.host.
1996-12-31 20:30:36 +00:00
Michael Meissner
afaed5e906 Fix some spacing 1996-12-31 20:17:33 +00:00
Ian Lance Taylor
dda7af9f14 * configure.in: Check ac_cv_func_mmap_fixed_mapped, not
ac_cv_func_mmap.
	* configure: Rebuild.
1996-12-31 19:56:49 +00:00
Ian Lance Taylor
148437ec14 * elflink.h (NAME(bfd_elf,size_dynamic_sections)): Add
filter_shlib and auxiliary_filter_shlib parameters.
	* elf.c (_bfd_elf_print_private_bfd_data): Handle DT_AUXILIARY and
	DT_FILTER.
	* bfd-in.h (bfd_elf32_size_dynamic_sections): Update declaration.
	(bfd_elf64_size_dynamic_sections): Likewise.
	* bfd-in2.h: Rebuild.
1996-12-31 19:46:37 +00:00
Ian Lance Taylor
1eeccb2271 * xcofflink.c (xcoff_build_ldsyms): When exporting all defined
symbols, don't export a symbol which is defined by an object in an
	archive which contains shared objects.
PR 11379.
1996-12-30 23:50:56 +00:00
Fred Fish
fc46a9ec7a * archures.c (enum bfd_architecture): Add bfd_arch_tic80
for TI TMS320c80 (MVP).
	(bfd_archures_list): Add bfd_tic80_arch.
	* bfd-in2.h: Regenerate by running "make headers".
1996-12-30 23:25:26 +00:00
Fred Fish
60b2671252 * cpu-tic80.c (bfd_tic80_arch): Add struct.
* configure.in (case $vec): Correct typo, "tb" not "tp".
	Also add cofflink.o for tic80coff_vec.
	* configure: Regenerate with autoconf.
1996-12-30 22:09:39 +00:00
Ian Lance Taylor
412f8c9336 * libbfd.c: Patch up the mmap code so that it is only built if BFD
is configured with --with-mmap.
1996-12-30 16:56:05 +00:00
Fred Fish
5a608f5bf1 * Makefile.in (BFD32_BACKENDS): Add coff-tic80.o
(ALL_MACHINES): Add cpu-tic80.o
	(cpu-tic80.o, coff-tic80.o): Add dependencies.
	* coff-tic80.c: Add skeleton, cloned from another coff config.
	* coffcode.h (coff_write_object_contents): Set magic to TIC80MAGIC
 	for TIc80.
1996-12-29 17:56:24 +00:00
Fred Fish
2a0a42d300 Add TIc80 stuff keep/lose stuff. 1996-12-28 04:16:24 +00:00
Fred Fish
cd6213ffae (Lay some groundwork for TIc80 port that will be filled in incrementally.)
* TODO: Correct a misspelling.
start-sanitize-tic80
	* coff-tic80.c: New file for TI TMS320C80 (MVP).
	* cpu-tic80.c: New file for TI TMS320C80 (MVP).
	* configure.in (case $vec): Add tic80coff_vec entry.
	* configure: Regenerate with autoconf.
	* archures.c (bfd_tic80_arch): Declare.
	* bfd-in2.h (enum bfd_architecture): Add bfd_arch_tic80.
	* config.bfd (case ${targ}): Add tic80*-*-coff* target.
	* targets.c (tic80coff_vec): Add decl as extern bfd_target.
	(bfd_target_vector): Add tic80coff_vec entry.
end-sanitize-tic80
1996-12-28 04:09:34 +00:00
Ian Lance Taylor
2503987b96 fix typoo in comment 1996-12-27 17:24:12 +00:00
Ian Lance Taylor
6b8ec6f321 * elflink.h (elf_buckets): Add some more values for larger
binaries.
1996-12-27 16:51:27 +00:00
Ian Lance Taylor
78650abdef * Makefile.in (install): Move subdir_do out of conditional. From
Fred Fish <fnf@cygnus.com>.
1996-12-26 23:37:43 +00:00
Jeff Law
8d16fe5cdb * elf32-mn10200.c (enum reloc_type): Enable basic 8, 16, and
32 bit relocs.
        (elf_mn10200_howto_table): Likewise.
        (mn10200_reloc_map): Likewise.
To keep the assembler quiet.
1996-12-18 17:09:59 +00:00
Ian Lance Taylor
e4f4813f9c * elf32-mips.c (mips_elf_add_symbol_hook): Add 1 to the value of a
mips16 symbol during the link.
	(mips_elf_finish_dynamic_symbol): Subtract 1 from the value of a
	mips16 symbol.
	(mips_elf_link_output_symbol_hook): New static function.
	(elf_backend_link_output_symbol_hook): Define.
1996-12-17 18:58:59 +00:00
Ian Lance Taylor
69e2ff181d * elf.c (bfd_elf_print_symbol): Print the st_other field if it is
not zero.
1996-12-17 16:12:58 +00:00
Ian Lance Taylor
e85f2fbd15 * elf.c (bfd_section_from_shdr): Don't check for reloc sections
against SEC_DEBUGGING sections here (revert patch of December 5).
	* elfcode.h (elf_object_p): Check for them here, instead.
1996-12-16 19:39:39 +00:00
Ian Lance Taylor
e35765a9a2 * elfcode.h (elf_slurp_reloc_table): Add dynamic parameter.
* elf.c (_bfd_elf_canonicalize_reloc): Pass new argument to
	slurp_reloc_table.
	(_bfd_elf_get_dynamic_reloc_upper_bound): New function.
	(_bfd_elf_canonicalize_dynamic_reloc): New function.
	* elf-bfd.h (struct elf_size_info): Update declaration of
	slurp_reloc_table.
	(_bfd_elf_get_dynamic_reloc_upper_bound): Declare.
	(_bfd_elf_canonicalize_dynamic_reloc): Declare.
	* elfxx-target.h: Use new dynamic reloc routines by default.
	* elf64-mips.c (mips_elf64_slurp_reloc_table): Add dynamic
	parameter.
1996-12-15 19:59:18 +00:00
David Edelsohn
21e45f8225 * libaout.h (enum machine_type): Change M_SPARCLET from 142 to 131.
At the request of matra.
1996-12-13 19:17:46 +00:00
Ian Lance Taylor
6270adfb59 Fri Dec 13 13:18:49 1996 Dan Wilder <dan@gasboy.com>
* coffcode.h (coff_set_flags): Use MC68KBCSMAGIC for bfd_arch_m68k
	if NAMES_HAVE_UNDERSCORE is defined.
1996-12-13 18:21:03 +00:00
Ian Lance Taylor
440f391466 * elflink.h (elf_link_add_object_symbols): Only add a weak
symbol if the real definition is in the dynamic symbol table.
	After finding the real definition, then, if it is dynamic, add the
	weak symbol to the dynamic symbol table.
PR 11244.
1996-12-13 02:29:37 +00:00
Ian Lance Taylor
e5c3708d54 * coff-aux.c (coff_m68k_aux_link_add_one_symbol): Make static.
PR 11253.
1996-12-12 20:27:49 +00:00
Michael Meissner
e7bab9df0f Support R_PPC_PLTREL24 1996-12-12 20:08:54 +00:00
Ian Lance Taylor
a5147005bb * ppcboot.c (ppcboot_set_arch_mach): Don't define; it's a
function.
	(ppcboot_bfd_print_private_bfd_data): Don't take the address of an
	array.
PR 11256.
1996-12-12 19:57:22 +00:00
Jeff Law
e14af8fc41 * elf32-mn10300.c (reloc_type): Remove big endian mn10300 reloc
variants.
        (elf32_mn10300_howto_table, mn10300_reloc_map): Likewise.
        (bfd_elf32_mn10300_reloc): Write data in little endian format.
        * reloc.c: Remove mn10300 big endian relocs.
        * bfd-in2.h, libbfd.h: Rebuilt.

        * elf32-mn10200.c: Update from elf32-mn10300.c.
1996-12-11 06:31:23 +00:00
Jeff Law
31cffd2ee6 * elf32-mn10300.c (elf_symbol_leading_char): Define. 1996-12-06 22:51:44 +00:00
Jeff Law
207e944c81 * elf32-mn10300.c: Add some comments.
Still cleaning up.
1996-12-06 22:23:37 +00:00
Ian Lance Taylor
6dcf1ef5de * ihex.c (ihex_scan): Always initialize buf before jumping to
error_return.
	(ihex_read_section): Likewise.
1996-12-06 22:20:24 +00:00
Jeff Law
d28f058e54 * elf32-mn10300.c (elf_mn10300_howto_table): Don't set partial-
inplace for most relocs.
1996-12-06 05:35:00 +00:00
Ian Lance Taylor
80be821d2e * elflink.h (elf_link_add_object_symbols): Calling check_relocs
even if SEC_ALLOC is not set.
	* elf32-i386.c (elf_i386_check_relocs): Don't check SEC_ALLOC
	when deciding whether to copy a reloc into a shared object.
	(elf_i386_relocate_section): Likewise.
	* elf32-sparc.c (elf32_sparc_check_relocs): Likewise.
	(elf32_sparc_relocate_section): Likewise.
	* elf32-i386.c (elf_i386_check_relocs): Don't set SEC_ALLOC in a
	reloc section if it is not set in the source section.
	* elf32-sparc.c (elf32_sparc_check_relocs): Likewise.
	* elf.c (bfd_section_from_shdr): Mark a reloc section associated
	with a SEC_DEBUGGING section as SEC_DEBUGGING.
PR 11174.
1996-12-05 18:47:03 +00:00
Michael Meissner
e5c4495c9e #if 0 some code that is not used yet 1996-12-04 19:19:15 +00:00
Ian Lance Taylor
5dda64611e * cofflink.c (_bfd_coff_generic_relocate_section): Print an error
message for bfd_reloc_outofrange, rather than aborting.  From
	Philippe De Muyter <phdm@info.ucl.ac.be>.
1996-12-02 18:18:33 +00:00
Ian Lance Taylor
179b58d949 * cofflink.c (_bfd_coff_final_link): If there aren't any relocs in
a relocateable link, don't try to process them.  From Heinz Wrobel
	<wrobel@lpr.e-technik.tu-muenchen.de>.
1996-12-02 17:15:05 +00:00
Jeff Law
943686fa04 * elf32-mn10300.c (mn10300_info_howto): Renamed from
mn10300-Info_howto_rel.  Tweak reloc argument to be an
        Elf32_Internal_Rela.
        (USE_RELA): Define instead of USE_REL.
        (elf_info_to_howto, elf_info_howto_rel): Corresponding changes.
1996-12-02 07:44:50 +00:00
Peter Schauer
0e0f410619 * configure.in, configure: Handle mips*-sgi-irix6*.
* irix-core.c (irix_core_core_file_p):  Accept CORE_MAGICN32
	core files.
1996-12-01 08:31:05 +00:00
Ian Lance Taylor
15aafe49cc * elf32-i386.c (elf_i386_relocate_section): Warn about a
relocation against a symbol defined in a section with no output
	section.
PR 11174.
1996-11-27 17:11:05 +00:00
Ian Lance Taylor
dfc7020d17 * aclocal.m4 (BFD_CC_FOR_BUILD): Don't require AC_C_CROSS.
* configure, config.in: Rebuild with autoconf 2.12.
1996-11-26 21:53:58 +00:00
Ian Lance Taylor
6c02f1a02c * elf-bfd.h (struct elf_link_hash_entry): Add other field.
* elf.c (_bfd_elf_link_hash_newfunc): Initialize other field.
	(swap_out_syms): Set st_other from existing st_other field.
	* elflink.h (elf_link_add_object_symbols): Store st_other in hash
	table other field.
	(elf_link_output_extsym): Set the other field from the global hash
	table entry.
	* elf32-mips.c (enum reloc_type): Add R_MIPS16_26.
	(elf_mips16_jump_howto): New static variable.
	(mips16_jump_reloc): New static function.
	(bfd_elf32_bfd_reloc_type_lookup): Handle BFD_RELOC_MIPS16_JMP.
	(mips_info_to_howto_rel): Handle R_MIPS16_26.
	(mips_elf_relocate_section): Handle R_MIPS16_26.  Handle R_MIPS_26
	to a mips16 symbol.
	* reloc.c (BFD_RELOC_MIPS16_JMP): Add to list of relocs.
	* bfd-in2.h, libbfd.h: Rebuild.
	* cpu-mips.c (arch_info_struct): Add mips:16 entry.
1996-11-26 16:43:03 +00:00
Ian Lance Taylor
f082b5eaea * configure.host: Use long long for mips-sgi-irix6*. 1996-11-26 02:38:33 +00:00
Jeff Law
12fdaaf821 * elf32-mn10300.c (bfd_elf32_mn10300_reloc): New function.
(enum reloc_type): Add more reloc types.
        (elf32_mn10300_howto_table): Update for new reloc types.
        (elf32_mn10300_reloc_map): Update for new reloc types.
        * reloc.c: Add some new relocs for the mn10300 series.
        * bfd-in2.h, libbfd.h: Rebuilt.
Last week's reloc work.
1996-11-25 15:59:07 +00:00
Jeff Law
23def2765b * som.c (setup_sections): Don't lose for a space which has
no data, but some symbols.
binutils/11140
1996-11-23 20:30:54 +00:00
Ian Lance Taylor
a600a89e4f * sunos.c (struct sunos_link_hash_table): Add got_needed field.
(sunos_link_hash_table_create): Initialize got_needed.
	(sunos_create_dynamic_sections): Only set .got section size if it
	is not already set.  Set got_needed.
	(bfd_sunos_size_dynamic_sections): Check got_needed.  Only set
	sdynptr, and only handle dynamic sections, if dynamic sections are
	needed.
	(sunos_scan_std_relocs): Pass false to create_dynamic_sections.
	Initialize .got section.
	(sunos_scan_ext_relocs): Likewise.
	(sunos_write_dynamic_symbol): Set up PLT entry even if this is not
	a dynamic symbol.
	(sunos_finish_dynamic_link): Check got_needed.  Only set up
	dynamic linking information if needed.
PR 11074.
1996-11-22 16:39:17 +00:00
Rob Savoye
aa09d6b2fb * config.bfd: Added VersaDOS format to the Ericsson configuration. 1996-11-21 19:04:56 +00:00
Jeff Law
c3239e6693 * elf32-mn10300.c: Rough cut at relocs for the mn10300. 1996-11-20 23:31:13 +00:00
Dawn Perchik
cf13e3fc30 * filemode.c: Include sysdep.h.
* ihex.c: Add casts to eliminate compiler warnings.
    * sunos.c: Add casts to eliminate compiler warnings.
1996-11-12 23:28:49 +00:00
Michael Meissner
9e23db7616 Add more support for V.4 shared libs 1996-11-11 15:40:04 +00:00
David Edelsohn
affcfcf9af * elf32-m32r.c (elf_m32r_howto_table, R_M32R_24): Use
complain_overflow_unsigned.
1996-10-29 23:09:51 +00:00
Ian Lance Taylor
c0e8bfc01c add missing end-sanitize-v850 1996-10-29 22:04:56 +00:00
Martin Hunt
421a2956fe Tue Oct 29 12:53:46 1996 Martin M. Hunt <hunt@pizza.cygnus.com>
* elf32-d10v.c (elf_d10v_howto_table): Don't complain on
	overflows for R_D10V_16 and R_D10V_18.
1996-10-29 20:55:52 +00:00
Ian Lance Taylor
061cc10b03 * ieee.c (ieee_write_section_part): Use LMA rather than VMA.
(do_with_relocs): Likewise.
	(do_as_repeat): Likewise.
	(copy_expression): Likewise.
PR 10946.
1996-10-29 18:26:11 +00:00
Stu Grossman
27c7e9077d * aclocal.m4, configure: Set USE_BINARY_FOPEN for *-*-windows. 1996-10-24 16:10:11 +00:00
Jeff Law
90ffe48b18 * elf32-v850.c: Add comments about assumptions about
char, short & long sizes.
        (elf32_v850_bfd_final_link_relocate): Fix sign extension
        problems for several relocs.
Still fixing sda/tda/zda stuff.
1996-10-23 21:10:55 +00:00
Ian Lance Taylor
84be2a8fa2 * xcofflink.c (bfd_xcoff_import_symbol): Don't allocate ldsym.
Store import file index in ldindx.
	(xcoff_build_ldsyms): Assume that ldsym was not previously
	allocated.  For an imported symbol, copy ldindx into l_ifile.
1996-10-23 04:22:34 +00:00
Jeff Law
c322f1b523 * elf32-v850.c (elf_v850_howto_table): Fix ordering of
R_V850_ZDAOFFSET and R_V850_TDAOFFSET.  Fix various
        fields in R_V850_TDAOFFSET.
        (elf32_v850_bfd_final_link_relocate): Tweak pc-relative
        relocs to work more like other relocs.  Handle R_V850_TDAOFF
        relocations.
v850 tda, sda & zda stuff.
1996-10-23 04:10:41 +00:00
Jeff Law
725b96f599 * elf32-v850.c: Include bfdlink.h.
(bfd_elf32_v850_reloc): Return an error if we get a reloc
        we can't handle.
        (elf32_v850_bfd_final_link_relocate): New function.
        (v850_elf_relocation_section): Likewise.
        (elf_backend_relocate_section): Define.
New-style linker for the v850 (necessary to handle zda, sda & tda).
sda & tda relocs seem to be working.  No tda reloc support yet.
1996-10-23 01:24:24 +00:00
Ian Lance Taylor
40c0ea5ad6 * binary.c (binary_set_section_contents): Ignore sections which
don't have SEC_LOAD and SEC_ALLOC set.
PR 10914.
1996-10-22 21:23:50 +00:00
Ian Lance Taylor
68553b6361 * elf32-mips.c (elf_mips_howto_table): Describe R_MIPS_64.
(mips32_64bit_reloc): New static function.
	(mips_reloc_map): Add entry for BFD_RELOC_64.
	(mips_elf_relocate_section): Handle R_MIPS_64.
1996-10-21 23:56:13 +00:00
Jeff Law
9c52f4b2f7 * linker.c (_bfd_generic_final_link): Avoid losing static
symbols in the .bss section.
Something Stu noticed.
1996-10-21 18:15:24 +00:00
Ian Lance Taylor
bd4dd3d011 * linker.c (default_indirect_link_order): Print an error message
when attempting to do a relocateable link with different object
	file formats, rather than calling abort.
1996-10-21 14:56:17 +00:00
David Edelsohn
5691054491 * reloc.c (m32r relocs): Rename them.
* bfd-in2.h, libbfd.h: Regenerated.
	* elf32-m32r.c: Update.
	(m32r_elf_10_pcrel_reloc): New function.
	(elf_m32r_howto_table, R_M32R_10_PCREL entry): Use it.
	(elf_m32r_howto_table, R_M32R_24 entry): Fix {src,dst}_masks.
1996-10-17 17:46:53 +00:00
Jeff Law
b6d08fce22 * elf32-v850.c (enum reloc_type): Add R_V850_SDA_OFFSET,
R_V850_TDA_OFFSET and R_V850_ZDA_OFFSET.
        (elf_v850_howto_table): Corresponding changes.
        (elf_v850_reloc_map): Corresponding changes.
        * reloc.c: Add additional V850 relocations.
        * bfd-in2.h, libbfd.h: Rebuilt.
1996-10-17 04:45:29 +00:00
Jeff Law
4948949ea2 * linker.c (_bfd_generic_final_link): Set "linker_mark" for
all sections that will be included in the output file.
        (_bfd_generic_link_output_symbols): Discard symbols in sections
        which are being discarded.
Fixes 4 failures in the g++ testsuite on the v850.
1996-10-16 20:27:18 +00:00
Jeff Law
e1d98a0a65 * elf32-v850.c (bfd_elf32_v850_reloc): Mask out bits we
no longer want in pc-relative relocs.
Fixing some g++ testsuite failures.
1996-10-16 17:26:50 +00:00
Jeff Law
05f1baaa20 * elf32-v850.c (bfd_elf32_v850_reloc): Don't silently
accept a reloc against an undefined sybmol!
jeez.  I'm going to go sit in the corner and hide.
1996-10-16 04:18:51 +00:00
Stu Grossman
1336da39bd * elf32-v850.c: Define elf_symbol_leading_char to be '_'. 1996-10-15 23:19:29 +00:00
Ian Lance Taylor
ede836b9aa * VERSION: Bump for new relocation. 1996-10-15 20:58:52 +00:00
Ian Lance Taylor
c24453fece * hosts/i386bsd.h: If NBPG is not defined, define it as
PAGE_SIZE, for recent versions of FreeBSD.
1996-10-15 16:41:38 +00:00
Ian Lance Taylor
e7a5045867 * configure.host: Use `long long' as the 64 bit type on a Solaris
host, since both gcc and the SunPRO compilers support it.
1996-10-14 16:38:13 +00:00
Ian Lance Taylor
6b31fd3af3 Mon Oct 14 11:17:24 1996 Richard Henderson <rth@tamu.edu>
* reloc.c: Create a new BFD_RELOC_ALPHA_ELF_LITERAL.  It was a
	mistake to have reused the ECOFF LITERAL for ELF since they have
	different semantics.
	* elf64-alpha.c (elf_reloc_map): Map from ELF_LITERAL.
	* bfd-in2.h, libbfd.h: Rebuild.

	* elf64-alpha.c (elf64_alpha_size_dynamic_sections): Trap .got
	section overflow.

	* elf64-alpha.c (elf64_alpha_relocate_section): Do not emit a
	dynamic relocation for an undefweak symbol when we are building
	a static executable.
1996-10-14 15:21:54 +00:00
Stan Shebs
f20f247499 * mpw-make.sed (config.bfd, targmatch.sed): Edit references to
point explicitly to srcdir.
	(targmatch.h): Edit references to point explicitly to objdir.
1996-10-10 18:21:37 +00:00
Ian Lance Taylor
3e222a5a5b * config.bfd: When setting targ_cpu, don't get confused by
linux-gnu.
1996-10-10 18:15:23 +00:00
Ian Lance Taylor
1c4794f58f * elflink.h (elf_link_add_object_symbols): If a symbol is a weak
definition in a dynamic object, add it to the dynamic symbol table
	if any dynamic object mentions it.  Reverts part of last patch.
PR 10827.
1996-10-08 18:50:59 +00:00
Ian Lance Taylor
9d81de1984 * sunos.c (struct sunos_link_hash_table): Add got_base field.
(sunos_link_hash_table_create): Initialize got_base.
	(bfd_sunos_size_dynamic_sections): If the .got section is more
	than 0x1000 bytes, set __GLOBAL_OFFSET_TABLE_ and got_base to
	0x1000.
	(sunos_check_dynamic_reloc): Subtract got_base from a base
	relative relocation.
PR 10684.
1996-10-08 16:02:35 +00:00
Stu Grossman
8150179797 * configure.host: Add support for windows host (a build done
under the Microsoft build environment).
1996-10-08 15:54:19 +00:00
Ian Lance Taylor
fe4ff51570 * elf32-mips.c (elf_mips_isa): New static function.
(_bfd_mips_elf_merge_private_bfd_data): Don't warn about linking
	-mips1 and -mips2 code together, or -mips3 and -mips4 code.
1996-10-08 15:41:08 +00:00
Ian Lance Taylor
1233f74bc4 * archive.c (do_slurp_coff_armap): Only treat archive as little
endian for i960 COFF.
1996-10-07 15:45:44 +00:00
Ian Lance Taylor
65f56a5863 * coffcode.h (coff_compute_section_file_positions): Adjust sofar
by the change in size of the section when EXEC_P is not set.
1996-10-04 22:52:58 +00:00
Ian Lance Taylor
a9dd34a919 * coff-m68k.c (coff_rtype_to_howto): Define if not defined.
(m68kcoff_rtype_to_howto): New static function.
	* cf-m68klynx.c (coff_m68k_lynx_rtype_to_howto): Add the section
	VMA to the addend for a PC relative reloc.
1996-10-04 22:40:55 +00:00
Ian Lance Taylor
05a68c24cb * dep-in.sed: Rework backslash loop a bit to avoid bug in sed on
HP/UX 10.20.
	* Makefile.in: Rebuild dependencies.
1996-10-04 20:24:34 +00:00
Ian Lance Taylor
a3d5a7062d * dep-in.sed: Remove ../bfd/sysdep.h, since it will appear when
som.h is included.
1996-10-04 17:50:47 +00:00
Jeff Law
c00ae065d4 * Makefile.in: Remove explicit dependencies for mn10200 and
mn10300 files.
        (ALL_MACHINE_CFILES): Add cpu-mn10200.c and cpu-mn10300.c.
        (BFD32_BACKENDS_CFILES): Add elf32-mn10200.c and elf32-mn10300.c
        (dependencies): Rebuilt.
1996-10-04 17:44:55 +00:00
Ian Lance Taylor
1d871eb78f * cofflink.c (coff_link_add_symbols): Set obj_coff_keep_syms
during this function.
1996-10-03 23:17:36 +00:00
Ian Lance Taylor
6b5af55cea * elflink.c (_bfd_elf_create_linker_section): Only use an existing
section if the flags are compatible.
1996-10-03 22:48:20 +00:00
Ian Lance Taylor
dee9979493 * configure.in: Add havevecs, and put it in tdefaults.
* mpw-config.in: Likewise.
	* configure: Rebuild.
	* targmatch.sed: New file; a sed script to build targmatch.h from
	config.bfd.
	* config.bfd: Add #if, #endif, and comments for targmatch.h.
	* targets.c: Include "fnmatch.h".
	(struct targmatch): Define.
	(bfd_target_match): Define by including targmatch.h.
	(bfd_find_target): If the target is not found by name, search for
	it as a configuration triplet.
	* Makefile.in: Rebuild dependencies.
 	(BFD32_BACKENDS): Add aout-arm.o, aout-sparcle.o, hp300bsd.o,
	i386dynix.o, m68k4knetbsd.o, and riscix.o.
	(BFD32_BACKENDS_CFILES): Add aout-arm.c, aout-sparcle.c,
	hp300bsd.c, i386dynix.c, m68k4knetbsd.c, and riscix.c.
	(HFILES): Add targmatch.h.  Also, alphabetize and reindent.
	(CFILES): Remove i386dynix.c and hp300bsd.c.
	(targmatch.h): New target.
	(do_clean): Remove targmatch.h.

	* configure.in: Add BFD_NEED_DECLARATION(getenv).
	* acconfig.h: Add NEED_DECLARATION_GETENV.
	* configure, config.in: Rebuild.
	* sysdep.h: If NEED_DECLARATION_GETENV, declare getenv.
	* aout-adobe.c (aout_adobe_object_p): Don't declare getenv.
1996-10-03 21:36:08 +00:00
Jeff Law
ae1b99e42d Grrr. The mn10200 and mn10300 are _not_ similar enough to easily support
with a single generic configuration.  So break them up into two different
configurations.  See the individual ChangeLogs for additional detail.
1996-10-03 16:42:22 +00:00
Jason Molenda
4c7f3fdef5 * Makefile.in (do_clean): Move config.log to do_distclean. 1996-10-03 06:37:32 +00:00
Jeff Law
efc2b06463 * cpu-mn10x00.c, elf32-mn10x00.c: New files.
* Makefile.in (ALL_MACHINES): Add cpu-mn10x00.o.
        (BFD32_BACKENDS): Similarly for elf32-mn10x00.o.
        (elf32-mn10x00.o): Add dependencies.
        * archures.c (enum bfd_architecture): Add bfd_arch_mn10x00.
        (bfd_mn10x00_arch): Declare.
        (bfd_archures_list): Add bfd_mn10x00_arch.
        * config.bfd: Add mn10x00-*-*.
        * configure.in: Add bfd_elf32_mn10x00_vec.
        * elf.c (prep_headers): Handle bfd_arch_mn10x00.
        * targets.c (bfd_elf32_mn10x00_vec): Declare.
        (bfd_target_vector): Add bfd_elf32_mn10x00_vec.
        * bfd-in2.h, configure: Rebuilt.
Stubbing out Matsushita support.
1996-10-03 03:56:20 +00:00
Ian Lance Taylor
a0fe6c2dc6 * freebsd.h (N_GET_MAGIC_NET): Don't use ntohl.
(N_GETMID_NET, N_GETFLAG_NET): Likewise.
	(NO_SWAP_MAGIC): Don't define.
	(SWAP_MAGIC): Define.
1996-10-02 20:41:36 +00:00
Ian Lance Taylor
bf53bd9faa Wed Oct 2 15:46:45 1996 Klaus Kaempf <kkaempf@progis.de>
openVMS/Alpha: Provide filename and case_hack flags via
	symbol table from gas.
	Add case_hack code for symbol output from vax/vms.
	* evax-alpha.c (evax_initialize): Remove filename handling,
	filename is provided via symbol table.
	(evax_get_symtab): Use local symbol count when setting up table.
	* evax-egsd.c (_bfd_evax_slurp_egsd): Print correct name when
	debugging.
	(_bfd_evax_write_egsd): Skip file name symbol.
	* evax-emh.c (get_vms_time_string): Local function now.
	(_bfd_evax_write_emh): Extract source filename and case_hack flags
	from symbol table.
	* evax_write_etir (_bfd_evax_write_etir): Pass all symbol names
	through _bfd_evax_case_hack_symbol.
	* evax-misc.c (hash_string, _bfd_evax_case_hack_symbol): New
	functions.
	(_bfd_evax_basename): Removed.
	(_bfd_get_vms_time_string): Moved to evax-emh.c.
	* evax.h (evax_private_data_struct): Remove filename.
	(flag_hash_long_names, flag_show_after_trunc,
	flag_no_hash_mixed_case, vms_name_mapping): New flags for
	vms_case_hack.
1996-10-02 19:49:01 +00:00
Ian Lance Taylor
263d4a626b * cofflink.c (_bfd_coff_link_input_bfd): Don't crash if there is
no hash table entry for a global symbol.
1996-10-02 16:02:56 +00:00
Ian Lance Taylor
8dd53b5cc8 * cofflink.c (coff_link_add_symbols): Don't override a meaningful
symbol type with T_NULL.  Warn if symbol type changes.  Based on
	patch from Philippe De Muyter <phdm@labauto1.ulb.ac.be>.
1996-10-01 21:57:47 +00:00
Ian Lance Taylor
161ac690ee Tue Oct 1 16:14:22 1996 Joel Sherrill <joel@oarcorp.com>
* config.bfd (mips*-*-rtems*): New target, like mips*-*-elf*.
1996-10-01 20:15:48 +00:00
Ian Lance Taylor
0db6249c77 * elflink.h (elf_link_add_object_symbols): Only put a symbol from
a dynamic object in the dynamic symbol table if it is referenced
	or defined by a regular object.
PR 10711.
1996-10-01 16:33:01 +00:00
David Edelsohn
80675684b7 * reloc.c: Rename m32r relocs.
* bfd-in2.h, libbfd.h: Rebuilt.
	* elf32-m32r.c: Update.
1996-09-23 16:24:46 +00:00
Ian Lance Taylor
e12ab364d2 * aoutx.h (aout_link_input_section_ext): When doing a relocateable
link, adjust the symbol index of a base relative reloc.  Don't
	change the addend of a PC relative reloc if pcrel_offset is set.
	* sunos.c (bfd_sunos_size_dynamic_sections): Don't do anything for
	a relocateable link.
PR 10692.
1996-09-20 16:33:44 +00:00
Ian Lance Taylor
a5a43df165 * reloc.c (bfd_perform_relocation): Apply the relocation even if
it is zero, in case src_mask matters.
	(bfd_install_relocation): Likewise.
PR 10685.
1996-09-20 15:44:49 +00:00