Commit graph

1307 commits

Author SHA1 Message Date
Alan Modra
4e6bfe8ada * section.c (bfd_make_section_anyway): Don't increment section_id
and the BFD's section_count if adding the section failed.
	* vms.c (vms_new_section_hook): Adjust for bfd_make_section_anyway
	change.
2001-11-13 03:52:25 +00:00
Hans-Peter Nilsson
bc0d28ee42 * elf32-cris.c (cris_elf_grok_prstatus): Adjust values to match new
core dump format.
2001-11-12 23:47:02 +00:00
Alan Modra
968d5a056e daily update 2001-11-12 23:01:05 +00:00
H.J. Lu
350836e342 2001-11-11 H.J. Lu <hjl@gnu.org>
* elf32-mips.c (_bfd_mips_elf_finish_dynamic_sections): Call
	_bfd_elf_strtab_size instead of _bfd_stringtab_size.

	* elf64-sparc.c (sparc64_elf_size_dynamic_sections): Change
	dynstr type to `struct elf_strtab_hash *'.
2001-11-11 23:51:36 +00:00
Alan Modra
50e480d974 daily update 2001-11-11 23:00:05 +00:00
Hans-Peter Nilsson
b959dc73d0 * elf-strtab.c (_bfd_elf_strtab_finalize): Make first variable i
size_t.  Rename second i to j.
2001-11-11 22:18:01 +00:00
Alan Modra
94753239c5 daily update 2001-11-10 23:00:05 +00:00
Jeff Law
7e250b6c31 * binary.c: Include safe-ctype.h after bfd.h and sysdep.h. 2001-11-10 15:53:31 +00:00
Alan Modra
ec33885937 * elf32-arm.h (elf32_arm_final_link_relocate): Don't copy STN_UNDEF
relocs into shared libs.
	* elf32-cris.c (cris_elf_relocate_section): Likewise.
	* elf32-i370.c (i370_elf_relocate_section): Likewise.
	* elf32-m68k.c (elf_m68k_relocate_section): Likewise.
	* elf32-mips.c (mips_elf_calculate_relocation): Likewise.
	* elf32-ppc.c (ppc_elf_relocate_section): Likewise.
	* elf32-sh.c (sh_elf_relocate_section): Likewise.
	* elf32-sparc.c (elf32_sparc_relocate_section): Likewise.
	* elf64-alpha.c (elf64_alpha_relocate_section): Likewise.
	* elf64-s390.c (elf_s390_relocate_section): Likewise.
	* elf64-sparc.c (sparc64_elf_relocate_section): Likewise.
	* elf64-x86-64.c (elf64_x86_64_relocate_section): Likewise.
	* elfxx-ia64.c (elfNN_ia64_relocate_section): Likewise.
	* elf.c (bfd_section_from_r_symndx): New function.
	* elf-bfd.h (LOCAL_SYM_CACHE_SIZE): Define.
	(struct sym_sec_cache): New.
	(bfd_section_from_r_symndx): Declare.
	(struct bfd_elf_section_data): Change local_dynrel type to PTR.
	* elflink.h (elf_link_input_bfd): Don't test for removed linkonce
	relocs when relocatable.  Don't	zero entire reloc, just zero the
	addend and sym.
	* elf32-i386.c (struct elf_i386_link_hash_table): Add sym_sec.
	(elf_i386_link_hash_table_create): Init it.
	(elf_i386_check_relocs): Track dynamic relocs needed for local
	syms on a per-section basis as we do for globals.
	(elf_i386_gc_sweep_hook): Update for local_dynrel change.
	Remove dead code.
	(allocate_dynrelocs): Warning fix.
	(elf_i386_size_dynamic_sections): Don't allocate relocs when
	section has been discarded.
	(elf_i386_relocate_section): Don't copy STN_UNDEF relocs
	into shared libs.
	* elf32-hppa.c: Likewise.
	* elf32-s390.c: Likewise.
	* elf64-ppc.c: Likewise.
	* elf64-s390.c: Likewise.
2001-11-10 00:23:35 +00:00
Alan Modra
2972bad307 daily update 2001-11-09 23:00:05 +00:00
Alan Modra
a525240841 daily update 2001-11-08 23:00:04 +00:00
Martin Schwidefsky
0451c93c40 * elf32-s390: Major rework that introduces all recent changes to
the s390 backends.  Get a closer match to elf32-i386.
(elf_s390_relocate_section): Make use of dynamic section short-cuts.
Localise vars, and delay setting.  Better error reporting, replace
BFD_ASSERT with abort.  Check ELF_LINK_HASH_DEF_DYNAMIC to see if a
symbol is not defined in the regular object file and tread the weak
definition as the normal one.  Don't discard relocs for undefweak or
undefined symbols and check !DEF_REGULAR as well as DEF_DYNAMIC in
test for avoided copy relocs.  Reinstate fudge for unresolved relocs
in debugging sections.
(elf32_s390_adjust_dynamic_symbol): Handle nocopyreloc.  Don't do copy
reloc processing for weakdefs.  Remove redundant casts and aborts.
Delay setting of vars until needed.  Move creation of dynamic symbols
and allocation of .plt and .rela.plt to allocate_dynrelocs.  Replace
BFD_ASSERT with abort.  Discard .plt entries for everything with
plt.refcount <= 0.
(elf_s390_check_relocs):  Don't allocate space for dynamic relocs,
.got or .relgot here but do it in allocate_dynrelocs.  Reference count
possible .plt and .got entries.  Don't test input section SEC_READONLY
here to try to avoid copy relocs, and keep dyn_relocs regardless of
ELF_LINK_NON_GOT_REF.  Don't set DF_TEXTREL here.  Delay setting of
variables until needed.  Remove separate switch stmt for creating .got
section.  Initialise local_got_refcounts to 0.  Cache pointer to
"sreloc" section in elf_section_data. Tweak condition under which .got
created.  Report files with bad relocation section names.
(elf_s390_finish_dynamic_symbol): Don't copy relocs for symbols that
have been forced local.  Use same test to decide if we can use a
relative reloc for got as elf_s390_relocate_section.  Expand SHN_UNDEF
comment.  Move expressions out of function calls.  Replace BFD_ASSERT
with abort.
(elf_s390_finish_dynamic_sections): Migrate common code out of switch
statement.  Replace BFD_ASSERT with abort.
(elf_s390_size_dynamic_sections): Call readonly_dynrelocs. Rename "i"
to "ibfd".  Allocate space for local dyn relocs.  Use DF_TEXTREL flag
instead of looking up section names for DT_TEXTREL.  Replace
BFD_ASSERT with abort.  Zero out the dynamic allocated content space.
Add a comment to remind us that one day this ought to be fixed.
(struct elf_s390_link_hash_entry): Rename "root" to "elf".
(struct elf_s390_link_hash_table): Likewise.
(elf_s390_link_hash_newfunc): Rename to link_hash_newfunc and get
rid of unnecessary casts.
(struct elf_s390_dyn_relocs): Add "sec", and "pc_count" fields.
Remove "section" field.
(elf_s390_gc_sweep_hook): Sweep dyn_relocs and local_dynrel.
Reference count possible .plt entries.  Don't deallocate .got and
.relgot space here.
(struct elf_s390_pcrel_relocs_copied): Rename to elf_s390_dyn_relocs.
Update comment.
(struct elf_s390_link_hash_entry): Rename pcrel_relocs_copied to
dyn_relocs.
(elf_s390_discard_copies):  Delete.
(elf_s390_link_hash_traverse): Delete.
(bfd_elf32_bfd_final_link): Delete.  (ie. use regular final link
rather than gc variety).
(struct elf_s390_link_hash_table): Add sgot, sgotplt, srelgot, splt,
srelplt, sdynbss, srelbss fields.
(elf_s390_link_hash_table_create): Init them.
(WILL_CALL_FINISH_DYNAMIC_SYMBOL): Define.
(allocate_dynrelocs): New function.
(create_got_section): New function.
(elf_backend_can_refcount): Define.
(elf_backend_copy_indirect_symbol): Define.
(elf_s390_copy_indirect_symbol): New function.
(elf_s390_create_dynamic_sections): New function.
(readonly_dynrelocs): New function.
* elf64-s390x: Likewise.
2001-11-08 18:45:46 +00:00
Alan Modra
a65d482311 daily update 2001-11-07 23:00:06 +00:00
Jakub Jelinek
2b0f7ef92e * Makefile.am (BFD32_BACKENDS): Add elf-strtab.lo.
(BFD32_BACKENDS_CFILES): Add elf-strtab.c.
	(elf-strtab.lo): Add rule.
	* Makefile.in: Rebuilt.
	* configure.in (elf): Add elf-strtab.lo.
	* configure: Rebuilt.
	* elf-bfd.h (elf_strtab_hash): Forward declare.
	(struct elf_link_hash_table): Change dynstr type to
	struct elf_strtab_hash *.
	(struct elf_obj_tdata): Change strtab_ptr type to
	struct elf_strtab_hash *.
	(_bfd_elf_strtab_init, _bfd_elf_strtab_free, _bfd_elf_strtab_add,
	_bfd_elf_strtab_addref, _bfd_elf_strtab_delref,
	_bfd_elf_strtab_clear_all_refs, _bfd_elf_strtab_size,
	_bfd_elf_strtab_offset, _bfd_elf_strtab_emit,
	_bfd_elf_strtab_finalize): New prototypes.
	* elf-strtab.c: New file.
	* elflink.h (elf_link_add_object_symbols): Use _bfd_elf_strtab_add
	and _bfd_elf_strtab_size instead of _bfd_stringtab calls.
	Call _bfd_elf_strtab_delref if DT_NEEDED entry is not needed or
	when forcing dynamic symbol to local.
	(elf_link_create_dynamic_sections): Call
	_bfd_elf_strtab_init instead of elf_stringtab_init.
	(elf_link_record_local_dynamic_symbol): Likewise, change
	dynstr type.  Use _bfd_elf_strtab functions instead of
	_bfd_stringtab calls.
	(size_dynamic_sections): Use _bfd_elf_strtab functions instead of
	_bfd_stringtab calls.  For DT_RUNPATH and Verdaux vda_name fields,
	call _bfd_elf_strtab_addref.  Call elf_finalize_dynstr.
	(elf_adjust_dynstr_offsets, elf_finalize_dynstr): New functions.
	(elf_fix_symbol_flags): Call _bfd_elf_strtab_delref when forcing
	dynamic symbol to local.
	(elf_link_assign_sym_version): Likewise.
	(elf_bfd_final_link): Call _bfd_elf_strtab_emit instead of
	_bfd_stringtab_emit.
	* elflink.c (_bfd_elf_link_record_dynamic_symbol): Change dynstr
	type.  Call _bfd_elf_strtab functions instead of
	_bfd_stringtab functions.
	* elf64-sparc.c (sparc64_elf_size_dynamic_sections): Likewise.
	* elf.c (_bfd_elf_init_reloc_shdr): Likewise.
	(elf_fake_sections): Likewise.
	(assign_section_numbers): Call _bfd_elf_strtab_clear_all_refs
	on shstrtab hash table, call _bfd_elf_strtab_addref on each section
	name in the output.  Call _bfd_elf_strtab_finalize and
	use _bfd_elf_strtab_offset to finalize sh_name section header fields.
	(_bfd_elf_compute_section_file_positions): Use _bfd_elf_strtab_size
	instead of _bfd_stringtab_size.
	(prep_headers): Change shstrtab type.
	Use _bfd_elf_strtab calls instead of _bfd_stringtab calls.
2001-11-07 16:50:38 +00:00
Alan Modra
1d761fc593 * elflink.h (elf_link_input_bfd <removed linkonce relocs>): Fix
bad symtab segfault.  Formatting and warning fixes.  Improve
	error message for internationalisation.
2001-11-07 04:07:09 +00:00
Alan Modra
df05402949 daily update 2001-11-06 23:00:06 +00:00
H.J. Lu
f8deed93c6 2001-11-06 H.J. Lu (hjl@gnu.org)
* elflink.h (elf_link_input_bfd): Complain relocs against
	discarded sections.
2001-11-06 17:49:38 +00:00
Alan Modra
0a2a5e0f3c daily update 2001-11-05 23:00:07 +00:00
Alan Modra
9a03cc54f7 daily update 2001-11-04 23:08:47 +00:00
Alan Modra
5a26231798 daily update 2001-11-03 23:00:04 +00:00
Alan Modra
7fda6dbc17 * elfxx-target.h (elfNN_bed): Correct want_got_sym, want_dynbss order. 2001-11-03 03:18:34 +00:00
Alan Modra
49fd28c1db daily update 2001-11-02 23:00:06 +00:00
H.J. Lu
d918dd357c 2001-11-02 H.J. Lu <hjl@gnu.org>
* elf32-mips.c (mips_elf_calculate_relocation): Don't create
	dynamic relocation for symbols defined in regular objects when
	creating executables.
2001-11-02 19:46:59 +00:00
Nick Clifton
3c62831e20 Add translations 2001-11-02 19:09:06 +00:00
Nick Clifton
b8819ab2f8 Add comment 2001-11-02 16:29:15 +00:00
Nick Clifton
21da9f89f2 Initialize subspace_sections. 2001-11-02 16:19:54 +00:00
H.J. Lu
95f7d9f7b7 2001-11-02 H.J. Lu (hjl@gnu.org)
* coffgen.c (coff_object_p): Return 0 if the header is too big.
2001-11-02 15:47:24 +00:00
Hans-Peter Nilsson
12e1f53eb8 * elfcore.h (elf_core_file_p): Preserve and clear abfd section
information.  Save bfd arch and mach values.  Restore on error.
2001-11-02 13:12:56 +00:00
Alan Modra
a8d02d6673 * elf32-hppa.c (hppa_handle_PIC_calls): Rename to mark_PIC_calls.
(allocate_PIC_calls): New function.
	(allocate_dynrelocs): Don't allocate pic_call plt entries here.
	(elf32_hppa_size_dynamic_sections): Call allocate_PIC_calls.
	(elf32_hppa_finish_dynamic_symbol): Remove dead code.
2001-11-02 10:37:04 +00:00
Hans-Peter Nilsson
4a15251e58 Fix cutnpasto in last entry 2001-11-02 07:22:37 +00:00
Hans-Peter Nilsson
72209a1fb6 * elf32-cris.c (cris_elf_grok_prstatus): New function.
(cris_elf_grok_prstatus): New function.
	(elf_backend_grok_prstatus): Define.
	(elf_backend_grok_psinfo): Define.
2001-11-02 07:20:24 +00:00
Alan Modra
e90bf65af7 daily update 2001-11-01 23:00:04 +00:00
Alan Modra
86c76c7be0 * elf64-ppc.c (ppc64_elf_relocate_section): Correct branch
prediction bits.
2001-11-01 05:35:10 +00:00
Chris Demetriou
afdbd6d03b [ bfd/ChangeLog ]
2001-10-31  Chris Demetriou  <cgd@demetriou.com>

	* elf32-mips.c (_bfd_mips_elf_hi16_reloc): Handle PC-relative
	relocations properly.

[ gas/ChangeLog ]
2001-10-31  Chris Demetriou  <cgd@broadcom.com>

	* config/tc-mips.c (HAVE_32BIT_ADDRESSES): If compiling embedded
	PIC code, assume pointers the same size as GPRs.
	(macro): In M_LA_AB handling for embedded PIC code, support
	"la $treg,foo-bar($breg)".  In load/store handling
	(label ld_st) support "<op> $treg,<sym>-<local_sym>($breg)"
	which is used by the compiler for switch statements.
	In load/store double multi-instruction macro handling
	(label ldd_std) add a comment that no special handling
	is currently done for embedded PIC.
	(mips_ip): In 'o' (16-bit offset) case, only accept 16
	bit offsets.

[ gas/testsuite/ChangeLog ]
2001-10-31  Chris Demetriou  <cgd@broadcom.com>

	* gas/mips/empic.s: Undo damage inflicted on 2000-12-02.
	* gas/mips/empic.d: Likewise.
	* gas/mips/elempic.d: Likewise (it was copied into other files).
	* gas/mips/telempic.d: Likewise.
	* gas/mips/tempic.d: Likewise.

	* gas/mips/empic2.s: New test to check new 'la' and 'lw' (and
	related ops) syntax, test loads with large offsets.
	* gas/mips/emcic2.d: Likewise.
	* gas/mips/mips.exp: Run the new test on ELF platforms.
2001-11-01 01:33:47 +00:00
Alan Modra
0a299a95a8 daily update 2001-10-31 23:00:35 +00:00
H.J. Lu
2cd533b769 2001-10-31 H.J. Lu <hjl@gnu.org>
* elflink.h (elf_link_output_extsym): Don't clear the visibility
	field for relocateable.
2001-10-31 16:42:48 +00:00
Alan Modra
4e12ff7fc2 Revert previous delta, instead do this.
* elf32-hppa.c (elf32_hppa_finish_dynamic_sections): Don't count
	.plt relocs in DT_RELASZ.
2001-10-31 15:32:09 +00:00
Alan Modra
4578e0a726 * elf32-hppa.c (elf32_hppa_size_dynamic_sections): Set DT_RELASZ
whenever DT_PLTRELSZ.
2001-10-31 14:58:14 +00:00
Nick Clifton
7649aa5088 Supports sh3/sh4/sh3eb/sh4eb-unknown-linux-gnu targets 2001-10-31 09:50:09 +00:00
Nick Clifton
a53ecf01a5 Fix typo: bfd_mmo_mmix_vec => bfd_mmo_vec. 2001-10-31 09:01:50 +00:00
Hans-Peter Nilsson
ed73733d7d Remove #if 0 around bfd_mmo_mmix_vec 2001-10-31 03:08:59 +00:00
Hans-Peter Nilsson
e06fcc8615 Split file by ^L:s as in original submitted patch 2001-10-31 03:07:48 +00:00
Alan Modra
6180d2b004 daily update 2001-10-30 23:01:01 +00:00
Nick Clifton
3c3bdf30e4 Add MMIX support 2001-10-30 15:20:14 +00:00
Nick Clifton
f5ffc9190a If the LMA for a segment is known, use it for matching sections to segments.
Use the LMA when adjusting for inter-section alignment padding.
2001-10-30 11:40:28 +00:00
Nick Clifton
e0e8c97fe9 Set the LMA based on the p_paddr of the segment that contains it. 2001-10-30 11:34:46 +00:00
Alan Modra
3109ff8fb4 daily update 2001-10-29 23:00:04 +00:00
Kazu Hirata
5b74f489cb * README: Fix a typo. 2001-10-29 22:29:59 +00:00
Kazu Hirata
fe03258071 * bfdsumm.texi: Fix a typo. 2001-10-29 22:26:12 +00:00
Alan Modra
cdf1fe3060 daily update, a bit late.. 2001-10-29 04:00:48 +00:00