Commit graph

12 commits

Author SHA1 Message Date
Richard Henderson
382fab1a7a * elf64-alpha.c (alpha_elf_dynamic_symbol_p): Undef weak symbols
are always dynamic.
        (elf64_alpha_calc_dynrel_sizes): Allow enough room for RELATIVE
        .got relocs in -Bsymbolic shared objects.
1998-08-08 22:17:16 +00:00
Richard Henderson
2506b5688c * elf64-alpha.c (struct alpha_relax_info): Add tsec & elfsym members.
(elf64_alpha_relax_section): Fill them in.
        (elf64_alpha_relax_opt_call): Implement more than a stub.
        (elf64_alpha_add_symbol_hook): Don't set SEC_LOAD or default
        alignment on .scommon.
        (elf64_alpha_merge_gots): Merge use counts as well.
1998-04-26 01:33:51 +00:00
Richard Henderson
986c3691f2 * elf64-alpha.c (elf64_alpha_relax_section): Use the proper section
for calculating a local symbol's address.
        (elf64_alpha_calc_got_offsets): Skip entries with 0 use count.
        Set the .got's cooked size as well as the raw size.
1998-04-25 21:10:01 +00:00
Tom Tromey
53d3ce37d4 * Many files: Added gettext invocations around user-visible
strings.
	* libbfd-in.h: Added gettext includes and defines.
	* acconfig.h (ENABLE_NLS, HAVE_CATGETS, HAVE_GETTEXT, HAVE_STPCPY,
	HAVE_LC_MESSAGES): Define.
	* configure.in: Call CY_GNU_GETTEXT.  Create po/Makefile.in and
	po/Makefile.
	* Makefile.am (SUBDIRS): Added po.
	(POTFILES): New macro.
	(po/POTFILES.in): New target.
	(SOURCE_HFILES): New macro.
	(HFILES): Use it.
	* po/Make-in, po/POTFILES.in, po/bfd.pot: New files.
1998-04-22 05:13:54 +00:00
Richard Henderson
211b0be8ce * elf64-alpha.c (elf64_alpha_find_reloc_at_ofs): Renamed from
elf64_alpha_relax_find_reloc_ofs.  Changed all callers.
(elf64_alpha_add_symbol_hook): Put small commons in .scommon not .sbss.
(elf64_alpha_size_got_sections): Don't merge .got sections twice.
1998-04-21 07:15:57 +00:00
Richard Henderson
69842d0884 * elf64-alpha.c: Initial implementation of relaxation --
(struct alpha_elf_link_hash_entry): Add use_count member.
        (elf64_alpha_check_relocs): Initialize and increment it.
        (elf64_alpha_can_merge_gots): Check it when considering merging.
        (elf64_alpha_merge_gots): Drop entries with zero use.
        (elf64_alpha_calc_got_offsets_for_symbol): Likewise.
        (elf64_alpha_always_size_sections): Split out got sizing ...
        (elf64_alpha_size_got_sections): ... here.  New function.
        (elf64_alpha_relax_find_reloc_ofs): New function.
        (elf64_alpha_relax_with_lituse): Likewise.
        (elf64_alpha_relax_without_lituse): Likewise.
        (elf64_alpha_relax_opt_call): Likewise.
        (elf64_alpha_relax_section): Likewise.
        (elf64_alpha_add_symbol_hook): Likewise.
        (elf64_alpha_howto_table): Implement GPRELHIGH/LOW & IMMED_GP_16.
        (elf64_alpha_relocate_section): Likewise.
        (bfd_elf64_bfd_relax_section): Define.
        (elf_backend_add_symbol_hook): Likewise.
1998-04-16 05:29:30 +00:00
Richard Henderson
6a587c4aae * elf64-alpha.c (elf64_alpha_calc_dynrel_sizes): Allow for RELATIVE
relocs for symbols in shlibs that have been forced local.
        (elf64_alpha_relocate_section): Output RELATIVEs in .got for same.
1997-10-14 06:12:50 +00:00
Richard Henderson
3a13dd8f03 * bfd/elf64-alpha.c (elf64_alpha_relocate_section): Use the
got_enties of the default symbol for the default versioned
        symbol.  Patch from hjl@gnu.ai.mit.edu, modified not to use
        alloca in the loop.
1997-10-14 04:24:59 +00:00
Ian Lance Taylor
303e725723 Tue Mar 18 22:40:09 1997 H.J. Lu <hjl@lucon.org>
* Many files: Add function prototypes.
	* cpu-m68k.c (bfd_default_scan_num_mach): Don't declare.
	* ecofflink.c: Include "libcoff.h" and "libecoff.h".
	* elf32-ppc.c (ppc_elf_fake_sections): Make static.
	* opncls.c (bfd_openstreamr): Change stream parameter to PTR.
	* peicode.h: Change several void * parameters to PTR.
	* srec.c (srec_get_symbol_info): Make static.
	* syms.c (bfd_symbol_is_absolute): Remove.
1997-03-19 03:58:45 +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
Ian Lance Taylor
37d7888d03 Wed Aug 14 17:02:09 1996 Richard Henderson <rth@tamu.edu>
* elf64-alpha.c (elf64_alpha_size_dynamic_sections): Correct typo
	in section dynidx start.
1996-08-15 00:03:50 +00:00
Ian Lance Taylor
297a4f1a3c Tue Jun 25 11:41:24 1996 Richard Henderson <rth@tamu.edu>
* elf64-alpha.c (elf64_alpha_adjust_dynamic_symbol): Don't
	increment the .rela.plt size until after we're done creating the
	.plt entry.
	(elf64_alpha_finish_dynamic_symbol): Change .plt entry to load the
	.rela.plt offset directly rather than calculating it.
1996-06-25 15:55:31 +00:00